cyy 5 сар өмнө
parent
commit
b8eaf60bbd

+ 127 - 28
src/views/component/device/deviceDialog.vue

@@ -120,9 +120,7 @@
                       <template slot="label">
                         <span>设备编号</span>
                         <el-tooltip effect="dark" placement="top">
-                          <div slot="content"
-                            >设备编号由系统自动生成。</div
-                          >
+                          <div slot="content">设备编号由系统自动生成。</div>
                           <i class="el-icon-question question-icon">:</i>
                         </el-tooltip>
                       </template>
@@ -134,9 +132,7 @@
                       <template slot="label">
                         <span class="required"
                           >{{
-                            hideSysDeviceNo
-                              ? '设备编号'
-                              : '原设备编号'
+                            hideSysDeviceNo ? '设备编号' : '原设备编号'
                           }}:</span
                         >
                       </template>
@@ -300,7 +296,12 @@
                     </el-form-item>
                   </el-col>
                   <el-col :span="8">
-                    <el-form-item label="出厂编号:">
+                    <el-form-item label="出厂编号:" prop="jiShenXuHao">
+                      <template slot="label">
+                        <span :class="dynamicRequiredFields ? 'required' : ''"
+                          >出厂编号:</span
+                        >
+                      </template>
                       <el-input
                         v-if="!readonly"
                         v-model="form.jiShenXuHao"
@@ -312,7 +313,12 @@
                 </el-row>
                 <el-row :gutter="20">
                   <el-col :span="8">
-                    <el-form-item label="供应商:">
+                    <el-form-item label="供应商:" prop="shiFouQiJianH">
+                      <template slot="label">
+                        <span :class="dynamicRequiredFields ? 'required' : ''"
+                          >供应商:</span
+                        >
+                      </template>
                       <ibps-custom-dialog
                         v-model="form.shiFouQiJianH"
                         size="mini"
@@ -422,8 +428,10 @@
               <el-tabs v-model="activeName" @tab-click="handleClick">
                 <el-tab-pane label="基本信息" name="one">
                   <el-form
+                    ref="formBase"
                     label-width="100px"
                     :model="form"
+                    :rules="rules"
                     :hide-required-asterisk="true"
                   >
                     <el-row :gutter="20">
@@ -431,7 +439,15 @@
                       <el-col :span="8">
                         <el-row>
                           <el-col>
-                            <el-form-item label="购进日期:">
+                            <el-form-item label="购进日期:" prop="gouJinRiQi">
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >购进日期:</span
+                                >
+                              </template>
                               <el-date-picker
                                 v-if="!readonly"
                                 v-model="form.gouJinRiQi"
@@ -465,7 +481,15 @@
                         </el-row>
                         <el-row>
                           <el-col>
-                            <el-form-item label="验收日期:">
+                            <el-form-item label="验收日期:" prop="yanShouRiQi">
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >验收日期:</span
+                                >
+                              </template>
                               <el-date-picker
                                 v-if="!readonly"
                                 v-model="form.yanShouRiQi"
@@ -482,7 +506,15 @@
                         </el-row>
                         <el-row>
                           <el-col>
-                            <el-form-item label="投入日期:">
+                            <el-form-item label="投入日期:" prop="qiYongRiQi">
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >投入日期:</span
+                                >
+                              </template>
                               <el-date-picker
                                 v-if="!readonly"
                                 v-model="form.qiYongRiQi"
@@ -774,7 +806,16 @@
                             <el-form-item
                               label="检定/校准周期(月):"
                               label-width="140px"
+                              prop="xiaoZhunZQ"
                             >
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >检定/校准周期(月):</span
+                                >
+                              </template>
                               <el-input
                                 v-if="!readonly"
                                 v-model="form.xiaoZhunZQ"
@@ -811,7 +852,16 @@
                             <el-form-item
                               label="最近校准时间:"
                               label-width="140px"
+                              prop="yiXiaoRiQi"
                             >
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >最近校准时间:</span
+                                >
+                              </template>
                               <el-date-picker
                                 v-if="!readonly"
                                 v-model="form.yiXiaoRiQi"
@@ -831,7 +881,16 @@
                             <el-form-item
                               label="检定/校准有效期至:"
                               label-width="140px"
+                              prop="xiaoZhunYouXia"
                             >
+                              <template slot="label">
+                                <span
+                                  :class="
+                                    dynamicRequiredFields ? 'required' : ''
+                                  "
+                                  >检定/校准有效期至:</span
+                                >
+                              </template>
                               <el-date-picker
                                 v-if="!readonly"
                                 v-model="form.xiaoZhunYouXia"
@@ -879,9 +938,7 @@
                             </el-form-item>
                           </el-col>
                         </el-row>
-                        <el-row
-                          v-if="form.shiFouXiaoZhun === '是'"
-                        >
+                        <el-row v-if="form.shiFouXiaoZhun === '是'">
                           <el-col>
                             <el-form-item
                               label="检定/校准参数:"
@@ -898,9 +955,7 @@
                             </el-form-item>
                           </el-col>
                         </el-row>
-                        <el-row
-                          v-if="form.shiFouXiaoZhun === '是'"
-                        >
+                        <el-row v-if="form.shiFouXiaoZhun === '是'">
                           <el-col>
                             <el-form-item
                               label="预期测量范围:"
@@ -917,9 +972,7 @@
                             </el-form-item>
                           </el-col>
                         </el-row>
-                        <el-row
-                          v-if="form.shiFouXiaoZhun === '是'"
-                        >
+                        <el-row v-if="form.shiFouXiaoZhun === '是'">
                           <el-col>
                             <el-form-item
                               label="U/精确度/最大允差:"
@@ -937,9 +990,7 @@
                             </el-form-item>
                           </el-col>
                         </el-row>
-                        <el-row
-                          v-if="form.shiFouXiaoZhun === '是'"
-                        >
+                        <el-row v-if="form.shiFouXiaoZhun === '是'">
                           <el-col>
                             <el-form-item label="修正值:" label-width="140px">
                               <el-input
@@ -1256,6 +1307,7 @@ export default {
       preParams: {},
       Ids: [],
       showzhuCeYouXiaoQi: false,
+      dynamicRequiredFields: false,
       form: {
         gouJinRiQi: '', // 购进日期
         changShang: '', // 厂家/品牌
@@ -1359,11 +1411,43 @@ export default {
         ],
         shiFouXiaoZhun: [
           { required: true, message: '是否校准不能为空', trigger: 'blur' }
+        ],
+        jiShenXuHao: [
+          { required: false, message: '出厂编号不能为空', trigger: 'blur' }
+        ],
+        shiFouQiJianH: [
+          { required: false, message: '供应商不能为空', trigger: 'blur' }
+        ],
+        gouJinRiQi: [
+          { required: false, message: '购进日期不能为空', trigger: 'blur' }
+        ],
+        xiaoZhunZQ: [
+          {
+            required: false,
+            message: '检定/校准周期(月)不能为空',
+            trigger: 'blur'
+          }
+        ],
+        yanShouRiQi: [
+          { required: false, message: '验收日期不能为空', trigger: 'blur' }
+        ],
+        qiYongRiQi: [
+          { required: false, message: '投入日期不能为空', trigger: 'blur' }
+        ],
+        yiXiaoRiQi: [
+          { required: false, message: '最近校准日期不能为空', trigger: 'blur' }
+        ],
+        xiaoZhunYouXia: [
+          {
+            required: false,
+            message: '检定校准有效期至不能为空',
+            trigger: 'blur'
+          }
         ]
         // chuChangRiQi: [
         //   { required: true, message: '出厂日期不能为空', trigger: 'blur' }
         // ]
-      },
+      }
     }
   },
   computed: {
@@ -1389,6 +1473,20 @@ export default {
         this.form.buMen = val.map((item) => item.id).join(',')
       }
     },
+    dynamicRequiredFields: {
+      handler(val) {
+        this.rules.jiShenXuHao[0].required = val
+        this.rules.shiFouQiJianH[0].required = val
+        this.rules.gouJinRiQi[0].required = val
+        this.rules.xiaoZhunZQ[0].required = val
+        this.rules.yanShouRiQi[0].required = val
+        this.rules.qiYongRiQi[0].required = val
+        this.rules.yiXiaoRiQi[0].required = val
+        this.rules.xiaoZhunYouXia[0].required = val
+
+        this.$refs.form.clearValidate()
+      }
+    },
     'form.xiaoZhunWuCha': {
       handler(val, old) {
         if (!old) return
@@ -1523,9 +1621,7 @@ export default {
       if (data[0].num > 0) {
         throw new Error(
           `系统当前已经存在此${
-            this.hideSysDeviceNo
-              ? '设备编号'
-              : '原设备编号'
+            this.hideSysDeviceNo ? '设备编号' : '原设备编号'
           },请更换另一个编号!`
         )
       }
@@ -1580,7 +1676,8 @@ export default {
     },
     goSave(flag) {
       this.$refs.form.validate(async (valid) => {
-        if (valid) {
+        this.$refs.formBase.validate(async (validBase) => {
+        if (valid&&validBase) {
           try {
             // 维护项目
             this.form.maintenanceItemPoList =
@@ -1605,6 +1702,7 @@ export default {
           return this.$message.warning('请填写必填项!')
         }
       })
+    })
     },
     // 刷新
     async goRefresh() {},
@@ -1636,6 +1734,7 @@ export default {
       this.loading = true
       const deviceres = await getSetting('device')
       this.showzhuCeYouXiaoQi = deviceres?.showzhuCeYouXiaoQi || false
+      this.dynamicRequiredFields = deviceres?.requiredField || false
       if (this.hideSysDeviceNo) {
         this.rules.yuanSheBeiBian[0].message = '设备编号不能为空'
       }