@utogether/udp-core 1.0.1-beta.2 → 1.0.1-beta.21
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/build/plugins.ts +8 -1
- package/dist/{403-BBQoJwTM.js → 403-B_l9Q9w_.js} +1 -1
- package/dist/{404-BbJPSIWM.js → 404-33KZO3Vz.js} +1 -1
- package/dist/{500-BtFL9R4M.js → 500-oI74ZkQH.js} +1 -1
- package/dist/{AuthorityInfo-DhiwCeLN.js → AuthorityInfo-CNoxrmPS.js} +1 -1
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-CO01EWKQ.js +100 -0
- package/dist/{Company-CGqmslx-.js → Company-DOCRUvUs.js} +3 -3
- package/dist/{CompanyPanel-hlDsxD-6.js → CompanyPanel-Do2JlJ3U.js} +26 -26
- package/dist/{Department-BZyJtacc.js → Department-BAlx8Am2.js} +3 -3
- package/dist/{DepartmentPanel-D-a_EBFt.js → DepartmentPanel-BvQUkRaM.js} +25 -25
- package/dist/{DesignPanel-Bl4luWDV.js → DesignPanel-BMr-c76z.js} +1 -1
- package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-I8C3iGvz.js → DesignPanel.vue_vue_type_style_index_0_lang-COERxrYp.js} +28 -30
- package/dist/DictView-DkG5lo6m.js +109 -0
- package/dist/InvOrganization-D_PuTpPt.js +74 -0
- package/dist/Org-CtVfZAjI.js +39 -0
- package/dist/{Preview-pHD84xqI.js → Preview-Cuj_akRk.js} +2 -2
- package/dist/{ReportDefine-DnnCNQWS.js → ReportDefine-CM2aNEVp.js} +1 -1
- package/dist/{ReportDesign-BnI_Q4pg.js → ReportDesign-B1y79NKM.js} +43 -43
- package/dist/{ReportQuery-Dby2MmtM.js → ReportQuery-CZEfKCWP.js} +1 -1
- package/dist/{ReportQueryFrom-Blm1N8P1.js → ReportQueryFrom-C_cUB8bs.js} +1 -1
- package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CnG_Ybnt.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-DBqJnvTQ.js} +1 -1
- package/dist/{ReportTemplate-D65RXRY_.js → ReportTemplate-BprAuCb1.js} +28 -28
- package/dist/{Role-eFZoTpXc.js → Role-CAaLVGNy.js} +6 -6
- package/dist/{RoleAssign-D9-Y3UNz.js → RoleAssign-DuFp2Ty7.js} +9 -9
- package/dist/{RolePanel-DlFw6HSf.js → RolePanel-BRStoO0e.js} +1 -1
- package/dist/{RolePanel-CoUOc3sX.js → RolePanel-FnyN7LiS.js} +1 -1
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CNIA7zdk.js +132 -0
- package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Clwk-MHw.js → RolePanel.vue_vue_type_script_setup_true_lang-CS7drFhn.js} +44 -38
- package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-M2FQJwPU.js → ScrollPanel.vue_vue_type_style_index_0_lang-CEnqhlSE.js} +23 -23
- package/dist/{Staff-DFBLCsAd.js → Staff-D493jHwR.js} +3 -3
- package/dist/{StaffInfo-d2CK0oBA.js → StaffInfo-suU_pcyD.js} +1 -1
- package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-4m8wK9tq.js → StaffInfo.vue_vue_type_script_setup_true_lang-DV16a2Nz.js} +16 -16
- package/dist/{StaffPanel-D6aWLKN3.js → StaffPanel-BbYWu-xZ.js} +1 -1
- package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-C7YT2CVb.js → StaffPanel.vue_vue_type_script_setup_true_lang-CfRIanr5.js} +2 -2
- package/dist/{SysUser-BdZvYxQH.js → SysUser-YXOsIVpJ.js} +2 -2
- package/dist/{SysUserPanel-BIVa6LLr.js → SysUserPanel-C1tQzih_.js} +1 -1
- package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BfT40pDr.js +298 -0
- package/dist/{SystemMenu-C-5VKlHK.js → SystemMenu-DzKl8RAz.js} +33 -33
- package/dist/{UserInfo-DqXCRZts.js → UserInfo-CYeYQNq8.js} +1 -1
- package/dist/{UserInfo.vue_vue_type_style_index_0_lang-N3TwfpPx.js → UserInfo.vue_vue_type_style_index_0_lang-DYVdi2Ck.js} +41 -39
- package/dist/{childView-B2lSsqS3.js → childView-BNYdfnMx.js} +1 -1
- package/dist/{childView-DRUNqgjI.js → childView-C6rHVrT6.js} +1 -1
- package/dist/{childView.vue_vue_type_style_index_0_lang-B9XBDDU_.js → childView.vue_vue_type_style_index_0_lang-6o00J0a7.js} +1 -1
- package/dist/{childView.vue_vue_type_style_index_0_lang-oGriyFTv.js → childView.vue_vue_type_style_index_0_lang-O_zWFjYY.js} +43 -43
- package/dist/{code-rule-DZC9T6cl.js → code-rule-MxcRbYZR.js} +13 -15
- package/dist/core.es.js +18 -10
- package/dist/{cron-task-BJwPeA5F.js → cron-task-B0yfTtm6.js} +11 -11
- package/dist/{frameView-C6wkvok-.js → frameView-DtHY5dLd.js} +1 -1
- package/dist/img/l_img.svg +1 -1
- package/dist/img/minicolors.png +0 -0
- package/dist/img/v_img.svg +1 -1
- package/dist/index-BWtOrjW2.js +4603 -0
- package/dist/{layoutView-CeJBpZb_.js → layoutView-D0Q7EG0u.js} +1564 -1559
- package/dist/{log-in-e7D5Ss1P.js → log-in-CpGqc33f.js} +5 -4
- package/dist/{log-out--RRncZhN.js → log-out-D1b4VRMZ.js} +30 -24
- package/dist/login-CuO8YgN1.js +249 -0
- package/dist/{login-log-CvVnyGi3.js → login-log-BNRXLeMi.js} +4 -3
- package/dist/{lov-view-DRF-99U4.js → lov-view-DcRVGqsD.js} +5 -5
- package/dist/{menuInfo-3Sjvs9nM.js → menuInfo-ccOqhCC8.js} +1 -1
- package/dist/{menuInfo.vue_vue_type_style_index_0_lang-DrQ560nm.js → menuInfo.vue_vue_type_style_index_0_lang-DTBPgTe_.js} +34 -32
- package/dist/{pda-app-B9tn7jdv.js → pda-app-D7n4oxyn.js} +202 -188
- package/dist/{resource-BqnxbQNe.js → resource-_h2OtsKS.js} +18 -18
- package/dist/{su-welcome-VwifUK_O.js → su-welcome-Co6e4akE.js} +118 -120
- package/dist/sys-config-C6Es9vZl.js +355 -0
- package/dist/udp-core.css +1 -9
- package/dist/utogether-MlnyYtNS.js +4 -0
- package/index.ts +17 -5
- package/package.json +1 -1
- package/src/App.vue +2 -7
- package/src/api/http.ts +1 -4
- package/src/api/index.ts +5 -3
- package/src/api/user.ts +2 -2
- package/src/components/SuCharts/src/UserInfo.vue +3 -3
- package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
- package/src/components/udp/form/form.vue +109 -0
- package/src/components/udp/grid/index.vue +509 -0
- package/src/components/udp/index.ts +4 -4
- package/src/components/udp/utils.ts +405 -40
- package/src/directives/permission/index.ts +1 -1
- package/src/layout/components/lay-navbar/index.vue +9 -7
- package/src/layout/components/lay-panel/index.vue +3 -3
- package/src/layout/components/lay-search/index.vue +1 -1
- package/src/layout/components/lay-select-org/index.vue +4 -9
- package/src/layout/components/lay-sidebar/breadCrumb.vue +1 -1
- package/src/layout/components/lay-sidebar/horizontal.vue +4 -5
- package/src/layout/components/lay-sidebar/mixNav.vue +6 -4
- package/src/layout/components/lay-sidebar/sidebar-logo.vue +94 -98
- package/src/layout/components/lay-tag/index.vue +596 -625
- package/src/layout/hooks/useTag.ts +223 -233
- package/src/layout/layoutView.vue +215 -215
- package/src/layout/types.ts +3 -2
- package/src/main.ts +39 -31
- package/src/plugins/i18n/en.ts +26 -13
- package/src/plugins/i18n/zh.ts +35 -16
- package/src/plugins/vxe-table/index.ts +65 -2
- package/src/plugins/vxe-table/render.tsx +945 -817
- package/src/router/index.ts +186 -183
- package/src/router/modules/remaining.ts +1 -26
- package/src/router/utils.ts +393 -377
- package/src/store/modules/app.ts +1 -3
- package/src/store/modules/multiTags.ts +110 -109
- package/src/store/modules/permission.ts +113 -103
- package/src/store/modules/system.ts +1 -3
- package/src/style/button.scss +10 -3
- package/src/style/login.css +1 -1
- package/src/style/tailwind.css +1 -68
- package/src/style/vxetable.scss +348 -256
- package/src/utils/authority/index.ts +1 -1
- package/src/utils/index.ts +3 -1
- package/src/utils/propTypes.ts +1 -6
- package/src/views/login/login-view.vue +6 -20
- package/src/views/organization/company/CompanyPanel.vue +2 -2
- package/src/views/organization/department/DepartmentPanel.vue +269 -283
- package/src/views/organization/inv-org/InvOrganization.vue +23 -9
- package/src/views/organization/org/Org.vue +9 -5
- package/src/views/system/menu/SystemMenu.vue +183 -197
- package/src/views/system/menu/menuInfo.vue +8 -18
- package/src/views/system/role/AuthorityInfo.vue +19 -15
- package/src/views/system/role/Role.vue +1 -5
- package/src/views/system/role/RolePanel.vue +11 -2
- package/src/views/system/role/UserInfo.vue +11 -9
- package/src/views/system/role-assign/RoleAssign.vue +2 -2
- package/src/views/system/role-assign/RolePanel.vue +12 -9
- package/src/views/system/sys/sys-config.vue +66 -21
- package/src/views/system/sysUser/SysUserPanel.vue +44 -43
- package/src/views/uapp/pda/pda-app.vue +48 -16
- package/src/views/udev/coderule/code-rule.vue +120 -121
- package/src/views/udev/dict/DictView.vue +16 -4
- package/src/views/udev/dict/childView.vue +8 -8
- package/src/views/ufile/aggregation/File.vue +5 -5
- package/src/views/ufile/file/water-mark.vue +14 -14
- package/src/views/uhome/components/menu-favorite.vue +314 -331
- package/src/views/uhome/su-welcome.vue +3 -3
- package/src/views/ulogin/login.vue +19 -12
- package/src/views/upms/interface/log-in.vue +100 -106
- package/src/views/upms/interface/log-out.vue +2 -8
- package/src/views/upms/user/login-log.vue +54 -60
- package/src/views/urpt/design/DesignPanel.vue +16 -35
- package/src/views/urpt/design/Preview.vue +1 -0
- package/src/views/urpt/design/ReportDesign.vue +17 -23
- package/src/views/urpt/static-resource/resource.vue +3 -3
- package/src/views/urpt/template/ReportTemplate.vue +7 -7
- package/types/global.d.ts +4 -9
- package/vite.config.ts +6 -2
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-Duyweh89.js +0 -102
- package/dist/DictView-B4a7Hs1X.js +0 -95
- package/dist/InvOrganization-q4T3y8dQ.js +0 -260
- package/dist/Org-BTGTrAVz.js +0 -35
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DKHgNWQP.js +0 -126
- package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BsBKpYR7.js +0 -288
- package/dist/index-DZc3qRTx.js +0 -2650
- package/dist/login-BOxwzwdB.js +0 -252
- package/dist/sys-config-C0-gSBFO.js +0 -277
- package/dist/utogether-Di1byIum.js +0 -182
- package/src/components/udp/form-upload.vue +0 -183
- package/src/components/udp/modal-form.vue +0 -180
- package/src/utils/http/index.ts +0 -297
- package/src/utils/http/types.d.ts +0 -46
- package/src/utils/udp/useRender.ts +0 -420
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
ref="xgrid"
|
|
12
12
|
:items="formItems"
|
|
13
13
|
:columns="columns"
|
|
14
|
+
:check-method="checkMethod"
|
|
14
15
|
url="/uums/role"
|
|
15
16
|
mode="form"
|
|
16
17
|
@buttonClick="onButtonClick"
|
|
@@ -39,7 +40,7 @@
|
|
|
39
40
|
:url="url"
|
|
40
41
|
:method="method"
|
|
41
42
|
width="400"
|
|
42
|
-
height="
|
|
43
|
+
height="240"
|
|
43
44
|
data-status="update"
|
|
44
45
|
:title="$t('message.title.authEdit')"
|
|
45
46
|
@close="data.showModalView = false"
|
|
@@ -105,7 +106,7 @@ const columns = [
|
|
|
105
106
|
// <ut-button content="edit" onTap={() => handleShowChild(row, 'update')} />
|
|
106
107
|
return [
|
|
107
108
|
<>
|
|
108
|
-
<ut-button content="edit" auth="edit" onTap={() => handleEdit(row)} />
|
|
109
|
+
<ut-button content="edit" auth="edit" disabled={row.roleCode === 'admin'} onTap={() => handleEdit(row)} />
|
|
109
110
|
<ut-button
|
|
110
111
|
content="dispatchUser"
|
|
111
112
|
status="warning"
|
|
@@ -174,6 +175,10 @@ const handleDispathUser = record => {
|
|
|
174
175
|
};
|
|
175
176
|
// 启用/禁用
|
|
176
177
|
async function handleClick({ row }) {
|
|
178
|
+
if (row.roleCode === 'admin') {
|
|
179
|
+
row.enabled = '1';
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
177
182
|
await getServiceApi().put('/uums/role/singleUpdate', row);
|
|
178
183
|
xgrid.value.refreshData();
|
|
179
184
|
}
|
|
@@ -183,6 +188,10 @@ const onClose = () => {
|
|
|
183
188
|
data.showAuthView = false;
|
|
184
189
|
data.showUserView = false;
|
|
185
190
|
};
|
|
191
|
+
|
|
192
|
+
const checkMethod = row => {
|
|
193
|
+
return row.roleCode !== 'admin';
|
|
194
|
+
};
|
|
186
195
|
// 拷贝当前列表项的数据(字典类型)
|
|
187
196
|
// const { clipboardRef } = useCopyToClipboard();
|
|
188
197
|
// const cellDBLClickEvent: VxeTableEvents.CellDblclick = ({ row }) => {
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
:columns="modalColum"
|
|
18
18
|
:show-footer="true"
|
|
19
19
|
:editable="false"
|
|
20
|
+
:title="$t('message.udp.userList')"
|
|
20
21
|
width="60%"
|
|
22
|
+
height="75%"
|
|
21
23
|
@close="showModalView = false"
|
|
22
24
|
@confirm="onConfirm"
|
|
23
25
|
/>
|
|
@@ -54,13 +56,13 @@ const emit = defineEmits<{
|
|
|
54
56
|
const formItems: IFormItemProps[] = [
|
|
55
57
|
{
|
|
56
58
|
field: 'userName',
|
|
57
|
-
title: 'message.userCode',
|
|
59
|
+
title: 'message.udp.userCode',
|
|
58
60
|
span: 8,
|
|
59
61
|
itemRender: { name: '$input' }
|
|
60
62
|
},
|
|
61
63
|
{
|
|
62
64
|
field: 'name',
|
|
63
|
-
title: 'message.userName',
|
|
65
|
+
title: 'message.udp.userName',
|
|
64
66
|
span: 8,
|
|
65
67
|
itemRender: { name: '$input' }
|
|
66
68
|
},
|
|
@@ -88,11 +90,11 @@ const columns: ITableColProps[] = [
|
|
|
88
90
|
{ type: 'checkbox', width: 50, align: 'center' },
|
|
89
91
|
{
|
|
90
92
|
field: 'userName',
|
|
91
|
-
title: 'message.userCode'
|
|
93
|
+
title: 'message.udp.userCode'
|
|
92
94
|
},
|
|
93
95
|
{
|
|
94
96
|
field: 'name',
|
|
95
|
-
title: 'message.userName'
|
|
97
|
+
title: 'message.udp.userName'
|
|
96
98
|
},
|
|
97
99
|
{
|
|
98
100
|
field: 'enabled',
|
|
@@ -114,18 +116,18 @@ const buttons = [
|
|
|
114
116
|
{ code: 'delete', name: 'message.btn.del', status: 'danger', icon: 'ri-delete-bin-5-fill' }
|
|
115
117
|
];
|
|
116
118
|
const modalFormItems = [
|
|
117
|
-
{ field: 'userName', title: 'message.userCode' },
|
|
118
|
-
{ field: 'name', title: 'message.userName' }
|
|
119
|
+
{ field: 'userName', title: 'message.udp.userCode', span: 9 },
|
|
120
|
+
{ field: 'name', title: 'message.udp.userName', span: 9 }
|
|
119
121
|
];
|
|
120
122
|
const modalColum = [
|
|
121
123
|
{ type: 'checkbox', width: 40 },
|
|
122
|
-
{ field: 'userName', title: 'message.userCode' },
|
|
123
|
-
{ field: 'name', title: 'message.userName' },
|
|
124
|
+
{ field: 'userName', title: 'message.udp.userCode' },
|
|
125
|
+
{ field: 'name', title: 'message.udp.userName' },
|
|
124
126
|
{ field: 'enabled', width: 70, formatter: ['formatDict', 'SU.ENABLE'] }
|
|
125
127
|
];
|
|
126
128
|
const xgrid = ref({} as VxeGridInstance);
|
|
127
129
|
const gridOptions = reactive<VxeGridProps>({
|
|
128
|
-
height:
|
|
130
|
+
height: 'auto',
|
|
129
131
|
border: true,
|
|
130
132
|
pagerConfig: {},
|
|
131
133
|
toolbarConfig: { buttons, perfect: true },
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: wei.li
|
|
3
3
|
* @Date: 2021-11-26 14:37:07
|
|
4
4
|
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime:
|
|
5
|
+
* @LastEditTime: 2025-08-06 17:55:03
|
|
6
6
|
* @Description: 角色分配业务单元
|
|
7
7
|
-->
|
|
8
8
|
<template>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<ScrollPane
|
|
12
12
|
:title="$t('SuOrg')"
|
|
13
13
|
:tree-otions="{ children: 'children', label: 'orgName' }"
|
|
14
|
-
|
|
14
|
+
:default-params="{ pageSize: 500 }"
|
|
15
15
|
url="/uums/org"
|
|
16
16
|
/>
|
|
17
17
|
</div>
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
:items="formItems"
|
|
6
6
|
:columns="gridCol"
|
|
7
7
|
:default-params="data.fetchExtParam"
|
|
8
|
+
:default-value="data.fetchExtParam"
|
|
8
9
|
:buttons="buttons"
|
|
9
10
|
:auto-load="false"
|
|
10
11
|
:url="url"
|
|
12
|
+
:check-method="checkMethod"
|
|
11
13
|
mode="form"
|
|
12
14
|
@buttonClick="onButtonClick"
|
|
13
15
|
/>
|
|
@@ -18,8 +20,10 @@
|
|
|
18
20
|
:columns="columns"
|
|
19
21
|
:show-footer="true"
|
|
20
22
|
:editable="false"
|
|
23
|
+
:title="$t('message.udp.roleList')"
|
|
21
24
|
url="/uums/role"
|
|
22
25
|
width="60%"
|
|
26
|
+
height="75%"
|
|
23
27
|
@close="data.showModalView = false"
|
|
24
28
|
@confirm="onConfirm"
|
|
25
29
|
/>
|
|
@@ -61,8 +65,8 @@ watch(
|
|
|
61
65
|
const buttons = [{ code: 'del', auth: '/' }];
|
|
62
66
|
|
|
63
67
|
const formItems = [
|
|
64
|
-
{ field: 'roleName', title: 'message.udp.roleName' },
|
|
65
|
-
{ field: 'roleCode', title: 'message.udp.roleCode' }
|
|
68
|
+
{ field: 'roleName', title: 'message.udp.roleName', span: 9 },
|
|
69
|
+
{ field: 'roleCode', title: 'message.udp.roleCode', span: 9 }
|
|
66
70
|
];
|
|
67
71
|
|
|
68
72
|
const columns = [
|
|
@@ -80,14 +84,9 @@ gridCol.push({
|
|
|
80
84
|
fixed: 'right',
|
|
81
85
|
slots: {
|
|
82
86
|
default: ({ row }) => {
|
|
87
|
+
if (row.roleCode === 'admin') return null;
|
|
83
88
|
return [
|
|
84
|
-
<ut-button
|
|
85
|
-
icon="ri-delete-bin-5-fill"
|
|
86
|
-
content="del"
|
|
87
|
-
status="danger"
|
|
88
|
-
auth="del"
|
|
89
|
-
onTap={() => handleDel(row)}
|
|
90
|
-
/>
|
|
89
|
+
<ut-button icon="ri-delete-bin-5-fill" content="del" status="danger" auth="del" onTap={() => handleDel(row)} />
|
|
91
90
|
];
|
|
92
91
|
}
|
|
93
92
|
}
|
|
@@ -130,6 +129,10 @@ const onConfirm = async records => {
|
|
|
130
129
|
}
|
|
131
130
|
};
|
|
132
131
|
|
|
132
|
+
const checkMethod = row => {
|
|
133
|
+
return row.roleCode !== 'admin';
|
|
134
|
+
};
|
|
135
|
+
|
|
133
136
|
const onButtonClick = code => {
|
|
134
137
|
code === 'add' && handleAdd();
|
|
135
138
|
};
|
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-spinning="loading" class="flex flex-col items-center bg-white u-system-config">
|
|
3
|
-
<div class="flex
|
|
4
|
-
<el-
|
|
5
|
-
{{ $t('message.btn.confirm') }}
|
|
6
|
-
</el-button>
|
|
7
|
-
</div>
|
|
8
|
-
<div class="flex w-1/2 p-2 overflow-y-auto border border-gray-300 rounded-md">
|
|
9
|
-
<el-form
|
|
10
|
-
ref="xfrom"
|
|
11
|
-
:model="record"
|
|
12
|
-
:rules="rules"
|
|
13
|
-
label-width="90"
|
|
14
|
-
size="small"
|
|
15
|
-
status-icon
|
|
16
|
-
class="w-full"
|
|
17
|
-
>
|
|
2
|
+
<div v-spinning="loading" class="flex flex-col items-center pt-20 bg-white u-system-config">
|
|
3
|
+
<div class="flex w-1/2 p-3 overflow-y-auto border border-gray-300 rounded-md">
|
|
4
|
+
<el-form ref="xfrom" :model="record" :rules="rules" label-width="90" size="small" status-icon class="w-full">
|
|
18
5
|
<el-form-item :label="$t('message.udp.systemTitle')" prop="title">
|
|
19
6
|
<el-input v-model="record.title" />
|
|
20
7
|
</el-form-item>
|
|
@@ -33,6 +20,23 @@
|
|
|
33
20
|
<el-form-item :label="$t('message.udp.i18nEnabled')" prop="i18nEnabled">
|
|
34
21
|
<el-switch v-model="record.i18nEnabled" active-value="Y" inactive-value="N" />
|
|
35
22
|
</el-form-item>
|
|
23
|
+
<el-form-item :label="$t('message.udp.orgTaggle')" prop="orgTaggle">
|
|
24
|
+
<el-switch v-model="record.orgTaggle" active-value="Y" inactive-value="N" />
|
|
25
|
+
</el-form-item>
|
|
26
|
+
<el-form-item
|
|
27
|
+
v-if="['liwei', 'yanhuaijun', 'phr', 'zhonglijun', 'ccl'].includes(cookies.get(kLOGINER))"
|
|
28
|
+
:label="$t('message.udp.techSupport')"
|
|
29
|
+
prop="techSupport"
|
|
30
|
+
>
|
|
31
|
+
<el-switch v-model="record.techSupport" active-value="Y" inactive-value="N" />
|
|
32
|
+
</el-form-item>
|
|
33
|
+
<el-form-item
|
|
34
|
+
v-if="['liwei', 'yanhuaijun', 'phr', 'zhonglijun', 'ccl'].includes(cookies.get(kLOGINER))"
|
|
35
|
+
:label="$t('message.udp.baseColor')"
|
|
36
|
+
prop="baseColor"
|
|
37
|
+
>
|
|
38
|
+
<vxe-color-picker v-model="record.baseColor" :colors="colorList" type="hex" clearable transfer />
|
|
39
|
+
</el-form-item>
|
|
36
40
|
<el-form-item :label="$t('message.udp.systemLogo')">
|
|
37
41
|
<el-upload
|
|
38
42
|
v-model:file-list="record.logo"
|
|
@@ -100,6 +104,11 @@
|
|
|
100
104
|
</el-form-item>
|
|
101
105
|
</el-form>
|
|
102
106
|
</div>
|
|
107
|
+
<div class="flex justify-end w-1/2 p-2">
|
|
108
|
+
<el-button type="primary" @click="submitForm(xfrom)">
|
|
109
|
+
{{ $t('message.btn.confirm') }}
|
|
110
|
+
</el-button>
|
|
111
|
+
</div>
|
|
103
112
|
</div>
|
|
104
113
|
</template>
|
|
105
114
|
|
|
@@ -110,7 +119,7 @@ import { useI18n } from 'vue-i18n';
|
|
|
110
119
|
import to from 'await-to-js';
|
|
111
120
|
import { successMessage, cookies, warnMessage } from '@utogether/utils';
|
|
112
121
|
import { isArray } from 'xe-utils';
|
|
113
|
-
import { kTOKEN } from '../../../contant';
|
|
122
|
+
import { kTOKEN, kLOGINER } from '../../../contant';
|
|
114
123
|
import { getServiceApi, getBaseURL } from '../../../api';
|
|
115
124
|
|
|
116
125
|
const xfrom = ref<FormInstance>();
|
|
@@ -119,7 +128,10 @@ const record = reactive({
|
|
|
119
128
|
defaultLanguage: 'zh',
|
|
120
129
|
title: 'U-DP',
|
|
121
130
|
ispTitle: 'U-DP',
|
|
122
|
-
|
|
131
|
+
baseColor: '#FFF',
|
|
132
|
+
i18nEnabled: 'N',
|
|
133
|
+
orgTaggle: 'Y',
|
|
134
|
+
techSupport: 'Y',
|
|
123
135
|
copyright: '深圳友聚信息技术有限公司',
|
|
124
136
|
logo: [],
|
|
125
137
|
backgroundImg: [],
|
|
@@ -134,6 +146,39 @@ const baseUrl = ref(getBaseURL());
|
|
|
134
146
|
const url = '/upfm/v1/sysConfig';
|
|
135
147
|
let dataList = [];
|
|
136
148
|
|
|
149
|
+
const colorList = [
|
|
150
|
+
'#DC143C',
|
|
151
|
+
'#FF1493',
|
|
152
|
+
'#FF00FF',
|
|
153
|
+
'#9932CC',
|
|
154
|
+
'#6A5ACD',
|
|
155
|
+
'#0000FF',
|
|
156
|
+
'#00008B',
|
|
157
|
+
'#778899',
|
|
158
|
+
'#1E90FF',
|
|
159
|
+
'#00BFFF',
|
|
160
|
+
'#5F9EA0',
|
|
161
|
+
'#00FFFF',
|
|
162
|
+
'#008080',
|
|
163
|
+
'#7FFFAA',
|
|
164
|
+
'#3CB371',
|
|
165
|
+
'#8FBC8F',
|
|
166
|
+
'#008000',
|
|
167
|
+
'#7CFC00',
|
|
168
|
+
'#556B2F',
|
|
169
|
+
'#FFFFE0',
|
|
170
|
+
'#FFFF00',
|
|
171
|
+
'#808000',
|
|
172
|
+
'#EEE8AA',
|
|
173
|
+
'#FFD700',
|
|
174
|
+
'#FFA500',
|
|
175
|
+
'#FF4500',
|
|
176
|
+
'#FA8072',
|
|
177
|
+
'#FF0000',
|
|
178
|
+
'#800000',
|
|
179
|
+
'#C0C0C0'
|
|
180
|
+
];
|
|
181
|
+
|
|
137
182
|
const rules = reactive<FormRules>({
|
|
138
183
|
defaultLanguage: [
|
|
139
184
|
{
|
|
@@ -142,9 +187,7 @@ const rules = reactive<FormRules>({
|
|
|
142
187
|
trigger: 'blur'
|
|
143
188
|
}
|
|
144
189
|
],
|
|
145
|
-
title: [
|
|
146
|
-
{ required: true, message: t('message.required') + t('message.udp.systemTitle'), trigger: 'blur' }
|
|
147
|
-
]
|
|
190
|
+
title: [{ required: true, message: t('message.required') + t('message.udp.systemTitle'), trigger: 'blur' }]
|
|
148
191
|
});
|
|
149
192
|
|
|
150
193
|
const headers = computed(() => {
|
|
@@ -266,6 +309,8 @@ onMounted(() => {
|
|
|
266
309
|
</script>
|
|
267
310
|
<style lang="scss">
|
|
268
311
|
.u-system-config {
|
|
312
|
+
padding-top: 48px;
|
|
313
|
+
|
|
269
314
|
.el-select,
|
|
270
315
|
.el-select--small {
|
|
271
316
|
width: 100%;
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
:columns="columns"
|
|
6
6
|
:items="formItems"
|
|
7
7
|
:url="url"
|
|
8
|
-
:
|
|
8
|
+
:auto-load="false"
|
|
9
|
+
:default-params="defaultParams"
|
|
10
|
+
:default-value="defaultParams"
|
|
9
11
|
:events="onGridEvents"
|
|
10
12
|
/>
|
|
11
13
|
<!-- 编辑用户信息 -->
|
|
@@ -15,12 +17,7 @@
|
|
|
15
17
|
<vxe-form-item :title="$t('message.unitName')" field="unitId" span="24">
|
|
16
18
|
<template #default="{ data }">
|
|
17
19
|
<vxe-select v-model="data.unitId">
|
|
18
|
-
<vxe-option
|
|
19
|
-
v-for="unit in treeList"
|
|
20
|
-
:key="unit.id"
|
|
21
|
-
:value="unit.id"
|
|
22
|
-
:label="unit.unitName"
|
|
23
|
-
/>
|
|
20
|
+
<vxe-option v-for="unit in treeList" :key="unit.id" :value="unit.id" :label="unit.unitName" />
|
|
24
21
|
</vxe-select>
|
|
25
22
|
</template>
|
|
26
23
|
</vxe-form-item>
|
|
@@ -30,12 +27,7 @@
|
|
|
30
27
|
field="userName"
|
|
31
28
|
span="24"
|
|
32
29
|
/>
|
|
33
|
-
<vxe-form-item
|
|
34
|
-
:title="$t('message.userName')"
|
|
35
|
-
field="name"
|
|
36
|
-
span="24"
|
|
37
|
-
:item-render="{ name: 'input' }"
|
|
38
|
-
/>
|
|
30
|
+
<vxe-form-item :title="$t('message.userName')" field="name" span="24" :item-render="{ name: 'input' }" />
|
|
39
31
|
<vxe-form-item
|
|
40
32
|
v-if="data.dataStatus === 'add'"
|
|
41
33
|
:title="$t('message.userPwd')"
|
|
@@ -53,7 +45,7 @@
|
|
|
53
45
|
</template>
|
|
54
46
|
</vxe-modal>
|
|
55
47
|
<!-- 用户角色 -->
|
|
56
|
-
<vxe-modal v-model="data.showUserRole" :title="$t('message.title.roleInfo')" width="600">
|
|
48
|
+
<vxe-modal v-model="data.showUserRole" :loading="loading" :title="$t('message.title.roleInfo')" width="600">
|
|
57
49
|
<template #default>
|
|
58
50
|
<vxe-table height="300" :data="data.roleList" border>
|
|
59
51
|
<vxe-column type="seq" width="60" />
|
|
@@ -62,13 +54,20 @@
|
|
|
62
54
|
</vxe-table>
|
|
63
55
|
</template>
|
|
64
56
|
</vxe-modal>
|
|
65
|
-
|
|
57
|
+
|
|
58
|
+
<vxe-modal
|
|
59
|
+
v-model="data.showAuth"
|
|
60
|
+
:loading="loading"
|
|
61
|
+
:title="$t('message.title.authority', { role: data.record.name || '88888' })"
|
|
62
|
+
height="620"
|
|
63
|
+
width="560"
|
|
64
|
+
>
|
|
66
65
|
<template #default>
|
|
67
66
|
<el-tree-v2
|
|
68
67
|
ref="xTree"
|
|
69
68
|
:data="data.roleList"
|
|
70
69
|
:props="{ children: 'children', label: 'menuName' }"
|
|
71
|
-
:height="
|
|
70
|
+
:height="560"
|
|
72
71
|
node-key="id"
|
|
73
72
|
/>
|
|
74
73
|
</template>
|
|
@@ -78,9 +77,9 @@
|
|
|
78
77
|
|
|
79
78
|
<script setup lang="tsx">
|
|
80
79
|
import { useI18n } from 'vue-i18n';
|
|
81
|
-
import { ref, reactive, inject,
|
|
80
|
+
import { ref, reactive, inject, onMounted } from 'vue';
|
|
82
81
|
import to from 'await-to-js';
|
|
83
|
-
import { useRender, errorMessage, warnMessage } from '@utogether/utils';
|
|
82
|
+
import { useRender, errorMessage, warnMessage, delay } from '@utogether/utils';
|
|
84
83
|
import { VxeUI, VxeFormPropTypes } from 'vxe-pc-ui';
|
|
85
84
|
import { isEmpty } from 'xe-utils';
|
|
86
85
|
import { getServiceApi } from '../../../api';
|
|
@@ -127,26 +126,28 @@ const rules: VxeFormPropTypes.Rules = {
|
|
|
127
126
|
]
|
|
128
127
|
};
|
|
129
128
|
const renderHook = useRender();
|
|
130
|
-
const
|
|
129
|
+
const defaultParams = ref({});
|
|
131
130
|
const treeList: IRecord[] = inject('treeList');
|
|
131
|
+
const loading = ref(false);
|
|
132
132
|
|
|
133
133
|
const url = '/uums/user';
|
|
134
134
|
|
|
135
135
|
const xgrid = ref(null);
|
|
136
136
|
|
|
137
137
|
const formItems = [
|
|
138
|
-
{ field: 'name', title: 'message.userName' },
|
|
139
|
-
{ field: 'userName', title: 'message.userCode' }
|
|
138
|
+
{ field: 'name', title: 'message.udp.userName' },
|
|
139
|
+
{ field: 'userName', title: 'message.udp.userCode' },
|
|
140
|
+
{ field: 'type', title: 'message.udp.userType', code: 'SU.USER.TYPE' }
|
|
140
141
|
];
|
|
141
142
|
|
|
142
143
|
const columns = [
|
|
143
144
|
{ type: 'checkbox', width: 40, align: 'center' },
|
|
144
|
-
{ field: 'userName', title: 'message.userCode', required: true, editRender: renderHook.renderInput() },
|
|
145
|
-
{ field: 'name', title: 'message.userName', required: true, editRender: renderHook.renderInput() },
|
|
145
|
+
{ field: 'userName', title: 'message.udp.userCode', required: true, editRender: renderHook.renderInput() },
|
|
146
|
+
{ field: 'name', title: 'message.udp.userName', required: true, editRender: renderHook.renderInput() },
|
|
146
147
|
{
|
|
147
148
|
field: 'type',
|
|
148
|
-
title: 'message.
|
|
149
|
-
formatter: ['formatDict', 'SU.
|
|
149
|
+
title: 'message.udp.userType',
|
|
150
|
+
formatter: ['formatDict', 'SU.USER.TYPE'],
|
|
150
151
|
editRender: renderHook.renderDict('SU.USER.TYPE')
|
|
151
152
|
},
|
|
152
153
|
{
|
|
@@ -163,21 +164,12 @@ const columns = [
|
|
|
163
164
|
fixed: 'right',
|
|
164
165
|
slots: {
|
|
165
166
|
default: ({ row }) => {
|
|
167
|
+
if (!row.id) return null;
|
|
166
168
|
return [
|
|
167
169
|
<>
|
|
168
170
|
<ut-button icon="ri-user-fill" content="role" onTap={() => handleRole(row)} />
|
|
169
|
-
<ut-button
|
|
170
|
-
|
|
171
|
-
content="auth"
|
|
172
|
-
status="success"
|
|
173
|
-
onTap={() => handleAuth(row)}
|
|
174
|
-
/>
|
|
175
|
-
<ut-button
|
|
176
|
-
icon="ri-lock-fill"
|
|
177
|
-
content="passwordReset"
|
|
178
|
-
status="warning"
|
|
179
|
-
onTap={() => handleResetPwd(row)}
|
|
180
|
-
/>
|
|
171
|
+
<ut-button icon="ri-lock-fill" content="auth" status="success" onTap={() => handleAuth(row)} />
|
|
172
|
+
<ut-button icon="ri-lock-fill" content="passwordReset" status="warning" onTap={() => handleResetPwd(row)} />
|
|
181
173
|
</>
|
|
182
174
|
];
|
|
183
175
|
}
|
|
@@ -197,11 +189,14 @@ async function handleClick({ row }) {
|
|
|
197
189
|
* @return {*}
|
|
198
190
|
*/
|
|
199
191
|
const handleRole = async (row: any) => {
|
|
192
|
+
data.roleList = [];
|
|
193
|
+
data.showUserRole = true;
|
|
194
|
+
loading.value = true;
|
|
200
195
|
const serverData = await serviceApi.get(url + '/getUserRole', { userName: row.userName });
|
|
196
|
+
loading.value = false;
|
|
201
197
|
data.roleList = serverData[0]?.sysRoles;
|
|
202
|
-
nextTick(() => {
|
|
203
|
-
|
|
204
|
-
});
|
|
198
|
+
// nextTick(() => {
|
|
199
|
+
// });
|
|
205
200
|
};
|
|
206
201
|
/**
|
|
207
202
|
* @description: 密码重置
|
|
@@ -224,11 +219,15 @@ const handleResetPwd = async (row: Object) => {
|
|
|
224
219
|
* @return {*}
|
|
225
220
|
*/
|
|
226
221
|
const handleAuth = async row => {
|
|
222
|
+
data.roleList = [];
|
|
223
|
+
data.showAuth = true;
|
|
224
|
+
loading.value = true;
|
|
225
|
+
data.record = row;
|
|
227
226
|
const [err, res] = await to(serviceApi.get(url + '/getUserRole', { userName: row.userName }));
|
|
227
|
+
loading.value = false;
|
|
228
228
|
if (!err) {
|
|
229
229
|
if (!isEmpty(res)) {
|
|
230
230
|
data.roleList = res[0]?.sysMenuExts;
|
|
231
|
-
data.showAuth = true;
|
|
232
231
|
} else {
|
|
233
232
|
warnMessage(t('message.tip.emptyAuth'));
|
|
234
233
|
}
|
|
@@ -264,8 +263,10 @@ const handleClose = () => {
|
|
|
264
263
|
const getUnitList = () => {
|
|
265
264
|
serviceApi
|
|
266
265
|
.get('/uums/unit', { pageSize: 10 })
|
|
267
|
-
.then(res => {
|
|
268
|
-
|
|
266
|
+
.then(async res => {
|
|
267
|
+
defaultParams.value = { unitId: res[0].id, enabled: '1' };
|
|
268
|
+
await delay(100);
|
|
269
|
+
xgrid.value.refreshData();
|
|
269
270
|
})
|
|
270
271
|
.catch(() => {
|
|
271
272
|
errorMessage('获取租户失败,刷新后重试');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: wei.li
|
|
3
3
|
* @Date: 2021-12-23 11:22:51
|
|
4
4
|
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime: 2025-
|
|
5
|
+
* @LastEditTime: 2025-08-16 18:01:55
|
|
6
6
|
* @Description: 托盘管理
|
|
7
7
|
-->
|
|
8
8
|
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
v-if="showModalForm"
|
|
14
14
|
:record="record"
|
|
15
15
|
:items="items"
|
|
16
|
-
:width="
|
|
17
|
-
:height="
|
|
16
|
+
:width="420"
|
|
17
|
+
:height="450"
|
|
18
18
|
:title="$t('message.title.appAdd')"
|
|
19
19
|
:url="url"
|
|
20
|
+
class="ut-app-form"
|
|
20
21
|
data-status="add"
|
|
21
22
|
@close="showModalForm = false"
|
|
22
23
|
@confirm="onConfirm"
|
|
@@ -31,6 +32,7 @@ import { ref } from 'vue';
|
|
|
31
32
|
import { useI18n } from 'vue-i18n';
|
|
32
33
|
import to from 'await-to-js';
|
|
33
34
|
import { getBaseURL, getServiceApi } from '../../../api';
|
|
35
|
+
// import { useRender } from '../../../utils/udp/useRender';
|
|
34
36
|
import { useRender } from '@utogether/utils';
|
|
35
37
|
import { clone } from 'xe-utils';
|
|
36
38
|
import SuQrcode from '../../../components/SuQrcode';
|
|
@@ -56,15 +58,20 @@ const record = ref({});
|
|
|
56
58
|
// 列字段
|
|
57
59
|
const columns = [
|
|
58
60
|
{ type: 'checkbox', width: 45, align: 'center' },
|
|
59
|
-
|
|
60
|
-
{ field: '
|
|
61
|
-
{
|
|
62
|
-
|
|
61
|
+
{ field: 'appVersion', title: 'message.udp.appVersion', width: 110 },
|
|
62
|
+
{ field: 'buildNo', title: 'message.udp.buildNo', width: 130 },
|
|
63
|
+
{
|
|
64
|
+
field: 'isForceUpdate',
|
|
65
|
+
title: 'message.udp.isForceUpdate',
|
|
66
|
+
width: 130,
|
|
67
|
+
formatter: ({ row }) => (row.isForceUpdate === 'Y' ? t('message.udp.forceUpdate') : t('message.udp.freeUpdate'))
|
|
68
|
+
},
|
|
69
|
+
{ field: 'versionInfo', title: 'message.udp.versionInfo', miWidth: 200 },
|
|
63
70
|
{
|
|
64
71
|
field: 'enabled',
|
|
65
72
|
title: 'message.status',
|
|
66
73
|
width: 90,
|
|
67
|
-
formatter: ({ row }) => (row.enabled === '1' ? t('message.appupper') : t('message.applower'))
|
|
74
|
+
formatter: ({ row }) => (row.enabled === '1' ? t('message.udp.appupper') : t('message.udp.applower'))
|
|
68
75
|
},
|
|
69
76
|
{ field: 'creationDate', width: 140 },
|
|
70
77
|
{
|
|
@@ -77,9 +84,7 @@ const columns = [
|
|
|
77
84
|
const status = row.enabled === '1' ? 'warning' : 'primary';
|
|
78
85
|
const icon = row.enabled === '1' ? 'ri-inbox-archive-line' : 'ri-inbox-unarchive-line';
|
|
79
86
|
if (row.enabled !== '1') {
|
|
80
|
-
return [
|
|
81
|
-
<ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />
|
|
82
|
-
];
|
|
87
|
+
return [<ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />];
|
|
83
88
|
}
|
|
84
89
|
return [
|
|
85
90
|
<>
|
|
@@ -139,13 +144,30 @@ const onButtonClick = code => {
|
|
|
139
144
|
};
|
|
140
145
|
|
|
141
146
|
const items = [
|
|
142
|
-
{ field: 'appVersion', required: true },
|
|
143
|
-
{ field: 'buildNo', required: true },
|
|
144
|
-
{
|
|
147
|
+
{ field: 'appVersion', title: 'message.udp.appVersion', required: true },
|
|
148
|
+
{ field: 'buildNo', title: 'message.udp.buildNo', required: true },
|
|
149
|
+
{
|
|
150
|
+
field: 'isForceUpdate',
|
|
151
|
+
title: 'message.udp.isForceUpdate',
|
|
152
|
+
required: true,
|
|
153
|
+
itemRender: renderHook.renderSwitch({
|
|
154
|
+
openLabel: t('message.udp.forceUpdate'),
|
|
155
|
+
closeLabel: t('message.udp.freeUpdate'),
|
|
156
|
+
openValue: 'Y',
|
|
157
|
+
closeValue: 'N'
|
|
158
|
+
})
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
field: 'versionInfo',
|
|
162
|
+
title: 'message.udp.versionInfo',
|
|
163
|
+
required: true,
|
|
164
|
+
itemRender: renderHook.renderTextarea()
|
|
165
|
+
},
|
|
145
166
|
{
|
|
146
167
|
field: 'downloadUrl',
|
|
147
168
|
required: false,
|
|
148
|
-
|
|
169
|
+
title: 'message.udp.downloadUrl',
|
|
170
|
+
itemRender: renderHook.renderUpload()
|
|
149
171
|
}
|
|
150
172
|
];
|
|
151
173
|
|
|
@@ -155,7 +177,10 @@ const showModalForm = ref(false);
|
|
|
155
177
|
* @description: 添加
|
|
156
178
|
*/
|
|
157
179
|
const handleAdd = () => {
|
|
158
|
-
record.value = {
|
|
180
|
+
record.value = {
|
|
181
|
+
// downloadUrl: 'https://vxeui.com/resource/img/fj577.jpg'
|
|
182
|
+
// downloadUrl: '/resource/image/20250817/15806d21e3f445dcae0e2e0825c76a79.jpg'
|
|
183
|
+
};
|
|
159
184
|
showModalForm.value = true;
|
|
160
185
|
};
|
|
161
186
|
|
|
@@ -174,3 +199,10 @@ const onConfirm = () => {
|
|
|
174
199
|
xgrid.value.refreshData();
|
|
175
200
|
};
|
|
176
201
|
</script>
|
|
202
|
+
<style lang="scss" scoped>
|
|
203
|
+
.ut-app-form {
|
|
204
|
+
::v-deep(.vxe-switch--label) {
|
|
205
|
+
width: 100%;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
</style>
|