@utogether/udp-core 1.0.1-beta.5 → 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 (98) hide show
  1. package/dist/{403-CP2RkkAy.js → 403-BQZ5OAKL.js} +10 -10
  2. package/dist/{404-DwK-0wNQ.js → 404-H55ex36i.js} +4 -4
  3. package/dist/{500-CLbJDqnd.js → 500-bbrspTnK.js} +1 -1
  4. package/dist/{AuthorityInfo-Bi1_uhMu.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-B--cokc6.js → Company-CuebFrQ0.js} +3 -3
  7. package/dist/{CompanyPanel-B_gmcZ9L.js → CompanyPanel-DxPdJs6x.js} +6 -6
  8. package/dist/{Department-DbKdyNzK.js → Department-D2a6Juur.js} +3 -3
  9. package/dist/{DepartmentPanel-BmEttboJ.js → DepartmentPanel-C_s2R9yl.js} +24 -23
  10. package/dist/{DesignPanel-LL68_36s.js → DesignPanel-CexZj3HF.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DWPmFegv.js → DesignPanel.vue_vue_type_style_index_0_lang-DfmysqwB.js} +25 -24
  12. package/dist/{DictView-B8j-EWx5.js → DictView-C0GS72rG.js} +19 -18
  13. package/dist/{InvOrganization-DnGQlESM.js → InvOrganization-a1tQ2CEH.js} +8 -7
  14. package/dist/Org-DifvzLLy.js +35 -0
  15. package/dist/{Preview-yot4NBW5.js → Preview-BOv5j9i6.js} +1 -1
  16. package/dist/{ReportDefine-DHadqNYy.js → ReportDefine-Dli1Q0TB.js} +1 -1
  17. package/dist/{ReportDesign-CBihGRth.js → ReportDesign-zSWkcL_O.js} +37 -36
  18. package/dist/{ReportQuery-CwHQ6LUU.js → ReportQuery-D5r3bvFc.js} +1 -1
  19. package/dist/{ReportQueryFrom-ie6lQcGL.js → ReportQueryFrom-DiostHrX.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-B8LJNK0m.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Cr2eKMmr.js} +1 -1
  21. package/dist/{ReportTemplate-B2Smwo-z.js → ReportTemplate-CYy4cZHQ.js} +24 -24
  22. package/dist/{Role-Cf7DB7uS.js → Role-BFQFxfQS.js} +6 -6
  23. package/dist/{RoleAssign-upUnqs_i.js → RoleAssign-BIdWSLTR.js} +8 -8
  24. package/dist/{RolePanel-EXL_FLvM.js → RolePanel-C7ybSknr.js} +1 -1
  25. package/dist/{RolePanel-BBGDGK8V.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-DF8qJKwW.js → RolePanel.vue_vue_type_script_setup_true_lang-C_ZsMf1f.js} +40 -34
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DbBGg32H.js → ScrollPanel.vue_vue_type_style_index_0_lang-botBBgto.js} +17 -17
  29. package/dist/{Staff-DYu5ZEyR.js → Staff-CY0DLsTN.js} +3 -3
  30. package/dist/{StaffInfo-CHvNGjtz.js → StaffInfo-DA7p265h.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-XRJVEJ-s.js → StaffInfo.vue_vue_type_script_setup_true_lang-f29A44gS.js} +5 -5
  32. package/dist/{StaffPanel-C-ygEY65.js → StaffPanel-DYP-mMp9.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-BvLrF4Yw.js → StaffPanel.vue_vue_type_script_setup_true_lang-C0YAG2xV.js} +6 -6
  34. package/dist/{SysUser-BHk_szpK.js → SysUser-FqS3Ctne.js} +2 -2
  35. package/dist/{SysUserPanel-DFvzA5d-.js → SysUserPanel-C_t6F99T.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-B9zUXXwa.js → SysUserPanel.vue_vue_type_script_setup_true_lang-CKZjy0OF.js} +93 -86
  37. package/dist/{SystemMenu-5TK9ZA11.js → SystemMenu-ChFrMzRg.js} +14 -13
  38. package/dist/{UserInfo-Bx3zQqHa.js → UserInfo-I36LAXVj.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-C2sqUQdg.js → UserInfo.vue_vue_type_style_index_0_lang-BGY-LYeL.js} +28 -25
  40. package/dist/await-to-js.es5-BtRbN2QH.js +10 -0
  41. package/dist/{childView-BSUWnii7.js → childView-CYpuOzRx.js} +1 -1
  42. package/dist/{childView-CFC3gA_U.js → childView-Csnlaqfs.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-EcT-Dux7.js → childView.vue_vue_type_style_index_0_lang-B8EnA03l.js} +18 -17
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-WQVLSJR8.js → childView.vue_vue_type_style_index_0_lang-DNVlDM_a.js} +10 -9
  45. package/dist/{code-rule-DybjhotB.js → code-rule-DHBSC5Qp.js} +14 -13
  46. package/dist/core.es.js +2 -2
  47. package/dist/{cron-task-DGdknqaF.js → cron-task-CiI1MFla.js} +8 -7
  48. package/dist/{frameView-BOOZRv1S.js → frameView-ZWKlbz9p.js} +1 -1
  49. package/dist/index-COBMRlmJ.js +5379 -0
  50. package/dist/{layoutView-BWeDLY9C.js → layoutView-5OsbpP0u.js} +11 -10
  51. package/dist/{login-BcuCHhGE.js → login-C55sa9gN.js} +26 -25
  52. package/dist/{lov-view-DDgzqYSW.js → lov-view-DFfaUQ5m.js} +9 -8
  53. package/dist/{menuInfo-B3MOxomU.js → menuInfo-CZdLtLjN.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BXMrNMUs.js → menuInfo.vue_vue_type_style_index_0_lang-DgG0aHRy.js} +16 -15
  55. package/dist/{pda-app-Dy9WMHEG.js → pda-app-fLe8mrx-.js} +213 -196
  56. package/dist/{resource-BoCP7-dM.js → resource-ohWKO6Fh.js} +20 -20
  57. package/dist/{su-welcome-DXpI1MHr.js → su-welcome-_UZTfrXX.js} +84 -84
  58. package/dist/{sys-config-BiUWzxGU.js → sys-config-DVuBsK7p.js} +19 -18
  59. package/dist/udp-core.css +1 -1
  60. package/dist/{utogether-DXDcsKt7.js → utogether-CxobZqGL.js} +1 -1
  61. package/package.json +18 -18
  62. package/src/components/SuScrollTree/ScrollPanel.vue +3 -3
  63. package/src/components/udp/flip-down/FlipCard/flip-card.vue +251 -0
  64. package/src/components/udp/flip-down/FlipCard/interfaces.ts +4 -0
  65. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +113 -0
  66. package/src/components/udp/grid.vue +12 -6
  67. package/src/components/udp/index.ts +2 -2
  68. package/src/components/udp/lov.vue +1 -1
  69. package/src/components/udp/modal-grid.vue +288 -297
  70. package/src/components/udp/utils.ts +4 -11
  71. package/src/layout/components/lay-search/index.vue +25 -25
  72. package/src/main.ts +18 -10
  73. package/src/plugins/i18n/zh.ts +348 -338
  74. package/src/plugins/vxe-table/index.ts +2 -2
  75. package/src/plugins/vxe-table/render.tsx +95 -18
  76. package/src/views/login/login-view.vue +1 -1
  77. package/src/views/system/role/AuthorityInfo.vue +19 -15
  78. package/src/views/system/role/Role.vue +1 -5
  79. package/src/views/system/role/RolePanel.vue +11 -2
  80. package/src/views/system/role/UserInfo.vue +5 -3
  81. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  82. package/src/views/system/role-assign/RolePanel.vue +139 -136
  83. package/src/views/system/sysUser/SysUserPanel.vue +37 -37
  84. package/src/views/uapp/pda/pda-app.vue +41 -10
  85. package/src/views/udev/dict/DictView.vue +6 -1
  86. package/src/views/udev/dict/childView.vue +1 -6
  87. package/src/views/ufile/aggregation/File.vue +5 -5
  88. package/src/views/ufile/file/water-mark.vue +14 -14
  89. package/src/views/uhome/su-welcome.vue +2 -2
  90. package/src/views/ulogin/login.vue +8 -0
  91. package/src/views/urpt/design/DesignPanel.vue +10 -33
  92. package/src/views/urpt/design/ReportDesign.vue +12 -16
  93. package/src/views/urpt/static-resource/resource.vue +3 -3
  94. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  95. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-RUhvzu76.js +0 -101
  96. package/dist/Org-Dg9Xkd34.js +0 -34
  97. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-BwfL_JVZ.js +0 -125
  98. package/dist/index-BDE4-ZvN.js +0 -5091
@@ -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) {
@@ -445,7 +523,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
445
523
  }, '');
446
524
  Object.assign(data, obj);
447
525
  }
448
- const parm = { row: data, property: field, item: record, field };
526
+ const parm = { data, options: record, field };
449
527
  events?.change && events.change(parm);
450
528
  }
451
529
 
@@ -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
  // 单元格编辑
@@ -483,7 +555,8 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
483
555
  }
484
556
  Object.assign(row, obj);
485
557
  }
486
- events?.change && events.change(params, record, row[column.field]);
558
+ const params = { row, options: record, field: column.field, column };
559
+ events?.change && events.change(params);
487
560
  }
488
561
 
489
562
  function onClear() {
@@ -517,7 +590,8 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
517
590
  }
518
591
  Object.assign(row, obj);
519
592
  }
520
- events?.change && events.change(params, record, row[column.field]);
593
+ const params = { row, options: record, field: column.field, column };
594
+ events?.change && events.change(params);
521
595
  }
522
596
  /**
523
597
  * @description 清空数据
@@ -527,13 +601,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
527
601
  }
528
602
 
529
603
  return [
530
- <ut-lov
531
- record={row}
532
- mode="ele"
533
- {...props}
534
- onChange={(v, f) => onChange(v, f)}
535
- onClear={() => onClear()}
536
- />
604
+ <ut-lov record={row} mode="ele" {...props} onChange={(v, f) => onChange(v, f)} onClear={() => onClear()} />
537
605
  ];
538
606
  },
539
607
  // 可编辑显示模板
@@ -774,7 +842,16 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
774
842
  }
775
843
  events?.clear && events.clear({ [datasource]: data, field });
776
844
  };
777
- 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 };
778
855
  };
779
856
 
780
857
  /**
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="select-none">
3
- <div class="absolute flex-c right-5 top-3">
3
+ <div class="absolute flex justify-center items-center right-5 top-3">
4
4
  <!-- 主题 -->
5
5
  <!-- <el-switch
6
6
  v-model="dataTheme"
@@ -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 },
@@ -1,57 +1,57 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-11-26 14:37:07
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2024-06-24 20:20:57
6
- * @Description: 角色分配业务单元
7
- -->
8
- <template>
9
- <div class="u-content-panel">
10
- <div class="u-left-panel">
11
- <ScrollPane
12
- :title="$t('SuOrg')"
13
- :tree-otions="{ children: 'children', label: 'orgName' }"
14
- extParam="{ pageSize: 500 }"
15
- url="/uums/org"
16
- />
17
- </div>
18
- <div class="content">
19
- <role-panel />
20
- </div>
21
- </div>
22
- </template>
23
-
24
- <script lang="ts" setup>
25
- import { ref, provide } from 'vue';
26
- import ScrollPane from '../../../components/SuScrollTree/ScrollPanel.vue';
27
- import RolePanel from './RolePanel.vue';
28
- const active: any = ref({});
29
- const scrollPanelChange: any = ref(false);
30
- const treeList: any = ref([]);
31
- provide('active', active);
32
-
33
- provide('scrollPanelChange', scrollPanelChange);
34
-
35
- provide('treeList', treeList);
36
- </script>
37
-
38
- <style lang="scss" scoped>
39
- .u-content-panel {
40
- box-sizing: border-box;
41
- display: flex;
42
- width: 100%;
43
- height: 84vh;
44
- padding: 5px;
45
-
46
- .u-left-panel {
47
- width: 250px;
48
- }
49
-
50
- .content {
51
- flex: 1;
52
- width: calc(100% - 250px);
53
- height: 82vh;
54
- margin: 0 10px;
55
- }
56
- }
57
- </style>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-11-26 14:37:07
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-08-06 17:55:03
6
+ * @Description: 角色分配业务单元
7
+ -->
8
+ <template>
9
+ <div class="u-content-panel">
10
+ <div class="u-left-panel">
11
+ <ScrollPane
12
+ :title="$t('SuOrg')"
13
+ :tree-otions="{ children: 'children', label: 'orgName' }"
14
+ :default-params="{ pageSize: 500 }"
15
+ url="/uums/org"
16
+ />
17
+ </div>
18
+ <div class="content">
19
+ <role-panel />
20
+ </div>
21
+ </div>
22
+ </template>
23
+
24
+ <script lang="ts" setup>
25
+ import { ref, provide } from 'vue';
26
+ import ScrollPane from '../../../components/SuScrollTree/ScrollPanel.vue';
27
+ import RolePanel from './RolePanel.vue';
28
+ const active: any = ref({});
29
+ const scrollPanelChange: any = ref(false);
30
+ const treeList: any = ref([]);
31
+ provide('active', active);
32
+
33
+ provide('scrollPanelChange', scrollPanelChange);
34
+
35
+ provide('treeList', treeList);
36
+ </script>
37
+
38
+ <style lang="scss" scoped>
39
+ .u-content-panel {
40
+ box-sizing: border-box;
41
+ display: flex;
42
+ width: 100%;
43
+ height: 84vh;
44
+ padding: 5px;
45
+
46
+ .u-left-panel {
47
+ width: 250px;
48
+ }
49
+
50
+ .content {
51
+ flex: 1;
52
+ width: calc(100% - 250px);
53
+ height: 82vh;
54
+ margin: 0 10px;
55
+ }
56
+ }
57
+ </style>