@utogether/udp-core 1.0.1-beta.16 → 1.0.1-beta.18

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.
Files changed (123) hide show
  1. package/build/plugins.ts +39 -39
  2. package/dist/{403-RBzulrcG.js → 403-B8xAGW0x.js} +1 -1
  3. package/dist/{404-DX-dU_6C.js → 404-BtgajMpP.js} +1 -1
  4. package/dist/{500-BCTk0__d.js → 500-DFWWZylZ.js} +1 -1
  5. package/dist/{AuthorityInfo-BADTOenq.js → AuthorityInfo-BxWSZs7n.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-Cv46yAx_.js → AuthorityInfo.vue_vue_type_style_index_0_lang-XIiFdjxN.js} +1 -1
  7. package/dist/{Company-B-61KrWd.js → Company-BbUJtuvr.js} +3 -3
  8. package/dist/{CompanyPanel-CawSrEff.js → CompanyPanel-KOOFrGjk.js} +8 -8
  9. package/dist/{Department-CrzJPtvP.js → Department-BimSgBm2.js} +3 -3
  10. package/dist/{DepartmentPanel-DYuL8H-j.js → DepartmentPanel-DYXPUCDs.js} +3 -3
  11. package/dist/{DesignPanel-DEAv6V68.js → DesignPanel-CHZ36J4q.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BsnXZ2td.js → DesignPanel.vue_vue_type_style_index_0_lang-ZbNixuuY.js} +2 -2
  13. package/dist/{DictView-BuO-2b-c.js → DictView-7RQYVj4H.js} +1 -1
  14. package/dist/{InvOrganization-CBgKBJAn.js → InvOrganization-esq9FI1K.js} +1 -1
  15. package/dist/{Org-BaQw2r-o.js → Org-BGswGV9g.js} +1 -1
  16. package/dist/{Preview-DvCrmKNk.js → Preview-DP0pD6Kf.js} +1 -1
  17. package/dist/{ReportDefine-DyhWz0as.js → ReportDefine-1rjKlbK-.js} +1 -1
  18. package/dist/{ReportDesign-DgZ2f2zv.js → ReportDesign-BIUj35Kh.js} +2 -2
  19. package/dist/{ReportQuery-DTZYbCDi.js → ReportQuery-CWevStRg.js} +1 -1
  20. package/dist/{ReportQueryFrom-B-vtJegP.js → ReportQueryFrom-vlOF5_gc.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-D6izgxph.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-BGyeoYxo.js} +1 -1
  22. package/dist/{ReportTemplate-DA1ZqKGf.js → ReportTemplate-BPURQOFZ.js} +1 -1
  23. package/dist/{Role-mbqoav5t.js → Role-D8xJ3rai.js} +3 -3
  24. package/dist/{RoleAssign-ltEJIEcr.js → RoleAssign-CE5FeHLd.js} +8 -8
  25. package/dist/{RolePanel-u90v9eS0.js → RolePanel-B6wskQVB.js} +1 -1
  26. package/dist/{RolePanel-1g1a-G8D.js → RolePanel-CqHsGjrK.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-LC4Egk-Q.js → RolePanel.vue_vue_type_script_setup_true_lang-Bjoq-nCm.js} +3 -3
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-D9YxpGnt.js → RolePanel.vue_vue_type_script_setup_true_lang-Dv5IVELj.js} +1 -1
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DZ3W1epK.js → ScrollPanel.vue_vue_type_style_index_0_lang-Bp8Y_5A2.js} +1 -1
  30. package/dist/{Staff-CJ2GgCL3.js → Staff-DuYrik71.js} +3 -3
  31. package/dist/{StaffInfo-3KkodDCK.js → StaffInfo-CZiak-1b.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-CW-isIxJ.js → StaffInfo.vue_vue_type_script_setup_true_lang-LCuqxUh8.js} +1 -1
  33. package/dist/{StaffPanel-DoXPSoY5.js → StaffPanel-DI6MBAJH.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DvhGnOMZ.js → StaffPanel.vue_vue_type_script_setup_true_lang-DxJhnVpd.js} +2 -2
  35. package/dist/{SysUser-BuIZhMPh.js → SysUser-DoNj2tIV.js} +2 -2
  36. package/dist/{SysUserPanel-t1GJcJGM.js → SysUserPanel-CvfyRxel.js} +1 -1
  37. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-CDDkFLlN.js → SysUserPanel.vue_vue_type_script_setup_true_lang-BoghL7F3.js} +43 -39
  38. package/dist/{SystemMenu-DuLEL6_l.js → SystemMenu-Cr3vUEQU.js} +2 -2
  39. package/dist/{UserInfo-WWby4lts.js → UserInfo-6c8UDIVO.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-B06ZSrJV.js → UserInfo.vue_vue_type_style_index_0_lang-DstUSeNQ.js} +1 -1
  41. package/dist/{childView-B0-EAoAi.js → childView-BlmHw5jv.js} +1 -1
  42. package/dist/{childView-IYY4L8VK.js → childView-C050pf1v.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-B56v6yK7.js → childView.vue_vue_type_style_index_0_lang-BxLT1Dz0.js} +1 -1
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-CjF8nZuj.js → childView.vue_vue_type_style_index_0_lang-D0nlTIP-.js} +2 -2
  45. package/dist/{code-rule-DDLdi3pP.js → code-rule-Br1Mh3_M.js} +1 -1
  46. package/dist/core.es.js +1 -1
  47. package/dist/{cron-task-p3-AFN1w.js → cron-task-DhuIk5pP.js} +1 -1
  48. package/dist/{frameView-B_WAZErD.js → frameView-hJoSI0Ai.js} +1 -1
  49. package/dist/index-1dgWFXT2.js +5436 -0
  50. package/dist/{layoutView-CoEp2afn.js → layoutView-DU-TVfOp.js} +1340 -1337
  51. package/dist/{login-DP0oP70W.js → login-CzJBV0x8.js} +2 -2
  52. package/dist/{lov-view-BDoZRK-v.js → lov-view-BxaHaVKE.js} +2 -2
  53. package/dist/{menuInfo-5Xls76qB.js → menuInfo-Dp7nAbgM.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BfZczW9a.js → menuInfo.vue_vue_type_style_index_0_lang-Ch4NbiCL.js} +1 -1
  55. package/dist/{pda-app-DxGYn4G7.js → pda-app-BmxY3H7y.js} +2 -2
  56. package/dist/{resource-BnYWe_-Q.js → resource-D2dCI_x9.js} +1 -1
  57. package/dist/{su-welcome-B2rNhhDH.js → su-welcome-BKGU5HUf.js} +1 -1
  58. package/dist/{sys-config-Bb4WkxZK.js → sys-config-s8DnZMOd.js} +1 -1
  59. package/dist/udp-core.css +1 -9
  60. package/index.ts +48 -48
  61. package/package.json +1 -1
  62. package/src/App.vue +65 -65
  63. package/src/components/SuCharts/src/UserInfo.vue +78 -78
  64. package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
  65. package/src/components/udp/{grid.vue → grid/index.vue} +39 -25
  66. package/src/components/udp/index.ts +2 -9
  67. package/src/components/udp/utils.ts +63 -108
  68. package/src/layout/components/lay-navbar/index.vue +239 -239
  69. package/src/layout/components/lay-panel/index.vue +150 -150
  70. package/src/layout/components/lay-search/index.vue +25 -25
  71. package/src/layout/components/lay-select-org/index.vue +64 -64
  72. package/src/layout/components/lay-sidebar/horizontal.vue +190 -190
  73. package/src/layout/components/lay-sidebar/mixNav.vue +260 -260
  74. package/src/layout/components/lay-sidebar/sidebar-logo.vue +1 -0
  75. package/src/layout/components/lay-tag/index.vue +20 -48
  76. package/src/layout/hooks/useNav.ts +173 -173
  77. package/src/layout/hooks/useTag.ts +5 -3
  78. package/src/layout/types.ts +3 -2
  79. package/src/main.ts +24 -21
  80. package/src/plugins/i18n/en.ts +302 -302
  81. package/src/plugins/i18n/zh.ts +356 -354
  82. package/src/plugins/vxe-table/index.ts +67 -4
  83. package/src/plugins/vxe-table/render.tsx +18 -29
  84. package/src/router/index.ts +186 -177
  85. package/src/router/modules/remaining.ts +58 -58
  86. package/src/router/utils.ts +393 -377
  87. package/src/store/modules/app.ts +1 -3
  88. package/src/store/modules/multiTags.ts +110 -109
  89. package/src/store/modules/permission.ts +113 -100
  90. package/src/style/button.scss +85 -85
  91. package/src/style/login.css +336 -336
  92. package/src/style/vxetable.scss +338 -321
  93. package/src/views/organization/company/CompanyPanel.vue +259 -259
  94. package/src/views/organization/department/DepartmentPanel.vue +269 -283
  95. package/src/views/system/menu/SystemMenu.vue +183 -183
  96. package/src/views/system/menu/menuInfo.vue +363 -363
  97. package/src/views/system/role/UserInfo.vue +195 -195
  98. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  99. package/src/views/system/role-assign/RolePanel.vue +139 -139
  100. package/src/views/system/sys/sys-config.vue +336 -336
  101. package/src/views/system/sysUser/SysUserPanel.vue +279 -278
  102. package/src/views/uapp/pda/pda-app.vue +208 -208
  103. package/src/views/udev/dict/DictView.vue +118 -118
  104. package/src/views/udev/dict/childView.vue +1 -1
  105. package/src/views/udev/lov/lov-view.vue +91 -91
  106. package/src/views/ulogin/login.vue +323 -323
  107. package/src/views/upms/interface/log-out.vue +101 -101
  108. package/src/views/urpt/design/DesignPanel.vue +507 -507
  109. package/types/global.d.ts +230 -230
  110. package/dist/index-24fnvUBy.js +0 -2822
  111. package/src/components/udp/count-down.vue +0 -536
  112. package/src/components/udp/flip-down/FlipCard/flip-card.vue +0 -251
  113. package/src/components/udp/flip-down/FlipCard/interfaces.ts +0 -4
  114. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +0 -113
  115. package/src/components/udp/form-upload.vue +0 -482
  116. package/src/components/udp/form.vue +0 -112
  117. package/src/components/udp/lov.vue +0 -388
  118. package/src/components/udp/modal-form.vue +0 -190
  119. package/src/components/udp/modal-grid.vue +0 -298
  120. package/src/components/udp/upload.vue +0 -423
  121. package/src/utils/udp/http/index.ts +0 -294
  122. package/src/utils/udp/http/types.d.ts +0 -49
  123. package/src/utils/udp/useRender.ts +0 -431
@@ -1,208 +1,208 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 11:22:51
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-08-16 18:01:55
6
- * @Description: 托盘管理
7
- -->
8
-
9
- <template>
10
- <div>
11
- <ut-grid ref="xgrid" :columns="columns" :url="url" mode="form" @buttonClick="onButtonClick" />
12
- <ut-modal-form
13
- v-if="showModalForm"
14
- :record="record"
15
- :items="items"
16
- :width="420"
17
- :height="450"
18
- :title="$t('message.title.appAdd')"
19
- :url="url"
20
- class="ut-app-form"
21
- data-status="add"
22
- @close="showModalForm = false"
23
- @confirm="onConfirm"
24
- />
25
- </div>
26
- </template>
27
- <script lang="tsx">
28
- export default { name: 'PdaApp' };
29
- </script>
30
- <script setup lang="tsx">
31
- import { ref } from 'vue';
32
- import { useI18n } from 'vue-i18n';
33
- import to from 'await-to-js';
34
- import { getBaseURL, getServiceApi } from '../../../api';
35
- // import { useRender } from '../../../utils/udp/useRender';
36
- import { useRender } from '@utogether/utils';
37
- import { clone } from 'xe-utils';
38
- import SuQrcode from '../../../components/SuQrcode';
39
-
40
- const baseURL = getBaseURL();
41
-
42
- const renderHook = useRender();
43
-
44
- const { t } = useI18n();
45
- const url = '/upms/v1/app-manage';
46
- const xgrid = ref(null);
47
- const record = ref({});
48
-
49
- // const formItems = [
50
- // { field: 'organizationName', itemRender: renderHook.renderInvOrg() },
51
- // { field: 'trayTypeCode', itemRender: renderHook.renderDict('SU.TRAY.TYPE') },
52
- // { field: 'trayCode' },
53
- // { field: 'materialCode' },
54
- // { field: 'materialName' },
55
- // { field: 'packCode', title: 'message.boxSignCode' }
56
- // ];
57
-
58
- // 列字段
59
- const columns = [
60
- { type: 'checkbox', width: 45, align: 'center' },
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 },
70
- {
71
- field: 'enabled',
72
- title: 'message.status',
73
- width: 90,
74
- formatter: ({ row }) => (row.enabled === '1' ? t('message.udp.appupper') : t('message.udp.applower'))
75
- },
76
- { field: 'creationDate', width: 140 },
77
- {
78
- field: 'operate',
79
- width: 260,
80
- fixed: 'right',
81
- slots: {
82
- default: ({ row }) => {
83
- const content = row.enabled === '1' ? 'applower' : 'appupper';
84
- const status = row.enabled === '1' ? 'warning' : 'primary';
85
- const icon = row.enabled === '1' ? 'ri-inbox-archive-line' : 'ri-inbox-unarchive-line';
86
- if (row.enabled !== '1') {
87
- return [<ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />];
88
- }
89
- return [
90
- <>
91
- <div style="display: flex; justify-content: space-between;">
92
- <ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />
93
- <el-popover
94
- placement="left"
95
- v-slots={{
96
- reference: () => <el-button type="success">{t('message.btn.scan')}</el-button>
97
- }}
98
- >
99
- <>
100
- <SuQrcode text={baseURL + '/ufil/' + row.downloadUrl} />
101
- </>
102
- </el-popover>
103
- </div>
104
- </>
105
- // <el-popover
106
- // placement="left"
107
- // v-slots={{
108
- // reference: () => <el-button type="primary">外网下载</el-button>
109
- // }}
110
- // >
111
- // <>
112
- // <SuQrcode text={'http://jemes.uzuo.cn/gateway/ufil/' + row.downloadUrl} />
113
- // </>
114
- // </el-popover>
115
- ];
116
- }
117
- }
118
- }
119
- ];
120
-
121
- // 启用/禁用
122
- // async function handleClick({ row }) {
123
- // await to(getServiceApi().put(url, row));
124
- // xgrid.value.refreshData();
125
- // }
126
-
127
- /**
128
- * @param {*} row 数据源
129
- */
130
- const handleChild = async row => {
131
- const body = clone(row, true);
132
- body.enabled = row.enabled === '1' ? '0' : '1';
133
- await to(getServiceApi().put(url, body));
134
- xgrid.value.refreshData();
135
- };
136
-
137
- /**
138
- * @description:监听grid事件
139
- * @return {*}
140
- */
141
- const onButtonClick = code => {
142
- code === 'add' && handleAdd();
143
- code === 'del' && handleDel();
144
- };
145
-
146
- const items = [
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
- },
166
- {
167
- field: 'downloadUrl',
168
- required: false,
169
- title: 'message.udp.downloadUrl',
170
- itemRender: renderHook.renderUpload()
171
- }
172
- ];
173
-
174
- const showModalForm = ref(false);
175
-
176
- /**
177
- * @description: 添加
178
- */
179
- const handleAdd = () => {
180
- record.value = {
181
- // downloadUrl: 'https://vxeui.com/resource/img/fj577.jpg'
182
- // downloadUrl: '/resource/image/20250817/15806d21e3f445dcae0e2e0825c76a79.jpg'
183
- };
184
- showModalForm.value = true;
185
- };
186
-
187
- const handleDel = () => {
188
- xgrid.value.getInstance().commitProxy('delete');
189
- };
190
-
191
- // const handleDownFile = row => {
192
- // clipboardRef.value = baseURL + '/ufil/' + row.downloadUrl;
193
- // successMessage('复制成功,快试试右键粘贴吧');
194
- // };
195
-
196
- // const buttons = [{ code: 'del', status: 'danger', icon: 'ri-delete-bin-line', auth: 'del' }];
197
-
198
- const onConfirm = () => {
199
- xgrid.value.refreshData();
200
- };
201
- </script>
202
- <style lang="scss" scoped>
203
- .ut-app-form {
204
- ::v-deep(.vxe-switch--label) {
205
- width: 100%;
206
- }
207
- }
208
- </style>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 11:22:51
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-08-16 18:01:55
6
+ * @Description: 托盘管理
7
+ -->
8
+
9
+ <template>
10
+ <div>
11
+ <ut-grid ref="xgrid" :columns="columns" :url="url" mode="form" @buttonClick="onButtonClick" />
12
+ <ut-modal-form
13
+ v-if="showModalForm"
14
+ :record="record"
15
+ :items="items"
16
+ :width="420"
17
+ :height="450"
18
+ :title="$t('message.title.appAdd')"
19
+ :url="url"
20
+ class="ut-app-form"
21
+ data-status="add"
22
+ @close="showModalForm = false"
23
+ @confirm="onConfirm"
24
+ />
25
+ </div>
26
+ </template>
27
+ <script lang="tsx">
28
+ export default { name: 'PdaApp' };
29
+ </script>
30
+ <script setup lang="tsx">
31
+ import { ref } from 'vue';
32
+ import { useI18n } from 'vue-i18n';
33
+ import to from 'await-to-js';
34
+ import { getBaseURL, getServiceApi } from '../../../api';
35
+ // import { useRender } from '../../../utils/udp/useRender';
36
+ import { useRender } from '@utogether/utils';
37
+ import { clone } from 'xe-utils';
38
+ import SuQrcode from '../../../components/SuQrcode';
39
+
40
+ const baseURL = getBaseURL();
41
+
42
+ const renderHook = useRender();
43
+
44
+ const { t } = useI18n();
45
+ const url = '/upms/v1/app-manage';
46
+ const xgrid = ref(null);
47
+ const record = ref({});
48
+
49
+ // const formItems = [
50
+ // { field: 'organizationName', itemRender: renderHook.renderInvOrg() },
51
+ // { field: 'trayTypeCode', itemRender: renderHook.renderDict('SU.TRAY.TYPE') },
52
+ // { field: 'trayCode' },
53
+ // { field: 'materialCode' },
54
+ // { field: 'materialName' },
55
+ // { field: 'packCode', title: 'message.boxSignCode' }
56
+ // ];
57
+
58
+ // 列字段
59
+ const columns = [
60
+ { type: 'checkbox', width: 45, align: 'center' },
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 },
70
+ {
71
+ field: 'enabled',
72
+ title: 'message.status',
73
+ width: 90,
74
+ formatter: ({ row }) => (row.enabled === '1' ? t('message.udp.appupper') : t('message.udp.applower'))
75
+ },
76
+ { field: 'creationDate', width: 140 },
77
+ {
78
+ field: 'operate',
79
+ width: 260,
80
+ fixed: 'right',
81
+ slots: {
82
+ default: ({ row }) => {
83
+ const content = row.enabled === '1' ? 'applower' : 'appupper';
84
+ const status = row.enabled === '1' ? 'warning' : 'primary';
85
+ const icon = row.enabled === '1' ? 'ri-inbox-archive-line' : 'ri-inbox-unarchive-line';
86
+ if (row.enabled !== '1') {
87
+ return [<ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />];
88
+ }
89
+ return [
90
+ <>
91
+ <div style="display: flex; justify-content: space-between;">
92
+ <ut-button content={content} icon={icon} status={status} onTap={() => handleChild(row)} />
93
+ <el-popover
94
+ placement="left"
95
+ v-slots={{
96
+ reference: () => <el-button type="success">{t('message.btn.scan')}</el-button>
97
+ }}
98
+ >
99
+ <>
100
+ <SuQrcode text={baseURL + '/ufil/' + row.downloadUrl} />
101
+ </>
102
+ </el-popover>
103
+ </div>
104
+ </>
105
+ // <el-popover
106
+ // placement="left"
107
+ // v-slots={{
108
+ // reference: () => <el-button type="primary">外网下载</el-button>
109
+ // }}
110
+ // >
111
+ // <>
112
+ // <SuQrcode text={'http://jemes.uzuo.cn/gateway/ufil/' + row.downloadUrl} />
113
+ // </>
114
+ // </el-popover>
115
+ ];
116
+ }
117
+ }
118
+ }
119
+ ];
120
+
121
+ // 启用/禁用
122
+ // async function handleClick({ row }) {
123
+ // await to(getServiceApi().put(url, row));
124
+ // xgrid.value.refreshData();
125
+ // }
126
+
127
+ /**
128
+ * @param {*} row 数据源
129
+ */
130
+ const handleChild = async row => {
131
+ const body = clone(row, true);
132
+ body.enabled = row.enabled === '1' ? '0' : '1';
133
+ await to(getServiceApi().put(url, body));
134
+ xgrid.value.refreshData();
135
+ };
136
+
137
+ /**
138
+ * @description:监听grid事件
139
+ * @return {*}
140
+ */
141
+ const onButtonClick = code => {
142
+ code === 'add' && handleAdd();
143
+ code === 'del' && handleDel();
144
+ };
145
+
146
+ const items = [
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
+ },
166
+ {
167
+ field: 'downloadUrl',
168
+ required: false,
169
+ title: 'message.udp.downloadUrl',
170
+ itemRender: renderHook.renderUpload()
171
+ }
172
+ ];
173
+
174
+ const showModalForm = ref(false);
175
+
176
+ /**
177
+ * @description: 添加
178
+ */
179
+ const handleAdd = () => {
180
+ record.value = {
181
+ // downloadUrl: 'https://vxeui.com/resource/img/fj577.jpg'
182
+ // downloadUrl: '/resource/image/20250817/15806d21e3f445dcae0e2e0825c76a79.jpg'
183
+ };
184
+ showModalForm.value = true;
185
+ };
186
+
187
+ const handleDel = () => {
188
+ xgrid.value.getInstance().commitProxy('delete');
189
+ };
190
+
191
+ // const handleDownFile = row => {
192
+ // clipboardRef.value = baseURL + '/ufil/' + row.downloadUrl;
193
+ // successMessage('复制成功,快试试右键粘贴吧');
194
+ // };
195
+
196
+ // const buttons = [{ code: 'del', status: 'danger', icon: 'ri-delete-bin-line', auth: 'del' }];
197
+
198
+ const onConfirm = () => {
199
+ xgrid.value.refreshData();
200
+ };
201
+ </script>
202
+ <style lang="scss" scoped>
203
+ .ut-app-form {
204
+ ::v-deep(.vxe-switch--label) {
205
+ width: 100%;
206
+ }
207
+ }
208
+ </style>
@@ -1,118 +1,118 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 17:33:21
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-09-12 13:28:27
6
- * @Description: 数据字典
7
- -->
8
- <template>
9
- <div>
10
- <ut-grid
11
- ref="xgrid"
12
- :items="formItems"
13
- :columns="columns"
14
- :check-method="checkMethod"
15
- :events="onGridEvents"
16
- url="/upfm/v1/lov"
17
- />
18
- <child-view v-if="shouDrawer" :show="shouDrawer" :record="record" @onClose="handleClose" />
19
- </div>
20
- </template>
21
-
22
- <script lang="tsx">
23
- export default { name: 'DictView' };
24
- </script>
25
- <script setup lang="tsx">
26
- import { ref, nextTick } from 'vue';
27
- import childView from './childView.vue';
28
- import { useRender } from '@utogether/utils';
29
- // import { useRender } from '../../../utils/udp/useRender';
30
-
31
- const xgrid = ref(null);
32
- // const renderOption = useRenderOption();
33
-
34
- const formItems = [
35
- { field: 'dictCode', title: 'message.udp.dictCode' },
36
- { field: 'dictName', title: 'message.udp.dictName' },
37
- { field: 'dictType', title: 'message.udp.dictType', code: 'SU.DICT.TYPE' }
38
- ];
39
-
40
- const renderHook = useRender();
41
- // 列字段
42
- const columns = [
43
- { type: 'checkbox', width: 40, align: 'center' },
44
-
45
- {
46
- field: 'dictCode',
47
- title: 'message.udp.dictCode',
48
- required: true,
49
- editRender: renderHook.renderInput()
50
- },
51
- {
52
- field: 'dictName',
53
- title: 'message.udp.dictName',
54
- required: true,
55
- editRender: renderHook.renderInput()
56
- },
57
- // {
58
- // field: 'userName',
59
- // width: 300,
60
- // editRender: renderHook.renderUpload()
61
- // },
62
- {
63
- field: 'dictType',
64
- title: 'message.udp.dictType',
65
- required: true,
66
- editRender: renderHook.renderDict('SU.DICT.TYPE'),
67
- formatter: ['formatDict', 'SU.DICT.TYPE']
68
- },
69
- { field: 'dictDesc', title: 'message.remark', editRender: renderHook.renderInput() },
70
- {
71
- field: 'enabled',
72
- width: 90,
73
- editRender: renderHook.renderDict({ code: 'SU.ENABLE', defaultValue: '1' }),
74
- formatter: ['formatDict', 'SU.ENABLE']
75
- },
76
- {
77
- field: 'operate',
78
- width: 80,
79
- slots: {
80
- default: ({ row }) => {
81
- if (!row.id) return null;
82
- return [<ut-button content="lov" onClick={() => hanldeDipose(row)} />];
83
- }
84
- }
85
- }
86
- ];
87
-
88
- const shouDrawer = ref(false);
89
- const record = ref(null);
90
- const hanldeDipose = row => {
91
- nextTick(() => {
92
- shouDrawer.value = true;
93
- record.value = row;
94
- record.value.total = row.children?.length;
95
- });
96
- };
97
- const handleClose = () => {
98
- xgrid.value.refreshData();
99
- shouDrawer.value = false;
100
- };
101
-
102
- const onGridEvents = {
103
- editActived({ row }) {
104
- // columns[1].editRender.props.disabled = !!row.id;
105
- }
106
- };
107
-
108
- // function onChange(e) {
109
- // console.log('onChange', e);
110
- // }
111
- // function onFocus(e) {
112
- // console.log('onFocus', e);
113
- // }
114
-
115
- const checkMethod = row => {
116
- return row.dictType !== '0';
117
- };
118
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 17:33:21
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-09-12 13:28:27
6
+ * @Description: 数据字典
7
+ -->
8
+ <template>
9
+ <div>
10
+ <ut-grid
11
+ ref="xgrid"
12
+ :items="formItems"
13
+ :columns="columns"
14
+ :check-method="checkMethod"
15
+ :events="onGridEvents"
16
+ url="/upfm/v1/lov"
17
+ />
18
+ <child-view v-if="shouDrawer" :show="shouDrawer" :record="record" @onClose="handleClose" />
19
+ </div>
20
+ </template>
21
+
22
+ <script lang="tsx">
23
+ export default { name: 'DictView' };
24
+ </script>
25
+ <script setup lang="tsx">
26
+ import { ref, nextTick } from 'vue';
27
+ import childView from './childView.vue';
28
+ import { useRender } from '@utogether/utils';
29
+ // import { useRender } from '../../../utils/udp/useRender';
30
+
31
+ const xgrid = ref(null);
32
+ // const renderOption = useRenderOption();
33
+
34
+ const formItems = [
35
+ { field: 'dictCode', title: 'message.udp.dictCode' },
36
+ { field: 'dictName', title: 'message.udp.dictName' },
37
+ { field: 'dictType', title: 'message.udp.dictType', code: 'SU.DICT.TYPE' }
38
+ ];
39
+
40
+ const renderHook = useRender();
41
+ // 列字段
42
+ const columns = [
43
+ { type: 'checkbox', width: 40, align: 'center' },
44
+
45
+ {
46
+ field: 'dictCode',
47
+ title: 'message.udp.dictCode',
48
+ required: true,
49
+ editRender: renderHook.renderInput()
50
+ },
51
+ {
52
+ field: 'dictName',
53
+ title: 'message.udp.dictName',
54
+ required: true,
55
+ editRender: renderHook.renderInput()
56
+ },
57
+ // {
58
+ // field: 'userName',
59
+ // width: 300,
60
+ // editRender: renderHook.renderUpload()
61
+ // },
62
+ {
63
+ field: 'dictType',
64
+ title: 'message.udp.dictType',
65
+ required: true,
66
+ editRender: renderHook.renderDict('SU.DICT.TYPE'),
67
+ formatter: ['formatDict', 'SU.DICT.TYPE']
68
+ },
69
+ { field: 'dictDesc', title: 'message.remark', editRender: renderHook.renderInput() },
70
+ {
71
+ field: 'enabled',
72
+ width: 90,
73
+ editRender: renderHook.renderDict({ code: 'SU.ENABLE', defaultValue: '1' }),
74
+ formatter: ['formatDict', 'SU.ENABLE']
75
+ },
76
+ {
77
+ field: 'operate',
78
+ width: 80,
79
+ slots: {
80
+ default: ({ row }) => {
81
+ if (!row.id) return null;
82
+ return [<ut-button content="lov" onClick={() => hanldeDipose(row)} />];
83
+ }
84
+ }
85
+ }
86
+ ];
87
+
88
+ const shouDrawer = ref(false);
89
+ const record = ref(null);
90
+ const hanldeDipose = row => {
91
+ nextTick(() => {
92
+ shouDrawer.value = true;
93
+ record.value = row;
94
+ record.value.total = row.children?.length;
95
+ });
96
+ };
97
+ const handleClose = () => {
98
+ xgrid.value.refreshData();
99
+ shouDrawer.value = false;
100
+ };
101
+
102
+ const onGridEvents = {
103
+ editActived({ row }) {
104
+ // columns[1].editRender.props.disabled = !!row.id;
105
+ }
106
+ };
107
+
108
+ // function onChange(e) {
109
+ // console.log('onChange', e);
110
+ // }
111
+ // function onFocus(e) {
112
+ // console.log('onFocus', e);
113
+ // }
114
+
115
+ const checkMethod = row => {
116
+ return row.dictType !== '0';
117
+ };
118
+ </script>
@@ -141,7 +141,7 @@ const onChildren = row => {
141
141
  temp.value = JSON.parse(JSON.stringify(row));
142
142
  };
143
143
  const onDel = async row => {
144
- const type = await VxeUI.modal.confirm(t('message.deleteRecord'));
144
+ const type = await VxeUI.modal.confirm(t('message.delRecord'));
145
145
  if (type === 'confirm') {
146
146
  await getServiceApi().delete(URL, [row]);
147
147
  successMessage();