lucw 8 mēneši atpakaļ
vecāks
revīzija
647ab50686

+ 18 - 1
src/components/selectReleaseRules/search.vue

@@ -11,7 +11,8 @@
     mixins: [dictMixins],
     mixins: [dictMixins],
     data() {
     data() {
       return {
       return {
-        typeList: []
+        typeList: [],
+        reportWorkTypeList: []
       };
       };
     },
     },
     computed: {
     computed: {
@@ -36,6 +37,13 @@
             type: 'select',
             type: 'select',
             placeholder: '记录规则分类',
             placeholder: '记录规则分类',
             planList: this.typeList
             planList: this.typeList
+          },
+          {
+            label: '模块分类',
+            value: 'reportWorkType',
+            type: 'select',
+            placeholder: '模块分类',
+            planList: this.reportWorkTypeList
           }
           }
           //,
           //,
           // {
           // {
@@ -70,6 +78,15 @@
           });
           });
         }
         }
       });
       });
+      this.requestDict('记录规则报工类型').then(() => {
+        if (this.$store.state.dict['record_rules_report_work_type']) {
+          this.reportWorkTypeList = this.$store.state.dict[
+            'record_rules_report_work_type'
+          ].map((i) => {
+            return { label: i.dictValue, value: i.dictCode };
+          });
+        }
+      });
     },
     },
     methods: {
     methods: {
       /* 搜索 */
       /* 搜索 */

+ 10 - 0
src/components/selectReleaseRules/select-release-rules.vue

@@ -93,6 +93,16 @@
               return this.getDictValue('记录规则类型', row.classify);
               return this.getDictValue('记录规则类型', row.classify);
             }
             }
           },
           },
+          {
+            prop: 'reportWorkType',
+            label: '模块分类',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110,
+            formatter: (row) => {
+              return this.getDictValue('记录规则报工类型', row.reportWorkType);
+            }
+          },
           {
           {
             prop: 'version',
             prop: 'version',
             label: '版本号',
             label: '版本号',

+ 93 - 39
src/views/batchRecord/components/editModal.vue

@@ -32,9 +32,6 @@
               </DictSelection>
               </DictSelection>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
-          <el-col :span="8"> </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="8">
           <el-col :span="8">
             <el-form-item label="执行方式" required prop="executeMethod">
             <el-form-item label="执行方式" required prop="executeMethod">
               <DictSelection
               <DictSelection
@@ -46,6 +43,8 @@
               </DictSelection>
               </DictSelection>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="8">
           <el-col :span="8">
             <el-form-item
             <el-form-item
               v-if="form.itemType == '1'"
               v-if="form.itemType == '1'"
@@ -92,6 +91,16 @@
               </div>
               </div>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
+          <el-col v-if="form.itemType == '2'" :span="8">
+            <el-form-item label="记录规则分类">
+              <DictSelection
+                dictName="记录规则类型"
+                v-model="form.recordRulesClassify"
+                disabled
+              >
+              </DictSelection>
+            </el-form-item>
+          </el-col>
           <el-col v-if="form.itemType == '1'" :span="8">
           <el-col v-if="form.itemType == '1'" :span="8">
             <el-form-item label="关联事项规则" required prop="ruleName">
             <el-form-item label="关联事项规则" required prop="ruleName">
               <div class="mask-box" @click="selectRulesId">
               <div class="mask-box" @click="selectRulesId">
@@ -163,7 +172,11 @@
         </el-row>
         </el-row>
         <el-row style="margin-bottom: 20px">
         <el-row style="margin-bottom: 20px">
           <el-col :span="8">
           <el-col :span="8">
-            <el-form-item label="产品编码" required prop="productCode">
+            <el-form-item
+              label="产品编码"
+              :required="form.recordRulesClassify != '4'"
+              :prop="form.recordRulesClassify != '4' ? 'productCode' : ''"
+            >
               <el-input
               <el-input
                 v-model="form.productCode"
                 v-model="form.productCode"
                 placeholder="请选择产品信息"
                 placeholder="请选择产品信息"
@@ -177,7 +190,11 @@
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="8">
           <el-col :span="8">
-            <el-form-item label="产品名称" required prop="productName">
+            <el-form-item
+              label="产品名称"
+              :required="form.recordRulesClassify != '4'"
+              :prop="form.recordRulesClassify != '4' ? 'productName' : ''"
+            >
               <el-input
               <el-input
                 v-model="form.productName"
                 v-model="form.productName"
                 placeholder="请选择产品信息"
                 placeholder="请选择产品信息"
@@ -220,7 +237,10 @@
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="8">
           <el-col :span="8">
-            <el-form-item label="要求生产数量" required prop="formingNum">
+            <el-form-item
+              label="要求生产数量"
+              :prop="form.recordRulesClassify != '4' ? 'formingNum' : ''"
+            >
               <el-input
               <el-input
                 v-model.number="form.formingNum"
                 v-model.number="form.formingNum"
                 placeholder="请输入"
                 placeholder="请输入"
@@ -524,7 +544,7 @@
         // 产品名称
         // 产品名称
         productName: null,
         productName: null,
         // 记录规则分类,字典项:record_sheet
         // 记录规则分类,字典项:record_sheet
-        recordRulesClassify: null,
+        recordRulesClassify: '',
         // 产品批次号
         // 产品批次号
         batchNo: '',
         batchNo: '',
         // 牌号
         // 牌号
@@ -539,20 +559,23 @@
         details: []
         details: []
       };
       };
 
 
-      var validatepProduceTaskId = (rule, value, callback) => {
-        if (this.form.workOrderCode) {
-          if (!this.form.produceTaskId) {
-            callback(new Error('请选择工序'));
-          }
-        }
-        callback();
-      };
-
       return {
       return {
         visible: false,
         visible: false,
         title: '',
         title: '',
         formBaseData,
         formBaseData,
         form: JSON.parse(JSON.stringify(formBaseData)),
         form: JSON.parse(JSON.stringify(formBaseData)),
+        // 生产工单列表
+        workOrderList: [],
+        //工序名称列表
+        produceTaskList: [],
+        // 工单信息
+        workOrderInfo: null,
+        butLoading: false,
+        showReleaseRulesDialog: false,
+        dialogTitle: '',
+        showSelectUser: false,
+        currentRow: null,
+        type: '',
         rules: {
         rules: {
           itemType: [
           itemType: [
             { required: true, message: '请选择规则事项类型', trigger: 'blur' }
             { required: true, message: '请选择规则事项类型', trigger: 'blur' }
@@ -561,36 +584,59 @@
             { required: true, message: '请选择设备', trigger: 'blur' }
             { required: true, message: '请选择设备', trigger: 'blur' }
           ],
           ],
           ruleName: [
           ruleName: [
-            { required: true, message: '请选择规则', trigger: 'blur' }
+            { required: true, message: '请选择规则', trigger: 'blur' },
+            { required: true, message: '请选择规则', trigger: 'change' }
           ],
           ],
           productCode: [
           productCode: [
-            { required: true, message: '请输入产品编码', trigger: 'blur' },
-            { required: true, message: '请输入产品编码', trigger: 'change' }
+            {
+              required: true,
+              message: '请输入产品编码',
+              trigger: 'blur'
+            },
+            {
+              required: true,
+              message: '请输入产品编码',
+              trigger: 'change'
+            }
           ],
           ],
           productName: [
           productName: [
-            { required: true, message: '请输入产品名称', trigger: 'blur' },
-            { required: true, message: '请输入产品编码', trigger: 'change' }
+            {
+              required: true,
+              message: '请输入产品名称',
+              trigger: 'blur'
+            },
+            {
+              required: true,
+              message: '请输入产品编码',
+              trigger: 'change'
+            }
           ],
           ],
           formingNum: [
           formingNum: [
-            { required: true, message: '请输入要求生产数量', trigger: 'blur' },
-            { required: true, message: '请输入产品编码', trigger: 'change' }
+            {
+              required: true,
+              message: '请输入要求生产数量',
+              trigger: 'blur'
+            },
+            {
+              required: true,
+              message: '请输入产品编码',
+              trigger: 'change'
+            }
           ],
           ],
           produceTaskId: [
           produceTaskId: [
-            { validator: validatepProduceTaskId, trigger: 'blur' }
+            {
+              validator: (rule, value, callback) => {
+                if (this.form.workOrderCode) {
+                  if (!this.form.produceTaskId) {
+                    callback(new Error('请选择工序'));
+                  }
+                }
+                callback();
+              },
+              trigger: 'blur'
+            }
           ]
           ]
-        },
-        // 生产工单列表
-        workOrderList: [],
-        //工序名称列表
-        produceTaskList: [],
-        // 工单信息
-        workOrderInfo: null,
-        butLoading: false,
-        showReleaseRulesDialog: false,
-        dialogTitle: '',
-        showSelectUser: false,
-        currentRow: null,
-        type: ''
+        }
       };
       };
     },
     },
     computed: {
     computed: {
@@ -672,10 +718,10 @@
       },
       },
       // 关闭时清理表单
       // 关闭时清理表单
       handleClose() {
       handleClose() {
-        this.visible = false;
         this.form = JSON.parse(JSON.stringify(this.formBaseData));
         this.form = JSON.parse(JSON.stringify(this.formBaseData));
         this.produceTaskList = [];
         this.produceTaskList = [];
         this.$refs.formRef && this.$refs.formRef.resetFields();
         this.$refs.formRef && this.$refs.formRef.resetFields();
+        this.visible = false;
       },
       },
       // 修改规则事项类型
       // 修改规则事项类型
       itemTypeChange() {
       itemTypeChange() {
@@ -703,8 +749,16 @@
         console.log('rules', rules);
         console.log('rules', rules);
         this.form.ruleId = rules?.id;
         this.form.ruleId = rules?.id;
         this.form.ruleName = rules?.name;
         this.form.ruleName = rules?.name;
-        this.form.recordRulesClassify = rules?.classify;
+        this.form.recordRulesClassify = rules?.classify + '';
         this.getRulesDetias();
         this.getRulesDetias();
+        // 重置表单验证
+        this.$nextTick(() => {
+          this.$refs.formRef.clearValidate([
+            'productCode',
+            'productName',
+            'formingNum'
+          ]);
+        });
       },
       },
       // 去选择事项规则
       // 去选择事项规则
       selectRulesId() {
       selectRulesId() {

+ 20 - 14
src/views/produce/components/prenatalExamination/releaseRulesDialog.vue

@@ -205,7 +205,10 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
 
 
-      <el-table-column label="检查工具">
+      <el-table-column
+        v-if="addForm.recordRulesClassify != '4'"
+        label="检查工具"
+      >
         <template slot-scope="{ row }">
         <template slot-scope="{ row }">
           <el-link :underline="false" style="cursor: pointer">
           <el-link :underline="false" style="cursor: pointer">
             <div class="ele-cell">
             <div class="ele-cell">
@@ -223,7 +226,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
 
 
-      <el-table-column label="检查人">
+      <el-table-column v-if="addForm.recordRulesClassify != '4'" label="检查人">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <div>
           <div>
             <el-select
             <el-select
@@ -244,7 +247,10 @@
           </div>
           </div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="检查情况">
+      <el-table-column
+        v-if="addForm.recordRulesClassify != '4'"
+        label="检查情况"
+      >
         <template slot-scope="scope">
         <template slot-scope="scope">
           <div>
           <div>
             <el-radio-group v-model="scope.row.checkStatus">
             <el-radio-group v-model="scope.row.checkStatus">
@@ -270,7 +276,10 @@
           </div>
           </div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="检查结果">
+      <el-table-column
+        v-if="addForm.recordRulesClassify != '4'"
+        label="检查结果"
+      >
         <template slot-scope="scope">
         <template slot-scope="scope">
           <div>
           <div>
             <el-radio-group v-model="scope.row.checkResult">
             <el-radio-group v-model="scope.row.checkResult">
@@ -707,18 +716,15 @@
             return;
             return;
           }
           }
 
 
-          // 报工需要验证 缓存不验证
-          if (type == 'submit') {
+          // 报工需要验证 缓存不验证 排除 recordRulesClassify ==4 物料添加 的情况
+          if (type == 'submit' && this.addForm.recordRulesClassify != '4') {
             // 验证检查项目
             // 验证检查项目
             const detailRequired = this.addForm.details.some((i) => {
             const detailRequired = this.addForm.details.some((i) => {
-              let qk = false;
-              if (this.ruleInfo.classify == 3) {
-                qk = Boolean(i.checkStatusDesc);
-              } else {
-                qk = i.checkStatus != null;
-              }
-
-              return i.checkResult == null || !qk || i.checkUsers?.length == 0;
+              return (
+                i.checkResult == null ||
+                !i.checkStatus ||
+                i.checkUsers?.length == 0
+              );
             });
             });
 
 
             if (detailRequired) {
             if (detailRequired) {