Преглед изворни кода

feat(bpm): 新增全部记录页签及对应API接口

yusheng пре 3 месеци
родитељ
комит
f442afc0de
2 измењених фајлова са 800 додато и 567 уклоњено
  1. 12 0
      src/api/bpm/task.js
  2. 788 567
      src/views/bpm/collaborative/index.vue

+ 12 - 0
src/api/bpm/task.js

@@ -286,6 +286,18 @@ export async function bpmCustomFormDelete(data) {
   return Promise.reject(new Error(res.data.message));
 }
 
+export async function getProcessInstanceAllPage(query) {
+  const res = await request({
+    url: '/bpm/process-instance/all-page',
+    method: 'post',
+    data: query
+  });
+
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 export async function getProcessInstancePage(query) {
   const res = await request({
     url: '/bpm/process-instance/my-page',

+ 788 - 567
src/views/bpm/collaborative/index.vue

@@ -171,7 +171,7 @@
                       </div>
                     </div>
                   </template>
-                  <template v-slot:formName="{row}">
+                  <template v-slot:formName="{ row }">
                     <el-link
                       type="primary"
                       :underline="false"
@@ -407,7 +407,7 @@
                         >下载
                       </el-button>
                     </div>
-                     <div v-else-if="item.type == 'userSelect'">
+                    <div v-else-if="item.type == 'userSelect'">
                       {{ getUserName(row[item.model]) }}
                     </div>
                     <div v-else-if="item.type == 'deptAndUserCascader'">
@@ -652,6 +652,179 @@
                   </template> -->
                 </ele-pro-table>
               </el-tab-pane>
+              <el-tab-pane label="全部记录" name="all">
+                <ele-pro-table
+                  ref="allTable"
+                  :columns="deptColumns"
+                  :datasource="allDatasource"
+                  cache-key="allDatasource"
+                  :toolkit="[]"
+                  height="calc(100vh - 450px)"
+                  :init-load="false"
+                >
+                  <template v-slot:toolbar="{ row }">
+                    <div class="filter-container">
+                      <el-form
+                        class="ele-form-search"
+                        @keyup.enter.native="allReload"
+                        @submit.native.prevent
+                      >
+                        <el-row
+                          :gutter="15"
+                          style="display: flex; align-items: center"
+                        >
+                          <el-col v-bind="{ span: 4 }">
+                            <el-form-item label="分类:" label-width="60px">
+                              <el-select v-model="params.dictType">
+                                <el-option
+                                  v-for="(item, index) in dictList[
+                                    'collaborative_type'
+                                  ]"
+                                  :key="index"
+                                  :value="item.value"
+                                  :label="item.label"
+                                ></el-option>
+                              </el-select>
+                            </el-form-item>
+                          </el-col>
+                          <el-col v-bind="{ span: 4 }">
+                            <el-form-item label="单据:" label-width="60px">
+                              <el-select v-model="params.formId">
+                                <el-option
+                                  v-for="(item, index) in defaultTemplateList"
+                                  :key="index"
+                                  :value="item.id"
+                                  :label="item.name"
+                                ></el-option>
+                              </el-select>
+                            </el-form-item>
+                          </el-col>
+                          <el-col v-bind="{ span: 4 }">
+                            <el-form-item
+                              label="结果:"
+                              prop="result"
+                              label-width="60px"
+                            >
+                              <DictSelection
+                                dictName="流程实例的结果"
+                                clearable
+                                v-model="params.result"
+                              >
+                              </DictSelection>
+                            </el-form-item>
+                          </el-col>
+                          <el-col v-bind="{ span: 4 }">
+                            <el-form-item
+                              label="发起人:"
+                              prop="startUserName"
+                              label-width="70px"
+                            >
+                              <el-input
+                                v-model="params.startUserName"
+                              ></el-input>
+                            </el-form-item>
+                          </el-col>
+                          <el-col v-bind="{ span: 6 }">
+                            <el-form-item
+                              label="创建时间:"
+                              prop="createTime1"
+                              label-width="90px"
+                            >
+                              <el-date-picker
+                                v-model="createTime1"
+                                style="width: 100%"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                type="daterange"
+                                range-separator="-"
+                                start-placeholder="开始日期"
+                                end-placeholder="结束日期"
+                                :default-time="['00:00:00', '23:59:59']"
+                              />
+                            </el-form-item>
+                          </el-col>
+                        </el-row>
+                      </el-form>
+                    </div>
+                  </template>
+                  <template v-slot:toolkit="{ row }">
+                    <div class="filter-container">
+                      <div class="ele-form-actions">
+                        <el-button
+                          type="primary"
+                          icon="el-icon-search"
+                          class="ele-btn-icon"
+                          @click="allReload"
+                        >
+                          查询
+                        </el-button>
+                        <el-button @click="allReset">重置</el-button>
+                      </div>
+                    </div>
+                  </template>
+                  <template v-slot:dictType="{ row }">
+                    {{ getDictV('collaborative_type', row.dictType) }}
+                  </template>
+                  <template
+                    v-if="formColumnList.length"
+                    v-for="(item, index) in formColumnList"
+                    v-slot:[item.model]="{ row }"
+                  >
+                    <div v-if="item.type == 'imgupload'">
+                      <el-image
+                        v-if="row[item.model].length"
+                        style="width: 100px; height: 100px"
+                        :src="row[item.model][0].url"
+                        :preview-src-list="row[item.model].map((i) => i.url)"
+                      >
+                      </el-image>
+                    </div>
+                    <div v-else-if="item.type == 'fileupload'">
+                      <el-button
+                        type="text"
+                        v-if="row[item.model]?.length"
+                        @click="getFiles(row[item.model])"
+                        >下载
+                      </el-button>
+                    </div>
+                    <div v-else-if="item.type == 'userSelect'">
+                      {{ getUserName(row[item.model]) }}
+                    </div>
+                    <div v-else-if="item.type == 'deptAndUserCascader'">
+                      {{ getDeptAndUserName(row[item.model]) }}
+                    </div>
+                    <div v-else-if="item.type == 'deptCascader'">
+                      {{ getDeptName(row[item.model]) }}
+                    </div>
+                    <div v-else>
+                      {{ formatValue(row[item.model]) }}
+                    </div>
+                  </template>
+                  <template v-slot:result="{ row }">
+                    <el-tag
+                      size="medium"
+                      :type="
+                        getTimelineItemType(
+                          getDictValue('流程实例的结果', row.result)
+                        )
+                      "
+                    >
+                      {{ getDictValue('流程实例的结果', row.result) }}
+                    </el-tag>
+                  </template>
+                  <template v-slot:durationInMillis="{ row }">
+                    {{ getDateTime(row.durationInMillis) }}
+                  </template>
+                  <template v-slot:name="{ row }">
+                    <el-link
+                      type="primary"
+                      :underline="false"
+                      @click="handleDetail(row)"
+                    >
+                      {{ row.name }}
+                    </el-link>
+                  </template>
+                </ele-pro-table>
+              </el-tab-pane>
             </el-tabs>
           </div>
         </template>
@@ -674,615 +847,663 @@
   </div>
 </template>
 <script>
-import {
-  getBpmCustomFormList,
-  getProcessInstanceDeptPage,
-  getProcessInstanceNoticePage,
-  getProcessInstancePage
-} from '@/api/bpm/task';
-import { getDate } from '@/utils/dateUtils';
-import dictMixins from '@/mixins/dictMixins';
-import detail from '@/views/bpm/processInstance/detail.vue';
-import formDetail from './detail.vue';
-import { getByCode } from '@/api/system/dictionary-data';
-import { getFile } from '@/api/system/file';
-import { getUserPage } from '@/api/tickets';
-import { listOrganizations } from '@/api/system/organization';
-import tabMixins from '@/mixins/tableColumnsMixin';
+  import {
+    getBpmCustomFormList,
+    getProcessInstanceDeptPage,
+    getProcessInstanceNoticePage,
+    getProcessInstancePage,
+    getProcessInstanceAllPage
+  } from '@/api/bpm/task';
+  import { getDate } from '@/utils/dateUtils';
+  import dictMixins from '@/mixins/dictMixins';
+  import detail from '@/views/bpm/processInstance/detail.vue';
+  import formDetail from './detail.vue';
+  import { getByCode } from '@/api/system/dictionary-data';
+  import { getFile } from '@/api/system/file';
+  import { getUserPage } from '@/api/tickets';
+  import { listOrganizations } from '@/api/system/organization';
+  import tabMixins from '@/mixins/tableColumnsMixin';
 
-// 默认表单数据
-const defaultParams = {
-  dictType: '',
-  status: '',
-  name: '',
-  formId: ''
-};
-export default {
-  name: 'index',
-  components: {
-    detail,
-    formDetail
-  },
-  mixins: [dictMixins, tabMixins],
-  data() {
-    return {
-      cacheKeyUrl: 'wt-eaf1548b-collaborative',
-      configFormDialogFlag: false,
-      processSubmitDialogFlag: false,
-      formDetailDialogFlag: false,
-      templateList: {},
-      dictList: {},
-      defaultTemplateList: [],
-      userList: [],
-      deptList: [],
-      params: { ...defaultParams },
-      statusList: [],
-      formColumnList: [],
-      createTime1: [],
-      // 个人 / 部门 / 通知我的
-      activeName: 'user'
-    };
-  },
-  computed: {
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
+  // 默认表单数据
+  const defaultParams = {
+    dictType: '',
+    status: '',
+    name: '',
+    formId: ''
+  };
+  export default {
+    name: 'index',
+    components: {
+      detail,
+      formDetail
     },
-    columns() {
-      let list = this.formColumnList.map((item) => {
-        return {
-          prop: item.model,
-          label: item.name,
-          align: 'center',
-          slot: item.model,
-          showOverflowTooltip: true,
-          minWidth: 120
-        };
-      });
-      return [
-        {
-          columnKey: 'index',
-          label: '序号',
-          type: 'index',
-          width: 55,
-          align: 'center',
-          showOverflowTooltip: true,
-          fixed: 'left'
-        },
-        {
-          prop: 'dictType',
-          label: '分类',
-          align: 'center',
-          slot: 'dictType',
-          showOverflowTooltip: true,
-          minWidth: 70
-        },
-        {
-          prop: 'formName',
-          label: '单据',
-          align: 'center',
-          slot: 'formName',
-          showOverflowTooltip: true,
-          minWidth: 70
-        },
-        // {
-        //   prop: 'name',
-        //   label: '名称',
-        //   align: 'center',
-        //   slot: 'name',
-        //   showOverflowTooltip: true,
-        //   minWidth: 80
-        // },
-        ...list,
-        {
-          prop: 'result',
-          slot: 'result',
-          label: '结果',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 80
-        },
-        {
-          prop: 'endTime',
-          label: '审批时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120
-        },
-        {
-          prop: 'createTime',
-          label: '创建时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120
-        },
-
-        // {
-        //   prop: 'durationInMillis',
-        //   slot: 'durationInMillis',
-        //   label: '耗时',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 130
-        // },
-        {
-          columnKey: 'action',
-          label: '操作',
-          width: 100,
-          align: 'center',
-          resizable: false,
-          slot: 'action',
-          showOverflowTooltip: true,
-          fixed: 'right'
-        }
-      ];
-    },
-    deptColumns() {
-      let list = this.formColumnList.map((item) => {
-        return {
-          prop: item.model,
-          label: item.name,
-          align: 'center',
-          slot: item.model,
-          showOverflowTooltip: true,
-          minWidth: 120
-        };
-      });
-      return [
-        {
-          columnKey: 'index',
-          label: '序号',
-          type: 'index',
-          width: 55,
-          align: 'center',
-          showOverflowTooltip: true,
-          fixed: 'left'
-        },
-        {
-          prop: 'dictType',
-          label: '分类',
-          align: 'center',
-          slot: 'dictType',
-          showOverflowTooltip: true,
-          minWidth: 70
-        },
-        {
-          prop: 'formName',
-          label: '单据',
-          align: 'center',
-          slot: 'formName',
-          showOverflowTooltip: true,
-          minWidth: 70
-        },
-        {
-          prop: 'name',
-          label: '名称',
-          align: 'center',
-          slot: 'name',
-          showOverflowTooltip: true,
-          minWidth: 150
-        },
-        {
-          prop: 'startUserName',
-          label: '发起人',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 180
-        },
-        ...list,
-        {
-          prop: 'result',
-          slot: 'result',
-          label: '结果',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 100
-        },
-        {
-          prop: 'endTime',
-          label: '审批时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 180
-        },
-        {
-          prop: 'createTime',
-          label: '创建时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 180
-        }
-
-        // {
-        //   prop: 'durationInMillis',
-        //   slot: 'durationInMillis',
-        //   label: '耗时',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 130
-        // },
-        // {
-        //   columnKey: 'action',
-        //   label: '操作',
-        //   width: 230,
-        //   align: 'center',
-        //   resizable: false,
-        //   slot: 'action',
-        //   showOverflowTooltip: true,
-        //   fixed: 'right'
-        // }
-      ];
-    },
-    getUserName() {
-      return (id) => {
-        if (!id) return '';
-        let find = this.userList.find((item) => item.id == id) || {};
-        return find.name;
-      };
-    },
-    getDeptAndUserName() {
-      return (id = []) => {
-        if (!id.length) return '';
-        id = Array.isArray(id) ? id : [id];
-        let find =
-          this.userList.find((item) => item.id == id[id.length - 1]) || {};
-        return find.name;
+    mixins: [dictMixins, tabMixins],
+    data() {
+      return {
+        cacheKeyUrl: 'wt-eaf1548b-collaborative',
+        configFormDialogFlag: false,
+        processSubmitDialogFlag: false,
+        formDetailDialogFlag: false,
+        templateList: {},
+        dictList: {},
+        defaultTemplateList: [],
+        userList: [],
+        deptList: [],
+        params: { ...defaultParams },
+        statusList: [],
+        formColumnList: [],
+        createTime1: [],
+        // 个人 / 部门 / 通知我的
+        activeName: 'user'
       };
     },
-    getDeptName() {
-      return (id = []) => {
-        if (!id.length) return '';
-        id = Array.isArray(id) ? id : [id];
-        let find =
-          this.deptList.find((item) => item.id == id[id.length - 1]) || {};
-        return find.name;
-      };
-    }
-  },
-  watch: {
-    'params.formId': {
-      handler(val) {
-        this.reload();
-        this.deptReload();
-        this.reload();
-        this.noticeReload();
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      },
+      columns() {
+        let list = this.formColumnList.map((item) => {
+          return {
+            prop: item.model,
+            label: item.name,
+            align: 'center',
+            slot: item.model,
+            showOverflowTooltip: true,
+            minWidth: 120
+          };
+        });
+        return [
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'dictType',
+            label: '分类',
+            align: 'center',
+            slot: 'dictType',
+            showOverflowTooltip: true,
+            minWidth: 70
+          },
+          {
+            prop: 'formName',
+            label: '单据',
+            align: 'center',
+            slot: 'formName',
+            showOverflowTooltip: true,
+            minWidth: 70
+          },
+          // {
+          //   prop: 'name',
+          //   label: '名称',
+          //   align: 'center',
+          //   slot: 'name',
+          //   showOverflowTooltip: true,
+          //   minWidth: 80
+          // },
+          ...list,
+          {
+            prop: 'result',
+            slot: 'result',
+            label: '结果',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 80
+          },
+          {
+            prop: 'endTime',
+            label: '审批时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+
+          // {
+          //   prop: 'durationInMillis',
+          //   slot: 'durationInMillis',
+          //   label: '耗时',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 130
+          // },
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 100,
+            align: 'center',
+            resizable: false,
+            slot: 'action',
+            showOverflowTooltip: true,
+            fixed: 'right'
+          }
+        ];
+      },
+      deptColumns() {
+        let list = this.formColumnList.map((item) => {
+          return {
+            prop: item.model,
+            label: item.name,
+            align: 'center',
+            slot: item.model,
+            showOverflowTooltip: true,
+            minWidth: 120
+          };
+        });
+        return [
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'dictType',
+            label: '分类',
+            align: 'center',
+            slot: 'dictType',
+            showOverflowTooltip: true,
+            minWidth: 70
+          },
+          {
+            prop: 'formName',
+            label: '单据',
+            align: 'center',
+            slot: 'formName',
+            showOverflowTooltip: true,
+            minWidth: 70
+          },
+          {
+            prop: 'name',
+            label: '名称',
+            align: 'center',
+            slot: 'name',
+            showOverflowTooltip: true,
+            minWidth: 150
+          },
+          {
+            prop: 'startUserName',
+            label: '发起人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 180
+          },
+          ...list,
+          {
+            prop: 'result',
+            slot: 'result',
+            label: '结果',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100
+          },
+          {
+            prop: 'endTime',
+            label: '审批时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 180
+          },
+          {
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 180
+          }
+
+          // {
+          //   prop: 'durationInMillis',
+          //   slot: 'durationInMillis',
+          //   label: '耗时',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 130
+          // },
+          // {
+          //   columnKey: 'action',
+          //   label: '操作',
+          //   width: 230,
+          //   align: 'center',
+          //   resizable: false,
+          //   slot: 'action',
+          //   showOverflowTooltip: true,
+          //   fixed: 'right'
+          // }
+        ];
+      },
+      getUserName() {
+        return (id) => {
+          if (!id) return '';
+          let find = this.userList.find((item) => item.id == id) || {};
+          return find.name;
+        };
+      },
+      getDeptAndUserName() {
+        return (id = []) => {
+          if (!id.length) return '';
+          id = Array.isArray(id) ? id : [id];
+          let find =
+            this.userList.find((item) => item.id == id[id.length - 1]) || {};
+          return find.name;
+        };
+      },
+      getDeptName() {
+        return (id = []) => {
+          if (!id.length) return '';
+          id = Array.isArray(id) ? id : [id];
+          let find =
+            this.deptList.find((item) => item.id == id[id.length - 1]) || {};
+          return find.name;
+        };
       }
     },
-    'params.dictType': {
-      handler(val) {
-        this.params.formId = this.templateList[val][0].id;
-        this.reload();
-        this.deptReload();
-        this.reload();
-        this.noticeReload();
-      }
-    }
-  },
-  async created() {
-    await this.getDictList('collaborative_type');
-    await this.getTemplateList();
-    await this.getUserList();
-    await this.getDeptList();
-  },
-  methods: {
-    formatValue(value) {
-      if (value === null || value === undefined) {
-        return ''; // 空值处理
-      }
-      if (typeof value === 'object' && value !== null) {
-        if ('id' in value && 'code' in value && 'name' in value) {
-          return value.code;
-        } else {
-          return JSON.stringify(value, null, 2);
+    watch: {
+      'params.formId': {
+        handler(val) {
+          this.allReload();
+          this.reload();
+          this.deptReload();
+          this.noticeReload();
+        }
+      },
+      'params.dictType': {
+        handler(val) {
+          this.params.formId = this.templateList[val][0].id;
+          this.allReload();
+          this.reload();
+          this.deptReload();
+          this.noticeReload();
         }
       }
-      return value;
     },
-    getDictV(code, val) {
-      if (!this.dictList[code]) return '';
-      return this.dictList[code].find((item) => item.value == val)?.label;
+    async created() {
+      await this.getDictList('collaborative_type');
+      await this.getTemplateList();
+      await this.getUserList();
+      await this.getDeptList();
     },
-    async getDictList(code) {
-      let { data: res } = await getByCode(code);
-      this.dictList[code] = res.map((item) => {
-        let values = Object.keys(item);
+    methods: {
+      formatValue(value) {
+        if (value === null || value === undefined) {
+          return ''; // 空值处理
+        }
+        if (typeof value === 'object' && value !== null) {
+          if ('id' in value && 'code' in value && 'name' in value) {
+            return value.code;
+          } else {
+            return JSON.stringify(value, null, 2);
+          }
+        }
+        return value;
+      },
+      getDictV(code, val) {
+        if (!this.dictList[code]) return '';
+        return this.dictList[code].find((item) => item.value == val)?.label;
+      },
+      async getDictList(code) {
+        let { data: res } = await getByCode(code);
+        this.dictList[code] = res.map((item) => {
+          let values = Object.keys(item);
+          return {
+            value: values[0],
+            label: item[values[0]]
+          };
+        });
+      },
+      //获取人员数据
+      async getUserList() {
+        let params = { pageNum: 1, size: -1 };
+        let { list } = await getUserPage(params);
+        this.userList = list;
+      },
+      //获取部门数据
+      async getDeptList() {
+        this.deptList = await listOrganizations();
+      },
+      getFiles(row = []) {
+        row.forEach((item) => {
+          getFile({ objectName: item.storePath }, item.name);
+        });
+      },
+      async getTemplateList() {
+        this.defaultTemplateList = await getBpmCustomFormList({ status: 1 });
+        this.templateList = _.groupBy(this.defaultTemplateList, 'dictType');
+        this.params.dictType = this.dictList['collaborative_type'][0].value;
+        this.params.formId = this.defaultTemplateList[0]?.id;
+        let makingJson =
+          JSON.parse(this.defaultTemplateList[0].formJson.makingJson) || {};
+        this.formColumnList = makingJson.list;
+        console.log(this.formColumnList);
+      },
+      handleStartProcess(i) {
+        this.processSubmitDialogFlag = true;
+        this.$nextTick(() => {
+          this.$refs.processSubmitDialogRef.init(i);
+        });
+      },
+      /* 表格数据源 */
+      async allDatasource({ page, limit, where, order }) {
+        let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
+        let data = await getProcessInstanceAllPage({
+          pageNo: page,
+          pageSize: limit,
+          ...this.params,
+          processType: '1',
+          createTimeBegin,
+          createTimeEnd
+        });
+        // data = data.list.map((item) => {
+        //   return {
+        //     ...item,
+        //     ...item.valueJson
+        //   };
+        // });
         return {
-          value: values[0],
-          label: item[values[0]]
+          count: data.count,
+          list: data.list.map((item) => {
+            return {
+              ...item,
+              ...item.valueJson
+            };
+          })
         };
-      });
-    },
-    //获取人员数据
-    async getUserList() {
-      let params = { pageNum: 1, size: -1 };
-      let { list } = await getUserPage(params);
-      this.userList = list;
-    },
-    //获取部门数据
-    async getDeptList() {
-      this.deptList = await listOrganizations();
-    },
-    getFiles(row = []) {
-      row.forEach((item) => {
-        getFile({ objectName: item.storePath }, item.name);
-      });
-    },
-    async getTemplateList() {
-      this.defaultTemplateList = await getBpmCustomFormList({ status: 1 });
-      this.templateList = _.groupBy(this.defaultTemplateList, 'dictType');
-      this.params.dictType = this.dictList['collaborative_type'][0].value;
-      this.params.formId = this.defaultTemplateList[0]?.id;
-      let makingJson =
-        JSON.parse(this.defaultTemplateList[0].formJson.makingJson) || {};
-      this.formColumnList = makingJson.list;
-      console.log(this.formColumnList);
-    },
-    handleStartProcess(i) {
-      this.processSubmitDialogFlag = true;
-      this.$nextTick(() => {
-        this.$refs.processSubmitDialogRef.init(i);
-      });
-    },
-    /* 表格数据源 */
-    async datasource({ page, limit, where, order }) {
-      let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
+      },
+      /* 刷新表格 */
+      allReload(where) {
+        let find =
+          this.defaultTemplateList.find(
+            (item) => item.id == this.params.formId
+          ) || {};
+        let makingJson = JSON.parse(find.formJson.makingJson) || {};
+        this.formColumnList = makingJson.list;
+        this.$refs.allTable.reload({ page: 1, where });
+      },
+      /*  重置 */
+      allReset() {
+        this.params = { ...defaultParams };
+        this.createTime1 = [];
+        this.params.formId = this.defaultTemplateList[0]?.id;
+        this.params.dictType = this.dictList['collaborative_type'][0].value;
+        this.allReload();
+      },
+      /* 表格数据源 */
+      async datasource({ page, limit, where, order }) {
+        let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
 
-      let data = await getProcessInstancePage({
-        pageNo: page,
-        pageSize: limit,
-        ...this.params,
-        processType: '1',
-        createTimeBegin,
-        createTimeEnd
-      });
-      data = data.list.map((item) => {
-        return {
-          ...item,
-          ...item.valueJson
-        };
-      });
-      return data;
-    },
-    /* 刷新表格 */
-    reload(where) {
-      let find =
-        this.defaultTemplateList.find(
-          (item) => item.id == this.params.formId
-        ) || {};
-      let makingJson = JSON.parse(find.formJson.makingJson) || {};
-      this.formColumnList = makingJson.list;
-      this.$refs.table.reload({ page: 1, where });
-      this.$refs.table.reRenderTable();
-    },
+        let data = await getProcessInstancePage({
+          pageNo: page,
+          pageSize: limit,
+          ...this.params,
+          processType: '1',
+          createTimeBegin,
+          createTimeEnd
+        });
+        data = data.list.map((item) => {
+          return {
+            ...item,
+            ...item.valueJson
+          };
+        });
+        return data;
+      },
+      /* 刷新表格 */
+      reload(where) {
+        let find =
+          this.defaultTemplateList.find(
+            (item) => item.id == this.params.formId
+          ) || {};
+        let makingJson = JSON.parse(find.formJson.makingJson) || {};
+        this.formColumnList = makingJson.list;
+        this.$refs.table.reload({ page: 1, where });
+        this.$refs.table.reRenderTable();
+      },
 
-    /*  重置 */
-    reset() {
-      this.params = { ...defaultParams };
-      this.createTime1 = [];
-      this.params.dictType = this.dictList['collaborative_type'][0].value;
-      this.params.formId = this.templateList[this.params.dictType][0]?.id;
+      /*  重置 */
+      reset() {
+        this.params = { ...defaultParams };
+        this.createTime1 = [];
+        this.params.dictType = this.dictList['collaborative_type'][0].value;
+        this.params.formId = this.templateList[this.params.dictType][0]?.id;
 
-      this.reload();
-    },
-    /* 表格数据源 */
-    async deptDatasource({ page, limit, where, order }) {
-      let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
-      let data = await getProcessInstanceDeptPage({
-        pageNo: page,
-        pageSize: limit,
-        ...this.params,
-        processType: '1',
-        createTimeBegin,
-        createTimeEnd
-      });
-      data = data.list.map((item) => {
-        return {
-          ...item,
-          ...item.valueJson
-        };
-      });
-      return data;
-    },
-    /* 刷新表格 */
-    deptReload(where) {
-      let find =
-        this.defaultTemplateList.find(
-          (item) => item.id == this.params.formId
-        ) || {};
-      let makingJson = JSON.parse(find.formJson.makingJson) || {};
-      this.formColumnList = makingJson.list;
+        this.reload();
+      },
+      /* 表格数据源 */
+      async deptDatasource({ page, limit, where, order }) {
+        let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
+        let data = await getProcessInstanceDeptPage({
+          pageNo: page,
+          pageSize: limit,
+          ...this.params,
+          processType: '1',
+          createTimeBegin,
+          createTimeEnd
+        });
+        data = data.list.map((item) => {
+          return {
+            ...item,
+            ...item.valueJson
+          };
+        });
+        return data;
+      },
+      /* 刷新表格 */
+      deptReload(where) {
+        let find =
+          this.defaultTemplateList.find(
+            (item) => item.id == this.params.formId
+          ) || {};
+        let makingJson = JSON.parse(find.formJson.makingJson) || {};
+        this.formColumnList = makingJson.list;
 
-      this.$refs.deptTable.reload({ page: 1, where });
-    },
-    /*  重置 */
-    deptReset() {
-      this.params = { ...defaultParams };
-      this.createTime1 = [];
-      this.params.formId = this.defaultTemplateList[0]?.id;
-      this.params.dictType = this.dictList['collaborative_type'][0].value;
-      this.deptReload();
-    },
-    /* 表格数据源 */
-    async noticeDatasource({ page, limit, where, order }) {
-      let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
+        this.$refs.deptTable.reload({ page: 1, where });
+      },
+      /*  重置 */
+      deptReset() {
+        this.params = { ...defaultParams };
+        this.createTime1 = [];
+        this.params.formId = this.defaultTemplateList[0]?.id;
+        this.params.dictType = this.dictList['collaborative_type'][0].value;
+        this.deptReload();
+      },
+      /* 表格数据源 */
+      async noticeDatasource({ page, limit, where, order }) {
+        let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
 
-      let data = await getProcessInstanceNoticePage({
-        pageNo: page,
-        pageSize: limit,
-        ...this.params,
-        processType: '1',
-        createTimeBegin,
-        createTimeEnd
-      });
-      data = data.list.map((item) => {
-        return {
-          ...item,
-          ...item.valueJson
-        };
-      });
-      return data;
-    },
-    /* 刷新表格 */
-    noticeReload(where) {
-      let find =
-        this.defaultTemplateList.find(
-          (item) => item.id == this.params.formId
-        ) || {};
-      let makingJson = JSON.parse(find.formJson.makingJson) || {};
-      this.formColumnList = makingJson.list;
-      this.$refs.noticeTable.reload({ page: 1, where });
-    },
-    /*  重置 */
-    noticeReset() {
-      this.params = { ...defaultParams };
-      this.createTime1 = [];
+        let data = await getProcessInstanceNoticePage({
+          pageNo: page,
+          pageSize: limit,
+          ...this.params,
+          processType: '1',
+          createTimeBegin,
+          createTimeEnd
+        });
+        data = data.list.map((item) => {
+          return {
+            ...item,
+            ...item.valueJson
+          };
+        });
+        return data;
+      },
+      /* 刷新表格 */
+      noticeReload(where) {
+        let find =
+          this.defaultTemplateList.find(
+            (item) => item.id == this.params.formId
+          ) || {};
+        let makingJson = JSON.parse(find.formJson.makingJson) || {};
+        this.formColumnList = makingJson.list;
+        this.$refs.noticeTable.reload({ page: 1, where });
+      },
+      /*  重置 */
+      noticeReset() {
+        this.params = { ...defaultParams };
+        this.createTime1 = [];
 
-      this.params.formId = this.defaultTemplateList[0]?.id;
-      this.params.dictType = this.dictList['collaborative_type'][0].value;
-      this.noticeReload();
-    },
-    /**  */
-    handleAudit(row) {
-      this.$refs.detailRef.open(row.id);
-    },
-    /**  */
-    handleDetail(row) {
-      this.formDetailDialogFlag = true;
-      this.$nextTick(() => {
-        this.$refs.formDetailDialogRef.open(row);
-      });
-    },
-    getTimelineItemType(result) {
-      if (result === '通过') {
-        return 'success';
-      }
-      if (result === '不通过') {
-        return 'danger';
-      }
-      if (result === '取消') {
-        return 'info';
-      }
-      if (result === '处理中') {
-        return 'warning';
-      }
+        this.params.formId = this.defaultTemplateList[0]?.id;
+        this.params.dictType = this.dictList['collaborative_type'][0].value;
+        this.noticeReload();
+      },
+      /**  */
+      handleAudit(row) {
+        this.$refs.detailRef.open(row.id);
+      },
+      /**  */
+      handleDetail(row) {
+        this.formDetailDialogFlag = true;
+        this.$nextTick(() => {
+          this.$refs.formDetailDialogRef.open(row);
+        });
+      },
+      getTimelineItemType(result) {
+        if (result === '通过') {
+          return 'success';
+        }
+        if (result === '不通过') {
+          return 'danger';
+        }
+        if (result === '取消') {
+          return 'info';
+        }
+        if (result === '处理中') {
+          return 'warning';
+        }
 
-      return '';
-    },
-    getDateTime(ms) {
-      return getDate(ms);
-    },
-    tabClick() {
-      if (this.activeName == 'user') {
-        this.reset();
-      } else if (this.activeName == 'dept') {
-        this.deptReset();
-      } else if (this.activeName == 'notice') {
-        this.noticeReset();
+        return '';
+      },
+      getDateTime(ms) {
+        return getDate(ms);
+      },
+      tabClick() {
+        if (this.activeName == 'all') {
+          this.allReset();
+        } else if (this.activeName == 'user') {
+          this.reset();
+        } else if (this.activeName == 'dept') {
+          this.deptReset();
+        } else if (this.activeName == 'notice') {
+          this.noticeReset();
+        }
       }
     }
-  }
-};
+  };
 </script>
 <style scoped lang="scss">
-.ele-body {
-  padding: 15px;
-}
-
-.content-box {
-  width: 100%;
-  //max-width: 273px;
-  //min-width: 90px;
-  // margin-right: 10px;
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  //justify-content: space-between;
+  .ele-body {
+    padding: 15px;
+  }
 
-  .category_box {
-    border-left: 1px solid #e1e1e1;
-    border-bottom: 1px solid #e1e1e1;
-    border-radius: 1px;
-    // flex: 1 0 25%;
-    margin-top: 5px;
-    overflow: auto;
+  .content-box {
     width: 100%;
+    //max-width: 273px;
+    //min-width: 90px;
+    // margin-right: 10px;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+    //justify-content: space-between;
 
-    .category_box_title {
-      font-size: 14px;
-      font-weight: bold;
-      color: #fff8f8;
-      height: 39px;
-      display: flex;
-      padding: 5px 20px;
-      align-items: center;
-      background: #1890ffd6;
+    .category_box {
+      border-left: 1px solid #e1e1e1;
       border-bottom: 1px solid #e1e1e1;
-    }
-
-    .category_box_content {
-      display: flex;
-      flex-direction: row;
-      flex-wrap: wrap;
-      // height: 60px;
+      border-radius: 1px;
+      // flex: 1 0 25%;
+      margin-top: 5px;
       overflow: auto;
+      width: 100%;
 
-      .category_content {
-        min-width: 33%;
-        min-height: 60px;
-        //flex: 1 1 0;
+      .category_box_title {
+        font-size: 14px;
+        font-weight: bold;
+        color: #fff8f8;
+        height: 39px;
         display: flex;
-        flex-direction: column;
-        border-right: 1px solid #e1e1e1;
-        border-bottom: 1px solid #e1e1e1;
+        padding: 5px 20px;
         align-items: center;
-        justify-content: center;
-        //  font-weight: bold;
+        background: #1890ffd6;
+        border-bottom: 1px solid #e1e1e1;
+      }
 
-        &:nth-child(n) {
-          span:nth-child(1) {
-            transform: scale(2);
-          }
+      .category_box_content {
+        display: flex;
+        flex-direction: row;
+        flex-wrap: wrap;
+        // height: 60px;
+        overflow: auto;
+
+        .category_content {
+          min-width: 33%;
+          min-height: 60px;
+          //flex: 1 1 0;
+          display: flex;
+          flex-direction: column;
+          border-right: 1px solid #e1e1e1;
+          border-bottom: 1px solid #e1e1e1;
+          align-items: center;
+          justify-content: center;
+          //  font-weight: bold;
 
-          span:nth-child(2) {
-            padding-top: 5px;
+          &:nth-child(n) {
+            span:nth-child(1) {
+              transform: scale(2);
+            }
+
+            span:nth-child(2) {
+              padding-top: 5px;
+            }
           }
         }
-      }
 
-      .category_content:hover {
-        cursor: pointer;
-        background-color: rgba(135, 181, 243, 0.29);
+        .category_content:hover {
+          cursor: pointer;
+          background-color: rgba(135, 181, 243, 0.29);
+        }
       }
     }
-  }
 
-  .category_box:last-child {
-    border-right: 1px solid #e1e1e1;
+    .category_box:last-child {
+      border-right: 1px solid #e1e1e1;
+    }
   }
-}
 
-.tab-box {
-  width: calc(100vw - 552px);
-  //max-width: 1100px;
-  //min-width: 600px;
-  margin-top: 6px;
-  height: 98%;
+  .tab-box {
+    width: calc(100vw - 552px);
+    //max-width: 1100px;
+    //min-width: 600px;
+    margin-top: 6px;
+    height: 98%;
 
-  .el-tabs--border-card {
-    height: 100%;
+    .el-tabs--border-card {
+      height: 100%;
+    }
   }
-}
 
-::v-deep .card_box {
-  .el-card__body {
-    padding: 10px;
-    height: 86vh;
+  ::v-deep .card_box {
+    .el-card__body {
+      padding: 10px;
+      height: 86vh;
+    }
   }
-}
 
-::v-deep .ele-table-tool {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: nowrap !important;
-}
+  ::v-deep .ele-table-tool {
+    display: flex;
+    flex-direction: row;
+    flex-wrap: nowrap !important;
+  }
 </style>