/* @description: 招标计划信息---流程控制信息公共方法
  @Modifier: haoFx
  @routerPath:
  @date: 2020-5-31-14:01
  */
export const baseInfoCommon = {
  data() {
    return {
      numberLimitToggle: false, // 数量限制字段显示隐藏
      qualificationCheckWayDisable: false, // 资格审查方式控制是否可以点击
      screenProjectToggle: false, // 年度资格预审筛选项目
      thirdToggle: false, // “资格预审开启方式”、“资格预审评审方式”、“资格预审评审办法”三个字段通过字段“资格审查方式”控制
      prequalificationReviewMethodDisable: false, // 资格预审评审方式控制是否可以点击
      flag: '' // 此变量为中间变量，控制 开标方式 评标方式 开标步制 投标文件递交方式 来回切换
    }
  },
  watch: {
    // 招标方式 00公开招标 01邀请招标
    'formData.biddingMethod'(val) {
      if (val === '01') {
        this.screenProjectToggle = true // 招标方式选中“邀请招标”时，显示“年度资格预审筛选项目”字段
        this.formData.qualificationCheckWay = '02' // 选中“邀请招标”时，本字段默认选中“资格后审”且不可编辑
        this.qualificationCheckWayDisable = true // 资格审查方式控制是否可以点击 邀请招标时禁用不可点击
      }
      if (val === '00') {
        this.qualificationCheckWayDisable = false // 资格审查方式控制是否可以点击
        // 当“招标方式”选中“公开招标”，且“资格审查方式”选中“单次资格预审”
        if (this.formData.qualificationCheckWay === '00') {
          this.screenProjectToggle = true
        } else {
          this.screenProjectToggle = false
        }
      }
      this.$emit('watchStep', this.formData.biddingMethod, this.formData.annualPrequalificationScreeningProject)
    },
    // 年度资格预审筛选项目
    'formData.annualPrequalificationScreeningProject'() {
      this.$emit('watchStep', this.formData.biddingMethod, this.formData.annualPrequalificationScreeningProject)
    },
    // 资格审查方式 00单次资格预审 01年度资格预审 02资格后审
    'formData.qualificationCheckWay'(val) {
      // 当“招标方式”选中“公开招标”，且“资格审查方式”选中“单次资格预审”显示“年度资格预审筛选项目”字段。其他情况不显示
      if (val === '00' && this.formData.biddingMethod === '00' || val === '02' && this.formData.biddingMethod === '01') {
        this.screenProjectToggle = true // 是否显示年度资格预审筛选项目
      } else {
        this.screenProjectToggle = false
      }
      // “资格预审开启方式”、“资格预审评审方式”、“资格预审评审办法”三个字段通过字段“资格审查方式”控制。当“资格审查”选中“单次资格预审”或者“年度资格预审”时，显示此三个字段。
      if (val === '01' || val === '00') {
        this.thirdToggle = true
      } else {
        this.thirdToggle = false
      }
    },
    // 资格预审评审办法 00合格制 01有限数量制
    'formData.prequalificationEvaluationMethod'(val) {
      // “数量限制”字段通过“资格预审评审办法”字段控制。当“资格预审评审办法”选中“有限数量制”时，显示此字段，反之不显示。
      if (val === '01' && this.formData.qualificationCheckWay !== '02') {
        this.numberLimitToggle = true
      } else {
        this.numberLimitToggle = false
      }
    },
    'thirdToggle'(n, o) {
      // “数量限制”字段通过“资格预审评审办法”字段控制。当“资格预审评审办法”选中“有限数量制”时，显示此字段，反之不显示。
      if (n && this.formData.prequalificationEvaluationMethod === '01') {
        this.numberLimitToggle = true
      } else {
        this.numberLimitToggle = false
      }
    },
    // 资格预审开启方式
    'formData.prequalificationOpeningMethod'(n, o) {
      // “资格预审评审方式”通过字段“资格预审开启方式”控制。当“资格预审开启方式”选中“线下”时，“资格预审评审方式”默认选中“线下”且不可编辑。
      if (n === '01') {
        this.prequalificationReviewMethodDisable = true
        this.formData.prequalificationEvaluationWay = '01'
      } else {
        this.prequalificationReviewMethodDisable = false
      }
    },
    // 开标方式
    'formData.bidOpeningMethod'(n, o) {
      // 当“开标方式”为“线下”时,“评标方式”默认选中“线下”，且不可编辑, “开标步制”默认选中“一步开标/单信封”，且不可编辑, “投标文件递交方式”默认选中“一次递交”，切不可编辑。
      if (n === '01') {
        this.formData.biddingEvaluationWay = '01'
        this.formData.bidOpeningStep = '00'
        this.formData.bidSubmissionMethod = '00'
      } else {
        this.formData.biddingEvaluationWay = '00'
      }
      this.stepDisable()
    },
    // 开标步制
    'formData.bidOpeningStep'(n, o) {
      // 当 “开标步制”选中“两步开标/双信封”时,“开标方式”默认选中“线上”，且不可编辑。“评标方式”默认选中“线上”且不可编辑。“投标文件递交方式”可以任意选择是一次递交还是两次递交。
      if (n === '01') {
        this.formData.biddingEvaluationWay = '00'
        this.formData.bidOpeningMethod = '00'
      }
      this.stepDisable()
    },
    // 评标方式
    'formData.biddingEvaluationWay'(n, o) {
      // 当“评标方式”为“线下”时,“开标步制”默认选中“一步开标/单信封”，且不可编辑, “投标文件递交方式”默认选中“一次递交”，切不可编辑
      if (n === '01') {
        this.formData.bidOpeningStep = '00'
        this.formData.bidSubmissionMethod = '00'
      }
      this.stepDisable()
    }
  },
  methods: {
    // 流程控制
    stepDisable() {
      if (this.formData.bidOpeningMethod === '01' && this.formData.biddingEvaluationWay === '01') { // 开标方式 01 线下; 评标方式 01 线下
        this.flag = '1'
      } else if (this.formData.bidOpeningMethod === '00' && this.formData.biddingEvaluationWay === '01') { // 开标方式 00 线上; 评标方式 01 线下
        this.flag = '2'
      } else if (this.formData.bidOpeningStep === '01') { // 开标步制  01 两步开标/双信封
        this.flag = '3'
      } else {
        this.flag = ''
      }
    }
  }
}
