@utogether/udp-core 2.0.0-beta.21 → 2.0.0-beta.22

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 (71) hide show
  1. package/dist/{403-DICzHwBh.js → 403-CAQ-gKzB.js} +1 -1
  2. package/dist/{404-CE2ilza7.js → 404-Bt741znF.js} +3 -3
  3. package/dist/{500-DqbOUpFQ.js → 500-D2jT-L5U.js} +1 -1
  4. package/dist/{AuthorityInfo-DD9xMuFM.js → AuthorityInfo-rrhMImq9.js} +1 -1
  5. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-aH0WIYDG.js → AuthorityInfo.vue_vue_type_style_index_0_lang-t3TtTkNB.js} +1 -1
  6. package/dist/{Company-CZSbX6Cr.js → Company-OyHHgUiy.js} +3 -3
  7. package/dist/{CompanyPanel-DRz2RdEP.js → CompanyPanel-D-V5PE9g.js} +1 -1
  8. package/dist/{Department-B8HWfFX7.js → Department-Do3AcdWQ.js} +3 -3
  9. package/dist/{DepartmentPanel-DXfqf0O-.js → DepartmentPanel-DIchoE6d.js} +1 -1
  10. package/dist/{DesignPanel-DCemiRmN.js → DesignPanel-BsiGLb2w.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BpI6lZ8h.js → DesignPanel.vue_vue_type_style_index_0_lang-BsVJx8eH.js} +2 -2
  12. package/dist/{DictView-CQZ_Z-_n.js → DictView-BKnZ5JxT.js} +1 -1
  13. package/dist/{InvOrganization-Nq87pxzj.js → InvOrganization-VDNOjLdb.js} +1 -1
  14. package/dist/{Org-DuqSCs0N.js → Org-C952e0fi.js} +1 -1
  15. package/dist/{Preview-Du_1OWoT.js → Preview-dC0AaoU7.js} +1 -1
  16. package/dist/{ReportDefine-QSidK9OU.js → ReportDefine-B0ZonkeO.js} +1 -1
  17. package/dist/{ReportDesign-BH7WbI4K.js → ReportDesign-DR5HJeO5.js} +2 -2
  18. package/dist/{ReportQuery-Br5UKVjQ.js → ReportQuery-BPFvznsJ.js} +1 -1
  19. package/dist/{ReportQueryFrom-Dg-DjcMi.js → ReportQueryFrom-CFlIzHWH.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-D3RWJEGQ.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-C3x30JMB.js} +1 -1
  21. package/dist/{ReportTemplate-BU3VS8FO.js → ReportTemplate-BRmUyR0F.js} +1 -1
  22. package/dist/{Role-CN18RZjI.js → Role-CSIjXuu-.js} +3 -3
  23. package/dist/{RoleAssign-DXloJByw.js → RoleAssign-C65mKTY3.js} +3 -3
  24. package/dist/{RolePanel-DGW5mWjQ.js → RolePanel-T2688066.js} +1 -1
  25. package/dist/{RolePanel-CZmXekBA.js → RolePanel-fXVapub8.js} +1 -1
  26. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DdvxxsMl.js → RolePanel.vue_vue_type_script_setup_true_lang-UcdeYYCU.js} +3 -3
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DAtJnQI4.js → RolePanel.vue_vue_type_script_setup_true_lang-vCQj6JUM.js} +1 -1
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DzZ9CZig.js → ScrollPanel.vue_vue_type_style_index_0_lang-BMX37C_H.js} +1 -1
  29. package/dist/{Staff-qG73AUgD.js → Staff-BTVwMPI4.js} +3 -3
  30. package/dist/{StaffInfo-COP7bCup.js → StaffInfo-DMTV0fkA.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-BityQi7n.js → StaffInfo.vue_vue_type_script_setup_true_lang-Di6Tay8o.js} +1 -1
  32. package/dist/{StaffPanel-CB7cBhYD.js → StaffPanel-2NlyN2og.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DcPck6b8.js → StaffPanel.vue_vue_type_script_setup_true_lang-Dcsi9178.js} +2 -2
  34. package/dist/{SysUser-Dmfu9N7S.js → SysUser-BPn3kj57.js} +2 -2
  35. package/dist/{SysUserPanel-C2O-P9nB.js → SysUserPanel-DnQdgH26.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-DyF3Tmps.js → SysUserPanel.vue_vue_type_script_setup_true_lang-BWhieaeS.js} +1 -1
  37. package/dist/{SystemMenu-QZaHtPet.js → SystemMenu-BEH6JSE4.js} +2 -2
  38. package/dist/{UserInfo-CxP5kr_T.js → UserInfo-BbdolDWz.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-pe7FALf9.js → UserInfo.vue_vue_type_style_index_0_lang-BWb0ey1b.js} +1 -1
  40. package/dist/{childView-LCu_Df1q.js → childView-D8IQ-Eik.js} +1 -1
  41. package/dist/{childView-ohYBzZ0o.js → childView-DWjpPkND.js} +1 -1
  42. package/dist/{childView.vue_vue_type_style_index_0_lang-jbOoVsYJ.js → childView.vue_vue_type_style_index_0_lang-C5JuSstn.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-DJletJUx.js → childView.vue_vue_type_style_index_0_lang-DBXMbacv.js} +1 -1
  44. package/dist/{code-rule-B9eZeeo8.js → code-rule-Ch6YNyCA.js} +1 -1
  45. package/dist/core.es.js +6 -6
  46. package/dist/{cron-task-Dp71tYa4.js → cron-task--_VgTkCZ.js} +1 -1
  47. package/dist/{frameView-02snW4T6.js → frameView-BIFR0oH0.js} +1 -1
  48. package/dist/{index-gL1hMTqJ.js → index-DPTWuyo7.js} +2670 -2071
  49. package/dist/{layout-home-DCrNKejz.js → layout-home-adtU8Yoh.js} +1 -1
  50. package/dist/{layoutView-Cu3YZ1zM.js → layoutView-qTmcDeoI.js} +554 -558
  51. package/dist/{log-in-C0oqCCsq.js → log-in-iYiw0kPB.js} +1 -1
  52. package/dist/{log-out-DsTsQcQT.js → log-out-H2Kni3Qk.js} +1 -1
  53. package/dist/{login-_IgWG4L5.js → login-C7Z-Xg5H.js} +14 -14
  54. package/dist/{lov-view-B4HvQI1i.js → lov-view-CyYhwwrT.js} +2 -2
  55. package/dist/{menuInfo-y_CFBZLU.js → menuInfo-BBUlFO0X.js} +1 -1
  56. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BNgwCBo4.js → menuInfo.vue_vue_type_style_index_0_lang-fUKEpjAA.js} +1 -1
  57. package/dist/{pda-app-DplNCuYS.js → pda-app-DU146LR1.js} +18 -18
  58. package/dist/{resource-C2fCs2gF.js → resource-fTfF9epk.js} +5 -5
  59. package/dist/{su-welcome-Q0C5LnI_.js → su-welcome-BRFxhduP.js} +3 -3
  60. package/dist/{sys-config-Bsb7aFcn.js → sys-config-Do7SIoN-.js} +13 -13
  61. package/dist/udp-core.css +1 -1
  62. package/dist/{useNav-D5jP-2AH.js → useNav-BRX5xftp.js} +20 -20
  63. package/package.json +1 -1
  64. package/src/api/index.ts +47 -33
  65. package/src/components/udp/content/index.vue +93 -88
  66. package/src/components/udp/grid/index.vue +546 -524
  67. package/src/components/udp/index.ts +8 -6
  68. package/src/components/udp/upload/index.vue +444 -0
  69. package/src/main.ts +111 -111
  70. package/types/global.d.ts +234 -232
  71. package/src/components/SuTable/SuTable.vue +0 -334
@@ -1,334 +0,0 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-01 18:49:48
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-06-27 15:08:50
6
- * @Description: file content
7
- -->
8
- <template>
9
- <div class="page-content">
10
- <vxe-form
11
- v-if="data.items.length"
12
- ref="xSearchFrom"
13
- :data="data.listQuery"
14
- :items="data.items"
15
- size="mini"
16
- class="ut-seach-from"
17
- title-colon
18
- title-align="right"
19
- title-width="90"
20
- @submit="onSubmit"
21
- @reset="onReset"
22
- @collapse="onCollapse"
23
- />
24
-
25
- <!-- 工具栏 -->
26
- <vxe-toolbar
27
- v-if="showToolbar"
28
- :buttons="comButtons"
29
- :tools="tools"
30
- @button-click="onButtonClick"
31
- @tool-click="onToolClick"
32
- />
33
-
34
- <!-- 列表 -->
35
- <vxe-table
36
- ref="SuTableRef"
37
- :height="data.height"
38
- :loading="loading"
39
- :data="data.dataList"
40
- :export-config="exportConfig"
41
- :checkbox-config="{
42
- checkMethod: ({ row }) => oncheckMethod(row)
43
- }"
44
- resizable
45
- border
46
- >
47
- <vxe-table-column type="checkbox" width="50" align="center" fixed="left" />
48
- <vxe-table-column
49
- v-for="column in data.columns"
50
- :key="column.field"
51
- :field="column.field"
52
- :title="$t(column.title)"
53
- :fixed="column.fixed || ''"
54
- :width="column.width"
55
- :min-width="column.minWidth"
56
- :formatter="column.formatter || ''"
57
- :cell-render="column.cellRender || null"
58
- />
59
- <slot />
60
- <slot name="operate" />
61
- </vxe-table>
62
- <vxe-pager
63
- perfect
64
- :current-page="data.listQuery.pageNum"
65
- :page-size="data.listQuery.pageSize"
66
- :total="data.listQuery.total"
67
- @page-change="onPageChange"
68
- />
69
- </div>
70
- </template>
71
-
72
- <script setup lang="ts">
73
- // import { useI18n } from 'vue-i18n';
74
- import { ref, reactive, toRaw, computed, onBeforeMount, nextTick, getCurrentInstance } from 'vue';
75
- import dayjs from 'dayjs';
76
- import { getServiceApi } from '../../api';
77
- import { useSystemStoreHook } from '../../store/modules/system';
78
- import { columnFormat, formatGridItems } from '../../utils/dataFormat';
79
- import { clone, isString } from 'xe-utils';
80
-
81
- interface IProps {
82
- serviceCode: string;
83
- disabledField?: string; // 禁用字段
84
- fetchExtParam?: IRecord; // 查询服务时额外的参数
85
- disabledMap?: IRecord; // 禁用
86
- exportConfig?: IRecord; // 导出配置
87
- columns: Array<ITableColProps>;
88
- slots?: Array<IRecord>;
89
- formItems?: Array<IFormItemProps>;
90
- tools?: Array<IButtonProps>;
91
- buttons?: Array<IButtonProps>;
92
- extButtons?: Array<IButtonProps>;
93
- showToolbar?: boolean;
94
- }
95
-
96
- const props = withDefaults(defineProps<IProps>(), {
97
- serviceCode: '',
98
- disabledField: 'id',
99
- fetchExtParam: (): IRecord => {
100
- return {};
101
- },
102
- disabledMap: (): IRecord => {
103
- return {};
104
- },
105
- exportConfig: (): IRecord => {
106
- return {};
107
- },
108
- formItems: () => [],
109
- columns: () => [],
110
- slots: () => [],
111
- tools: () => [],
112
- buttons: () => [
113
- { code: 'add', status: 'u-cyan', icon: 'ri-add-line', auth: 'add' },
114
- {
115
- code: 'del',
116
- name: 'delete',
117
- status: 'danger',
118
- icon: 'ri-delete-line',
119
- auth: 'del'
120
- }
121
- ],
122
- extButtons: () => [],
123
- showToolbar: true
124
- });
125
-
126
- const comButtons = computed(() => {
127
- props.extButtons.forEach(btn => {
128
- if (!props.buttons.find(b => b.code === btn.code)) {
129
- // eslint-disable-next-line vue/no-mutating-props
130
- props.buttons.push(btn);
131
- }
132
- });
133
- return props.buttons.filter(button => (button.auth ? hasAuthority(button.auth) : !button.auth));
134
- });
135
-
136
- const instance = getCurrentInstance();
137
- const hasAuthority = instance.appContext.config.globalProperties.$hasAuthority;
138
-
139
- const xSearchFrom = ref(null);
140
- const SuTableRef = ref(null);
141
- const loading = ref(false);
142
- const disabledCheckList = ref([]);
143
-
144
- /**
145
- * @description: 预处理查询form
146
- * @return {*}
147
- */
148
- // 获取查询item
149
- const getItems = () => {
150
- if (!props.formItems.length) return props.formItems;
151
- return formatGridItems(props.formItems, 'N');
152
- };
153
- /**
154
- * @description: 预处理 column
155
- * @return {*} 表格列表
156
- */
157
- const getColumns = () => {
158
- return columnFormat(props.columns);
159
- };
160
- const offsetHeight = props.showToolbar ? 200 : 160;
161
- const data = reactive<IRecord>({
162
- record: {},
163
- listQuery: Object.assign({}, props.fetchExtParam),
164
- dataList: [],
165
- items: getItems(),
166
- columns: getColumns(),
167
- height: window.innerHeight - offsetHeight,
168
- showModelView: false,
169
- showUserRole: false
170
- });
171
- // const listQuery = reactive();
172
- // const { t } = useI18n();
173
-
174
- const getDataList = async () => {
175
- let params = Object.assign({}, props.fetchExtParam || {}, data.listQuery);
176
- showLoading();
177
- try {
178
- params = doDateRange(params);
179
- const { serviceCode, disabledMap, disabledField } = props;
180
- const res = (await getServiceApi().get(serviceCode, params)) as IResponseData;
181
- const keys = disabledMap && Object.keys(disabledMap);
182
- if (keys?.length) {
183
- keys.forEach(key => {
184
- const list = res.list.filter(f => f[key] === disabledMap[key]).map(m => m[disabledField]);
185
- disabledCheckList.value.push(...list);
186
- });
187
- }
188
- data.dataList = res?.list || [];
189
- data.listQuery.total = res?.total || 4;
190
- } finally {
191
- // data.dataList = [
192
- // { id: '1', calcStatus: '0', periodStatus: '0', domesticAbroad: '1' },
193
- // { id: '2', calcStatus: '1', periodStatus: '1', domesticAbroad: '1' },
194
- // { id: '3', calcStatus: '2', periodStatus: '2', domesticAbroad: '2' },
195
- // { id: '4', calcStatus: '3', periodStatus: '1', domesticAbroad: '2' }
196
- // ];
197
- hiddenLoading();
198
- }
199
- };
200
- // 左侧按钮点击事件
201
- const onButtonClick = event => {
202
- emit('onClick', event);
203
- };
204
- // 右侧按钮点击事件
205
- const onToolClick = event => {
206
- const $table = SuTableRef.value;
207
- event.code === 'export' && $table.openExport();
208
- event.code === 'import' && $table.importData();
209
- emit('onClick', event);
210
- };
211
- // 页数切换
212
- const onPageChange = ({ currentPage, pageSize }) => {
213
- data.listQuery.pageNum = currentPage;
214
- data.listQuery.pageSize = pageSize;
215
- refreshData();
216
- };
217
- const onSubmit = () => {
218
- for (const i in data.listQuery) {
219
- if (data.listQuery[i] && isString(data.listQuery[i])) {
220
- data.listQuery[i] = data.listQuery[i].trim();
221
- }
222
- }
223
- data.listQuery.pageNum = 1;
224
- data.listQuery.pageSize = data.listQuery.pageSize || 20;
225
- data.listQuery.organizationId = useSystemStoreHook().getOrganizationId;
226
- data.listQuery.orgId = useSystemStoreHook().getOrgId;
227
- refreshData();
228
- };
229
-
230
- const onReset = () => {
231
- data.listQuery = {};
232
- // data.listQuery.pageSize = 20;
233
- data.listQuery.pageNum = 1;
234
- data.listQuery.organizationId = useSystemStoreHook().getOrganizationId;
235
- data.listQuery.orgId = useSystemStoreHook().getOrgId;
236
- data.listQuery = Object.assign({}, props.fetchExtParam);
237
- refreshData();
238
- };
239
-
240
- const doDateRange = listQuery => {
241
- const query = clone(listQuery, true);
242
- const dateRanges = data.items.filter(f => f.itemRender?.name === '#SuDateRange');
243
- if (!dateRanges.length) return query;
244
- dateRanges.forEach(element => {
245
- const val = query[element.field];
246
- if (val && element.toField) {
247
- query[element.fromField] = dayjs(val[0]).format('YYYY-MM-DD HH:mm:ss');
248
- query[element.toField] = dayjs(val[1]).format('YYYY-MM-DD HH:mm:ss');
249
- delete query[element.field];
250
- } else if (val) {
251
- query[`${element.field}From`] = dayjs(val[0]).format('YYYY-MM-DD HH:mm:ss');
252
- query[`${element.field}To`] = dayjs(val[1])
253
- .add(23, 'h')
254
- .add(59, 'm')
255
- .add(59, 's')
256
- .format('YYYY-MM-DD HH:mm:ss');
257
- delete query[element.field];
258
- }
259
- });
260
- return query;
261
- };
262
- const onCollapse = ({ status }) => {
263
- if (status) {
264
- data.height = window.innerHeight - 200;
265
- } else {
266
- nextTick(() => {
267
- const offsetHeight = xSearchFrom.value.$el.clientHeight - 42 + 200;
268
- data.height = window.innerHeight - offsetHeight;
269
- });
270
- }
271
- };
272
- // 请求数据
273
- const refreshData = () => {
274
- getDataList();
275
- };
276
- const getCheckboxRecords = () => {
277
- return SuTableRef.value && SuTableRef.value.getCheckboxRecords();
278
- };
279
- const showLoading = () => {
280
- loading.value = true;
281
- };
282
- const hiddenLoading = () => {
283
- loading.value = false;
284
- };
285
- const getInstance = () => {
286
- return toRaw(SuTableRef.value);
287
- };
288
- // 子组件需对外暴露方法
289
- defineExpose({
290
- refreshData,
291
- showLoading,
292
- hiddenLoading,
293
- getCheckboxRecords,
294
- getInstance
295
- });
296
- /**
297
- * @description: checkbox是否可选
298
- */
299
- const oncheckMethod = row => {
300
- if (!disabledCheckList.value?.length) return true;
301
- return !disabledCheckList.value.find(f => row[props.disabledField] === f);
302
- };
303
- /**
304
- * @description: 监听窗口变化,动态改变表格的高度
305
- * @param {*}
306
- * @return {*}
307
- */
308
- const addResizeListener = (offsetHeight = 200) => {
309
- window.onresize = () => {
310
- return (() => {
311
- data.height = window.innerHeight - offsetHeight;
312
- })();
313
- };
314
- };
315
-
316
- const emit = defineEmits<{
317
- (e: 'onClick', event: Event): void;
318
- }>();
319
- onBeforeMount(() => {
320
- onSubmit();
321
- addResizeListener();
322
- });
323
- </script>
324
- <style lang="scss">
325
- .page-content {
326
- padding: 3px;
327
- }
328
-
329
- .ut-seach-from {
330
- .vxe-form--item {
331
- padding: 0.1em 0.8em 0.1em 0 !important;
332
- }
333
- }
334
- </style>