Przeglądaj źródła

重构检验报告模板管理,拆分列表组件并支持证书模板类型

yusheng 3 miesięcy temu
rodzic
commit
85dfe021f7

+ 20 - 0
src/views/rulesManagement/inspectionReportTemplate/certificateIndex.vue

@@ -0,0 +1,20 @@
+<template>
+  <div>
+    <list :type="1"></list>
+  </div>
+</template>
+
+<script>
+  import list from './components/list.vue';
+
+  export default {
+    components: { list },
+    data() {
+      return {};
+    },
+
+    methods: {}
+  };
+</script>
+
+<style></style>

+ 23 - 11
src/views/rulesManagement/inspectionReportTemplate/components/edit.vue

@@ -19,14 +19,19 @@
           <el-input v-model.trim="addForm.name" placeholder="请输入模板名称" />
         </el-form-item>
         <el-form-item label="模板编码" prop="code">
-          <el-input v-model.trim="addForm.code" placeholder="请输入模板编码" :disabled="type !== 'add'" />
+          <el-input
+            v-model.trim="addForm.code"
+            placeholder="请输入模板编码"
+            :disabled="type !== 'add'"
+          />
         </el-form-item>
         <el-form-item label="模板" prop="template">
           <el-input
             type="textarea"
             :rows="2"
             placeholder="请输入模板"
-            v-model="addForm.template">
+            v-model="addForm.template"
+          >
           </el-input>
         </el-form-item>
         <el-form-item label="是否默认" prop="isDefault">
@@ -75,11 +80,18 @@
   import {
     getQmsReportTemplateById,
     updateQmsReportTemplate,
-    saveQmsReportTemplate,changeQmsReportTemplate
+    saveQmsReportTemplate,
+    changeQmsReportTemplate
   } from '@/api/qmsreporttemplate/index';
 
   export default {
     mixins: [dictMixins],
+    props: {
+      templateType: {
+        type: String,
+        default: ''
+      }
+    },
     data() {
       const formBaseData = {
         code: '',
@@ -88,8 +100,8 @@
         name: '',
         remark: '',
         type: 0,
-        isDefault: 0,  // 是否启用(1:默认;0:否)
-        valueJson: {},  // 模板内容
+        isDefault: 0, // 是否启用(1:默认;0:否)
+        valueJson: {}, // 模板内容
         template: ''
       };
 
@@ -102,7 +114,7 @@
         loading: false,
         saving: false,
         template: '',
-        isChange:false,
+        isChange: false,
         rules: {
           name: [
             { required: true, message: '请输入模板名称', trigger: 'blur' }
@@ -124,10 +136,10 @@
     },
     methods: {
       // 打开弹窗
-      open(type = 'add', data,isChange) {
+      open(type = 'add', data, isChange) {
         this.type = type;
         this.visible = true;
-        this.isChange=isChange
+        this.isChange = isChange;
 
         if (type === 'add') {
           this.title = '新建模板';
@@ -167,15 +179,15 @@
           if (!valid) return;
           this.saving = true;
           try {
-            const payload = { ...this.addForm };
+            const payload = { ...this.addForm, type: this.templateType};
             payload.valueJson = {
               template: this.addForm.template
-            }
+            };
             console.log('payload', payload);
             let res;
             if (this.type === 'add') {
               res = await saveQmsReportTemplate(payload);
-            } else if(this.isChange){
+            } else if (this.isChange) {
               res = await changeQmsReportTemplate(payload);
             } else {
               res = await updateQmsReportTemplate(payload);

+ 271 - 0
src/views/rulesManagement/inspectionReportTemplate/components/list.vue

@@ -0,0 +1,271 @@
+<template>
+  <div class="ele-body">
+    <el-card shadow="never">
+      <seek-page :seekList="seekList" @search="search"></seek-page>
+      <ele-pro-table
+        ref="table"
+        row-key="id"
+        :columns="columns"
+        :datasource="datasource"
+        :cache-key="cacheKeyUrl"
+        autoAmendPage
+      >
+        <template v-slot:toolbar>
+          <el-button
+            type="primary"
+            size="mini"
+            icon="el-icon-plus"
+            @click="openEdit('add')"
+            >新建</el-button
+          >
+        </template>
+        <template v-slot:code="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            @click="preview(row, 'view')"
+            >{{ row.code }}</el-link
+          >
+        </template>
+        <template v-slot:action="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            @click="openEdit('edit', row)"
+            v-if="row.isUpdate != 1 && [0, 3].includes(row.approvalStatus)"
+          >
+            编辑
+          </el-link>
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            @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
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            @click="preview(row)"
+          >
+            预览
+          </el-link>
+          <el-popconfirm
+            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">
+                删除
+              </el-link>
+            </template>
+          </el-popconfirm>
+        </template>
+      </ele-pro-table>
+    </el-card>
+
+    <edit ref="editRef" @reload="reload" :template="type"></edit>
+    <preview ref="previewRef" @reload="reload"></preview>
+    <processSubmitDialog
+      :processSubmitDialogFlag.sync="processSubmitDialogFlag"
+      v-if="processSubmitDialogFlag"
+      ref="processSubmitDialogRef"
+      @reload="search"
+    ></processSubmitDialog>
+  </div>
+</template>
+
+<script>
+  import dictMixins from '@/mixins/dictMixins';
+  import tableColumnsMixin from '@/mixins/tableColumnsMixin';
+  import {
+    getQmsReportTemplatePageList,
+    deleteQmsReportTemplate
+  } from '@/api/qmsreporttemplate/index';
+  import edit from './edit.vue';
+  import preview from './preview.vue';
+  import processSubmitDialog from '@/components/processSubmitDialog/processSubmitDialog.vue';
+
+  export default {
+    mixins: [dictMixins, tableColumnsMixin],
+    components: { edit, preview, processSubmitDialog },
+    props: {
+      type: {
+        type: String,
+        default: ''
+      }
+    },
+    data() {
+      return {
+        columns: [
+          {
+            width: 50,
+            type: 'index',
+            columnKey: 'index',
+            align: 'center',
+            label: '序号'
+          },
+          {
+            prop: 'code',
+            label: '模板编码',
+            align: 'center',
+            slot: 'code',
+            minWidth: 110,
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: '模板名称',
+            align: 'center',
+            minWidth: 110,
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'isEnabled',
+            label: '是否启用',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 150,
+            formatter: (row) => {
+              switch (row.isEnabled) {
+                case 0:
+                  return '禁用';
+                case 1:
+                  return '启用';
+                default:
+                  return '';
+              }
+            }
+          },
+          {
+            label: '版本号',
+            prop: 'version',
+            align: 'center',
+            formatter: (row) => {
+              return `${row.versionSymbol}${row.bigVersion}${row.versionMark}${row.smallVersion}`;
+            }
+          },
+          {
+            prop: 'remark',
+            label: '备注',
+            align: 'center',
+            minWidth: 110,
+            showOverflowTooltip: true
+          },
+          {
+            label: '状态',
+            prop: 'approvalStatus',
+            formatter: (row) => {
+              return row.approvalStatus == 0
+                ? '待发布'
+                : row.approvalStatus == 1
+                ? '审批中'
+                : row.approvalStatus == 2
+                ? '已发布'
+                : '审核不通过';
+            },
+            align: 'center'
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 280,
+            align: 'center',
+            resizable: false,
+            fixed: 'right',
+            slot: 'action',
+            showOverflowTooltip: true
+          }
+        ],
+        processSubmitDialogFlag: false,
+        cacheKeyUrl: 'mes-259231040-material-table'
+      };
+    },
+    computed: {
+      seekList() {
+        return [
+          {
+            label: '模板名称:',
+            value: 'name',
+            type: 'input',
+            placeholder: '请输入'
+          },
+          {
+            label: '模板编码:',
+            value: 'code',
+            type: 'input',
+            placeholder: '请输入'
+          }
+        ];
+      }
+    },
+    methods: {
+      // 刷新表格
+      reload(where = {}) {
+        this.$refs.table.reload({
+          where
+        });
+      },
+      /* 表格数据源 */
+      datasource({ page, limit, where, order }) {
+        // 参数
+        const body = {
+          ...where,
+          ...order,
+          pageNum: page,
+          size: limit,
+          type: this.type
+        };
+        return getQmsReportTemplatePageList(body);
+      },
+      search(where) {
+        this.reload(where);
+      },
+      remove(id) {
+        deleteQmsReportTemplate([id]).then(() => {
+          this.$message.success('删除成功');
+          this.reload();
+        });
+      },
+      openEdit(type, data, isChange) {
+        this.$refs.editRef.open(type, data, isChange);
+      },
+      preview(row, type) {
+        this.$refs.previewRef.open(type, 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);
+        });
+      }
+    }
+  };
+</script>
+
+<style></style>

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

@@ -1,263 +1,19 @@
 <template>
-  <div class="ele-body">
-    <el-card shadow="never">
-      <seek-page :seekList="seekList" @search="search"></seek-page>
-      <ele-pro-table
-        ref="table"
-        row-key="id"
-        :columns="columns"
-        :datasource="datasource"
-        :cache-key="cacheKeyUrl"
-        autoAmendPage
-      >
-        <template v-slot:toolbar>
-          <el-button
-            type="primary"
-            size="mini"
-            icon="el-icon-plus"
-            @click="openEdit('add')"
-            >新建</el-button
-          >
-        </template>
-        <template v-slot:code="{ row }">
-          <el-link
-            type="primary"
-            :underline="false"
-            @click="preview(row, 'view')"
-            >{{ row.code }}</el-link
-          >
-        </template>
-        <template v-slot:action="{ row }">
-          <el-link
-            type="primary"
-            :underline="false"
-            icon="el-icon-edit"
-            @click="openEdit('edit', row)"
-            v-if="row.isUpdate != 1 && [0, 3].includes(row.approvalStatus)"
-          >
-            编辑
-          </el-link>
-          <el-link
-            type="primary"
-            :underline="false"
-            icon="el-icon-edit"
-            @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
-            type="primary"
-            :underline="false"
-            icon="el-icon-edit"
-            @click="preview(row)"
-          >
-            预览
-          </el-link>
-          <el-popconfirm
-            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">
-                删除
-              </el-link>
-            </template>
-          </el-popconfirm>
-        </template>
-      </ele-pro-table>
-    </el-card>
-
-    <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>
+    <list :type="0"></list>
   </div>
 </template>
 
 <script>
-  import dictMixins from '@/mixins/dictMixins';
-  import tableColumnsMixin from '@/mixins/tableColumnsMixin';
-  import {
-    getQmsReportTemplatePageList,
-    deleteQmsReportTemplate
-  } from '@/api/qmsreporttemplate/index';
-  import edit from './components/edit.vue';
-  import preview from './components/preview.vue';
-  import processSubmitDialog from '@/components/processSubmitDialog/processSubmitDialog.vue';
+  import list from './components/list.vue';
 
   export default {
-    mixins: [dictMixins, tableColumnsMixin],
-    components: { edit, preview, processSubmitDialog },
+    components: { list },
     data() {
-      return {
-        columns: [
-          {
-            width: 50,
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-            label: '序号'
-          },
-          {
-            prop: 'code',
-            label: '模板编码',
-            align: 'center',
-            slot: 'code',
-            minWidth: 110,
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'name',
-            label: '模板名称',
-            align: 'center',
-            minWidth: 110,
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'isEnabled',
-            label: '是否启用',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 150,
-            formatter: (row) => {
-              switch (row.isEnabled) {
-                case 0:
-                  return '禁用';
-                case 1:
-                  return '启用';
-                default:
-                  return '';
-              }
-            }
-          },
-          {
-            label: '版本号',
-            prop: 'version',
-            align: 'center',
-            formatter: (row) => {
-              return `${row.versionSymbol}${row.bigVersion}${row.versionMark}${row.smallVersion}`;
-            }
-          },
-          {
-            prop: 'remark',
-            label: '备注',
-            align: 'center',
-            minWidth: 110,
-            showOverflowTooltip: true
-          },
-          {
-            label: '状态',
-            prop: 'approvalStatus',
-            formatter: (row) => {
-              return row.approvalStatus == 0
-                ? '待发布'
-                : row.approvalStatus == 1
-                ? '审批中'
-                : row.approvalStatus == 2
-                ? '已发布'
-                : '审核不通过';
-            },
-            align: 'center'
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 280,
-            align: 'center',
-            resizable: false,
-            fixed: 'right',
-            slot: 'action',
-            showOverflowTooltip: true
-          }
-        ],
-        processSubmitDialogFlag: false,
-        cacheKeyUrl: 'mes-259231040-material-table'
-      };
-    },
-    computed: {
-      seekList() {
-        return [
-          {
-            label: '模板名称:',
-            value: 'name',
-            type: 'input',
-            placeholder: '请输入'
-          },
-          {
-            label: '模板编码:',
-            value: 'code',
-            type: 'input',
-            placeholder: '请输入'
-          }
-        ];
-      }
+      return {};
     },
-    methods: {
-      // 刷新表格
-      reload(where = {}) {
-        this.$refs.table.reload({
-          where
-        });
-      },
-      /* 表格数据源 */
-      datasource({ page, limit, where, order }) {
-        // 参数
-        const body = {
-          ...where,
-          ...order,
-          pageNum: page,
-          size: limit
-        };
-        return getQmsReportTemplatePageList(body);
-      },
-      search(where) {
-        this.reload(where);
-      },
-      remove(id) {
-        deleteQmsReportTemplate([id]).then(() => {
-          this.$message.success('删除成功');
-          this.reload();
-        });
-      },
-      openEdit(type, data, isChange) {
-        this.$refs.editRef.open(type, data, isChange);
-      },
-      preview(row,type) {
-        this.$refs.previewRef.open(type, 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);
-        });
-      }
-    }
+
+    methods: {}
   };
 </script>