Forráskód Böngészése

feat(规则管理): 新增实验模板相关功能,支持模板变更和发布流程

yusheng 5 hónapja
szülő
commit
daab0a5615

+ 8 - 0
src/api/qmsreporttemplate/index.js

@@ -59,3 +59,11 @@ export async function updateQmsReportTemplate(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+// /main/qmsreporttemplate/update 报表模板变更 put
+export async function changeQmsReportTemplate(data) {
+  const res = await request.put(`/main/qmsreporttemplate/change`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 4 - 1
src/enum/dict.js

@@ -83,7 +83,10 @@ export default {
   业务类型: 'business_type',
   行业类别: 'industry_type',
   记录表模板样式: 'record_template_style',
-  放行类型: 'checklist_type'
+  放行类型: 'checklist_type',
+  实验报工类型: 'experiment_rules_report_work_type',
+  实验规则类型: 'experiment_sheet',
+  实验模板样式: 'experiment_template_style'
 };
 
 export const numberList = [

+ 6 - 2
src/views/rulesManagement/inspectionReportTemplate/components/edit.vue

@@ -74,7 +74,7 @@
   import {
     getQmsReportTemplateById,
     updateQmsReportTemplate,
-    saveQmsReportTemplate
+    saveQmsReportTemplate,changeQmsReportTemplate
   } from '@/api/qmsreporttemplate/index';
 
   export default {
@@ -101,6 +101,7 @@
         loading: false,
         saving: false,
         template: '',
+        isChange:false,
         rules: {
           name: [
             { required: true, message: '请输入模板名称', trigger: 'blur' }
@@ -122,9 +123,10 @@
     },
     methods: {
       // 打开弹窗
-      open(type = 'add', data) {
+      open(type = 'add', data,isChange) {
         this.type = type;
         this.visible = true;
+        this.isChange=isChange
 
         if (type === 'add') {
           this.title = '新建模板';
@@ -172,6 +174,8 @@
             let res;
             if (this.type === 'add') {
               res = await saveQmsReportTemplate(payload);
+            } else if(this.isChange){
+              res = await changeQmsReportTemplate(payload);
             } else {
               res = await updateQmsReportTemplate(payload);
             }

+ 65 - 7
src/views/rulesManagement/inspectionReportTemplate/index.vue

@@ -25,17 +25,28 @@
             :underline="false"
             icon="el-icon-edit"
             @click="openEdit('edit', row)"
+            v-if="row.isUpdate != 1 && [0, 3].includes(row.approvalStatus)"
           >
             编辑
           </el-link>
-          <!-- <el-link
+          <el-link
             type="primary"
             :underline="false"
             icon="el-icon-edit"
-            @click="openEdit('edit', row)"
+            @click="approvalSubmit(row)"
+            v-if="row.isUpdate != 1 && [0, 3].includes(row.approvalStatus)"
+          >
+            发布
+          </el-link>
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            @click="openEdit('edit', row, true)"
+            v-if="row.isUpdate != 1 && [2].includes(row.approvalStatus)"
           >
-            发布模板
-          </el-link> -->
+            变更
+          </el-link>
           <el-link
             type="primary"
             :underline="false"
@@ -48,6 +59,7 @@
             class="ele-action"
             title="确定要删除此条数据吗?"
             @confirm="remove(row.id)"
+            v-if="row.isUpdate != 1 && [0, 3].includes(row.approvalStatus)"
           >
             <template v-slot:reference>
               <el-link type="danger" :underline="false" icon="el-icon-delete">
@@ -61,6 +73,12 @@
 
     <edit ref="editRef" @reload="reload"></edit>
     <preview ref="previewRef" @reload="reload"></preview>
+    <processSubmitDialog
+      :processSubmitDialogFlag.sync="processSubmitDialogFlag"
+      v-if="processSubmitDialogFlag"
+      ref="processSubmitDialogRef"
+      @reload="search"
+    ></processSubmitDialog>
   </div>
 </template>
 
@@ -73,10 +91,11 @@
   } from '@/api/qmsreporttemplate/index';
   import edit from './components/edit.vue';
   import preview from './components/preview.vue';
+  import processSubmitDialog from '@/components/processSubmitDialog/processSubmitDialog.vue';
 
   export default {
     mixins: [dictMixins, tableColumnsMixin],
-    components: { edit, preview },
+    components: { edit, preview, processSubmitDialog },
     data() {
       return {
         columns: [
@@ -118,6 +137,14 @@
               }
             }
           },
+          {
+            label: '版本号',
+            prop: 'version',
+            align: 'center',
+            formatter: (row) => {
+              return `${row.versionSymbol}${row.bigVersion}${row.versionMark}${row.smallVersion}`;
+            }
+          },
           {
             prop: 'remark',
             label: '备注',
@@ -125,6 +152,20 @@
             minWidth: 110,
             showOverflowTooltip: true
           },
+          {
+            label: '状态',
+            prop: 'approvalStatus',
+            formatter: (row) => {
+              return row.approvalStatus == 0
+                ? '待发布'
+                : row.approvalStatus == 1
+                ? '审批中'
+                : row.approvalStatus == 2
+                ? '已发布'
+                : '审核不通过';
+            },
+            align: 'center'
+          },
           {
             columnKey: 'action',
             label: '操作',
@@ -136,6 +177,7 @@
             showOverflowTooltip: true
           }
         ],
+        processSubmitDialogFlag: false,
         cacheKeyUrl: 'mes-259231040-material-table'
       };
     },
@@ -184,11 +226,27 @@
           this.reload();
         });
       },
-      openEdit(type, data) {
-        this.$refs.editRef.open(type, data);
+      openEdit(type, data, isChange) {
+        this.$refs.editRef.open(type, data, isChange);
       },
       preview(row) {
         this.$refs.previewRef.open('edit', row);
+      },
+      async approvalSubmit(res) {
+        this.processSubmitDialogFlag = true;
+        this.$nextTick(() => {
+          let params = {
+            businessId: res.id,
+            businessKey: 'qms_quality_report_template_release',
+            formCreateUserId: res.createUserId,
+            variables: {
+              businessCode: res.code,
+              businessName: res.name,
+              businessType: '模板变更'
+            }
+          };
+          this.$refs.processSubmitDialogRef.init(params);
+        });
       }
     }
   };

+ 4 - 4
src/views/rulesManagement/releaseRules/components/editTypeModal.vue

@@ -30,7 +30,7 @@
       <el-form-item label="模块划分" prop="reportWorkType">
         <dict-selection
           v-model="form.reportWorkType"
-          dictName="记录规则报工类型"
+          :dictName="businessType==3?'实验报工类型':'记录规则报工类型'"
           placeholder="请选择模块划分"
           @itemChange="(data) => (form.reportWorkName = data.dictValue)"
         />
@@ -38,7 +38,7 @@
       <el-form-item label="应用场景" prop="sceneType">
         <dict-selection
           v-model="form.sceneType"
-          dictName="记录规则类型"
+          :dictName="businessType==3?'实验规则类型':'记录规则类型'"
           placeholder="请选择应用场景"
           @itemChange="(data) => (form.sceneName = data.dictValue)"
         />
@@ -47,7 +47,7 @@
       <el-form-item label="模板样式" prop="templateStyleType">
         <dict-selection
           v-model="form.templateStyleType"
-          dictName="记录表模板样式"
+          :dictName="businessType==3?'实验模板样式':'记录表模板样式'"
           placeholder="请选择模板样式"
           @itemChange="(data) => (form.templateStyleName = data.dictValue)"
         />
@@ -141,7 +141,7 @@
         if (type == 'add') {
           if (this.businessType) {
             this.form.businessType = this.businessType + '';
-            this.form.businessName = this.businessType == '1' ? '生产' : '质检';
+            this.form.businessName = this.businessType == '1' ? '生产' :this.businessType == '2' ? '质检':'实验';
           }
           this.title = '新增类型';
           if (data) {

+ 16 - 30
src/views/rulesManagement/releaseRules/components/permitAdd.vue

@@ -137,7 +137,7 @@
             label="启用日期"
             prop="startDate"
             :rules="
-              !qmsReportWorkType.includes(formData.reportWorkType)
+              businessType != 3
                 ? [
                     {
                       required: true,
@@ -173,7 +173,7 @@
             label="停用日期"
             prop="stopDate"
             :rules="
-              !qmsReportWorkType.includes(formData.reportWorkType)
+              businessType != 3
                 ? [
                     {
                       required: true,
@@ -261,7 +261,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-row v-if="!qmsReportWorkType.includes(formData.reportWorkType)">
+      <el-row v-if="businessType != 3">
         <el-col :span="24">
           <el-form-item label="周期" prop="frequencyValue" required>
             <rule-cycle
@@ -274,17 +274,10 @@
         </el-col>
       </el-row>
 
-      <header-title
-        title="规则明细"
-        v-if="!qmsReportWorkType.includes(formData.reportWorkType)"
-      >
-      </header-title>
+      <header-title title="规则明细" v-if="businessType != 3"> </header-title>
 
       <el-tabs
-        v-if="
-          formData.recordTemplateStyle == '4' &&
-          !qmsReportWorkType.includes(formData.reportWorkType)
-        "
+        v-if="formData.recordTemplateStyle == '4' && businessType != 3"
         v-model="statisticsType"
         type="card"
       >
@@ -298,7 +291,7 @@
       </el-tabs>
 
       <ele-pro-table
-        v-if="!qmsReportWorkType.includes(formData.reportWorkType)"
+        v-if="businessType != 3"
         ref="table"
         :columns="bankColumns"
         :datasource="detialsDatasource"
@@ -584,22 +577,19 @@
 
       <header-title
         :title="
-          formData.reportWorkType == 5
+          formData.reportWorkType == 1
             ? '实验过程'
-            : formData.reportWorkType == 6
-            ? '工艺要求'
-            : formData.reportWorkType == 7
+            : formData.reportWorkType == 2
             ? '实验记录'
             : ''
         "
-        v-if="qmsReportWorkType.includes(formData.reportWorkType)"
+        v-if="businessType == 3"
       >
       </header-title>
       <experimentationProcess
         :edit="type != 'detail'"
         :readonly="type == 'detail'"
-
-        v-if="qmsReportWorkType.includes(formData.reportWorkType)"
+        v-if="businessType == 3"
         ref="experimentationProcess"
       ></experimentationProcess>
     </el-form>
@@ -704,7 +694,7 @@
         type: Object,
         default: () => null
       },
-      businessType:''
+      businessType: ''
     },
     computed: {
       bankColumns() {
@@ -1039,7 +1029,6 @@
       };
 
       return {
-        qmsReportWorkType: ['5', '6', '7'],
         dialogTitle: '',
         visible: false,
         formDateBase,
@@ -1277,7 +1266,7 @@
             this.$refs.cycleMultipleRef?.setRecordRulesCycleList(
               this.formData.recordRulesCycleList
             );
-            if (this.qmsReportWorkType.includes(this.formData.reportWorkType)) {
+            if (this.businessType == 3) {
               this.$refs.experimentationProcess.init(data.tempJson.tempJson);
             }
           });
@@ -1378,10 +1367,7 @@
           if (!valid) {
             return false;
           }
-          if (
-            this.formData.details.length == 0 &&
-            !this.qmsReportWorkType.includes(this.formData.reportWorkType)
-          ) {
+          if (this.formData.details.length == 0 && this.businessType != 3) {
             return this.$message.warning('至少选择一条规则项');
           }
 
@@ -1424,7 +1410,7 @@
           if (!valid) {
             return false;
           }
-          if (!this.qmsReportWorkType.includes(this.formData.reportWorkType)) {
+          if (this.businessType != 3) {
             if (this.formData.details.length == 0) {
               return this.$message.warning('至少选择一条规则项');
             }
@@ -1638,7 +1624,7 @@
           body.stopDate,
           'yyyy-MM-dd HH:mm:ss'
         );
-        if (this.qmsReportWorkType.includes(body.reportWorkType)) {
+        if (this.businessType == 3) {
           let tempJson = this.$refs.experimentationProcess.getValue();
           if (tempJson) {
             body.tempJson = {
@@ -1862,7 +1848,7 @@
       // 过程控制修改 保存
       processEditSave() {
         // 只验证详情内容
-        if (!this.qmsReportWorkType.includes(this.formData.reportWorkType)) {
+        if (this.businessType != 3) {
           if (this.formData.details.length == 0) {
             return this.$message.warning('至少选择一条规则项');
           }

+ 15 - 8
src/views/rulesManagement/releaseRules/index.vue

@@ -190,9 +190,9 @@
       :businessType="
         $route.path == '/releaseRules/productionReleaseRules'
           ? 1
-          : '/releaseRules/qualityReleaseRules'
+          : $route.path == '/releaseRules/qualityReleaseRules'
           ? 2
-          : ''
+          : 3
       "
     />
     <historyModal ref="historyModalRef" />
@@ -202,9 +202,9 @@
       :businessType="
         $route.path == '/releaseRules/productionReleaseRules'
           ? 1
-          : '/releaseRules/qualityReleaseRules'
+          : $route.path == '/releaseRules/qualityReleaseRules'
           ? 2
-          : ''
+          : 3
       "
     ></editTypeModal>
   </div>
@@ -502,7 +502,11 @@
           ...where,
           ...typeWhere,
           businessType:
-            this.$route.path == '/releaseRules/productionReleaseRules' ? 1 : 2
+            this.$route.path == '/releaseRules/productionReleaseRules'
+              ? 1
+              : this.$route.path == '/releaseRules/qualityReleaseRules'
+              ? 2
+              : 3
         });
       },
       /* 刷新表格 */
@@ -592,7 +596,11 @@
           pageNum: 1,
           size: 99999,
           businessType:
-            this.$route.path == '/releaseRules/productionReleaseRules' ? 1 : 2
+            this.$route.path == '/releaseRules/productionReleaseRules'
+              ? 1
+              : this.$route.path == '/releaseRules/qualityReleaseRules'
+              ? 2
+              : 3
         });
 
         console.log('type list', list);
@@ -771,8 +779,7 @@
     //   display: flex;
     // }
   }
-  :deep(.el-tree-node__children){
+  :deep(.el-tree-node__children) {
     overflow: inherit;
-   
   }
 </style>

+ 1 - 1
src/views/system/dictionary/components/dict-edit.vue

@@ -159,7 +159,7 @@
       <el-table-column align="center" label="操作">
         <template slot-scope="scope">
           <el-popconfirm
-            v-if="!isUpdate || (!scope.row.id && isUpdate)"
+          
             class="ele-action"
             title="确定要删除此字典项吗?"
             @confirm="removeArr(scope)"