Преглед изворни кода

零部件DVP-申请变更 弹框显示调整

weibowen пре 4 месеци
родитељ
комит
286b9a96eb

+ 31 - 21
src/views/componentsDVP/dvpPlan/edit.vue

@@ -177,7 +177,8 @@
                </a-tooltip>
              </a>
               <!-- 申请变更 -->
-               <a class='operation-btn' @click="applyChange(record)" v-if="applyButtonFlag" :disabled="isLook">
+<!--              v-if="applyButtonFlag"-->
+               <a class='operation-btn' @click="applyChange(record)" :disabled="isLook">
                 <a-tooltip :title="$t('global-btn.apply-for-changes')">
                   <i class="iconfont  iconprocess_branch"></i>
                 </a-tooltip>
@@ -1101,10 +1102,24 @@ export default {
     applyChange(record) {
       // 行数据 赋值
       let rowData = [
-        // 是否开展实验
+        // 试验项目
         {
-          changeContent: this.$t("base.info.whether-to-develop-experimental-projects"),
-          currentDesc: this.isOrNotMap[record.isCarryOut] || "-",
+          changeContent: this.$t("plan.dvp.test-project"),
+          currentDesc: record.testProject,
+          changeDesc: undefined,
+          changeReason: undefined
+        },
+        // 目标要求
+        {
+          changeContent: this.$t("base.info.development-objective-requirements"),
+          currentDesc: record.targetRequire,
+          changeDesc: undefined,
+          changeReason: undefined
+        },
+        // 试验标准
+        {
+          changeContent: this.$t("base.info.Test-standards"),
+          currentDesc: record.testStandard,
           changeDesc: undefined,
           changeReason: undefined
         },
@@ -1122,32 +1137,25 @@ export default {
           changeDesc: undefined,
           changeReason: undefined
         },
-        // 试验项目
-        {
-          changeContent: this.$t("plan.dvp.test-project"),
-          currentDesc: record.testProject,
-          changeDesc: undefined,
-          changeReason: undefined
-        },
-        // 目标要求
+        // 是否开展实验
         {
-          changeContent: this.$t("base.info.development-objective-requirements"),
-          currentDesc: record.targetRequire,
-          changeDesc: undefined,
+          changeContent: this.$t("base.info.whether-to-develop-experimental-projects"),
+          currentDesc: this.isOrNotMap[record.isCarryOut] || "-",
+          changeDesc: record.isCarryOut,
           changeReason: undefined
         },
-        // 试验标准
+        // 是否等效
         {
-          changeContent: this.$t("base.info.Test-standards"),
-          currentDesc: record.testStandard,
-          changeDesc: undefined,
+          changeContent: this.$t("plan.dvp.is-it-an-equivalent-test"),
+          currentDesc: this.isOrNotMap[record.isEquivalent] || '-',
+          changeDesc: record.isEquivalent,
           changeReason: undefined
         },
         // 等效报告编号
         {
           changeContent: this.$t("plan.dvp.equivalent-experiment-report-number"),
           currentDesc: record.equivalentTestCode,
-          changeDesc: undefined,
+          changeDesc: record.equivalentTestCode || undefined,
           changeReason: undefined
         },
         // 试验地点
@@ -1175,7 +1183,7 @@ export default {
         {
           changeContent: this.$t("plan.dvp.scheduled-end-time"),
           currentDesc: record.planEndTime,
-          changeDesc: undefined,
+          changeDesc: record.planEndTime,
           changeReason: undefined
         },
         // 测试阶段
@@ -1221,6 +1229,8 @@ export default {
       this.$refs.applyChange.initTableData(this.applyTableData);
       this.$refs.applyChange.testId = record.testId;
       this.$refs.applyChange.dvpType = this.dvpType;
+      this.$refs.applyChange.notCarryOutDisabled = record.isCarryOut === 0;
+      this.$refs.applyChange.isEquivalentDisabled = record.isEquivalent === 1;
       this.$refs.applyChange.dataSource = record.dataSource; // 数据来源 0-新建1-模板2-FMEA3-历史DVP
 
       // 开启弹窗

+ 242 - 61
src/views/componentsDVP/dvpPlan/editModal/applyForChange.vue

@@ -23,46 +23,179 @@
         >
           <!-- 零部件DVP 变更后描述-->
           <template slot='changeDesc' slot-scope='text, record, index'>
+            <!--试验项目-->
+            <a-input
+              v-if="index === 0"
+              v-model.trim="record.changeDesc"
+              :disabled="dataSource && dataSource !== '0'"
+              :maxLength='100'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-project')"/>
+            <!--开发目标要求-->
+            <a-input
+              v-else-if="index === 1"
+              v-model.trim="record.changeDesc"
+              :disabled="dataSource && dataSource !== '0'"
+              :maxLength='100'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('base.info.development-objective-requirements')"/>
+            <!--试验标准-->
+            <a-input
+              v-else-if="index === 2"
+              v-model.trim="record.changeDesc"
+              :disabled="dataSource && dataSource !== '0'"
+              :maxLength='500'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('base.info.Test-standards')"/>
+            <!--试验类型-->
+            <a-select
+              v-else-if="index === 3"
+              v-model="record.changeDesc"
+              :options="testTypeList"
+              :filter-option="handleFilterDataList"
+              allowClear
+              :placeholder="$t('plan.dvp.please_select-test-type')"
+              style="width: 100%">
+            </a-select>
+            <!--试验来源-->
+            <a-select
+              v-else-if="index === 4"
+              v-model="record.changeDesc"
+              :options="testSourceList"
+              :filter-option="handleFilterDataList"
+              allowClear
+              :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-source')"
+              style="width: 100%">
+            </a-select>
             <!-- 是否开展试验 -->
-            <a-select v-if="index === 0" v-model="record.changeDesc" style="width: 100%" @change="handleCarryOut" allowClear :placeholder="$t('base.info.please-enter-whether-to-develop-experimental-projects')">
+            <a-select
+              v-else-if="index === 5"
+              v-model="record.changeDesc"
+              style="width: 100%"
+              @change="handleCarryOut"
+              allowClear
+              :placeholder="$t('base.info.please-enter-whether-to-develop-experimental-projects')">
               <a-select-option :value="1">{{ $t('global-btn.yes') }}</a-select-option>
               <a-select-option :value="0">{{ $t('global-btn.no') }}</a-select-option>
             </a-select>
-            <!--试验类型-->
-            <a-select v-else-if="index === 1" v-model="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :options="testTypeList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('plan.dvp.please_select-test-type')" style="width: 100%"></a-select>
-            <!--试验来源-->
-            <a-select v-else-if="index === 2" v-model="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :options="testSourceList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-source')" style="width: 100%"></a-select>
-            <!--试验项目-->
-            <a-input v-else-if="index === 3" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='100' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-project')"/>
-            <!--开发目标要求-->
-            <a-input v-else-if="index === 4" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='100' allowClear :placeholder="$t('global-btn.please-enter') + $t('base.info.development-objective-requirements')"/>
-            <!--试验标准-->
-            <a-input v-else-if="index === 5" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='500' allowClear :placeholder="$t('global-btn.please-enter') + $t('base.info.Test-standards')"/>
+            <!--是否等效-->
+            <a-select
+              v-else-if="index === 6"
+              :disabled="notCarryOutDisabled"
+              v-model="record.changeDesc"
+              style="width: 100%"
+              @change="handleEquivalent"
+              allowClear
+              :placeholder="$t('global-btn.please-select') + $t('plan.dvp.is-it-an-equivalent-test')">
+              <a-select-option :value="1">{{ $t('plan.dvp.equivalent-experiment') }}</a-select-option>
+              <a-select-option :value="0">{{ $t('plan.dvp.non-equivalent-experiment') }}</a-select-option>
+            </a-select>
             <!--等效实验报告编号-->
-            <a-select v-else-if="index === 6" v-model="record.changeDesc" :options="equivalentList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('global-btn.please-select') + $t('plan.dvp.equivalent-experiment-report-number')" style="width: 100%"></a-select>
+            <a-select
+              v-else-if="index === 7"
+              :disabled="notCarryOutDisabled || !isEquivalentDisabled"
+              v-model="record.changeDesc"
+              :options="equivalentList"
+              :filter-option="handleFilterDataList"
+              allowClear
+              :placeholder="$t('global-btn.please-select') + $t('plan.dvp.equivalent-experiment-report-number')"
+              style="width: 100%">
+            </a-select>
             <!--测试地点-->
-            <a-input v-else-if="index === 7" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-site')"/>
+            <a-input
+              v-else-if="index === 8"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model.trim="record.changeDesc"
+              :maxLength='50'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-site')"/>
             <!--测试负责人 -->
-            <a-select v-if="index === 8" v-model="record.changeDesc" :options="testOwnerList"  allowClear style="width: 100%" :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-user')" ></a-select>
+            <a-select
+              v-if="index === 9"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model="record.changeDesc"
+              :options="testOwnerList"
+              allowClear style="width: 100%"
+              :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-user')" >
+            </a-select>
             <!--计划开始时间 -->
-            <a-date-picker v-else-if="index === 9" :disabled-date="disabledStartDate" @change='handleStartTime' v-model="record.changeDesc" :placeholder="$t('plan.dvp.please_select-scheduled-start-time')" style="width: 100%" valueFormat="YYYY/MM/DD"/>
+            <a-date-picker
+              v-else-if="index === 10"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              :disabled-date="disabledStartDate"
+              @change='handleStartTime'
+              v-model="record.changeDesc"
+              :placeholder="$t('plan.dvp.please_select-scheduled-start-time')"
+              style="width: 100%"
+              valueFormat="YYYY/MM/DD"/>
             <!--计划结束时间 -->
-            <a-date-picker v-else-if="index === 10" :disabled-date="disabledEndDate" @change='handleEndTime' v-model="record.changeDesc" :placeholder="$t('plan.dvp.please_select-scheduled-end-time')" style="width: 100%" valueFormat="YYYY/MM/DD"/>
+            <a-date-picker
+              v-else-if="index === 11"
+              :disabled="(dataSource && dataSource !== '0') || isEquivalentDisabled"
+              :disabled-date="disabledEndDate"
+              @change='handleEndTime'
+              v-model="record.changeDesc"
+              :placeholder="$t('plan.dvp.please_select-scheduled-end-time')"
+              style="width: 100%"
+              valueFormat="YYYY/MM/DD"/>
             <!--测试阶段-->
-            <a-input v-else-if="index === 11" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-step')"/>
+            <a-input
+              v-else-if="index === 12"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model.trim="record.changeDesc"
+              :maxLength='50'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-step')"/>
             <!--测试次数-->
-            <a-input-number v-else-if="index === 12" v-model.number="record.changeDesc" :defaultValue="0" :min="1" :max="999" :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-count')" style="width: 100%"></a-input-number>
+            <a-input-number
+              v-else-if="index === 13"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model.number="record.changeDesc"
+              :defaultValue="0"
+              :min="1"
+              :max="999"
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-count')"
+              style="width: 100%">
+            </a-input-number>
             <!--样件类型-->
-            <a-input v-else-if="index === 13" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.sample-type')"/>
+            <a-input
+              v-else-if="index === 14"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model.trim="record.changeDesc"
+              :maxLength='50'
+              allowClear
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.sample-type')"/>
             <!--样本数量-->
-            <a-input-number v-else-if="index === 14" v-model.number="record.changeDesc" :defaultValue="0" :min="1" :max="999" :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.number-of-samples')" style="width: 100%"></a-input-number>
+            <a-input-number
+              v-else-if="index === 15"
+              :disabled="notCarryOutDisabled || isEquivalentDisabled"
+              v-model.number="record.changeDesc"
+              :defaultValue="0"
+              :min="1"
+              :max="999"
+              :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.number-of-samples')"
+              style="width: 100%">
+            </a-input-number>
             <!-- 不开展试验原因 -->
-            <a-textarea v-else-if="index === 15" autoSize v-model.trim="record.changeDesc" :disabled="causeShowFlag" :maxLength="500" :placeholder="$t('base.info.please-enter-change-reason')"></a-textarea>
+            <a-textarea
+              v-else-if="index === 16"
+              autoSize
+              v-model.trim="record.changeDesc"
+              :disabled="causeShowFlag || !notCarryOutDisabled"
+              :maxLength="500"
+              :placeholder="$t('base.info.please-enter-reason-for-not-conducting-the-experiment')">
+            </a-textarea>
           </template>
 
           <!-- 变更原因 -->
           <template slot='changeReason' slot-scope='text, record, index'>
-            <a-textarea autoSize v-model.trim="record.changeReason" :disabled="index < 5 && dataSource && dataSource !== '0'" :maxLength="500" :placeholder="$t('base.info.please-enter-change-reason')"></a-textarea>
+            <a-textarea
+              autoSize
+              v-model.trim="record.changeReason"
+              :disabled="index < 3 && dataSource && dataSource !== '0'"
+              :maxLength="500"
+              :placeholder="$t('base.info.please-enter-change-reason')">
+            </a-textarea>
           </template>
 
           <!-- 操作列 -->
@@ -279,7 +412,11 @@ export default {
       /** 等效实验报告编号下拉选项 */
       equivalentList: [],
       /**数据来源 0-新建1-模板2-FMEA3-历史DVP */
-      dataSource: undefined
+      dataSource: undefined,
+      /** 不开展试验 插槽disabled */
+      notCarryOutDisabled: false,
+      /** 等效试验 插槽disabled */
+      isEquivalentDisabled: false
     };
   },
   watch: {
@@ -483,11 +620,51 @@ export default {
      */
     buildData() {
       let _that = this;
+      let message = [];
       for (let i = 0; i < _that.tableDataLength; i++) {
         if (_that.tableData[i].changeDesc && !_that.tableData[i].changeReason) {
           _that.tableData[i].changeReason = "";
         }
       }
+      // 是否开展实验
+      if (_that.tableData[5].changeDesc === undefined) {
+        message.push(_that.$t('base.info.please-enter-whether-to-develop-experimental-projects'));
+      }
+      // 选择了不开展试验,校验不开展原因
+      if (_that.tableData[5].changeDesc === 0) {
+        if (!_that.tableData[16].changeDesc) {
+          message.push(_that.$t('base.info.please-enter-reason-for-not-conducting-the-experiment'));
+        }
+      }
+      // 选择了等效试验,校验等效实验报告不能为空
+      if (_that.tableData[6].changeDesc === 1) {
+        if (!_that.tableData[7].changeDesc) {
+          message.push(_that.$t('global-btn.please-select') + _that.$t('plan.dvp.equivalent-experiment-report-number'));
+        }
+      }
+      if (message && message.length > 0) {
+        for (let i = 0; i < message.length; i++) {
+          _that.$notification.warning({message: message[i]});
+        }
+        return false;
+      }
+      return true;
+    },
+
+    /**
+     * 等效/非等效
+     * @param e
+     */
+    handleEquivalent(e) {
+      this.tableData[6].changeDesc = e;
+      // 0: 非等效, 1: 等效
+      if (e === 0) {
+        this.isEquivalentDisabled = false;
+        this.tableData[7].changeDesc = undefined;
+        this.tableData[7].changeReason = undefined;
+      } else {
+        this.isEquivalentDisabled = true;
+      }
     },
 
     /**
@@ -496,43 +673,46 @@ export default {
      */
     save() {
       let _that = this;
-      _that.buildData();
+      // 非空校验
+      if (!_that.buildData()) {
+        return false;
+      }
       // 请求参数整理
       let data = {
         dvpId: _that.$store.getters.dvpId,
         testId: _that.testId,
-        isCarryOut: _that.tableData[0].changeDesc,
-        isCarryOutCause: _that.tableData[0].changeReason,
-        testType: _that.tableData[1].changeDesc,
-        testTypeCause: _that.tableData[1].changeReason,
-        testSource: _that.tableData[2].changeDesc,
-        testSourceCause: _that.tableData[2].changeReason,
-        equivalentId: _that.tableData[6].changeDesc,
-        equivalentIdCause: _that.tableData[6].changeReason,
-        testProject: _that.tableData[3].changeDesc,
-        testProjectCause: _that.tableData[3].changeReason,
-        targetRequire: _that.tableData[4].changeDesc,
-        targetRequireCause: _that.tableData[4].changeReason,
-        testStandard: _that.tableData[5].changeDesc,
-        testStandardCause: _that.tableData[5].changeReason,
-        testSite: _that.tableData[7].changeDesc,
-        testSiteCause: _that.tableData[7].changeReason,
-        testUserId: _that.tableData[8].changeDesc,
-        testUserIdCause: _that.tableData[8].changeReason,
-        testStep: _that.tableData[11].changeDesc,
-        testStepCause: _that.tableData[11].changeReason,
-        testFrequency: _that.tableData[12].changeDesc,
-        testFrequencyCause: _that.tableData[12].changeReason,
-        sampleNumber: _that.tableData[14].changeDesc,
-        sampleNumberCause: _that.tableData[14].changeReason,
-        sampleType: _that.tableData[13].changeDesc,
-        sampleTypeCause: _that.tableData[13].changeReason,
-        planStartTime: _that.tableData[9].changeDesc,
-        planStartTimeCause: _that.tableData[9].changeReason,
-        planEndTime: _that.tableData[10].changeDesc,
-        planEndTimeCause: _that.tableData[10].changeReason,
-        notCarryOutCause: _that.tableData[15].changeDesc,
-        notCarryOutCauseChange: _that.tableData[15].changeReason
+        isCarryOut: _that.tableData[5].changeDesc,
+        isCarryOutCause: _that.tableData[5].changeReason,
+        testType: _that.tableData[3].changeDesc,
+        testTypeCause: _that.tableData[3].changeReason,
+        testSource: _that.tableData[4].changeDesc,
+        testSourceCause: _that.tableData[4].changeReason,
+        equivalentId: _that.tableData[7].changeDesc,
+        equivalentIdCause: _that.tableData[7].changeReason,
+        testProject: _that.tableData[0].changeDesc,
+        testProjectCause: _that.tableData[0].changeReason,
+        targetRequire: _that.tableData[1].changeDesc,
+        targetRequireCause: _that.tableData[1].changeReason,
+        testStandard: _that.tableData[2].changeDesc,
+        testStandardCause: _that.tableData[2].changeReason,
+        testSite: _that.tableData[8].changeDesc,
+        testSiteCause: _that.tableData[8].changeReason,
+        testUserId: _that.tableData[9].changeDesc,
+        testUserIdCause: _that.tableData[9].changeReason,
+        testStep: _that.tableData[12].changeDesc,
+        testStepCause: _that.tableData[12].changeReason,
+        testFrequency: _that.tableData[13].changeDesc,
+        testFrequencyCause: _that.tableData[13].changeReason,
+        sampleNumber: _that.tableData[15].changeDesc,
+        sampleNumberCause: _that.tableData[15].changeReason,
+        sampleType: _that.tableData[14].changeDesc,
+        sampleTypeCause: _that.tableData[14].changeReason,
+        planStartTime: _that.tableData[10].changeDesc,
+        planStartTimeCause: _that.tableData[10].changeReason,
+        planEndTime: _that.tableData[11].changeDesc,
+        planEndTimeCause: _that.tableData[11].changeReason,
+        notCarryOutCause: _that.tableData[16].changeDesc,
+        notCarryOutCauseChange: _that.tableData[16].changeReason
       };
       // 打开审批弹框
       _that.submitApprovalTitle = _that.$t('global-btn.apply-for-changes') + _that.$t("global-btn.submit-approval");
@@ -551,14 +731,15 @@ export default {
      * @param val
      */
     handleCarryOut(val){
-      this.tableData[0].changeDesc = val;
+      this.tableData[5].changeDesc = val;
       // 当是否展开试验选择“否”时,其他输入和选择都置灰
       if (val === 0) {
         this.causeShowFlag = false;
+        this.notCarryOutDisabled = true;
       } else {
         this.causeShowFlag = true;
+        this.notCarryOutDisabled = false;
       }
-      this.$forceUpdate();
     },
 
     /**
@@ -594,9 +775,9 @@ export default {
       }
       this.tableData[8].changeDesc = dateString;
       // 当选择的开始时间大于结束时间时,清空结束时间,让用户重新选择结束时间
-      if (Date.parse(this.tableData[8].changeDesc) > Date.parse(this.tableData[9].changeDesc)) {
-        this.tableData[9].changeDesc = undefined;
-      }
+      // if (Date.parse(this.tableData[8].changeDesc) > Date.parse(this.tableData[9].changeDesc)) {
+      //   this.tableData[9].changeDesc = undefined;
+      // }
     },
     /**
      * 计划结束时间 时间选择器Change方法