Bläddra i källkod

质检模板功能开发

lucw 6 månader sedan
förälder
incheckning
c558fe82cf

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

@@ -0,0 +1,61 @@
+import request from '@/utils/request';
+
+// 资质列表查询
+export async function getProfessionCertificationPageList(params) {
+  const res = await request.get(`/main/professionCertification/page`, {
+    params
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// /main/qmsreporttemplate/page 报表模板分页查询 get
+export async function getQmsReportTemplatePageList(params) {
+  const res = await request.get(`/main/qmsreporttemplate/page`, {
+    params
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// /main/qmsreporttemplate/delet 报表模板删除 post
+export async function deleteQmsReportTemplate(data) {
+  const res = await request.delete(`/main/qmsreporttemplate/delete`, {
+    data
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// /main/qmsreporttemplate/getById/{id}
+export async function getQmsReportTemplateById(id) {
+  const res = await request.get(`/main/qmsreporttemplate/getById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// /main/qmsreporttemplate/save 报表模板保存 post
+export async function saveQmsReportTemplate(data) {
+  const res = await request.post(`/main/qmsreporttemplate/save`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// /main/qmsreporttemplate/update 报表模板更新 put
+export async function updateQmsReportTemplate(data) {
+  const res = await request.put(`/main/qmsreporttemplate/update`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 178 - 0
src/views/rulesManagement/inspectionReportTemplate/components/edit.vue

@@ -0,0 +1,178 @@
+<template>
+  <ele-modal
+    :title="title"
+    :visible.sync="visible"
+    :close-on-click-modal="false"
+    @close="handleClose"
+    resizable
+    maxable
+  >
+    <div v-loading="loading || saving">
+      <el-form
+        ref="formRef"
+        :model="addForm"
+        :rules="rules"
+        label-width="100px"
+        :disabled="type === 'details'"
+      >
+        <el-form-item label="模板名称" prop="name">
+          <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="请输入模板编码" />
+        </el-form-item>
+        <el-form-item label="是否启用" prop="isEnabled">
+          <el-switch
+            v-model="addForm.isEnabled"
+            :active-value="1"
+            :inactive-value="0"
+          />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input
+            v-model.trim="addForm.remark"
+            type="textarea"
+            :rows="3"
+            placeholder="请输入备注"
+            maxlength="200"
+            show-word-limit
+          />
+        </el-form-item>
+      </el-form>
+    </div>
+
+    <template v-slot:footer>
+      <el-button
+        type="primary"
+        :loading="saving"
+        :disabled="saving"
+        @click="submit"
+        >提 交</el-button
+      >
+      <el-button :disabled="saving" @click="handleClose">取 消</el-button>
+    </template>
+  </ele-modal>
+</template>
+
+<script>
+  import dictMixins from '@/mixins/dictMixins';
+  import {
+    getQmsReportTemplateById,
+    updateQmsReportTemplate,
+    saveQmsReportTemplate
+  } from '@/api/qmsreporttemplate/index';
+
+  export default {
+    mixins: [dictMixins],
+    data() {
+      const formBaseData = {
+        code: '',
+        id: null,
+        isEnabled: 0,
+        name: '',
+        remark: '',
+        type: 0
+      };
+
+      return {
+        visible: false,
+        type: 'add',
+        title: '表单弹窗',
+        formBaseData,
+        addForm: JSON.parse(JSON.stringify(formBaseData)),
+        loading: false,
+        saving: false,
+        rules: {
+          name: [
+            { required: true, message: '请输入模板名称', trigger: 'blur' }
+          ],
+          code: [
+            { required: true, message: '请输入模板编码', trigger: 'blur' },
+            {
+              min: 1,
+              max: 50,
+              message: '长度在 1 到 50 个字符',
+              trigger: 'blur'
+            }
+          ],
+          remark: [
+            { max: 200, message: '备注最多 200 个字符', trigger: 'blur' }
+          ]
+        }
+      };
+    },
+    methods: {
+      // 打开弹窗
+      open(type = 'add', data) {
+        this.type = type;
+        this.visible = true;
+
+        if (type === 'add') {
+          this.title = '新建模板';
+        } else {
+          this.title = '编辑模板';
+          this.getDetail(data.id);
+        }
+      },
+      // 获取详情
+      async getDetail(id) {
+        this.loading = true;
+        try {
+          const data = await getQmsReportTemplateById(id);
+          console.log('data', data);
+          this.addForm = Object.assign({}, this.formBaseData, data || {});
+        } catch (e) {
+          this.$message.error('获取模板详情失败');
+        } finally {
+          this.loading = false;
+        }
+      },
+      resetForm() {
+        this.addForm = JSON.parse(JSON.stringify(this.formBaseData));
+        this.$nextTick(() => {
+          this.$refs.formRef && this.$refs.formRef.clearValidate();
+        });
+      },
+      // 关闭时清理表单
+      handleClose() {
+        this.visible = false;
+        this.resetForm();
+      },
+      // 提交
+      submit() {
+        this.$refs.formRef.validate(async (valid) => {
+          if (!valid) return;
+          this.saving = true;
+          try {
+            const payload = { ...this.addForm };
+            let res;
+            if (this.type === 'add') {
+              res = await saveQmsReportTemplate(payload);
+            } else {
+              res = await updateQmsReportTemplate(payload);
+            }
+            this.$message.success('保存成功');
+            this.$emit('reload');
+            this.handleClose();
+          } catch (e) {
+            this.$message.error(e?.message || '保存失败');
+          } finally {
+            this.saving = false;
+          }
+        });
+      }
+    }
+  };
+</script>
+
+<style scoped lang="scss">
+  :deep(.el-form) {
+    .el-form-item:last-child {
+      margin-bottom: 22px !important;
+    }
+  }
+  :deep(.el-row) {
+    display: flex;
+    flex-wrap: wrap;
+  }
+</style>

+ 56 - 14
src/views/rulesManagement/inspectionReportTemplate/index.vue

@@ -11,18 +11,27 @@
         autoAmendPage
       >
         <template v-slot:toolbar>
-          <el-button type="primary" size="mini" icon="el-icon-plus"
+          <el-button
+            type="primary"
+            size="mini"
+            icon="el-icon-plus"
+            @click="openEdit('add')"
             >新建</el-button
           >
         </template>
         <template v-slot:action="{ row }">
-          <el-link type="primary" :underline="false" icon="el-icon-edit">
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            @click="openEdit('edit', row)"
+          >
             编辑
           </el-link>
           <el-popconfirm
             class="ele-action"
             title="确定要删除此条数据吗?"
-            @confirm=""
+            @confirm="remove(row.id)"
           >
             <template v-slot:reference>
               <el-link type="danger" :underline="false" icon="el-icon-delete">
@@ -33,15 +42,23 @@
         </template>
       </ele-pro-table>
     </el-card>
+
+    <edit ref="editRef" @reload="reload"></edit>
   </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';
 
   export default {
     mixins: [dictMixins, tableColumnsMixin],
+    components: { edit },
     data() {
       return {
         columns: [
@@ -54,32 +71,42 @@
           },
           {
             prop: 'code',
-            label: '领料单编号',
+            label: '模板编码',
+            align: 'center',
+            minWidth: 110,
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: '模板名称',
             align: 'center',
             minWidth: 110,
             showOverflowTooltip: true
           },
           {
-            prop: 'status',
-            label: '状态',
+            prop: 'isEnabled',
+            label: '是否启用',
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 150,
             formatter: (row) => {
-              switch (row.status) {
+              switch (row.isEnabled) {
                 case 0:
-                  return '未领料';
+                  return '禁用';
                 case 1:
-                  return '已领料';
-                case 2:
-                  return '已出库';
-                case 3:
-                  return '部分出库';
+                  return '启用';
                 default:
                   return '';
               }
             }
           },
+          {
+            prop: 'remark',
+            label: '备注',
+            align: 'center',
+            minWidth: 110,
+            showOverflowTooltip: true
+          },
           {
             columnKey: 'action',
             label: '操作',
@@ -102,6 +129,12 @@
             value: 'name',
             type: 'input',
             placeholder: '请输入'
+          },
+          {
+            label: '模板编码:',
+            value: 'code',
+            type: 'input',
+            placeholder: '请输入'
           }
         ];
       }
@@ -122,10 +155,19 @@
           pageNum: page,
           size: limit
         };
-        return [];
+        return getQmsReportTemplatePageList(body);
       },
       search(where) {
         this.reload(where);
+      },
+      remove(id) {
+        deleteQmsReportTemplate([id]).then(() => {
+          this.$message.success('删除成功');
+          this.reload();
+        });
+      },
+      openEdit(type, data) {
+        this.$refs.editRef.open(type, data);
       }
     }
   };

+ 2 - 2
vue.config.js

@@ -43,9 +43,9 @@ module.exports = {
         // target: 'http://192.168.1.251:18186', // 测试环境
         // target: 'http://192.168.1.251:18087',
         // target: 'http://192.168.1.116:18086',
-        // target: 'http://192.168.1.251:18086',
+        target: 'http://192.168.1.251:18086',
         // target: 'http://192.168.1.11:18086', // 开发
-        target: 'http://192.168.1.116:18086', // 赵沙金
+        // target: 'http://192.168.1.116:18086', // 赵沙金
 
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {