|
|
@@ -53,7 +53,11 @@
|
|
|
<!-- 表格 -->
|
|
|
<template v-slot:content>
|
|
|
<div class="tab-box el-form-box">
|
|
|
- <el-tabs type="border-card" @tab-click="tabClick" v-model="activeName">
|
|
|
+ <el-tabs
|
|
|
+ type="border-card"
|
|
|
+ @tab-click="tabClick"
|
|
|
+ v-model="activeName"
|
|
|
+ >
|
|
|
<el-tab-pane label="个人记录" name="user">
|
|
|
<ele-pro-table
|
|
|
ref="table"
|
|
|
@@ -227,7 +231,7 @@
|
|
|
{{ getDeptName(row[item.model]) }}
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- {{ row[item.model] }}
|
|
|
+ {{ formatValue(row[item.model]) }}
|
|
|
</div>
|
|
|
</template>
|
|
|
<!-- 操作列 -->
|
|
|
@@ -321,7 +325,9 @@
|
|
|
prop="startUserName"
|
|
|
label-width="70px"
|
|
|
>
|
|
|
- <el-input v-model="params.startUserName"></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="params.startUserName"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="{ span: 6 }">
|
|
|
@@ -396,7 +402,7 @@
|
|
|
{{ getDeptName(row[item.model]) }}
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- {{ row[item.model] }}
|
|
|
+ {{ formatValue(row[item.model]) }}
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:result="{ row }">
|
|
|
@@ -514,7 +520,9 @@
|
|
|
prop="startUserName"
|
|
|
label-width="70px"
|
|
|
>
|
|
|
- <el-input v-model="params.startUserName"></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="params.startUserName"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="{ span: 6 }">
|
|
|
@@ -589,7 +597,7 @@
|
|
|
{{ getDeptName(row[item.model]) }}
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- {{ row[item.model] }}
|
|
|
+ {{ formatValue(row[item.model]) }}
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:result="{ row }">
|
|
|
@@ -651,602 +659,615 @@
|
|
|
</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
|
|
|
+} 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'
|
|
|
- };
|
|
|
+// 默认表单数据
|
|
|
+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;
|
|
|
},
|
|
|
- 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;
|
|
|
+ columns() {
|
|
|
+ let list = this.formColumnList.map((item) => {
|
|
|
+ return {
|
|
|
+ prop: item.model,
|
|
|
+ label: item.name,
|
|
|
+ align: 'center',
|
|
|
+ slot: item.model,
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
};
|
|
|
- },
|
|
|
- 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;
|
|
|
+ });
|
|
|
+ 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;
|
|
|
+ };
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ 'params.formId': {
|
|
|
+ handler(val) {
|
|
|
+ this.reload();
|
|
|
+ this.deptReload();
|
|
|
+ this.reload();
|
|
|
+ this.noticeReload();
|
|
|
}
|
|
|
},
|
|
|
- watch: {
|
|
|
- 'params.formId': {
|
|
|
- handler(val) {
|
|
|
- this.reload();
|
|
|
- this.deptReload();
|
|
|
- this.reload();
|
|
|
- this.noticeReload();
|
|
|
- }
|
|
|
- },
|
|
|
- 'params.dictType': {
|
|
|
- handler(val) {
|
|
|
- this.params.formId = this.templateList[val][0].id;
|
|
|
- this.reload();
|
|
|
- this.deptReload();
|
|
|
- this.reload();
|
|
|
- this.noticeReload();
|
|
|
+ '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);
|
|
|
}
|
|
|
}
|
|
|
+ return value;
|
|
|
},
|
|
|
- async created() {
|
|
|
- await this.getDictList('collaborative_type');
|
|
|
- await this.getTemplateList();
|
|
|
- await this.getUserList();
|
|
|
- await this.getDeptList();
|
|
|
+ getDictV(code, val) {
|
|
|
+ if (!this.dictList[code]) return '';
|
|
|
+ return this.dictList[code].find((item) => item.value == val)?.label;
|
|
|
},
|
|
|
- methods: {
|
|
|
- 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 datasource({ page, limit, where, order }) {
|
|
|
- let [createTimeBegin, createTimeEnd] = this.createTime1 || [];
|
|
|
+ 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 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 == '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;
|
|
|
- }
|
|
|
+.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;
|
|
|
|
|
|
- .content-box {
|
|
|
+ .category_box {
|
|
|
+ border-left: 1px solid #e1e1e1;
|
|
|
+ border-bottom: 1px solid #e1e1e1;
|
|
|
+ border-radius: 1px;
|
|
|
+ // flex: 1 0 25%;
|
|
|
+ margin-top: 5px;
|
|
|
+ overflow: auto;
|
|
|
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 {
|
|
|
- border-left: 1px solid #e1e1e1;
|
|
|
+ .category_box_title {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #fff8f8;
|
|
|
+ height: 39px;
|
|
|
+ display: flex;
|
|
|
+ padding: 5px 20px;
|
|
|
+ align-items: center;
|
|
|
+ background: #1890ffd6;
|
|
|
border-bottom: 1px solid #e1e1e1;
|
|
|
- border-radius: 1px;
|
|
|
- // flex: 1 0 25%;
|
|
|
- margin-top: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .category_box_content {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ // height: 60px;
|
|
|
overflow: auto;
|
|
|
- width: 100%;
|
|
|
|
|
|
- .category_box_title {
|
|
|
- font-size: 14px;
|
|
|
- font-weight: bold;
|
|
|
- color: #fff8f8;
|
|
|
- height: 39px;
|
|
|
+ .category_content {
|
|
|
+ min-width: 33%;
|
|
|
+ min-height: 60px;
|
|
|
+ //flex: 1 1 0;
|
|
|
display: flex;
|
|
|
- padding: 5px 20px;
|
|
|
- align-items: center;
|
|
|
- background: #1890ffd6;
|
|
|
+ flex-direction: column;
|
|
|
+ border-right: 1px solid #e1e1e1;
|
|
|
border-bottom: 1px solid #e1e1e1;
|
|
|
- }
|
|
|
-
|
|
|
- .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;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ // font-weight: bold;
|
|
|
|
|
|
- &:nth-child(n) {
|
|
|
- span:nth-child(1) {
|
|
|
- transform: scale(2);
|
|
|
- }
|
|
|
+ &:nth-child(n) {
|
|
|
+ span:nth-child(1) {
|
|
|
+ transform: scale(2);
|
|
|
+ }
|
|
|
|
|
|
- span:nth-child(2) {
|
|
|
- padding-top: 5px;
|
|
|
- }
|
|
|
+ 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>
|