@utogether/udp-core 2.0.0-beta.25 → 2.0.0-beta.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/403-gdcH0-Bo.js +65 -0
- package/dist/404-Se2SF97M.js +65 -0
- package/dist/500-B6j9AqLo.js +67 -0
- package/dist/AuthorityInfo-CQ8ydZvr.js +4 -0
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-C4NRvS8p.js +100 -0
- package/dist/AuthorityPanel-lVnZ5bce.js +4 -0
- package/dist/AuthorityPanel.vue_vue_type_style_index_0_lang-nsfhDlvV.js +113 -0
- package/dist/Company-BzSVBSC4.js +25 -0
- package/dist/CompanyPanel-DBjZB4aJ.js +204 -0
- package/dist/DataSet-iBHzs75s.js +147 -0
- package/dist/Department-BkgseHo8.js +25 -0
- package/dist/DepartmentPanel-Sen93_2M.js +249 -0
- package/dist/DesignPanel-pqDcwaFC.js +4 -0
- package/dist/DesignPanel.vue_vue_type_style_index_0_lang-BjtYyEw7.js +1013 -0
- package/dist/DictView-CJLG4LlE.js +110 -0
- package/dist/InvOrganization-D0Jq1IAa.js +74 -0
- package/dist/Org-CO_1WT39.js +39 -0
- package/dist/Preview-DLI4Bwel.js +48 -0
- package/dist/ReportDefine-Cw46OnJ_.js +10 -0
- package/dist/ReportDesign-D4sHTXT7.js +165 -0
- package/dist/ReportQuery-DtOCvQSN.js +74 -0
- package/dist/ReportQueryFrom-QjL-ETPq.js +4 -0
- package/dist/ReportQueryFrom.vue_vue_type_style_index_0_lang-Dj9ne87n.js +177 -0
- package/dist/ReportTemplate-BxAgc_Aj.js +161 -0
- package/dist/Role-Df77BBD-.js +25 -0
- package/dist/RoleAssign-BrunouML.js +26 -0
- package/dist/RolePanel-DSVwqhiD.js +4 -0
- package/dist/RolePanel-HLA7XBlN.js +4 -0
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CKlbqRa5.js +132 -0
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CN0rUxKz.js +152 -0
- package/dist/ScrollPanel.vue_vue_type_style_index_0_lang-D_FeSXKv.js +99 -0
- package/dist/Staff-BeL1xcRf.js +26 -0
- package/dist/StaffInfo-CIfnltyX.js +4 -0
- package/dist/StaffInfo.vue_vue_type_script_setup_true_lang-DbLFwWfG.js +107 -0
- package/dist/StaffPanel-BV2CHWac.js +4 -0
- package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-CvT-Vp2G.js +153 -0
- package/dist/SysUser-DPfNvthk.js +15 -0
- package/dist/SysUserPanel-CoLKYlQE.js +4 -0
- package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-lcO3Cjbq.js +353 -0
- package/dist/SystemMenu-sdj1dRDA.js +156 -0
- package/dist/UserInfo-CTX4hhFl.js +4 -0
- package/dist/UserInfo.vue_vue_type_style_index_0_lang-ClhCd_8z.js +160 -0
- package/dist/await-to-js.es5-Bv3Eu4mi.js +10 -0
- package/dist/childView-BDmWwJO5.js +4 -0
- package/dist/childView-Dx3ACtHa.js +4 -0
- package/dist/childView.vue_vue_type_style_index_0_lang-CfKq_0FN.js +183 -0
- package/dist/childView.vue_vue_type_style_index_0_lang-DxZNtkhd.js +143 -0
- package/dist/code-rule-cvN4gYC_.js +148 -0
- package/dist/core.es.js +24 -6
- package/dist/cron-task-B0TkxFdp.js +135 -0
- package/dist/flow-task-PoDnE_kE.js +10 -0
- package/dist/frameView-5cy5BSgS.js +43 -0
- package/dist/img/minicolors.png +0 -0
- package/dist/index-C5WRTwvI.js +3006 -0
- package/dist/layout-home-DrARg-3o.js +232 -0
- package/dist/layoutView-25v_ngk5.js +3191 -0
- package/dist/log-in-Bmz5Uhbt.js +116 -0
- package/dist/log-out-B-8m3oNj.js +130 -0
- package/dist/login-Cmp2RvvW.js +217 -0
- package/dist/login-log-CVvRgZSu.js +70 -0
- package/dist/lov-view-BATtzw2X.js +99 -0
- package/dist/menuInfo-BIvrE7nm.js +4 -0
- package/dist/menuInfo.vue_vue_type_style_index_0_lang-B6USomit.js +360 -0
- package/dist/pda-app-CzHVyeEa.js +707 -0
- package/dist/redirect-DTz8GSnv.js +15 -0
- package/dist/resource-Y5lGB38n.js +97 -0
- package/dist/su-welcome-CXA6OzBw.js +878 -0
- package/dist/sys-config-CqO03LeC.js +385 -0
- package/dist/udp-core.css +1 -2
- package/dist/useNav-C-rCgubt.js +84 -0
- package/dist/utogether-MlnyYtNS.js +4 -0
- package/dist/wecom-push-B75FLee5.js +70 -0
- package/index.ts +3 -2
- package/package.json +1 -1
- package/src/App.vue +79 -73
- package/src/api/index.ts +1 -1
- package/src/components/SuQrcode/src/index.tsx +231 -236
- package/src/components/udp/grid/index.vue +9 -11
- package/src/components/udp/utils.ts +420 -414
- package/src/layout/components/lay-panel/index.vue +2 -6
- package/src/layout/components/lay-search/components/SearchModal.vue +7 -3
- package/src/main.ts +111 -110
- package/src/router/index.ts +156 -187
- package/src/router/utils.ts +2 -3
- package/src/store/modules/system.ts +7 -0
- package/src/style/vxetable.scss +372 -364
- package/src/utils/authority/index.ts +46 -29
- package/src/utils/udp/http/index.ts +115 -64
- package/src/utils/udp/http/types.d.ts +15 -14
- package/src/views/login/login-view.vue +280 -301
- package/src/views/organization/department/DepartmentPanel.vue +3 -4
- package/src/views/system/sys/sys-config.vue +344 -344
- package/src/views/uhome/components/home-todo.vue +179 -178
- package/src/views/ulogin/login.vue +8 -41
- package/tsconfig.json +2 -3
- package/types/global.d.ts +234 -234
- package/vite.config.ts +2 -1
- package/dist/403-QwBKrRZE.js +0 -72
- package/dist/404-Cr7MbzNV.js +0 -72
- package/dist/500-B7kCOeIA.js +0 -77
- package/dist/AuthorityInfo-Dwml2K4S.js +0 -91
- package/dist/AuthorityPanel-DzPhsPpa.js +0 -98
- package/dist/Company-BhOlvl7Q.js +0 -21
- package/dist/CompanyPanel-ByhY5-Sq.js +0 -199
- package/dist/DataSet-CuGZcKC-.js +0 -141
- package/dist/Department-QvngN63N.js +0 -21
- package/dist/DepartmentPanel-BCXqC39J.js +0 -2
- package/dist/DepartmentPanel-DntGycxr.js +0 -242
- package/dist/DesignPanel-BMN4DZ0R.js +0 -1196
- package/dist/DictView-ERFqZ5VD.js +0 -100
- package/dist/File-WJXjGYxr.js +0 -89
- package/dist/InvOrganization-BwMmD8Ua.js +0 -76
- package/dist/Org-HgnOWubi.js +0 -76
- package/dist/Preview-CVZdnHB1.js +0 -45
- package/dist/ReIcon-DecitXmg.js +0 -413
- package/dist/ReportDefine-BgLM-Rjk.js +0 -10
- package/dist/ReportDesign-CjfTyyy_.js +0 -158
- package/dist/ReportQuery-CP-E0Puv.js +0 -101
- package/dist/ReportQueryFrom-D7SPPAps.js +0 -198
- package/dist/ReportTemplate-DE25zc1f.js +0 -162
- package/dist/Role-K7v_ZhFE.js +0 -21
- package/dist/RoleAssign-C16fjLaX.js +0 -22
- package/dist/RolePanel-CV-xPlYJ.js +0 -176
- package/dist/RolePanel-DPCe9k8f.js +0 -131
- package/dist/ScrollPanel-DW30pGz1.js +0 -88
- package/dist/Staff-w2ly4qd0.js +0 -22
- package/dist/StaffInfo-DPDRpz6F.js +0 -149
- package/dist/StaffPanel-DI1eTTp9.js +0 -143
- package/dist/SysUser-BMTX1cJM.js +0 -12
- package/dist/SysUserPanel-xwZdVjdp.js +0 -365
- package/dist/SystemMenu-TXhiQZVm.js +0 -154
- package/dist/UserInfo-JQqw8FMT.js +0 -194
- package/dist/_plugin-vue_export-helper-C6QCLu9I.js +0 -8
- package/dist/api-BFNxcxSN.js +0 -30
- package/dist/authority-Bi6BGB5B.js +0 -20
- package/dist/await-to-js.es5-DkWYmPXW.js +0 -10
- package/dist/childView-Bk8OD9bV.js +0 -181
- package/dist/childView-CyrcwshT.js +0 -184
- package/dist/code-rule-QFrhqFrW.js +0 -151
- package/dist/contant-Q77dU_V3.js +0 -4
- package/dist/cron-task-BpUDKEAU.js +0 -131
- package/dist/flow-task-DAc2NrDU.js +0 -11
- package/dist/frameView-Di0zJZUR.js +0 -39
- package/dist/layout-home-BVp7vYLR.js +0 -239
- package/dist/layoutView-DFUjrqAS.js +0 -2662
- package/dist/log-in-BrNB0mLz.js +0 -117
- package/dist/log-out-dYfqvzy6.js +0 -111
- package/dist/login-BdCDnuXL.js +0 -233
- package/dist/login-log-CJak-ANA.js +0 -79
- package/dist/lov-view-DkmG4K57.js +0 -95
- package/dist/menuInfo-kp2wNYOp.js +0 -346
- package/dist/mitt-CQgI7DYU.js +0 -27
- package/dist/pda-app-CA7YI37u.js +0 -589
- package/dist/redirect-N0k4tImU.js +0 -16
- package/dist/resource-CfQTHFcs.js +0 -94
- package/dist/router-CeluSGiD.js +0 -1531
- package/dist/su-welcome-JeiovGpe.js +0 -799
- package/dist/sys-config-Ddb3vBpK.js +0 -316
- package/dist/udp-core-Dhm-BlAs.js +0 -2032
- package/dist/useDataThemeChange-BCy8JBG7.js +0 -226
- package/dist/useNav-DY8FkltH.js +0 -106
- package/dist/utogether-l7JXs4Lv.js +0 -4
- package/dist/water-mark-WDQZ9YqB.js +0 -119
- package/dist/wecom-push-kWkAVRCj.js +0 -77
|
@@ -1,178 +1,179 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: levi7754 levi7754@163.com
|
|
3
|
-
* @Date: 2025-11-05 18:11:29
|
|
4
|
-
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime: 2026-
|
|
6
|
-
* @FilePath: \udp-crm\packages\udp-crm\src\views\uflow\todo\flow-todo.vue
|
|
7
|
-
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
-
-->
|
|
9
|
-
<template>
|
|
10
|
-
<div>
|
|
11
|
-
<vxe-tabs v-model="activeName" type="border-card" @tab-change="onTabChange">
|
|
12
|
-
<vxe-tab-pane name="todo" :title="$t('message.t_todoFlow')">
|
|
13
|
-
<div class="flex items-center w-full pl-2 pr-3 pt-1">
|
|
14
|
-
<vxe-input v-model="keywords" class="flex-1 w-full" placeholder="请输入任务编码或名称或标题查询" />
|
|
15
|
-
<div class="pl-1">
|
|
16
|
-
<ut-button content="search" icon="ri-search-line" @tap="onSearch" />
|
|
17
|
-
<ut-button content="reset" status="info" icon="ri-cycle-line" @tap="onReset" />
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
<ut-grid
|
|
21
|
-
ref="xgrid"
|
|
22
|
-
:columns="columns"
|
|
23
|
-
:data="data.todo"
|
|
24
|
-
:events="events"
|
|
25
|
-
:editable="false"
|
|
26
|
-
:need-export="false"
|
|
27
|
-
:proxy-config="{ enabled: false }"
|
|
28
|
-
:toolbar-config="{ enabled: false }"
|
|
29
|
-
height="360"
|
|
30
|
-
/>
|
|
31
|
-
</vxe-tab-pane>
|
|
32
|
-
<vxe-tab-pane name="finish" lazy :title="$t('message.t_finishFlow')">
|
|
33
|
-
<div class="flex items-center w-full pl-2 pr-3 pt-1">
|
|
34
|
-
<vxe-input v-model="keywords" class="flex-1 w-full" placeholder="请输入任务编码或名称或标题查询" />
|
|
35
|
-
<div class="pl-1">
|
|
36
|
-
<ut-button content="search" icon="ri-search-line" @tap="onSearch" />
|
|
37
|
-
<ut-button content="reset" status="info" icon="ri-cycle-line" @tap="onReset" />
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
<ut-grid
|
|
41
|
-
ref="ygrid"
|
|
42
|
-
:columns="columns"
|
|
43
|
-
:data="data.finish"
|
|
44
|
-
:events="events"
|
|
45
|
-
:editable="false"
|
|
46
|
-
:need-export="false"
|
|
47
|
-
:proxy-config="{ enabled: false }"
|
|
48
|
-
:toolbar-config="{ enabled: false }"
|
|
49
|
-
height="360"
|
|
50
|
-
/>
|
|
51
|
-
/>
|
|
52
|
-
</vxe-tab-pane>
|
|
53
|
-
</vxe-tabs>
|
|
54
|
-
<vxe-modal v-model="showModal" :loading="loading" :title="flowTitle" height="360">
|
|
55
|
-
<vxe-image :src="imageUrl" :height="520" width="75%" />
|
|
56
|
-
</vxe-modal>
|
|
57
|
-
</div>
|
|
58
|
-
</template>
|
|
59
|
-
|
|
60
|
-
<script setup lang="tsx">
|
|
61
|
-
import { useRouter } from 'vue-router';
|
|
62
|
-
import { ref, onMounted, nextTick } from 'vue';
|
|
63
|
-
|
|
64
|
-
import { cookies } from '@utogether/utils';
|
|
65
|
-
import { isEmpty } from 'xe-utils';
|
|
66
|
-
import to from 'await-to-js';
|
|
67
|
-
import { getServiceApi } from '../../../api';
|
|
68
|
-
import { kLOGINER } from '../../../contant';
|
|
69
|
-
const router = useRouter();
|
|
70
|
-
|
|
71
|
-
const xgrid = ref(null);
|
|
72
|
-
const ygrid = ref(null);
|
|
73
|
-
const activeName = ref('todo');
|
|
74
|
-
const showModal = ref(false);
|
|
75
|
-
const loading = ref(false);
|
|
76
|
-
const imageUrl = ref('');
|
|
77
|
-
const keywords = ref(null);
|
|
78
|
-
const flowTitle = ref(null);
|
|
79
|
-
const data = ref({ todo: [], finish: [], todoPage: {}, finishPage: {} });
|
|
80
|
-
|
|
81
|
-
const url = '/uwfl/activiti';
|
|
82
|
-
|
|
83
|
-
const pagination = { pageNum: 1, pageSize: 20 };
|
|
84
|
-
|
|
85
|
-
const columns = [
|
|
86
|
-
{ field: 'taskId' },
|
|
87
|
-
{ field: 'taskName' },
|
|
88
|
-
{ field: 'taskTitle' },
|
|
89
|
-
{ field: 'createDate' },
|
|
90
|
-
{ field: 'createBy', title: 'message.creator' },
|
|
91
|
-
{
|
|
92
|
-
field: 'operate',
|
|
93
|
-
width: 90,
|
|
94
|
-
fixed: 'right',
|
|
95
|
-
slots: {
|
|
96
|
-
default: ({ row }) => {
|
|
97
|
-
return [
|
|
98
|
-
<>
|
|
99
|
-
<ut-button
|
|
100
|
-
visible={activeName.value === 'todo'}
|
|
101
|
-
content="todoTask"
|
|
102
|
-
icon="ri-send-plane-line"
|
|
103
|
-
onTap={() => handleTodo(row, 'edit')}
|
|
104
|
-
/>
|
|
105
|
-
<ut-button
|
|
106
|
-
visible={activeName.value === 'finish'}
|
|
107
|
-
content="look"
|
|
108
|
-
status="info"
|
|
109
|
-
onTap={() => handleTodo(row)}
|
|
110
|
-
/>
|
|
111
|
-
</>
|
|
112
|
-
];
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
];
|
|
117
|
-
|
|
118
|
-
const events = {
|
|
119
|
-
pageChange({ pageSize, currentPage }) {
|
|
120
|
-
data.value[`${activeName.value}Page`] = { pageNum: currentPage, pageSize };
|
|
121
|
-
getDataList(activeName.value, keywords.value);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const onSearch = () => {
|
|
126
|
-
data.value[`${activeName.value}Page`] = pagination;
|
|
127
|
-
getDataList(activeName.value, keywords.value);
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
const onReset = () => {
|
|
131
|
-
keywords.value = null;
|
|
132
|
-
onSearch();
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
const getDataList = async (type, searchField) => {
|
|
136
|
-
console.log(type);
|
|
137
|
-
const uri = type === 'todo' ? '/listTasksToBeHandle' : '/listHandledTask';
|
|
138
|
-
const params = {
|
|
139
|
-
...data.value[`${activeName.value}Page`],
|
|
140
|
-
searchField,
|
|
141
|
-
userName: cookies.get(kLOGINER)
|
|
142
|
-
};
|
|
143
|
-
const [err, res]: any = await to(getServiceApi().post(url + uri, params));
|
|
144
|
-
if (err) return;
|
|
145
|
-
data.value[type] = res.list;
|
|
146
|
-
data.value[type + 'Page'].total = res.total;
|
|
147
|
-
|
|
148
|
-
const grid = type === 'todo' ? xgrid : ygrid;
|
|
149
|
-
grid.value.getInstance().loadData(res.list);
|
|
150
|
-
grid.value.setPagerConfig({ ...data.value[type + 'Page'] });
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const onTabChange = async ({ value }) => {
|
|
154
|
-
const grid = value === 'todo' ? xgrid : ygrid;
|
|
155
|
-
const operate = columns.find(f => f.field === 'operate');
|
|
156
|
-
operate.width = value === 'todo' ? 160 : 80;
|
|
157
|
-
await nextTick();
|
|
158
|
-
grid.value.getInstance().reloadColumn(columns);
|
|
159
|
-
const page = data.value[`${activeName.value}Page`];
|
|
160
|
-
data.value[`${activeName.value}Page`] = isEmpty(page) ? page : pagination;
|
|
161
|
-
getDataList(activeName.value, keywords.value);
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
const handleTodo = (row, dataStatus = 'detail') => {
|
|
165
|
-
console.log(row);
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: levi7754 levi7754@163.com
|
|
3
|
+
* @Date: 2025-11-05 18:11:29
|
|
4
|
+
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
+
* @LastEditTime: 2026-05-18 13:58:13
|
|
6
|
+
* @FilePath: \udp-crm\packages\udp-crm\src\views\uflow\todo\flow-todo.vue
|
|
7
|
+
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
+
-->
|
|
9
|
+
<template>
|
|
10
|
+
<div>
|
|
11
|
+
<vxe-tabs v-model="activeName" type="border-card" @tab-change="onTabChange">
|
|
12
|
+
<vxe-tab-pane name="todo" :title="$t('message.t_todoFlow')">
|
|
13
|
+
<div class="flex items-center w-full pl-2 pr-3 pt-1">
|
|
14
|
+
<vxe-input v-model="keywords" class="flex-1 w-full" placeholder="请输入任务编码或名称或标题查询" />
|
|
15
|
+
<div class="pl-1">
|
|
16
|
+
<ut-button content="search" icon="ri-search-line" @tap="onSearch" />
|
|
17
|
+
<ut-button content="reset" status="info" icon="ri-cycle-line" @tap="onReset" />
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<ut-grid
|
|
21
|
+
ref="xgrid"
|
|
22
|
+
:columns="columns"
|
|
23
|
+
:data="data.todo"
|
|
24
|
+
:events="events"
|
|
25
|
+
:editable="false"
|
|
26
|
+
:need-export="false"
|
|
27
|
+
:proxy-config="{ enabled: false }"
|
|
28
|
+
:toolbar-config="{ enabled: false }"
|
|
29
|
+
height="360"
|
|
30
|
+
/>
|
|
31
|
+
</vxe-tab-pane>
|
|
32
|
+
<vxe-tab-pane name="finish" lazy :title="$t('message.t_finishFlow')">
|
|
33
|
+
<div class="flex items-center w-full pl-2 pr-3 pt-1">
|
|
34
|
+
<vxe-input v-model="keywords" class="flex-1 w-full" placeholder="请输入任务编码或名称或标题查询" />
|
|
35
|
+
<div class="pl-1">
|
|
36
|
+
<ut-button content="search" icon="ri-search-line" @tap="onSearch" />
|
|
37
|
+
<ut-button content="reset" status="info" icon="ri-cycle-line" @tap="onReset" />
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<ut-grid
|
|
41
|
+
ref="ygrid"
|
|
42
|
+
:columns="columns"
|
|
43
|
+
:data="data.finish"
|
|
44
|
+
:events="events"
|
|
45
|
+
:editable="false"
|
|
46
|
+
:need-export="false"
|
|
47
|
+
:proxy-config="{ enabled: false }"
|
|
48
|
+
:toolbar-config="{ enabled: false }"
|
|
49
|
+
height="360"
|
|
50
|
+
/>
|
|
51
|
+
/>
|
|
52
|
+
</vxe-tab-pane>
|
|
53
|
+
</vxe-tabs>
|
|
54
|
+
<vxe-modal v-model="showModal" :loading="loading" :title="flowTitle" height="360">
|
|
55
|
+
<vxe-image :src="imageUrl" :height="520" width="75%" />
|
|
56
|
+
</vxe-modal>
|
|
57
|
+
</div>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<script setup lang="tsx">
|
|
61
|
+
import { useRouter } from 'vue-router';
|
|
62
|
+
import { ref, onMounted, nextTick } from 'vue';
|
|
63
|
+
|
|
64
|
+
import { cookies } from '@utogether/utils';
|
|
65
|
+
import { isEmpty } from 'xe-utils';
|
|
66
|
+
import to from 'await-to-js';
|
|
67
|
+
import { getServiceApi } from '../../../api';
|
|
68
|
+
import { kLOGINER } from '../../../contant';
|
|
69
|
+
const router = useRouter();
|
|
70
|
+
|
|
71
|
+
const xgrid = ref(null);
|
|
72
|
+
const ygrid = ref(null);
|
|
73
|
+
const activeName = ref('todo');
|
|
74
|
+
const showModal = ref(false);
|
|
75
|
+
const loading = ref(false);
|
|
76
|
+
const imageUrl = ref('');
|
|
77
|
+
const keywords = ref(null);
|
|
78
|
+
const flowTitle = ref(null);
|
|
79
|
+
const data = ref({ todo: [], finish: [], todoPage: {}, finishPage: {} });
|
|
80
|
+
|
|
81
|
+
const url = '/uwfl/activiti';
|
|
82
|
+
|
|
83
|
+
const pagination = { pageNum: 1, pageSize: 20 };
|
|
84
|
+
|
|
85
|
+
const columns = [
|
|
86
|
+
{ field: 'taskId' },
|
|
87
|
+
{ field: 'taskName' },
|
|
88
|
+
{ field: 'taskTitle' },
|
|
89
|
+
{ field: 'createDate' },
|
|
90
|
+
{ field: 'createBy', title: 'message.creator' },
|
|
91
|
+
{
|
|
92
|
+
field: 'operate',
|
|
93
|
+
width: 90,
|
|
94
|
+
fixed: 'right',
|
|
95
|
+
slots: {
|
|
96
|
+
default: ({ row }) => {
|
|
97
|
+
return [
|
|
98
|
+
<>
|
|
99
|
+
<ut-button
|
|
100
|
+
visible={activeName.value === 'todo'}
|
|
101
|
+
content="todoTask"
|
|
102
|
+
icon="ri-send-plane-line"
|
|
103
|
+
onTap={() => handleTodo(row, 'edit')}
|
|
104
|
+
/>
|
|
105
|
+
<ut-button
|
|
106
|
+
visible={activeName.value === 'finish'}
|
|
107
|
+
content="look"
|
|
108
|
+
status="info"
|
|
109
|
+
onTap={() => handleTodo(row)}
|
|
110
|
+
/>
|
|
111
|
+
</>
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
|
|
118
|
+
const events = {
|
|
119
|
+
pageChange({ pageSize, currentPage }) {
|
|
120
|
+
data.value[`${activeName.value}Page`] = { pageNum: currentPage, pageSize };
|
|
121
|
+
getDataList(activeName.value, keywords.value);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
const onSearch = () => {
|
|
126
|
+
data.value[`${activeName.value}Page`] = pagination;
|
|
127
|
+
getDataList(activeName.value, keywords.value);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
const onReset = () => {
|
|
131
|
+
keywords.value = null;
|
|
132
|
+
onSearch();
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const getDataList = async (type, searchField) => {
|
|
136
|
+
console.log(type);
|
|
137
|
+
const uri = type === 'todo' ? '/listTasksToBeHandle' : '/listHandledTask';
|
|
138
|
+
const params = {
|
|
139
|
+
...data.value[`${activeName.value}Page`],
|
|
140
|
+
searchField,
|
|
141
|
+
userName: cookies.get(kLOGINER)
|
|
142
|
+
};
|
|
143
|
+
const [err, res]: any = await to(getServiceApi().post(url + uri, params));
|
|
144
|
+
if (err) return;
|
|
145
|
+
data.value[type] = res.list;
|
|
146
|
+
data.value[type + 'Page'].total = res.total;
|
|
147
|
+
|
|
148
|
+
const grid = type === 'todo' ? xgrid : ygrid;
|
|
149
|
+
grid.value.getInstance().loadData(res.list);
|
|
150
|
+
grid.value.setPagerConfig({ ...data.value[type + 'Page'] });
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const onTabChange = async ({ value }) => {
|
|
154
|
+
const grid = value === 'todo' ? xgrid : ygrid;
|
|
155
|
+
const operate = columns.find(f => f.field === 'operate');
|
|
156
|
+
operate.width = value === 'todo' ? 160 : 80;
|
|
157
|
+
await nextTick();
|
|
158
|
+
grid.value.getInstance().reloadColumn(columns);
|
|
159
|
+
const page = data.value[`${activeName.value}Page`];
|
|
160
|
+
data.value[`${activeName.value}Page`] = isEmpty(page) ? page : pagination;
|
|
161
|
+
getDataList(activeName.value, keywords.value);
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
const handleTodo = (row, dataStatus = 'detail') => {
|
|
165
|
+
console.log(row);
|
|
166
|
+
const { sourceKey, sourceId, processInstId } = row;
|
|
167
|
+
const data = Object.assign(
|
|
168
|
+
{ dataStatus, workflowCode: sourceKey, businessKey: sourceId, processInstanceId: processInstId },
|
|
169
|
+
row
|
|
170
|
+
);
|
|
171
|
+
sessionStorage.setItem('kPROCESSKEY', JSON.stringify(data));
|
|
172
|
+
router.push({ name: 'FlowApproval' });
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
onMounted(() => {
|
|
176
|
+
data.value[`${activeName.value}Page`] = pagination;
|
|
177
|
+
getDataList('todo', null);
|
|
178
|
+
});
|
|
179
|
+
</script>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
:enter="{ opacity: 1, y: 0, transition: { delay: 200 } }"
|
|
17
17
|
>
|
|
18
18
|
<div class="icon">
|
|
19
|
-
<
|
|
19
|
+
<i class="ri-user-fill ri-lg" />
|
|
20
20
|
</div>
|
|
21
21
|
<div>
|
|
22
22
|
<i class="ri-logout-box-line" />
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
}"
|
|
43
43
|
>
|
|
44
44
|
<div class="icon">
|
|
45
|
-
<
|
|
45
|
+
<i class="ri-lock-fill ri-lg" />
|
|
46
46
|
</div>
|
|
47
47
|
<div>
|
|
48
48
|
<h5>{{ $t('message.udp.password') }}</h5>
|
|
@@ -69,13 +69,13 @@
|
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
71
|
<div v-if="sysConfig.techSupport === 'Y'" class="absolute flex justify-center w-full font-bold bottom-1">
|
|
72
|
-
<img :src="utogether" class="
|
|
72
|
+
<img :src="utogether" class="h-10!" style="height: 40px" />
|
|
73
73
|
<span class="flex flex-row justify-center" style="width: 300px">
|
|
74
74
|
<span style="font-size: 0; text-align: center">
|
|
75
75
|
<a
|
|
76
76
|
href="http://www.u-together.cn/"
|
|
77
77
|
target="_blank"
|
|
78
|
-
class="
|
|
78
|
+
class="inline-block!"
|
|
79
79
|
style="margin-bottom: -5px; font-size: 17px; color: #fff; mix-blend-mode: difference"
|
|
80
80
|
:style="{ color: sysConfig.baseColor || '#FFF' }"
|
|
81
81
|
>
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
<a
|
|
85
85
|
href="http://www.u-together.cn/"
|
|
86
86
|
target="_blank"
|
|
87
|
-
class="
|
|
87
|
+
class="inline-block!"
|
|
88
88
|
style="font-size: 12px; color: #fff; mix-blend-mode: difference"
|
|
89
89
|
:style="{ color: sysConfig.baseColor || '#FFF' }"
|
|
90
90
|
>
|
|
@@ -102,7 +102,7 @@ export default { name: 'LoginView' };
|
|
|
102
102
|
</script>
|
|
103
103
|
|
|
104
104
|
<script setup lang="ts">
|
|
105
|
-
import { ref, reactive, onBeforeMount
|
|
105
|
+
import { ref, reactive, onBeforeMount } from 'vue';
|
|
106
106
|
import { useRouter } from 'vue-router';
|
|
107
107
|
import { useI18n } from 'vue-i18n';
|
|
108
108
|
// import io from 'socket.io-client';
|
|
@@ -115,16 +115,12 @@ import { useSystemStoreHook } from '../../store/modules/system';
|
|
|
115
115
|
import { useLayout } from '../../layout/hooks/useLayout';
|
|
116
116
|
import { useDataThemeChange } from '../../layout/hooks/useDataThemeChange';
|
|
117
117
|
import { getBaseURL, getServiceApi } from '../../api';
|
|
118
|
-
import {
|
|
118
|
+
import { userMonitor } from '../../api/user';
|
|
119
119
|
import { kTOKEN, kCKTOKEN, kLOGINER, kSYSCONFIG, kCRYPTO, kPASSWORD } from '../../contant';
|
|
120
120
|
import { onLogined, onBeforeLogined } from '../../utils/lifecycle';
|
|
121
|
-
// import bg from '../../assets/svg/bg.svg?component';
|
|
122
121
|
import utogether from '../../assets/images/utogether.png';
|
|
123
122
|
import welcome from '../../assets/images/welcome.png';
|
|
124
123
|
|
|
125
|
-
import LockFill from '@iconify-icons/ri/lock-fill';
|
|
126
|
-
import UserFill from '@iconify-icons/ri/user-3-fill';
|
|
127
|
-
|
|
128
124
|
interface IContextProps {
|
|
129
125
|
username: string;
|
|
130
126
|
passWord: string;
|
|
@@ -212,7 +208,7 @@ const onLogin = async () => {
|
|
|
212
208
|
cookies.set(kLOGINER, username);
|
|
213
209
|
|
|
214
210
|
// initSocket(username);
|
|
215
|
-
await delay(
|
|
211
|
+
await delay(64);
|
|
216
212
|
// 执行登录成功后的函数
|
|
217
213
|
onLogined();
|
|
218
214
|
router.push('/');
|
|
@@ -272,30 +268,6 @@ const cacheToken = token => {
|
|
|
272
268
|
// };
|
|
273
269
|
|
|
274
270
|
const getSysConfig = async () => {
|
|
275
|
-
// const [err, data]: [Error, any] = await to(serviceApi.get('/upfm/v1/sysConfig', {}));
|
|
276
|
-
// if (!err) {
|
|
277
|
-
// const config: any = {};
|
|
278
|
-
// data.list?.forEach(item => {
|
|
279
|
-
// config[item.configCode] = item.configValue;
|
|
280
|
-
// if (item.fileName) {
|
|
281
|
-
// config[item.configCode] = getBaseURL() + '/ufil' + item.configValue;
|
|
282
|
-
// }
|
|
283
|
-
// });
|
|
284
|
-
// const title = data.list?.find(f => f.configCode === 'title')?.configValue;
|
|
285
|
-
// config['title'] = title || 'U-DP';
|
|
286
|
-
// sysConfig.value = config;
|
|
287
|
-
// bgStyle.value = {
|
|
288
|
-
// backgroundImage: config['backgroundImg'] ? `url(${config['backgroundImg']})` : ``,
|
|
289
|
-
// // backgroundImage: config['backgroundImg'] ? `url(${config['backgroundImg']})` : `url1(${welcome})`,
|
|
290
|
-
// backgroundRepeat: 'no-repeat',
|
|
291
|
-
// backgroundPosition: 'center'
|
|
292
|
-
// };
|
|
293
|
-
// console.log('bgStyle=', bgStyle);
|
|
294
|
-
// const favicon = useFavicon();
|
|
295
|
-
// favicon.value = config.favicon || utogether;
|
|
296
|
-
// storageLocal.setItem(kSYSCONFIG, config);
|
|
297
|
-
// }
|
|
298
|
-
|
|
299
271
|
sysConfig.value = storageLocal.getItem(kSYSCONFIG);
|
|
300
272
|
|
|
301
273
|
bgStyle.value = {
|
|
@@ -310,13 +282,8 @@ const getSysConfig = async () => {
|
|
|
310
282
|
|
|
311
283
|
dataThemeChange(overallStyle.value);
|
|
312
284
|
|
|
313
|
-
onMounted(() => {
|
|
314
|
-
initDict().then(res => useSystemStoreHook().setDict(res));
|
|
315
|
-
});
|
|
316
|
-
|
|
317
285
|
onBeforeMount(() => {
|
|
318
286
|
getSysConfig();
|
|
319
|
-
// cookies.addPrefix('sitzone-mes');
|
|
320
287
|
});
|
|
321
288
|
</script>
|
|
322
289
|
|
package/tsconfig.json
CHANGED
|
@@ -14,14 +14,13 @@
|
|
|
14
14
|
"allowSyntheticDefaultImports": true,
|
|
15
15
|
"forceConsistentCasingInFileNames": true,
|
|
16
16
|
"sourceMap": true,
|
|
17
|
-
"baseUrl": ".",
|
|
18
17
|
"allowJs": false,
|
|
19
18
|
"resolveJsonModule": true,
|
|
20
19
|
"lib": ["dom", "esnext"],
|
|
21
20
|
"incremental": true,
|
|
22
21
|
"paths": {
|
|
23
|
-
"@/*": ["src/*"],
|
|
24
|
-
"@build/*": ["build/*"]
|
|
22
|
+
"@/*": ["./src/*"],
|
|
23
|
+
"@build/*": ["./build/*"]
|
|
25
24
|
},
|
|
26
25
|
"types": ["node", "vite/client", "element-plus/global", "jquery"]
|
|
27
26
|
},
|