/*
  @description: 招标计划分配-公共方法
  @Modifier: 肖文龙
  @routerPath:
  @date: 2020/06/09
*/
/* api */
import { getPurchaseSchemeConfigByConfigTypeAndDepartId, editPurchaseSchemeConfigById } from '@/api/purchasePlan/pretcloudPurchasescheme'
/* 常用公共方法*/
export const tenderPlanAllotMixin = {
  data() {
    return {
      /* ==============================招标计划分配-公用=============================*/
      // 分配状态信息
      configType: '', // 分配类型
      departId: '', // 分配id 部门或者机构
      configData: {
        configType: false, // 分配状态
        repleseconfigText: '', // 反向分配文案
        configText: '', // 分配文案
        id: '' // 主键id
      },
      // 分配规则新增-需要校验的字段
      verifyList: [
        'budgetAmountUpper', // 概算金额（元）最大值
        'budgetAmountLower', // 概算金额（元） 最小值
        'buysersName', // 招标人
        'purchaseClassName', // 采购品类
        'purchaseLevel', // 采购级别
        'bidEvaluationMethod', // 评标办法
        'purchaseCategory', // 采购类别
        'purchaseType'// 采购类别
      ],
      // 分配规则新增-需要校验的字段表单名称
      verifyTextList: [
        '概算金额（元）', //
        '招标人', //
        ' 采购品类', //
        '采购级别', //
        '评标办法', //
        '采购类别', //
        '采购类别'//
      ]
    }
  },
  methods: {
    /* ==============================招标计划分配-公用=============================*/
    // 分配规则新增-校验
    verify() {
      let isType = false// 默认不通过
      // 循环遍历是否已有选择的字段-至少有一个字段有值
      const len = this.verifyList.length
      for (let i = 0; i < len; i++) {
        // 循环遍历是否有字段已输入内容-如果有则校验通过
        if (this.formData[this.verifyList[i]]) {
          isType = true
        }
      }
      // 校验未通过时
      if (!isType) {
        this.$message({
          message: '【' + this.verifyTextList.join('】【') + '】至少输入一项内容',
          type: 'warning'
        })
      }
      return isType
    },
    /* 分配审核状态*/
    // 查询当前节点分配状态
    // configType:systemCurrentAssignedType系统级当前分配方式 companyCurrentAssignedType公司级当前分配方式 departmentCurrentAssignedType部门级当前分配方
    initDataType(configType, departId) {
      this.configType = configType// 分配类型
      this.departId = departId // 部门或者机构id
      const params = {
        configType,
        departId
      }
      getPurchaseSchemeConfigByConfigTypeAndDepartId(params).then(res => {
        this.configData.configType = res.data.configValue === '00'// 分配状态
        this.configData.id = res.data.id // 主键id
        // 分配文案
        if (this.configData.configType) { // 手动时
          this.configData.repleseconfigText = '自动'
          this.configData.configText = '手动'
        } else { // 自动时
          this.configData.repleseconfigText = '手动'
          this.configData.configText = '自动'
          // 判断是否有该方法
          if (this.assignScheme) this.assignScheme()// 调用自动分配的接口-每个招标计划分配列表的方法
        }
      })
    },
    // 切换分配方式
    toggle() {
      this.$confirm(`切换为${this.configData.repleseconfigText}分配之后，
      所有招标方案均需要${this.configData.repleseconfigText}分配。
      确认切换为${this.configData.repleseconfigText}分配吗？`, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        confirmButtonClass: 'confirmBtn',
        cancelButtonClass: 'cancelBtn',
        type: 'warning'
      }).then(() => {
        const data = {
          id: this.configData.id,
          configValue: this.configData.configType ? '01' : '00'// 分配方式 取反 00 手动 01 自动
        }
        editPurchaseSchemeConfigById(data).then(res => {
          this.initDataType(this.configType, this.departId)// 查询分配方式
        })
      }).catch(() => {
      })
    }
  }
}
