@utogether/udp-core 1.0.1-beta.3 → 1.0.1-beta.30

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 (165) hide show
  1. package/build/plugins.ts +3 -3
  2. package/dist/{403-BuP9jvH9.js → 403-DdjDWbkf.js} +1 -1
  3. package/dist/{404-DfQk8kKl.js → 404-D9vF2gFz.js} +1 -1
  4. package/dist/{500-OgROWdiZ.js → 500-mVaDmUjL.js} +1 -1
  5. package/dist/{AuthorityInfo-q2ksfkWH.js → AuthorityInfo-DOUJ_Zrj.js} +1 -1
  6. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-B12sAzqt.js +100 -0
  7. package/dist/{Company-DgqowAxc.js → Company-DY__kM9F.js} +3 -3
  8. package/dist/{CompanyPanel-BNb1rUhD.js → CompanyPanel-C5N8QcMA.js} +17 -17
  9. package/dist/{Department-Cl8CROSU.js → Department-DsuDZdy5.js} +3 -3
  10. package/dist/{DepartmentPanel-D5VkqKeP.js → DepartmentPanel-CdwI7Rzu.js} +25 -25
  11. package/dist/{DesignPanel-BGvEusHC.js → DesignPanel-B50-g0TL.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BQF1uQ7w.js → DesignPanel.vue_vue_type_style_index_0_lang-KV8JOZ6v.js} +28 -30
  13. package/dist/DictView-Be2Z5Obk.js +110 -0
  14. package/dist/InvOrganization-Lui1q3Ou.js +74 -0
  15. package/dist/Org-qO5ExsPN.js +39 -0
  16. package/dist/{Preview-BaGmXH7r.js → Preview-Dq4dfV2D.js} +2 -2
  17. package/dist/{ReportDefine-DkQdBErt.js → ReportDefine-DH3FvbS1.js} +1 -1
  18. package/dist/{ReportDesign-DzB_A_G6.js → ReportDesign-Bou01Jbr.js} +43 -43
  19. package/dist/{ReportQuery-DRcMb6ya.js → ReportQuery-BBkmPPSw.js} +1 -1
  20. package/dist/{ReportQueryFrom-CeA9xhR4.js → ReportQueryFrom-BCY8lTJ7.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CgGtcs5V.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-CpktcM8J.js} +1 -1
  22. package/dist/{ReportTemplate-qaiTMQuT.js → ReportTemplate-C_yJXxQ-.js} +28 -28
  23. package/dist/{Role-DsFulAjq.js → Role-CTatYsrC.js} +6 -6
  24. package/dist/{RoleAssign-DMRdocpa.js → RoleAssign-Cqt3CelK.js} +9 -9
  25. package/dist/{RolePanel-wXVysDHM.js → RolePanel-C3JMpNu8.js} +1 -1
  26. package/dist/{RolePanel-B9POS_pg.js → RolePanel-brKRJIhD.js} +1 -1
  27. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DD8u9pq8.js +132 -0
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-CleVvkcY.js → RolePanel.vue_vue_type_script_setup_true_lang-i6Gq4r5B.js} +44 -38
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DlXUs0j9.js → ScrollPanel.vue_vue_type_style_index_0_lang-CiWKyjm3.js} +23 -23
  30. package/dist/{Staff-Cq4V7ruC.js → Staff-Cd3twQ6Y.js} +3 -3
  31. package/dist/{StaffInfo-CJDKMbud.js → StaffInfo-DJp0a0qd.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-DQ4DL1KY.js → StaffInfo.vue_vue_type_script_setup_true_lang-Dp2AhJ4I.js} +16 -16
  33. package/dist/{StaffPanel-CG-uggdr.js → StaffPanel-B93hClzs.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DAgN7zN2.js → StaffPanel.vue_vue_type_script_setup_true_lang-CXjUzq7n.js} +2 -2
  35. package/dist/{SysUser-kwnzRNdD.js → SysUser-BvI6vaqI.js} +2 -2
  36. package/dist/{SysUserPanel-DTlZf3vk.js → SysUserPanel-C9V8X-Ek.js} +1 -1
  37. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-bMqTui07.js +343 -0
  38. package/dist/{SystemMenu-BVT0n-L2.js → SystemMenu-D4WME5d0.js} +27 -27
  39. package/dist/{UserInfo-BbTQ9Zat.js → UserInfo-D-AfdfJs.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-D_bpYDmI.js → UserInfo.vue_vue_type_style_index_0_lang-C-JQYIxe.js} +41 -39
  41. package/dist/{childView-BJbIhjmf.js → childView--WMSo-wH.js} +1 -1
  42. package/dist/{childView-DCsGFrG-.js → childView-1MTl6Kaj.js} +1 -1
  43. package/dist/childView.vue_vue_type_style_index_0_lang-B8Losc4Y.js +170 -0
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-BCDxpVoD.js → childView.vue_vue_type_style_index_0_lang-BAVKNIXs.js} +1 -1
  45. package/dist/{code-rule-DePU6cdp.js → code-rule-D-RqrQB6.js} +42 -41
  46. package/dist/core.es.js +19 -10
  47. package/dist/{cron-task-DUM1SIGL.js → cron-task-D-X-KFZm.js} +11 -11
  48. package/dist/flow-task-B07st2aD.js +10 -0
  49. package/dist/{frameView-CEUTDtSm.js → frameView-MAW_-GHJ.js} +1 -1
  50. package/dist/index-Bc9vCX7z.js +2904 -0
  51. package/dist/{layoutView-PCjwVwkX.js → layoutView-De2QIEr2.js} +1639 -1629
  52. package/dist/{log-in-e7D5Ss1P.js → log-in-CpGqc33f.js} +5 -4
  53. package/dist/{log-out--RRncZhN.js → log-out-D1b4VRMZ.js} +30 -24
  54. package/dist/{login-log-CvVnyGi3.js → login-log-BNRXLeMi.js} +4 -3
  55. package/dist/login-rdZ0GPYc.js +249 -0
  56. package/dist/{lov-view-D8wwkxFJ.js → lov-view-Ao7LMspL.js} +5 -5
  57. package/dist/{menuInfo-B5JKVwrB.js → menuInfo-DmOcK6An.js} +1 -1
  58. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-CcM9WX4n.js → menuInfo.vue_vue_type_style_index_0_lang-Ln-zFWV7.js} +121 -99
  59. package/dist/{pda-app-DIa1p1Ww.js → pda-app-DY63mQ2T.js} +202 -188
  60. package/dist/{resource-CCQ7Dd-5.js → resource-B21uV58T.js} +18 -18
  61. package/dist/{su-welcome-CLp9YaJa.js → su-welcome-DgjzJeDF.js} +122 -121
  62. package/dist/sys-config-DOtK2I32.js +370 -0
  63. package/dist/udp-core.css +1 -9
  64. package/dist/utogether-MlnyYtNS.js +4 -0
  65. package/index.ts +19 -6
  66. package/package.json +3 -3
  67. package/src/App.vue +65 -70
  68. package/src/api/http.ts +1 -4
  69. package/src/api/index.ts +5 -3
  70. package/src/api/user.ts +2 -2
  71. package/src/components/SuCharts/src/UserInfo.vue +3 -3
  72. package/src/components/SuScrollTree/ScrollPanel.vue +4 -9
  73. package/src/components/udp/content/index.vue +89 -0
  74. package/src/components/udp/form/form.vue +109 -0
  75. package/src/components/udp/{grid.vue → grid/index.vue} +524 -500
  76. package/src/components/udp/index.ts +4 -6
  77. package/src/components/udp/ut-stamp-badge/index.vue +272 -0
  78. package/src/components/udp/utils.ts +408 -379
  79. package/src/directives/permission/index.ts +1 -1
  80. package/src/layout/components/lay-navbar/index.vue +8 -6
  81. package/src/layout/components/lay-panel/index.vue +150 -150
  82. package/src/layout/components/lay-search/index.vue +1 -1
  83. package/src/layout/components/lay-select-org/index.vue +4 -9
  84. package/src/layout/components/lay-sidebar/horizontal.vue +8 -6
  85. package/src/layout/components/lay-sidebar/mixNav.vue +260 -258
  86. package/src/layout/components/lay-sidebar/sidebar-logo.vue +8 -12
  87. package/src/layout/components/lay-tag/index.vue +596 -625
  88. package/src/layout/hooks/useTag.ts +12 -18
  89. package/src/layout/types.ts +3 -2
  90. package/src/main.ts +115 -110
  91. package/src/plugins/i18n/en.ts +302 -291
  92. package/src/plugins/i18n/module/u-workflow.ts +1 -1
  93. package/src/plugins/i18n/zh.ts +362 -338
  94. package/src/plugins/vxe-table/index.ts +116 -53
  95. package/src/plugins/vxe-table/render.tsx +183 -57
  96. package/src/router/index.ts +101 -97
  97. package/src/router/modules/flow.ts +35 -0
  98. package/src/router/modules/remaining.ts +1 -26
  99. package/src/router/utils.ts +50 -7
  100. package/src/store/modules/app.ts +1 -3
  101. package/src/store/modules/multiTags.ts +15 -14
  102. package/src/store/modules/permission.ts +25 -15
  103. package/src/store/modules/system.ts +1 -3
  104. package/src/style/button.scss +85 -85
  105. package/src/style/login.css +1 -1
  106. package/src/style/vxetable.scss +348 -258
  107. package/src/utils/authority/index.ts +1 -1
  108. package/src/utils/index.ts +3 -1
  109. package/src/utils/propTypes.ts +1 -6
  110. package/src/utils/{http → udp/http}/index.ts +27 -30
  111. package/src/utils/{http → udp/http}/types.d.ts +2 -6
  112. package/src/views/login/login-view.vue +6 -20
  113. package/src/views/organization/company/CompanyPanel.vue +259 -259
  114. package/src/views/organization/department/DepartmentPanel.vue +6 -20
  115. package/src/views/organization/inv-org/InvOrganization.vue +22 -7
  116. package/src/views/organization/org/Org.vue +9 -5
  117. package/src/views/system/cron/cron-task.vue +2 -12
  118. package/src/views/system/menu/SystemMenu.vue +185 -197
  119. package/src/views/system/menu/menuInfo.vue +384 -372
  120. package/src/views/system/role/AuthorityInfo.vue +19 -15
  121. package/src/views/system/role/Role.vue +1 -5
  122. package/src/views/system/role/RolePanel.vue +11 -2
  123. package/src/views/system/role/UserInfo.vue +11 -9
  124. package/src/views/system/role-assign/RoleAssign.vue +2 -2
  125. package/src/views/system/role-assign/RolePanel.vue +12 -9
  126. package/src/views/system/sys/sys-config.vue +70 -21
  127. package/src/views/system/sysUser/SysUserPanel.vue +132 -62
  128. package/src/views/uapp/pda/pda-app.vue +48 -16
  129. package/src/views/udev/coderule/code-rule.vue +132 -121
  130. package/src/views/udev/dict/DictView.vue +118 -106
  131. package/src/views/udev/dict/childView.vue +71 -111
  132. package/src/views/udev/lov/childView.vue +1 -7
  133. package/src/views/udev/lov/lov-view.vue +91 -91
  134. package/src/views/ufile/aggregation/File.vue +5 -5
  135. package/src/views/ufile/file/water-mark.vue +14 -14
  136. package/src/views/uhome/components/menu-favorite.vue +314 -331
  137. package/src/views/uhome/su-welcome.vue +3 -3
  138. package/src/views/ulogin/login.vue +19 -12
  139. package/src/views/upms/interface/log-in.vue +2 -8
  140. package/src/views/upms/interface/log-out.vue +2 -8
  141. package/src/views/upms/user/login-log.vue +2 -8
  142. package/src/views/urpt/design/DesignPanel.vue +16 -35
  143. package/src/views/urpt/design/Preview.vue +1 -0
  144. package/src/views/urpt/design/ReportDesign.vue +17 -23
  145. package/src/views/urpt/static-resource/resource.vue +3 -3
  146. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  147. package/src/views/utask/flow-task.vue +18 -0
  148. package/types/global.d.ts +4 -9
  149. package/vite.config.ts +2 -1
  150. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-Bwsf6lMH.js +0 -102
  151. package/dist/DictView-BnxfaOBv.js +0 -96
  152. package/dist/InvOrganization-5y79ZLdY.js +0 -66
  153. package/dist/Org-2oBAXN2r.js +0 -35
  154. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-t6S_0zmJ.js +0 -126
  155. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BW6PlGjM.js +0 -288
  156. package/dist/childView.vue_vue_type_style_index_0_lang-CDtsalCm.js +0 -187
  157. package/dist/index-ZdgOD7cF.js +0 -3399
  158. package/dist/login-B1CjWVKu.js +0 -252
  159. package/dist/sys-config-BBmf_SqF.js +0 -277
  160. package/dist/utogether-Bkptx2lB.js +0 -182
  161. package/src/components/udp/form-upload.vue +0 -183
  162. package/src/components/udp/lov.vue +0 -410
  163. package/src/components/udp/modal-form.vue +0 -180
  164. package/src/components/udp/modal-grid.vue +0 -297
  165. package/src/utils/udp/useRender.ts +0 -420
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2022-07-15 17:02:56
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-08 15:29:30
5
+ * @LastEditTime: 2025-11-19 18:36:06
6
6
  * @Description: file contentu
7
7
  -->
8
8
  <template>
@@ -15,55 +15,17 @@
15
15
  destroy-on-close
16
16
  size="76%"
17
17
  >
18
- <div style="margin: 10px">
19
- <vxe-toolbar>
20
- <template #buttons>
21
- <vxe-button status="primary" icon="vxe-icon-add" @click="onAdd">
22
- {{ $t('message.btn.add') }}
23
- </vxe-button>
24
- </template>
25
- <template #tools>
26
- <vxe-button icon="vxe-icon-refresh" @click="getDict" />
27
- </template>
28
- </vxe-toolbar>
29
- <vxe-table
30
- border
31
- row-id="id"
32
- :data="tableData"
33
- :loading="loading"
34
- :tree-config="{ childrenField: 'children', expandAll: true }"
35
- >
36
- <vxe-table-column type="seq" width="130" :title="$t('message.seqNo')" tree-node />
37
- <vxe-table-column field="dictCode" :title="$t('message.udp.dictCode')" />
38
- <vxe-table-column field="dictName" :title="$t('message.udp.dictName')" />
39
- <vxe-table-column field="dictDesc" :title="$t('message.remark')" />
40
- <vxe-table-column field="enabled" :title="$t('message.enabled')" width="100">
41
- <template #default="{ row }">
42
- <span>{{ row.enabled === '1' ? $t('message.enabled') : $t('message.disabled') }}</span>
43
- </template>
44
- </vxe-table-column>
45
- <vxe-table-column field="" :title="$t('message.operate')" width="200">
46
- <template #default="{ row }">
47
- <ut-button status="primary" content="edit" @tap="onEdit(row)" />
48
- <ut-button status="warning" content="delete" @tap="onDel(row)" />
49
- <ut-button
50
- status="success"
51
- content="add"
52
- :disabled="row.enabled !== '1'"
53
- @tap="onChildren(row)"
54
- />
55
- </template>
56
- </vxe-table-column>
57
- </vxe-table>
58
- </div>
59
- <!-- <ut-grid
60
- ref="gridRef"
18
+ <ut-grid
19
+ ref="xgrid"
61
20
  :columns="columns"
62
- url="/upfm/v1/lov"
21
+ :height="height"
63
22
  :default-params="{ parentId: record.id }"
64
- :default-value="{ parentId: record.id }"
65
- :events="onEvents"
66
- /> -->
23
+ :buttons="[{ code: 'del', auth: '/' }]"
24
+ :tree-config="{ childrenField: 'children', expandAll: true }"
25
+ url="/upfm/v1/lov/children"
26
+ mode="form"
27
+ @buttonClick="onButtonClick"
28
+ />
67
29
  <ut-modal-form
68
30
  v-if="showModal"
69
31
  ref="xmodal"
@@ -80,14 +42,15 @@
80
42
  </div>
81
43
  </template>
82
44
 
83
- <script setup lang="ts">
84
- import { ref, onMounted } from 'vue';
45
+ <script setup lang="tsx">
46
+ import { ref } from 'vue';
85
47
  import { useI18n } from 'vue-i18n';
86
48
  import to from 'await-to-js';
87
49
  import { VxeUI } from 'vxe-pc-ui';
88
50
  import { successMessage, useRender } from '@utogether/utils';
89
51
  import { getServiceApi } from '../../../api';
90
52
  import { useSystemStoreHook } from '../../../store/modules/system';
53
+ import { clone } from 'xe-utils';
91
54
 
92
55
  interface IProps {
93
56
  record: IRecord;
@@ -104,12 +67,44 @@ const renderHook = useRender();
104
67
  const { t } = useI18n();
105
68
 
106
69
  const URL = '/upfm/v1/lov';
107
- const tableData = ref([]);
108
- const loading = ref(false);
109
70
  const showModal = ref(false);
71
+ const xgrid = ref(null);
72
+ const xmodal = ref(null);
110
73
  const subRecord = ref<IRecord>({});
111
- const temp = ref<IRecord>({});
112
74
  const modalType = ref('add');
75
+
76
+ const height = window.innerHeight - 70;
77
+
78
+ const columns = [
79
+ { field: 'dictCode', title: 'message.udp.dictCode', required: true, treeNode: true },
80
+ { field: 'dictName', title: 'message.udp.dictName', required: true },
81
+ { field: 'dictDesc', title: 'message.remark' },
82
+ { field: 'enabled', formatter: ['formatDict', 'SU.ENABLE'] },
83
+ {
84
+ field: 'operate',
85
+ title: 'message.operate',
86
+ width: 200,
87
+ fixed: 'right',
88
+ slots: {
89
+ default: ({ row }) => {
90
+ return [
91
+ <>
92
+ <ut-button
93
+ content="add"
94
+ status="warning"
95
+ auth="edit"
96
+ icon="ri-add-line"
97
+ onTap={() => handleAddChild(row)}
98
+ />
99
+ <ut-button content="edit" status="primary" auth="edit" onTap={() => handleEdit(row)} />
100
+ <ut-button content="del" status="danger" auth="del" onTap={() => handleDel(row)} />
101
+ </>
102
+ ];
103
+ }
104
+ }
105
+ }
106
+ ];
107
+
113
108
  const subItems = [
114
109
  { field: 'dictCode', title: 'message.udp.dictCode', required: true },
115
110
  { field: 'dictName', title: 'message.udp.dictName', required: true },
@@ -117,47 +112,31 @@ const subItems = [
117
112
  {
118
113
  field: 'enabled',
119
114
  itemRender: renderHook.renderSwitch({ openValue: '1', closeValue: '0', defaultValue: '1' })
120
- // itemRender: renderHook.renderDict({ code: 'SU.ENABLE', defaultValue: '1' })
121
- // formatter: ['formatDict', 'SU.ENABLE']
122
115
  }
123
116
  ];
124
117
 
125
- const onAdd = () => {
118
+ const handleAdd = () => {
126
119
  showModal.value = true;
127
120
  modalType.value = 'add';
128
- subRecord.value = {
129
- dictCode: '',
130
- dictName: '',
131
- dictDesc: '',
132
- enabled: '1'
133
- };
134
- temp.value = props.record;
121
+ subRecord.value = { enabled: '1', parentId: props.record.id };
135
122
  };
136
- const onChildren = row => {
123
+ const handleAddChild = row => {
137
124
  showModal.value = true;
138
- modalType.value = 'child';
139
- subRecord.value = {
140
- dictCode: '',
141
- dictName: '',
142
- dictDesc: '',
143
- enabled: '1'
144
- };
145
- temp.value = JSON.parse(JSON.stringify(row));
125
+ modalType.value = 'add';
126
+ subRecord.value = { enabled: '1', parentId: row.id };
146
127
  };
147
- const onDel = async row => {
148
- const type = await VxeUI.modal.confirm(t('message.deleteRecord'));
128
+ const handleDel = async row => {
129
+ const type = await VxeUI.modal.confirm(t('message.delRecord'));
149
130
  if (type === 'confirm') {
150
131
  await getServiceApi().delete(URL, [row]);
151
132
  successMessage();
152
- getDict();
133
+ xgrid.value.refreshData();
153
134
  }
154
135
  };
155
- const onEdit = async row => {
156
- // const type = await VXETable.modal.confirm('此删除操作不可逆,确定继续?');
136
+ const handleEdit = async row => {
157
137
  showModal.value = true;
158
138
  modalType.value = 'edit';
159
- temp.value = props.record;
160
- subRecord.value = JSON.parse(JSON.stringify(row));
139
+ subRecord.value = clone(row, true);
161
140
  console.log({ subRecord });
162
141
  };
163
142
 
@@ -165,38 +144,23 @@ const onConfirm = async () => {
165
144
  const query = {
166
145
  ...subRecord.value,
167
146
  orgId: useSystemStoreHook().getOrgId,
168
- organizationId: useSystemStoreHook().getOrganizationId,
169
- parentId: subRecord.value.parentId || temp.value.id
147
+ organizationId: useSystemStoreHook().getOrganizationId
170
148
  };
171
- let type = 'post';
172
- if (['add', 'child'].includes(modalType.value)) {
173
- type = 'post';
174
- } else {
175
- type = 'put';
176
- }
177
- loading.value = true;
178
- const [err, res]: [Error, any] = await to(getServiceApi()[type](URL, [query]));
179
- loading.value = false;
180
- if (!err) {
181
- console.log({ res });
182
- showModal.value = false;
183
- successMessage();
184
- getDict();
149
+ xmodal.value.showLoading();
150
+ const method = modalType.value === 'add' ? 'post' : 'put';
151
+ const [err]: [Error, any] = await to(getServiceApi()[method](URL, [query]));
152
+ xmodal.value.hiddenLoading();
153
+ if (err) return;
154
+ showModal.value = modalType.value !== 'edit';
155
+ if (modalType.value === 'add') {
156
+ subRecord.value = { enabled: '1' };
185
157
  }
158
+ successMessage();
159
+ xgrid.value.refreshData();
186
160
  };
187
161
 
188
- const getDict = async () => {
189
- const query = {
190
- parentId: props.record.id
191
- };
192
- loading.value = true;
193
- const [err, res]: [Error, any] = await to(getServiceApi().get(URL + '/children', query));
194
- loading.value = false;
195
- if (!err) {
196
- tableData.value = res.list;
197
- // status.value = 'update';
198
- // successMessage();
199
- }
162
+ const onButtonClick = code => {
163
+ code === 'add' && handleAdd();
200
164
  };
201
165
 
202
166
  const emit = defineEmits<{
@@ -207,10 +171,6 @@ const emit = defineEmits<{
207
171
  function handleClose() {
208
172
  emit('onClose');
209
173
  }
210
-
211
- onMounted(() => {
212
- getDict();
213
- });
214
174
  </script>
215
175
 
216
176
  <style lang="scss">
@@ -7,13 +7,7 @@
7
7
  -->
8
8
  <template>
9
9
  <div class="ut-loview-wrapper">
10
- <el-drawer
11
- :model-value="show"
12
- :with-header="false"
13
- :show-close="false"
14
- :close-on-click-modal="false"
15
- size="90%"
16
- >
10
+ <el-drawer :model-value="show" :with-header="false" :show-close="false" :close-on-click-modal="false" size="90%">
17
11
  <div v-spinning="loading">
18
12
  <ut-content :title="$t('message.title.lovView')" @close="handleClose">
19
13
  <template v-slot:header>
@@ -1,91 +1,91 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2022-08-10 09:10:39
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-08 15:31:20
6
- * @Description: 值集视图
7
- -->
8
- <template>
9
- <div>
10
- <ut-grid ref="xgrid" :items="formItems" :columns="columns" :url="url" :events="onEvents" />
11
- <child-view v-if="shouDrawer" :show="shouDrawer" :record="record" @onClose="handleClose" />
12
- </div>
13
- </template>
14
-
15
- <script setup lang="tsx">
16
- import { ref, nextTick } from 'vue';
17
- // import { VxeGridInstance } from 'vxe-table';
18
- import to from 'await-to-js';
19
- import { getServiceApi } from '../../../api';
20
- import childView from './childView.vue';
21
- import { useRender } from '@utogether/utils';
22
-
23
- defineOptions({ name: 'LovView' });
24
-
25
- const xgrid = ref(null);
26
-
27
- const formItems = [{ field: 'lovCode' }, { field: 'lovName' }];
28
-
29
- const renderHook = useRender();
30
-
31
- const url = '/upfm/v1/lovViewHeader';
32
-
33
- // 列字段
34
- const columns = [
35
- { type: 'checkbox', width: 50, align: 'center' },
36
- {
37
- field: 'lovCode',
38
- required: true,
39
- editRender: renderHook.renderInput()
40
- },
41
- { field: 'lovName', required: true, editRender: renderHook.renderInput() },
42
- { field: 'valueField', required: true, editRender: renderHook.renderInput() },
43
- { field: 'lovTitle', editRender: renderHook.renderInput() },
44
- {
45
- field: 'lovType',
46
- editRender: renderHook.renderDict('SU.LOV.TYPE'),
47
- required: true,
48
- formatter: ['formatDict', 'SU.LOV.TYPE']
49
- },
50
- { field: 'remarks', title: 'message.remark', editRender: renderHook.renderInput() },
51
- { field: 'enabled', width: 80, cellRender: renderHook.renderEnabled(handleClick) },
52
- {
53
- field: 'operate',
54
- width: 100,
55
- fixed: 'right',
56
- slots: {
57
- default: ({ row }) => {
58
- if (!row.id) return null;
59
- return [<ut-button content="config" icon="ri-edit-box-line" onTap={() => hanldeDipose(row)} />];
60
- }
61
- }
62
- }
63
- ];
64
-
65
- const shouDrawer = ref(false);
66
- const record = ref(null);
67
- const hanldeDipose = row => {
68
- nextTick(() => {
69
- shouDrawer.value = true;
70
- record.value = row;
71
- // record.value.total = row.children.length;
72
- });
73
- };
74
- const handleClose = () => {
75
- xgrid.value.refreshData();
76
- shouDrawer.value = false;
77
- };
78
-
79
- // 启用/禁用
80
- async function handleClick(row) {
81
- const [err] = await to(getServiceApi().put(url, [row]));
82
- !err && xgrid.value.refreshData();
83
- }
84
-
85
- const onEvents = {
86
- editActived({ row }) {
87
- columns[1].editRender.props.disabled = !!row.id;
88
- xgrid.value.refreshColumn();
89
- }
90
- };
91
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2022-08-10 09:10:39
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-04-08 15:31:20
6
+ * @Description: 值集视图
7
+ -->
8
+ <template>
9
+ <div>
10
+ <ut-grid ref="xgrid" :items="formItems" :columns="columns" :url="url" :events="onEvents" />
11
+ <child-view v-if="shouDrawer" :show="shouDrawer" :record="record" @onClose="handleClose" />
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="tsx">
16
+ import { ref, nextTick } from 'vue';
17
+ // import { VxeGridInstance } from 'vxe-table';
18
+ import to from 'await-to-js';
19
+ import { getServiceApi } from '../../../api';
20
+ import childView from './childView.vue';
21
+ import { useRender } from '@utogether/utils';
22
+
23
+ defineOptions({ name: 'LovView' });
24
+
25
+ const xgrid = ref(null);
26
+
27
+ const formItems = [{ field: 'lovCode' }, { field: 'lovName' }];
28
+
29
+ const renderHook = useRender();
30
+
31
+ const url = '/upfm/v1/lovViewHeader';
32
+
33
+ // 列字段
34
+ const columns = [
35
+ { type: 'checkbox', width: 50, align: 'center' },
36
+ {
37
+ field: 'lovCode',
38
+ required: true,
39
+ editRender: renderHook.renderInput()
40
+ },
41
+ { field: 'lovName', required: true, editRender: renderHook.renderInput() },
42
+ { field: 'valueField', required: true, editRender: renderHook.renderInput() },
43
+ { field: 'lovTitle', editRender: renderHook.renderInput() },
44
+ {
45
+ field: 'lovType',
46
+ editRender: renderHook.renderDict('SU.LOV.TYPE'),
47
+ required: true,
48
+ formatter: ['formatDict', 'SU.LOV.TYPE']
49
+ },
50
+ { field: 'remarks', title: 'message.remark', editRender: renderHook.renderInput() },
51
+ { field: 'enabled', width: 80, cellRender: renderHook.renderEnabled(handleClick) },
52
+ {
53
+ field: 'operate',
54
+ width: 100,
55
+ fixed: 'right',
56
+ slots: {
57
+ default: ({ row }) => {
58
+ if (!row.id) return null;
59
+ return [<ut-button content="config" icon="ri-edit-box-line" onTap={() => hanldeDipose(row)} />];
60
+ }
61
+ }
62
+ }
63
+ ];
64
+
65
+ const shouDrawer = ref(false);
66
+ const record = ref(null);
67
+ const hanldeDipose = row => {
68
+ nextTick(() => {
69
+ shouDrawer.value = true;
70
+ record.value = row;
71
+ // record.value.total = row.children.length;
72
+ });
73
+ };
74
+ const handleClose = () => {
75
+ xgrid.value.refreshData();
76
+ shouDrawer.value = false;
77
+ };
78
+
79
+ // 启用/禁用
80
+ async function handleClick(row) {
81
+ const [err] = await to(getServiceApi().put(url, [row]));
82
+ !err && xgrid.value.refreshData();
83
+ }
84
+
85
+ const onEvents = {
86
+ editActived({ row }) {
87
+ columns[1].editRender.props.disabled = !!row.id;
88
+ xgrid.value.refreshColumn();
89
+ }
90
+ };
91
+ </script>
@@ -24,17 +24,17 @@ const xgrid = ref(null);
24
24
  const url = '/ufil/v1/attachment';
25
25
 
26
26
  const formItems = [
27
- { field: 'fileName', title: 'message.file.fileName' },
27
+ { field: 'fileName', title: 'message.urpt.fileName' },
28
28
  { field: 'creationDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
29
29
  { field: 'createdByName' }
30
30
  ];
31
31
 
32
32
  // 列字段
33
33
  const columns = [
34
- { field: 'fileName', title: 'message.file.fileName', width: 240 },
35
- { field: 'fileSize', title: 'message.file.fileSize', width: 110 },
36
- { field: 'fileExtend', title: 'message.file.fileExtend', width: 100 },
37
- { field: 'realpath', title: 'message.file.filePath' },
34
+ { field: 'fileName', title: 'message.urpt.fileName', width: 240 },
35
+ { field: 'fileSize', title: 'message.urpt.fileSize', width: 110 },
36
+ { field: 'fileExtend', title: 'message.urpt.fileExtend', width: 100 },
37
+ { field: 'realpath', title: 'message.urpt.filePath' },
38
38
  { field: 'createdByName', width: 120 },
39
39
  { field: 'creationDate', width: 160 },
40
40
  {
@@ -25,15 +25,15 @@ const renderHook = useRender();
25
25
  const url = '/ufil/v1/watermark';
26
26
 
27
27
  const formItems = [
28
- { field: 'watermarkCode', title: 'message.file.watermarkContent' },
28
+ { field: 'watermarkCode', title: 'message.urpt.watermarkContent' },
29
29
  {
30
30
  field: 'watermarkType',
31
- title: 'message.file.watermarkType',
31
+ title: 'message.urpt.watermarkType',
32
32
  itemRender: renderHook.renderDict('SU.WATERMARK.TYPE')
33
33
  },
34
34
  {
35
35
  field: 'textAlign',
36
- title: 'message.file.textAlign',
36
+ title: 'message.urpt.textAlign',
37
37
  itemRender: renderHook.renderDict('SU.ALIGN.TYPE')
38
38
  }
39
39
  ];
@@ -43,14 +43,14 @@ const columns = [
43
43
  { type: 'checkbox', width: 40, align: 'center' },
44
44
  {
45
45
  field: 'watermarkCode',
46
- title: 'message.file.watermarkContent',
46
+ title: 'message.urpt.watermarkContent',
47
47
  required: true,
48
48
  minWidth: 110,
49
49
  editRender: renderHook.renderInput()
50
50
  },
51
51
  {
52
52
  field: 'watermarkType',
53
- title: 'message.file.watermarkType',
53
+ title: 'message.urpt.watermarkType',
54
54
  width: 120,
55
55
  required: true,
56
56
  editRender: renderHook.renderDict({ code: 'SU.WATERMARK.TYPE', defaultValue: 'text' }),
@@ -58,13 +58,13 @@ const columns = [
58
58
  },
59
59
  {
60
60
  field: 'content',
61
- title: 'message.file.watermarkContent',
61
+ title: 'message.urpt.watermarkContent',
62
62
  width: 110,
63
63
  editRender: renderHook.renderInput()
64
64
  },
65
65
  {
66
66
  field: 'textAlign',
67
- title: 'message.file.textAlign',
67
+ title: 'message.urpt.textAlign',
68
68
  width: 120,
69
69
  required: true,
70
70
  editRender: renderHook.renderDict('SU.ALIGN.TYPE'),
@@ -72,32 +72,32 @@ const columns = [
72
72
  },
73
73
  {
74
74
  field: 'watermarkTrigger',
75
- title: 'message.file.watermarkTrigger',
75
+ title: 'message.urpt.watermarkTrigger',
76
76
  width: 120,
77
77
  required: true,
78
78
  editRender: renderHook.renderDict('SU.WATERMARK.TRIGGER'),
79
79
  formatter: ['formatDict', 'SU.WATERMARK.TRIGGER']
80
80
  },
81
- { field: 'color', title: 'message.file.color', width: 90, editRender: renderHook.renderInput() },
81
+ { field: 'color', title: 'message.urpt.color', width: 90, editRender: renderHook.renderInput() },
82
82
  {
83
83
  field: 'fillOpacity',
84
- title: 'message.file.fillOpacity',
84
+ title: 'message.urpt.fillOpacity',
85
85
  width: 100,
86
86
  editRender: renderHook.renderNumber()
87
87
  },
88
88
  {
89
89
  field: 'fontSize',
90
- title: 'message.file.fontSize',
90
+ title: 'message.urpt.fontSize',
91
91
  width: 110,
92
92
  editRender: renderHook.renderNumber()
93
93
  },
94
94
  {
95
95
  field: 'rotation',
96
- title: 'message.file.rotation',
96
+ title: 'message.urpt.rotation',
97
97
  width: 110,
98
98
  editRender: renderHook.renderNumber()
99
99
  },
100
- { field: 'xAxis', title: 'message.file.xAxis', width: 100, editRender: renderHook.renderNumber() },
101
- { field: 'yAxis', title: 'message.file.yAxis', width: 100, editRender: renderHook.renderNumber() }
100
+ { field: 'xAxis', title: 'message.urpt.xAxis', width: 100, editRender: renderHook.renderNumber() },
101
+ { field: 'yAxis', title: 'message.urpt.yAxis', width: 100, editRender: renderHook.renderNumber() }
102
102
  ];
103
103
  </script>