浏览代码

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dengfei

695593266@qq.com 5 月之前
父节点
当前提交
0085232e82

+ 3 - 0
src/components/addDoc/main.vue

@@ -17,6 +17,7 @@
       tool-class="ele-toolbar-form"
       :needPage="false"
       row-key="id"
+      :cache-key="cacheKeyUrl"
     >
       <template v-slot:toolbar v-if="type != 'view'">
         <el-button type="primary" @click="fileEditOpen">本地上传</el-button>
@@ -98,6 +99,8 @@
         showEditFlag: false,
         tableList: [],
         type: 'add',
+        cacheKeyUrl: 'main-addDoc',
+        tabMixinsInit: false,
         columns: [
           {
             label: '编码',

+ 24 - 0
src/components/common/seekPage.vue

@@ -62,6 +62,18 @@
               >
               </el-date-picker>
             </div>
+            <div v-if="item.type == 'DictSelection'">
+              <dict-selection
+                v-model="defaultWhere[item.value]"
+                :placeholder="item.placeholder || '请选择内容'"
+                :multiple="item.multiple ? item.multiple : false"
+                :style="{
+                  width: item.width ? item.width + 'px' : '220px'
+                }"
+                :dictName="item.dictName"
+              >
+              </dict-selection>
+            </div>
           </div>
         </el-form-item>
       </el-form-item>
@@ -157,6 +169,18 @@
                         >
                         </el-date-picker>
                       </div>
+                      <div v-if="item.type == 'DictSelection'">
+                        <dict-selection
+                          v-model="defaultWhere[item.value]"
+                          :placeholder="item.placeholder || '请选择内容'"
+                          :multiple="item.multiple ? item.multiple : false"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                          :dictName="item.dictName"
+                        >
+                        </dict-selection>
+                      </div>
                     </el-form-item>
                   </el-form-item>
                 </el-form>

+ 5 - 2
src/mixins/tableColumnsMixin.js

@@ -3,12 +3,15 @@ import request from '@/utils/request';
 export default {
   data() {
     return {
-      newColumns: []
+      newColumns: [],
+      tabMixinsInit: true //进入页面是否默认请求列配置
     };
   },
   created() {
     //从服务器获取缓存列表配置
-    this.getTabColumns();
+    if (this.tabMixinsInit) {
+      this.getTabColumns();
+    }
     // 创建防抖函数并绑定this
     this.debouncedHandleColumnChange = this.debounce(
       this.handleColumnChangeImpl,

+ 6 - 6
src/public-path.js

@@ -1,11 +1,11 @@
 (function () {
   if (window.__POWERED_BY_QIANKUN__) {
-    if (process.env.NODE_ENV === 'development') {
-      // eslint-disable-next-line
-      __webpack_public_path__ = `//localhost:${process.env.VUE_APP_PORT}/`;
-      console.log('__webpack_public_path__', __webpack_public_path__);
-      return;
-    }
+    // if (process.env.NODE_ENV === 'development') {
+    //   // eslint-disable-next-line
+    //   __webpack_public_path__ = `//localhost:${process.env.VUE_APP_PORT}/`;
+    //   console.log('__webpack_public_path__', __webpack_public_path__);
+    //   return;
+    // }
     // eslint-disable-next-line
     __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
     // __webpack_public_path__ = `${process.env.BASE_URL}/`

+ 37 - 37
src/router/index.js

@@ -48,43 +48,43 @@ router.beforeEach((to, from, next) => {
       store
         .dispatch('user/fetchUserInfo')
         .then(({ menus, homePath, authoritiesRouter }) => {
-          menus.forEach((item) => {
-            //匹配第一层路由名称
-            if (item.name == '配置管理') {
-              item.children.push(
-                {
-                  path: '/bpm/definition',
-                  component: 'bpm/definition',
-                  name: '流程定义',
-                  meta: {
-                    title: '流程定义',
-                    hide: true,
-                    routePath: '/bpm/definition'
-                  }
-                },
-                {
-                  path: '/bpm/modelEditor',
-                  component: 'bpm/model/modelEditor',
-                  name: '设计流程',
-                  meta: {
-                    title: '设计流程',
-                    hide: true,
-                    routePath: '/bpm/modelEditor'
-                  }
-                },
-                {
-                  path: '/bpm/processInstance',
-                  component: 'bpm/processInstance/detail',
-                  name: '流程详情',
-                  meta: {
-                    title: '流程详情',
-                    hide: true,
-                    routePath: '/bpm/processInstance'
-                  }
-                }
-              );
-            }
-          });
+          // menus.forEach((item) => {
+          //   //匹配第一层路由名称
+          //   if (item.name == '配置管理') {
+          //     item.children.push(
+          //       {
+          //         path: '/bpm/definition',
+          //         component: 'bpm/definition',
+          //         name: '流程定义',
+          //         meta: {
+          //           title: '流程定义',
+          //           hide: true,
+          //           routePath: '/bpm/definition'
+          //         }
+          //       },
+          //       {
+          //         path: '/bpm/modelEditor',
+          //         component: 'bpm/model/modelEditor',
+          //         name: '设计流程',
+          //         meta: {
+          //           title: '设计流程',
+          //           hide: true,
+          //           routePath: '/bpm/modelEditor'
+          //         }
+          //       },
+          //       {
+          //         path: '/bpm/processInstance',
+          //         component: 'bpm/processInstance/detail',
+          //         name: '流程详情',
+          //         meta: {
+          //           title: '流程详情',
+          //           hide: true,
+          //           routePath: '/bpm/processInstance'
+          //         }
+          //       }
+          //     );
+          //   }
+          // });
           if (menus) {
             router.addRoute(
               getMenuRoutes([...menus, ...authoritiesRouter], homePath)

+ 3 - 2
src/utils/page-tab-util.js

@@ -244,10 +244,11 @@ export function logout(route, from) {
   if (route) {
     router.push({
       path: '/login',
-      query: from ? { from } : void 0
+      // query: from ? { from } : void 0
     });
   } else {
     // 这样跳转避免再次登录重复注册动态路由
-    location.replace(BASE_URL + 'login' + (from ? '?from=' + from : ''));
+    location.replace(window.location.origin + '/login');
+
   }
 }

+ 22 - 22
src/utils/request.js

@@ -92,28 +92,28 @@ service.interceptors.response.use(
     //   }
     // }
     // 登录过期处理
-    // if (error?.response?.status === 401) {
-    //   const currentPath = router.currentRoute.path;
-    //   if (currentPath === LAYOUT_PATH) {
-    //     logout(true);
-    //   } else {
-    //     MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
-    //       confirmButtonText: '重新登录',
-    //       callback: (action) => {
-    //         if (action === 'confirm') {
-    //           logout(false, currentPath);
-    //         }
-    //       },
-    //       beforeClose: () => {
-    //         MessageBox.close();
-    //       }
-    //     });
-    //   }
-    //   return Promise.reject(new Error(error.response.data?.message));
-    // } else if (!error?.response?.status) {
-    //   Message.error('服务调用失败,请联系管理员!');
-    // }
-    // return Promise.reject(error);
+    if (error?.response?.status === 401) {
+      const currentPath = router.currentRoute.path;
+      // if (currentPath === LAYOUT_PATH) {
+      //   logout(true);
+      // } else {
+        MessageBox.alert('登录状态已过期, 请退出重新登录!', '系统提示', {
+          confirmButtonText: '重新登录',
+          callback: (action) => {
+            if (action === 'confirm') {
+              logout(false, currentPath);
+            }
+          },
+          beforeClose: () => {
+            MessageBox.close();
+          }
+        });
+      // }
+      return Promise.reject(new Error(error.response.data?.message));
+    } else if (!error?.response?.status) {
+      Message.error('服务调用失败,请联系管理员!');
+    }
+    return Promise.reject(error);
   }
 );
 

+ 79 - 22
src/views/documentManagement/certificateManagement/components/add-dialog.vue

@@ -103,8 +103,29 @@
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <el-form-item prop="date" label="有效期至">
-            <el-date-picker
+          <el-form-item prop="validityStartTime" label="有效期至">
+            <div style="display: flex">
+              <el-date-picker
+                style="flex: 1"
+                v-model="form.validityStartTime"
+                type="date"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                placeholder="选择日期"
+                @change="handleTimeChange('validityStartTime')"
+              >
+              </el-date-picker>
+              <div style="width: 40px; text-align: center">至</div>
+              <el-date-picker
+                style="flex: 1"
+                v-model="form.validityEndTime"
+                type="date"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                placeholder="选择日期"
+                @change="handleTimeChange('validityEndTime')"
+              >
+              </el-date-picker>
+            </div>
+            <!-- <el-date-picker
               style="width: 100%"
               v-model="form.date"
               type="daterange"
@@ -114,7 +135,7 @@
               value-format="yyyy-MM-dd HH:mm:ss"
               :default-time="['00:00:00', '23:59:59']"
             >
-            </el-date-picker>
+            </el-date-picker> -->
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 24 } : { span: 24 }">
@@ -140,14 +161,23 @@
       @confirm="confirmStaffSelection"
     ></staffSelection>
     <productTable ref="productTableRef" />
-    <supplierSelection
+
+    <vendorDialog
+      ref="supplierSelectionRef"
+      @success="confirmStaffSelection1"
+    ></vendorDialog>
+    <clientDialog
+      ref="customerSelectionRef"
+      @success="confirmStaffSelection1"
+    ></clientDialog>
+    <!-- <supplierSelection
       ref="supplierSelectionRef"
       @confirm="confirmStaffSelection"
     />
     <customerSelection
       ref="customerSelectionRef"
       @confirm="confirmStaffSelection"
-    />
+    /> -->
     <div slot="footer" class="dialog-footer">
       <el-button size="small" @click="save" type="primary">保 存</el-button>
       <el-button size="small" @click="close">关 闭</el-button>
@@ -158,12 +188,13 @@
 <script>
   import staffSelection from './staffSelection.vue';
   import { saveOrEdit, getPhotoInfo } from '@/api/documentManagement';
-  // import fileMain from '@/components/addDoc/index.vue';
+  import clientDialog from '@/views/factoryModel/qualificationManagement/components/clientDialog.vue';
+  import vendorDialog from '@/views/factoryModel/qualificationManagement/components/vendorDialog.vue';
 
   import { getCode } from '@/api/ruleManagement/matter';
   import productTable from './productTable.vue';
-  import supplierSelection from './supplierSelection.vue';
-  import customerSelection from './customerSelection.vue';
+  // import supplierSelection from './supplierSelection.vue';
+  // import customerSelection from './customerSelection.vue';
   import { listOrganizations } from '@/api/system/organization';
   import { holderTypeOptions } from '@/enum/dict.js';
   const defaultForm = {
@@ -180,8 +211,8 @@
     components: {
       staffSelection,
       productTable,
-      supplierSelection,
-      customerSelection,
+      vendorDialog,
+      clientDialog
       // fileMain
     },
     //注册组件
@@ -210,9 +241,20 @@
           type: [
             { required: true, trigger: 'change', message: '请选择证件类型' }
           ],
-          // date: [
-          //   { required: true, trigger: 'change', message: '请选择有效期' }
-          // ],
+          validityStartTime: [
+            {
+              required: true,
+              trigger: 'change',
+              message: '请选择有效期开始时间'
+            }
+          ],
+          validityEndTime: [
+            {
+              required: true,
+              trigger: 'change',
+              message: '请选择有效期结束时间'
+            }
+          ],
           holder: [
             { required: true, trigger: 'change', message: '请选择持证对象' }
           ],
@@ -242,13 +284,16 @@
       },
       //选择负责人
       confirmStaffSelection(data) {
-        console.log(data);
         this.form.holderId = data.map((item) => item.id).join(',');
 
         this.form.holder = data.map((item) => item.name).join(',');
         this.$forceUpdate();
         console.log(this.form);
       },
+      confirmStaffSelection1(data) {
+        this.form.holderId = data.id;
+        this.form.holder = data.name;
+      },
       openStaffSelection() {
         if (this.form.holderType == 1) {
           this.$refs.staffSelection.open([]);
@@ -274,12 +319,12 @@
       },
 
       async getInfo(id) {
-        const data = await getPhotoInfo(id);        
+        const data = await getPhotoInfo(id);
         this.form = {
           ...data,
-          date: [data.validityStartTime, data.validityEndTime],
+          // date: [data.validityStartTime, data.validityEndTime],
           holderType: data.holderType || '1',
-          type: data.holderType === '1' ? data.type : data.type + '',
+          type: data.holderType === '1' ? data.type : data.type + ''
         };
         this.$refs.productTableRef.putTableValue(data.categorys || []);
       },
@@ -290,6 +335,18 @@
         this.form = { ...defaultForm };
         this.$refs.productTableRef.initData();
       },
+      handleTimeChange(key) {
+        if (this.form.validityStartTime && this.form.validityEndTime) {
+          if (this.form.validityStartTime > this.form.validityEndTime) {
+            this.$message.error(
+              `${key == 'validityStartTime' ? '开始' : '结束'}时间不能${
+                key == 'validityStartTime' ? '大于' : '小于'
+              }${key == 'validityStartTime' ? '结束' : '开始'}时间`
+            );
+            this.form[key] = '';
+          }
+        }
+      },
 
       save() {
         this.$refs.form.validate((valid) => {
@@ -297,15 +354,15 @@
             return false;
           }
           this.loading = true;
-          if (this.form.date?.length) {
-            this.form.validityStartTime = this.form.date[0];
-            this.form.validityEndTime = this.form.date[1];
-          }
+          // if (this.form.date?.length) {
+          //   this.form.validityStartTime = this.form.date[0];
+          //   this.form.validityEndTime = this.form.date[1];
+          // }
 
           const data = {
             ...this.form
           };
-          delete data.date;
+          // delete data.date;
           let productTable = this.$refs.productTableRef.getTableValue();
           data.categorys = productTable || [];
           saveOrEdit(data)

+ 1 - 1
src/views/material/product/index.vue

@@ -2,7 +2,7 @@
   <div class="ele-body">
     <el-card shadow="never">
       <ele-split-layout
-        width="300px"
+        width="260px"
         allow-collapse
         :right-style="{ overflow: 'hidden' }"
       >

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

@@ -0,0 +1,20 @@
+<template>
+  <div>
+    <list :templateType="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" :templateType="templateType"></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: {
+      templateType: {
+        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.templateType
+        };
+        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 :templateType="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>
 

+ 2 - 2
src/views/rulesManagement/releaseRules/components/permitAdd.vue

@@ -1239,8 +1239,8 @@
 
         this.formData.executeMethodId = info.recordRulesExecuteMethodId;
         this.formData.executeMethodName = info.recordRulesExecuteMethodName;
-        this.formData.startDate = new Date(info.startDate);
-        this.formData.stopDate = new Date(info.stopDate);
+        this.formData.startDate = new Date(info.startDate || data.startDate);
+        this.formData.stopDate = new Date(info.stopDate || data.stopDate);
         this.formData.classify = this.formData.classify + '';
         this.formData.reportWorkType = this.formData.reportWorkType + '';
         this.formData.industryType = this.formData.industryType + '';

+ 54 - 106
src/views/system/organization/components/org-user-search.vue

@@ -1,121 +1,69 @@
 <!-- 搜索表单 -->
 <template>
-  <el-form
-    size="small"
-    class="ele-form-search"
-    @keyup.enter.native="search"
-    @submit.native.prevent
-  >
-    <el-row :gutter="24">
-      <el-col v-bind="styleResponsive ? { md: 3 } : { span: 3 }">
-        <el-form-item>
-          <el-input
-            clearable
-            size="small"
-            v-model.trim="where.jobNumber"
-            placeholder="请输入工号"
-          />
-        </el-form-item>
-      </el-col>
-
-      <el-col v-bind="styleResponsive ? { md: 3 } : { span: 3 }">
-        <el-form-item>
-          <el-input
-            clearable
-            size="small"
-            v-model.trim="where.loginName"
-            placeholder="请输入用户账号"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { md: 3 } : { span: 3 }">
-        <el-form-item>
-          <el-input
-            clearable
-            size="small"
-            v-model.trim="where.name"
-            placeholder="请输入姓名"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { md: 3 } : { span: 3 }">
-        <el-form-item>
-          <el-input
-            clearable
-            size="small"
-            v-model.trim="where.phone"
-            placeholder="手机号"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
-        <DictSelection
-          dictName="岗位"
-          placeholder="请选择岗位"
-          clearable
-          filterable
-          v-model="where.postId"
-          multiple
-        >
-        </DictSelection>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
-        <el-form-item>
-          <el-button
-            size="small"
-            type="primary"
-            icon="el-icon-search"
-            class="ele-btn-icon"
-            @click="search"
-          >
-            查询
-          </el-button>
-          <el-button
-            size="small"
-            icon="el-icon-search"
-            class="ele-btn-icon"
-            @click="reset()"
-          >
-            重置
-          </el-button>
-          <slot></slot>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
+  <seekPage :seekList="seekList" :formLength="3" @search="search"></seekPage>
 </template>
 
 <script>
   export default {
     data() {
-      // 默认表单数据
-      const defaultWhere = {
-        jobNumber: '',
-        loginName: '',
-        name: '',
-        phone:'',
-        postId: []
-      };
-      return {
-        // 表单数据
-        where: { ...defaultWhere }
-      };
+      return { where: { jobNumber: '', loginName: '', name: '' } };
     },
     computed: {
-      // 是否开启响应式布局
-      styleResponsive() {
-        return this.$store.state.theme.styleResponsive;
+      seekList() {
+        return [
+          {
+            label: '工号:',
+            value: 'jobNumber',
+            type: 'input',
+            placeholder: '请输入'
+          },
+          {
+            label: '用户账号:',
+            value: 'loginName',
+            type: 'input',
+            placeholder: '请输入'
+          },
+
+          {
+            label: '姓名:',
+            value: 'name',
+            type: 'input',
+            placeholder: '请输入'
+          },
+          {
+            label: '手机号:',
+            value: 'phone',
+            type: 'input',
+            placeholder: '请输入'
+          },
+          {
+            label: '岗位:',
+            value: 'postId',
+            type: 'DictSelection',
+            dictName: '岗位',
+            placeholder: '请输入'
+          },
+          {
+            label: '状态:',
+            value: 'status',
+            type: 'select',
+            planList: [
+              { value: 1, label: '全职' },
+              { value: 2, label: '兼职' },
+              { value: 3, label: '实习' },
+              { value: 4, label: '正式' },
+              { value: 5, label: '试用' },
+              { value: 6, label: '离职' }
+            ],
+            placeholder: '请选择'
+          }
+        ];
       }
     },
     methods: {
-      /* 搜索 */
-      search() {
-        this.$emit('search', this.where);
-      },
-      /*  重置 */
-      reset() {
-        this.where = { ...this.defaultWhere };
-        this.search();
+      search(e) {
+        this.where = e;
+        this.$emit('search', { ...e });
       },
       geValue() {
         return this.where;