@utogether/udp-core 1.0.1-beta.6 → 1.0.1-beta.7

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 (81) hide show
  1. package/dist/{403-Co4hnzlW.js → 403-BQZ5OAKL.js} +1 -1
  2. package/dist/{404-BsseeBQQ.js → 404-H55ex36i.js} +1 -1
  3. package/dist/{500-DtKz7MA4.js → 500-bbrspTnK.js} +1 -1
  4. package/dist/{AuthorityInfo-iWYEWOmC.js → AuthorityInfo-BWni4UPQ.js} +1 -1
  5. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-7WtOL6Hs.js +100 -0
  6. package/dist/{Company-CK8Zkcv3.js → Company-CuebFrQ0.js} +3 -3
  7. package/dist/{CompanyPanel-DL4UrYYG.js → CompanyPanel-DxPdJs6x.js} +1 -1
  8. package/dist/{Department-BPHn8to4.js → Department-D2a6Juur.js} +3 -3
  9. package/dist/{DepartmentPanel-Bqraa_NB.js → DepartmentPanel-C_s2R9yl.js} +1 -1
  10. package/dist/{DesignPanel-CFOIOZme.js → DesignPanel-CexZj3HF.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-H0FNG35Z.js → DesignPanel.vue_vue_type_style_index_0_lang-DfmysqwB.js} +19 -19
  12. package/dist/{DictView-CaD1yHQS.js → DictView-C0GS72rG.js} +19 -18
  13. package/dist/{InvOrganization-CoO0_wsY.js → InvOrganization-a1tQ2CEH.js} +1 -1
  14. package/dist/{Org-BU3oaFx3.js → Org-DifvzLLy.js} +1 -1
  15. package/dist/{Preview-B-K_bxDG.js → Preview-BOv5j9i6.js} +1 -1
  16. package/dist/{ReportDefine-DElbukSL.js → ReportDefine-Dli1Q0TB.js} +1 -1
  17. package/dist/{ReportDesign-DvUHOKDK.js → ReportDesign-zSWkcL_O.js} +26 -26
  18. package/dist/{ReportQuery-BcSYRNT3.js → ReportQuery-D5r3bvFc.js} +1 -1
  19. package/dist/{ReportQueryFrom-BGEA4Pqk.js → ReportQueryFrom-DiostHrX.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-B-KEPnfY.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Cr2eKMmr.js} +1 -1
  21. package/dist/{ReportTemplate-DnPtEoxn.js → ReportTemplate-CYy4cZHQ.js} +1 -1
  22. package/dist/{Role-CMKkWZil.js → Role-BFQFxfQS.js} +6 -6
  23. package/dist/{RoleAssign-BToNzG9a.js → RoleAssign-BIdWSLTR.js} +3 -3
  24. package/dist/{RolePanel-BikZ-D2u.js → RolePanel-C7ybSknr.js} +1 -1
  25. package/dist/{RolePanel-BNqd7-M6.js → RolePanel-KC-UgmtF.js} +1 -1
  26. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-C91CJO4e.js +132 -0
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Nngq860f.js → RolePanel.vue_vue_type_script_setup_true_lang-C_ZsMf1f.js} +44 -38
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-BDRDD2FX.js → ScrollPanel.vue_vue_type_style_index_0_lang-botBBgto.js} +1 -1
  29. package/dist/{Staff-DBFATgM_.js → Staff-CY0DLsTN.js} +3 -3
  30. package/dist/{StaffInfo-CrfwZcEL.js → StaffInfo-DA7p265h.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-CE3_NJF_.js → StaffInfo.vue_vue_type_script_setup_true_lang-f29A44gS.js} +1 -1
  32. package/dist/{StaffPanel-D54Rl_Bg.js → StaffPanel-DYP-mMp9.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-B8wtuSZD.js → StaffPanel.vue_vue_type_script_setup_true_lang-C0YAG2xV.js} +2 -2
  34. package/dist/{SysUser-CsuovBei.js → SysUser-FqS3Ctne.js} +2 -2
  35. package/dist/{SysUserPanel-DNUwWEVp.js → SysUserPanel-C_t6F99T.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-CY6mhBV0.js → SysUserPanel.vue_vue_type_script_setup_true_lang-CKZjy0OF.js} +96 -92
  37. package/dist/{SystemMenu-oLmwvaqT.js → SystemMenu-ChFrMzRg.js} +2 -2
  38. package/dist/{UserInfo-LyrDwBG1.js → UserInfo-I36LAXVj.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-vinrRyOG.js → UserInfo.vue_vue_type_style_index_0_lang-BGY-LYeL.js} +30 -28
  40. package/dist/{childView-DGKp87fT.js → childView-CYpuOzRx.js} +1 -1
  41. package/dist/{childView-SmYl4G6c.js → childView-Csnlaqfs.js} +1 -1
  42. package/dist/{childView.vue_vue_type_style_index_0_lang-DU-Uun5d.js → childView.vue_vue_type_style_index_0_lang-B8EnA03l.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-wVoPvyRY.js → childView.vue_vue_type_style_index_0_lang-DNVlDM_a.js} +1 -1
  44. package/dist/{code-rule-CfbGjmOs.js → code-rule-DHBSC5Qp.js} +1 -1
  45. package/dist/core.es.js +1 -1
  46. package/dist/{cron-task-DMfwGfms.js → cron-task-CiI1MFla.js} +1 -1
  47. package/dist/{frameView-D-hu_pqQ.js → frameView-ZWKlbz9p.js} +1 -1
  48. package/dist/index-COBMRlmJ.js +5379 -0
  49. package/dist/{layoutView-D3SikBPr.js → layoutView-5OsbpP0u.js} +2 -2
  50. package/dist/{login-CQ1yBBdY.js → login-C55sa9gN.js} +2 -2
  51. package/dist/{lov-view-CSobDBH7.js → lov-view-DFfaUQ5m.js} +2 -2
  52. package/dist/{menuInfo-mFuM30f1.js → menuInfo-CZdLtLjN.js} +1 -1
  53. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BsIPzYg0.js → menuInfo.vue_vue_type_style_index_0_lang-DgG0aHRy.js} +1 -1
  54. package/dist/{pda-app-CIGFsvrX.js → pda-app-fLe8mrx-.js} +201 -189
  55. package/dist/{resource-mbd4LPi-.js → resource-ohWKO6Fh.js} +1 -1
  56. package/dist/{su-welcome-DruLsVvu.js → su-welcome-_UZTfrXX.js} +1 -1
  57. package/dist/{sys-config-TXb5cJM4.js → sys-config-DVuBsK7p.js} +1 -1
  58. package/dist/udp-core.css +1 -1
  59. package/dist/{utogether-Cv0UXnEX.js → utogether-CxobZqGL.js} +1 -1
  60. package/package.json +1 -1
  61. package/src/components/udp/index.ts +2 -2
  62. package/src/components/udp/modal-grid.vue +288 -297
  63. package/src/components/udp/utils.ts +4 -11
  64. package/src/main.ts +10 -2
  65. package/src/plugins/i18n/zh.ts +7 -1
  66. package/src/plugins/vxe-table/index.ts +2 -2
  67. package/src/plugins/vxe-table/render.tsx +90 -15
  68. package/src/views/system/role/AuthorityInfo.vue +19 -15
  69. package/src/views/system/role/Role.vue +1 -5
  70. package/src/views/system/role/RolePanel.vue +11 -2
  71. package/src/views/system/role/UserInfo.vue +5 -3
  72. package/src/views/system/role-assign/RolePanel.vue +139 -136
  73. package/src/views/system/sysUser/SysUserPanel.vue +28 -32
  74. package/src/views/uapp/pda/pda-app.vue +36 -11
  75. package/src/views/udev/dict/DictView.vue +6 -1
  76. package/src/views/udev/dict/childView.vue +1 -6
  77. package/src/views/urpt/design/DesignPanel.vue +10 -33
  78. package/src/views/urpt/design/ReportDesign.vue +7 -11
  79. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-BWp7PKyH.js +0 -102
  80. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DYP3u1Nv.js +0 -126
  81. package/dist/index-ADANSV-q.js +0 -4278
@@ -217,8 +217,7 @@ export const getExportConfig = attrs => {
217
217
  types: ['xlsx', 'csv'],
218
218
  modes: ['current', 'selected', 'all'],
219
219
  useStyle: true,
220
- sheetMethod: ({ worksheet }) =>
221
- attrs.onSheetMethod ? attrs.onSheetMethod(worksheet) : onSheetMethod(worksheet),
220
+ sheetMethod: ({ worksheet }) => (attrs.onSheetMethod ? attrs.onSheetMethod(worksheet) : onSheetMethod(worksheet)),
222
221
  columnFilterMethod: ({ column }) =>
223
222
  attrs.columnFilter
224
223
  ? !!attrs.columnFilter(column)
@@ -259,19 +258,14 @@ export const getToolBarConfig = (data, props, attrs, hasAuthority) => {
259
258
  toolButtons.reverse().forEach(btn => {
260
259
  !buttons.some(s => s.code === btn.code) && buttons.unshift(btn);
261
260
  if (attrs.authPrefix && !['print', 'export'].includes(btn.auth)) {
262
- btn.auth =
263
- attrs.authPrefix +
264
- btn.auth.slice(0, 1).toLocaleUpperCase() +
265
- btn.auth.slice(1).toLocaleLowerCase();
261
+ btn.auth = attrs.authPrefix + btn.auth.slice(0, 1).toLocaleUpperCase() + btn.auth.slice(1).toLocaleLowerCase();
266
262
  }
267
263
  });
268
264
 
269
265
  buttons = formatButton(buttons, props.auth).filter(button => {
270
266
  const flag = button.auth ? hasAuthority(button.auth) : true;
271
267
  if (button.dropdowns?.length) {
272
- button.dropdowns = button.dropdowns.filter(
273
- btn => !btn.auth || (btn.auth && hasAuthority(btn.auth))
274
- );
268
+ button.dropdowns = button.dropdowns.filter(btn => !btn.auth || (btn.auth && hasAuthority(btn.auth)));
275
269
  }
276
270
  return flag;
277
271
  });
@@ -400,8 +394,7 @@ export const formatItems = (items, status, span = 24) => {
400
394
  disabled = true;
401
395
  item.placeholder = null;
402
396
  } else {
403
- disabled =
404
- item.disabled === false ? item.disabled : item.disabled || item.itemRender?.props?.disabled;
397
+ disabled = item.disabled === false ? item.disabled : item.disabled || item.itemRender?.props?.disabled;
405
398
  }
406
399
  let itemRender = {
407
400
  name: 'VxeInput',
package/src/main.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /*
2
+ * @Author: levi7754 levi7754@163.com
3
+ * @Date: 2025-07-25 13:38:20
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-08-11 16:55:33
6
+ * @FilePath: \udp-front\packages\udp-core\src\main.ts
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ */
1
9
  /*
2
10
  * @Author: wei.li
3
11
  * @Date: 2022-10-18 18:13:54
@@ -41,7 +49,7 @@ import {
41
49
  // UtForm2,
42
50
  // UtGrid2,
43
51
  // UtContent,
44
- UtCountdown2
52
+ UtModalGrid2
45
53
  // UtUpload2
46
54
  // UtIconSelect,
47
55
  // UtCalendar
@@ -92,7 +100,7 @@ const init = ({ router, config, lang, views, env, tableConfig }) => {
92
100
  // app.component('UtModalForm2', UtModalForm2);
93
101
  // app.component('UtGrid2', UtGrid2);
94
102
  // app.component('UtForm2', UtForm2);
95
- app.component('UtCountdown2', UtCountdown2);
103
+ app.component('UtModalGrid2', UtModalGrid2);
96
104
  // .component('UtIconSelect', UtIconSelect)
97
105
  // app.component('UtUpload2', UtUpload2);
98
106
  // .component('UtCalendar', UtCalendar)
@@ -85,7 +85,13 @@ export default {
85
85
  appVersion: '版本号',
86
86
  buildNo: '构建号',
87
87
  versionInfo: '版本信息',
88
- downloadUrl: 'APK文件'
88
+ isForceUpdate: '安装方式',
89
+ downloadUrl: 'APK文件',
90
+ forceUpdate: '强制更新',
91
+ freeUpdate: '自主更新',
92
+
93
+ roleList: '角色列表',
94
+ userList: '用户列表'
89
95
  },
90
96
  btn: {
91
97
  passwordReset: '密码重置',
@@ -10,8 +10,8 @@ import 'xe-utils';
10
10
  import { merge } from 'xe-utils';
11
11
  import { geti18n, transformI18n } from '../i18n/index';
12
12
  // import { storageLocal } from '@utogether/utils';
13
- import { VxetableRender } from '@utogether/utils';
14
- // import { VxetableRender } from './render';
13
+ // import { VxetableRender } from '@utogether/utils';
14
+ import { VxetableRender } from './render';
15
15
  import { getServiceApi } from '../../api';
16
16
 
17
17
  import VXETable, { VxeUI } from 'vxe-table';
@@ -409,6 +409,84 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
409
409
  ];
410
410
  }
411
411
  });
412
+ // 下拉选择
413
+ VXETable.renderer.add('#textarea', {
414
+ renderTableEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {
415
+ const { row, column } = params;
416
+ const { props, events } = renderOpts;
417
+ const { mapField } = props;
418
+
419
+ const componentHook = useComponent();
420
+ function onChange(val) {
421
+ componentHook.change(val, row, column.field, renderOpts, { column, datasource: 'row' });
422
+ }
423
+
424
+ function onClear() {
425
+ componentHook.clear(row, column.field, mapField, events, 'row');
426
+ }
427
+
428
+ return [
429
+ <vxe-textarea
430
+ v-model={row[column.field]}
431
+ {...props}
432
+ style="width: 100%"
433
+ onChange={v => onChange(v)}
434
+ onClear={() => onClear()}
435
+ />
436
+ ];
437
+ },
438
+ renderTableDefault(renderOpts: VxeColumnPropTypes.EditRender, params) {
439
+ const { row, column } = params;
440
+ const { props, events } = renderOpts;
441
+ const { mapField } = props;
442
+
443
+ const componentHook = useComponent();
444
+
445
+ function onChange(val) {
446
+ componentHook.change(val, row, column.field, renderOpts, { column, datasource: 'row' });
447
+ }
448
+
449
+ function onClear() {
450
+ componentHook.clear(row, column.field, mapField, events, 'row');
451
+ }
452
+
453
+ return [
454
+ <vxe-textarea v-model={row[column.field]} {...props} onChange={v => onChange(v)} onClear={() => onClear()} />
455
+ ];
456
+ },
457
+ // 可编辑显示模板
458
+ renderTableCell(renderOpts, params) {
459
+ const { row, column } = params;
460
+ return row[column.field];
461
+ },
462
+ renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
463
+ const { data, field } = params;
464
+ const { props, events } = renderOpts;
465
+ const componentHook = useComponent();
466
+
467
+ // 默认值
468
+ const { defaultValue, mapField } = props;
469
+ if (defaultValue) {
470
+ data[field] = defaultValue;
471
+ }
472
+ /**
473
+ * @description: 选中值发生变化时触发
474
+ * @param {*} val 目前的选中值
475
+ */
476
+ function onChange(val) {
477
+ componentHook.change(val, data, field, renderOpts, { datasource: 'data' });
478
+ }
479
+
480
+ /**
481
+ * @description: 可清空的单选模式下用户点击清空按钮时触发
482
+ */
483
+ function onClear() {
484
+ componentHook.clear(data, field, mapField, events, 'data');
485
+ }
486
+
487
+ return [<vxe-textarea v-model={data[field]} {...props} onChange={v => onChange(v)} onClear={() => onClear()} />];
488
+ }
489
+ });
412
490
  // Lov
413
491
  VXETable.renderer.add('#lov', {
414
492
  renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
@@ -457,13 +535,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
457
535
  }
458
536
 
459
537
  return [
460
- <ut-lov
461
- record={data}
462
- {...props}
463
- mode="vxe"
464
- onChange={(v, f) => onChange(v, f)}
465
- onClear={() => onClear()}
466
- />
538
+ <ut-lov record={data} {...props} mode="vxe" onChange={(v, f) => onChange(v, f)} onClear={() => onClear()} />
467
539
  ];
468
540
  },
469
541
  // 单元格编辑
@@ -529,13 +601,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
529
601
  }
530
602
 
531
603
  return [
532
- <ut-lov
533
- record={row}
534
- mode="ele"
535
- {...props}
536
- onChange={(v, f) => onChange(v, f)}
537
- onClear={() => onClear()}
538
- />
604
+ <ut-lov record={row} mode="ele" {...props} onChange={(v, f) => onChange(v, f)} onClear={() => onClear()} />
539
605
  ];
540
606
  },
541
607
  // 可编辑显示模板
@@ -776,7 +842,16 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
776
842
  }
777
843
  events?.clear && events.clear({ [datasource]: data, field });
778
844
  };
779
- return { clear, remote, selectChange, setDefaultValue };
845
+ const change = (data, field, mapField, events, datasource) => {
846
+ data[field] = null;
847
+ if (!isEmpty(mapField)) {
848
+ for (const key in mapField) {
849
+ data[key] = null;
850
+ }
851
+ }
852
+ events?.change && events.change({ [datasource]: data, field });
853
+ };
854
+ return { clear, change, remote, selectChange, setDefaultValue };
780
855
  };
781
856
 
782
857
  /**
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-11-22 19:50:48
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-07-14 14:58:13
5
+ * @LastEditTime: 2025-08-12 09:02:46
6
6
  * @Description: file content
7
7
  -->
8
8
 
@@ -14,32 +14,29 @@
14
14
  :before-close="handleClose"
15
15
  direction="rtl"
16
16
  destroy-on-close
17
+ body-class="ut-draw-body"
17
18
  size="40%"
18
19
  >
19
- <div
20
- v-spinning="loading"
21
- element-loading-text="Loading..."
22
- style="position: relative; height: 80vh"
23
- >
24
- <div style="height: 85%; overflow: auto">
20
+ <div v-spinning="loading" style="position: relative; height: 100%">
21
+ <div>
25
22
  <el-tree-v2
26
23
  ref="xTree"
27
24
  :data="data.dataList"
28
25
  :props="{ children: 'children', label: 'menuName' }"
29
26
  :default-checked-keys="data.defaultCheckedKeys"
30
- :height="420"
27
+ :height="height"
31
28
  show-checkbox
32
29
  node-key="id"
33
30
  />
34
31
  </div>
35
- <div style="position: absolute; width: 100%; height: 15%">
36
- <el-divider style="margin: 16px 0" />
37
- <el-row type="flex" justify="end" style="padding-right: 20px">
38
- <ut-button content="cancel" icon="ri-close-fill" status="warning" @tap="handleClose" />
39
- <ut-button content="confirm" icon="ri-save-3-fill" status="u-cyan" @tap="onSubmit" />
40
- </el-row>
41
- </div>
42
32
  </div>
33
+ <template #footer>
34
+ <el-divider style="margin: 16px 0" />
35
+ <el-row type="flex" justify="end" style="padding-right: 20px">
36
+ <ut-button content="cancel" icon="ri-close-fill" status="warning" @tap="handleClose" />
37
+ <ut-button content="confirm" icon="ri-save-3-fill" status="u-cyan" @tap="onSubmit" />
38
+ </el-row>
39
+ </template>
43
40
  </el-drawer>
44
41
  </div>
45
42
  </template>
@@ -72,9 +69,12 @@ const data = reactive({
72
69
  defaultCheckedKeys: [] // 默认权限
73
70
  });
74
71
 
72
+ const height = window.innerHeight - 180;
73
+
75
74
  const emit = defineEmits<{
76
75
  (e: 'onClose'): void;
77
76
  }>();
77
+
78
78
  // 菜单列表
79
79
  const getDataList = async () => {
80
80
  const res = (await getServiceApi().get('/uums/menu/listMenuTree', {})) as [IRecord];
@@ -126,4 +126,8 @@ onBeforeMount(() => {
126
126
  .el-drawer__header {
127
127
  margin-bottom: 12px;
128
128
  }
129
+
130
+ .ut-draw-body {
131
+ padding: 0 12px;
132
+ }
129
133
  </style>
@@ -8,11 +8,7 @@
8
8
  <template>
9
9
  <div class="u-content-panel">
10
10
  <div class="u-left-panel">
11
- <ScrollPane
12
- :title="$t('company')"
13
- url="/uums/unit"
14
- :tree-otions="{ children: 'children', label: 'unitName' }"
15
- />
11
+ <ScrollPane :title="$t('company')" url="/uums/unit" :tree-otions="{ children: 'children', label: 'unitName' }" />
16
12
  </div>
17
13
  <div class="content">
18
14
  <role-panel />
@@ -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="220"
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
  />
@@ -114,8 +116,8 @@ 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.userCode', span: 9 },
120
+ { field: 'name', title: 'message.userName', span: 9 }
119
121
  ];
120
122
  const modalColum = [
121
123
  { type: 'checkbox', width: 40 },
@@ -125,7 +127,7 @@ const modalColum = [
125
127
  ];
126
128
  const xgrid = ref({} as VxeGridInstance);
127
129
  const gridOptions = reactive<VxeGridProps>({
128
- height: 560,
130
+ height: 'auto',
129
131
  border: true,
130
132
  pagerConfig: {},
131
133
  toolbarConfig: { buttons, perfect: true },