// 阶梯配置表格列配置
export const getLadderColumnsConfig = ($this) => {
  return [
    {
      label: 'template.sp.sp00456.mbrybh',
      prop: 'targetSolutionCode',
      bodyType: 'input',
      bodySubType: 'span',
      bodySubKey: 'subTargetSolutionCode',
      bodyFillType: 'preFill',
      width: 280,
      showWidth: 180,
      myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段
      maxVolumeField: "actSolutionVolume",//分装的最大量字段
      maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段
    },
    {
      label: 'template.sp.sp00456.qsrybh',
      prop: 'startSolutionCode',
      width: 280,
      showWidth: 180,
      bodyType: 'input',
      bodyFillType: 'actFill',
      bodyDisabled: true,
    },
    {
      label: 'template.sp.sp00456.ysqsrytj',
      prop: 'targetStartSolutionVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'targetStartSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'targetStartSolutionVolumePrecision',
      bodyFillType: 'preFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',
      bodyPrecisionKey: 'targetStartSolutionVolumePrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodyDisabled: true,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      headerSelectTo:"actStartSolutionVolumeUnit",
    },
    {
      label: 'template.sp.sp00456.sjqsrytj',
      prop: 'actStartSolutionVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'actStartSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyType: 'inputNumber',
      bodyFillType: 'actFill',
      bodyMaxlength: 10,
      copyFrom: 'targetStartSolutionVolume', //复制哪个字段
      compareTo: 'targetStartSolutionVolume' //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.ysxsytj',
      prop: 'targetDiluentVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'targetDiluentVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyDisabled: true,
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'targetDiluentVolumePrecision',
      bodyFillType: 'preFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',

      bodyPrecisionKey: 'targetDiluentVolumePrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      headerSelectTo:"actDiluentVolumeUnit",
    },
    {
      label: 'template.sp.sp00456.sjxsytj',
      prop: 'actDiluentVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'actDiluentVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyType: 'inputNumber',
      bodyFillType: 'actFill',
      bodyMaxlength: 10,
      copyFrom: 'targetDiluentVolume', //复制哪个字段
      compareTo: 'targetDiluentVolume', //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.ysmbrynd',
      prop: 'targetSolutionConcentration',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'targetSolutionConcentrationUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_nddw'),
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodyMaxlength: 10,
      headerSelectTo:"actSolutionConcentrationUnit",
    },
    {
      label: 'template.sp.sp00456.sjmbrynd',
      prop: 'actSolutionConcentration',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'actSolutionConcentrationUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_nddw'),
      bodyDisabled: true,
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'actSolutionConcentrationPrecision',
      bodyFillType: 'actFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',

      bodyPrecisionKey: 'actSolutionConcentrationPrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      compareTo: 'targetSolutionConcentration', //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.ysmbrytj',
      prop: 'targetSolutionVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'targetSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodyMaxlength: 10,
      headerSelectTo:"actSolutionVolumeUnit",
    },
    {
      label: 'template.sp.sp00456.sjmbrytj',
      prop: 'actSolutionVolume',
      width: 280,
      showWidth: 180,
      headerSelectKey: 'actSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyDisabled: true,
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'actSolutionVolumePrecision',
      bodyFillType: 'actFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',

      bodyPrecisionKey: 'actSolutionVolumePrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      // copyFrom: 'targetSolutionVolume', //复制哪个字段
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      compareTo: 'targetSolutionVolume', //比较哪个字段
    }
  ]
}
// 平行配置表格列配置
export const getParallelColumnsConfig = ($this) => {
  const sn = $this.sn;
  let o = {
    "SP004":"business_sp_nbgzy",
    "SP005":"business_sp_zkgzy",
    "SP006":"business_sp_bzqxzkypzbb",
  }
  return [
    {
      label: 'template.sp.sp00456.mbrybh',
      prop: 'targetSolutionCode',
      bodyType: 'select',
      bodyOptions: $this.getDictOptions(o[sn]),
      bodySubType: 'span',
      bodySubKey: 'subTargetSolutionCode',
      bodyFillType: 'preFill',
      myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//分装的母液编号字段
      maxVolumeField: "actSolutionVolume",//分装的最大量字段
      maxVolumeFieldUnit: "actSolutionVolumeUnit",//分装的最大量单位字段
      showWidth: 180,
      width: 280
    },
    {
      label: 'template.sp.sp00456.ysmbrynd',
      prop: 'targetSolutionConcentration',
      width: 280,
      showWidth: 120,
      headerSelectKey: 'targetSolutionConcentrationUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_nddw'),
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodyMaxlength: 10,
      headerSelectTo:"actSolutionConcentrationUnit",
    },
    {
      label: 'template.sp.sp00456.sjmbrynd',
      prop: 'actSolutionConcentration',
      width: 280,
      showWidth: 120,
      headerSelectKey: 'actSolutionConcentrationUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_nddw'),
      bodyDisabled: true,
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'actSolutionConcentrationPrecision',
      bodyFillType: 'actFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',
      bodyPrecisionKey: 'actSolutionConcentrationPrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      compareTo: 'targetSolutionConcentration', //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.ysmbrytj',
      prop: 'targetSolutionVolume',
      width: 280,
      showWidth: 120,
      headerSelectKey: 'targetSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodyMaxlength: 10,
      headerSelectTo:"actSolutionVolumeUnit",
    },
    {
      label: 'template.sp.sp00456.sjmbrytj',
      prop: 'actSolutionVolume',
      width: 280,
      showWidth: 120,
      headerSelectKey: 'actSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      bodyDisabled: true,
      bodyType: 'inputNumber',
      bodySubType: 'inputNumber',
      bodySubKey: 'actSolutionVolumePrecision',
      bodyFillType: 'actFill',
      bodySubFillType: 'preFill',
      showBodySub: $this.fillType === 'preFill',
      bodyPrecisionKey: 'actSolutionVolumePrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      compareTo: 'targetSolutionVolume', //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.mbryyxzq',
      prop: 'targetSolutionCycle',
      width: 280,
      showWidth: 160,
      fillType: 'preFill',
      bodyType: 'inputNumber',
      bodySubType: 'select',
      showBodySub: true,
      bodySubKey: 'targetSolutionCyclePrecision',
      bodySubOptions: $this.getDictOptions('business_yxqdw'),
      bodyFillType: 'preFill',
      bodySubFillType: 'preFill',
      bodyMaxlength: 10
    },
    {
      label: 'template.sp.sp00456.mbrysxr',
      prop: 'targetSolutionExpirationDate',
      showWidth: 120,
      width: 180,
      bodyType: 'span'
    },
    {
      label: 'template.sp.sp00456.ysysrybh',
      prop: 'startSolutionCode',
      width: 280,
      showWidth: 120,
      bodyType: 'input',
      bodyFillType: 'preFill'
    },
    {
      label: 'template.sp.sp00456.sjysrybh',
      prop: 'actStartSolutionCode',
      width: 280,
      showWidth: 180,
      bodyType: 'sj',
      bodyFillType: 'actFill',
      compareTo: 'startSolutionCode', //比较哪个字段
    },
    {
      label: 'template.sp.sp00456.ysysrynd',
      prop: 'targetStartSolutionConcentration',
      width: 280,
      showWidth: 160,
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodySubType: 'select',
      bodySubKey: 'targetStartSolutionConcentrationPrecision',
      bodySubOptions: $this.getDictOptions('business_nddw'),
      bodySubFillType: 'preFill',
      bodyMaxlength: 10,
      showBodySub: true,
    },
    {
      label: 'template.sp.sp00456.sjysrynd',
      prop: 'targetAcSolution',
      width: 280,
      showWidth: 120,
      bodyType: 'inputNumber',
      bodyFillType: 'actFill',
      bodyDisabled: true,
      compareTo: 'targetStartSolutionConcentration', //比较哪个字段 
      bodySubKey: 'subTargetAcSolutionUnit',
      bodySubType:"input",
      bodySubCompareTo:"targetStartSolutionConcentrationPrecision",
      bodySubFillType:"actFill",
      bodySubDisabled: true,
    },
    {
      label: 'template.sp.sp00456.ysysrytj',
      prop: 'targetStartSolutionVolume',
      headerSelectKey: 'targetStartSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      width: 280,
      showWidth: 120,
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodySubType: 'inputNumber',
      bodySubKey: 'targetStartSolutionVolumePrecision',
      bodySubFillType: 'preFill',
      bodyMaxlength: 10,
      bodyPrecisionKey: 'targetStartSolutionVolumePrecision',
      subPrecision:0,
      bodyMaxlength: 10,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      bodyDisabled: true,
      showBodySub: true,
      showBodySub: $this.fillType === 'preFill',
      headerSelectTo:"actStartSolutionVolumeUnit",
    },

    {
      label: 'template.sp.sp00456.sjysrytj',
      prop: 'actStartSolutionVolume',
      headerSelectKey: 'actStartSolutionVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      width: 280,
      showWidth: 120,
      bodyType: 'inputNumber',
      bodyFillType: 'actFill',
      bodyMaxlength: 10,
      compareTo: 'targetStartSolutionVolume', //比较哪个字段
      copyFrom: 'targetStartSolutionVolume' //复制哪个字段
    },

    {
      label: 'template.sp.sp00456.yjxsytj',
      prop: 'targetDiluentVolume',
      headerSelectKey: 'targetDiluentVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      width: 280,
      showWidth: 120,
      bodyType: 'inputNumber',
      bodyFillType: 'preFill',
      bodySubType: 'inputNumber',
      bodySubKey: 'targetDiluentVolumePrecision',
      bodySubFillType: 'preFill',
      bodyMaxlength: 10,
      bodyPrecisionKey: 'targetDiluentVolumePrecision',
      subPrecision:0,
      bodySubPlaceholder: 'template.common.xswsPlaceholder',
      bodyDisabled: true,
      showBodySub: $this.fillType === 'preFill',
      headerSelectTo:"actDiluentVolumeUnit",
    },
    {
      label: 'template.sp.sp00456.sjxsytj',
      prop: 'actDiluentVolume',
      headerSelectKey: 'actDiluentVolumeUnit',
      fillType: 'preFill',
      headerOptions: $this.getDictOptions('business_tjdw'),
      width: 280,
      showWidth: 120,
      bodyType: 'inputNumber',
      bodyFillType: 'actFill',
      bodyMaxlength: 10,
      copyFrom:"targetDiluentVolume",
      compareTo: 'targetDiluentVolume' //比较哪个字段
    }
  ]
}

//阶梯配置
export const getLadderFormConfig = ($this) => {
  return [
    {
      type: 'step',
      config: {
        startSolution: {
          label: 'template.sp.sp00456.qsyry',
          type: 'input',
          fillType: 'preFill',
          subType: 'sj',
          subKey: 'subStartSolution',
          subFillType: 'actFill',
          maxlength: 20
        },
        targetStartSolution: {
          label: 'template.sp.sp00456.ysqsyrynd',
          type: 'inputNumber',
          subType: 'select',
          fillType: 'preFill',
          subOptions: $this.getDictOptions('business_nddw'),
          subKey: 'subTargetStartSolution',
          maxlength: 10
        },
        targetAcSolution: {
          label: 'template.sp.sp00456.sjqsyrynd',
          type: 'input',
          fillType: 'actFill',
          disabled: true,
          maxlength: 10,
          compareTo: 'targetStartSolution', //比较哪个字段
          subKey: "subTargetAcSolutionUnit",
          subType:"input",
          subDisabled:true,
          subCompareTo:"subTargetStartSolution",    
        },
        solution: {
          label: 'template.sp.sp00456.xsy',
          type: 'input',
          fillType: 'preFill',
          subType: 'sj',
          subKey: 'subSolution',
          subFillType: 'actFill',
          maxlength: 20
        },
        stepStorageCondition: {
          label: 'template.sp.sp00456.cctj',
          type: 'select',
          fillType: 'preFill',
          options: $this.getDictOptions('business_cctj'),
          otherCode: 'stepStorageConditionOther'
        },

        effectivePeriod: {
          label: 'template.sp.sp00456.mbryyxzq',
          type: 'input',
          subType: 'select',
          subKey: 'effectivePeriodUnit',
          fillType: 'preFill',
          subOptions: $this.getDictOptions('business_yxqdw')
        },
        expireDate: {
          label: 'template.sp.sp00456.mbrysxr',
          type: 'input'
        }
      }
    }
  ]
}

//试验基本信息
export const getBaseInfoFormConfig = ($this) => {
  return [
    {
      type: 'cardItem',
      config: {
        studyMc: {
          label: 'template.common.testName',
          type: 'input',
          disabled: true
        },
        studySn: {
          label: 'template.common.testNumber',
          type: 'input',
          disabled: true
        },
        methodCode: {
          label: 'template.common.methodCode',
          type: 'input',
          fillType: 'preFill',
          maxlength: 50
        },
        versionNum: {
          label: 'template.common.versionNumber',
          type: 'inputNumber',
          fillType: 'actFill',
          prepend: 'V',
          maxlength: 50
        }
      }
    },
    {
      type: 'conditionItem',
      label: 'template.common.testConfigurationConditions',
      config: {
        pre: {
          label: 'template.common.preFill',
          type: 'select',
          multiple: true,
          fillType: 'preFill',
          options: $this.getDictOptions('business_pztj'),
          otherCode: 'preOther'
        },
        act: {
          label: 'template.common.actualFill',
          type: 'select',
          fillType: 'actFill',
          otherCode: 'actOther',
          multiple: true,
          options: $this.getDictOptions('business_pztj'),
          compareTo: 'pre'
        }
      }
    },
    {
      type: 'conditionItem',
      label: 'template.sp.sp00456.rqcz',
      config: {
        containerMaterial: {
          label: 'template.sp.sp00456.rqcz',
          type: 'select',
          options: $this.getDictOptions('business_rqcz'),
          fillType: 'actFill',
          multiple: true,
          otherCode: 'containerMaterialOther'
        }
      }
    },
    {
      type: 'cellItem',
      label: 'template.common.configurationTime',
      config: {
        startDate: {
          label: 'template.common.startTime',
          type: 'input'
        },
        endDate: {
          label: 'template.common.endTime',
          type: 'input'
        }
      }
    }
  ]
}

//备注config
export const getRemarkFormConfig = () => {
  return [
    {
      type: 'cellItem',
      config: {
        remark: {
          label: '',
          type: 'textarea',
          fillType: 'actFill',
          span: 1,
          placeholder: 'template.common.remarkPlaceholder',
          maxlength: 1000,
          rows: 5
        }
      }
    }
  ]
}

//存储条件
export const getStorageConditionFormConfig = ($this) => {
  return [
    {
      type: 'conditionItem',
      config: {
        storageCondition: {
          label: 'template.sp.sp00456.cctj',
          type: 'select',
          fillType: 'preFill',
          options: $this.getDictOptions('business_cctj'),
          otherCode: 'othersSorageCondition'
        }
      }
    }
  ]
}

//平行步骤配置
export const getParalleStepFormConfig = ($this) => {
  return [
    {
      type: 'step',
      config: {
        solution: {
          label: 'template.sp.sp00456.xsy',
          type: 'input',
          fillType: 'preFill',
          subType: 'sj',
          subKey: 'subSolution',
          subFillType: 'actFill',
          maxlength: 20
        },
        paralleStepStorageCondition: {
          label: 'template.sp.sp00456.cctj',
          type: 'select',
          fillType: 'preFill',
          options: $this.getDictOptions('business_cctj'),
          otherCode: 'paralleStepStorageConditionOther'
        }
      }
    }
  ]
}
