@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.
- package/dist/{403-CP2RkkAy.js → 403-BQZ5OAKL.js} +10 -10
- package/dist/{404-DwK-0wNQ.js → 404-H55ex36i.js} +4 -4
- package/dist/{500-CLbJDqnd.js → 500-bbrspTnK.js} +1 -1
- package/dist/{AuthorityInfo-Bi1_uhMu.js → AuthorityInfo-BWni4UPQ.js} +1 -1
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-7WtOL6Hs.js +100 -0
- package/dist/{Company-B--cokc6.js → Company-CuebFrQ0.js} +3 -3
- package/dist/{CompanyPanel-B_gmcZ9L.js → CompanyPanel-DxPdJs6x.js} +6 -6
- package/dist/{Department-DbKdyNzK.js → Department-D2a6Juur.js} +3 -3
- package/dist/{DepartmentPanel-BmEttboJ.js → DepartmentPanel-C_s2R9yl.js} +24 -23
- package/dist/{DesignPanel-LL68_36s.js → DesignPanel-CexZj3HF.js} +1 -1
- package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DWPmFegv.js → DesignPanel.vue_vue_type_style_index_0_lang-DfmysqwB.js} +25 -24
- package/dist/{DictView-B8j-EWx5.js → DictView-C0GS72rG.js} +19 -18
- package/dist/{InvOrganization-DnGQlESM.js → InvOrganization-a1tQ2CEH.js} +8 -7
- package/dist/Org-DifvzLLy.js +35 -0
- package/dist/{Preview-yot4NBW5.js → Preview-BOv5j9i6.js} +1 -1
- package/dist/{ReportDefine-DHadqNYy.js → ReportDefine-Dli1Q0TB.js} +1 -1
- package/dist/{ReportDesign-CBihGRth.js → ReportDesign-zSWkcL_O.js} +37 -36
- package/dist/{ReportQuery-CwHQ6LUU.js → ReportQuery-D5r3bvFc.js} +1 -1
- package/dist/{ReportQueryFrom-ie6lQcGL.js → ReportQueryFrom-DiostHrX.js} +1 -1
- package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-B8LJNK0m.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Cr2eKMmr.js} +1 -1
- package/dist/{ReportTemplate-B2Smwo-z.js → ReportTemplate-CYy4cZHQ.js} +24 -24
- package/dist/{Role-Cf7DB7uS.js → Role-BFQFxfQS.js} +6 -6
- package/dist/{RoleAssign-upUnqs_i.js → RoleAssign-BIdWSLTR.js} +8 -8
- package/dist/{RolePanel-EXL_FLvM.js → RolePanel-C7ybSknr.js} +1 -1
- package/dist/{RolePanel-BBGDGK8V.js → RolePanel-KC-UgmtF.js} +1 -1
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-C91CJO4e.js +132 -0
- 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
- package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DbBGg32H.js → ScrollPanel.vue_vue_type_style_index_0_lang-botBBgto.js} +17 -17
- package/dist/{Staff-DYu5ZEyR.js → Staff-CY0DLsTN.js} +3 -3
- package/dist/{StaffInfo-CHvNGjtz.js → StaffInfo-DA7p265h.js} +1 -1
- 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
- package/dist/{StaffPanel-C-ygEY65.js → StaffPanel-DYP-mMp9.js} +1 -1
- package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-BvLrF4Yw.js → StaffPanel.vue_vue_type_script_setup_true_lang-C0YAG2xV.js} +6 -6
- package/dist/{SysUser-BHk_szpK.js → SysUser-FqS3Ctne.js} +2 -2
- package/dist/{SysUserPanel-DFvzA5d-.js → SysUserPanel-C_t6F99T.js} +1 -1
- package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-B9zUXXwa.js → SysUserPanel.vue_vue_type_script_setup_true_lang-CKZjy0OF.js} +93 -86
- package/dist/{SystemMenu-5TK9ZA11.js → SystemMenu-ChFrMzRg.js} +14 -13
- package/dist/{UserInfo-Bx3zQqHa.js → UserInfo-I36LAXVj.js} +1 -1
- 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
- package/dist/await-to-js.es5-BtRbN2QH.js +10 -0
- package/dist/{childView-BSUWnii7.js → childView-CYpuOzRx.js} +1 -1
- package/dist/{childView-CFC3gA_U.js → childView-Csnlaqfs.js} +1 -1
- 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
- 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
- package/dist/{code-rule-DybjhotB.js → code-rule-DHBSC5Qp.js} +14 -13
- package/dist/core.es.js +2 -2
- package/dist/{cron-task-DGdknqaF.js → cron-task-CiI1MFla.js} +8 -7
- package/dist/{frameView-BOOZRv1S.js → frameView-ZWKlbz9p.js} +1 -1
- package/dist/index-COBMRlmJ.js +5379 -0
- package/dist/{layoutView-BWeDLY9C.js → layoutView-5OsbpP0u.js} +11 -10
- package/dist/{login-BcuCHhGE.js → login-C55sa9gN.js} +26 -25
- package/dist/{lov-view-DDgzqYSW.js → lov-view-DFfaUQ5m.js} +9 -8
- package/dist/{menuInfo-B3MOxomU.js → menuInfo-CZdLtLjN.js} +1 -1
- package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BXMrNMUs.js → menuInfo.vue_vue_type_style_index_0_lang-DgG0aHRy.js} +16 -15
- package/dist/{pda-app-Dy9WMHEG.js → pda-app-fLe8mrx-.js} +213 -196
- package/dist/{resource-BoCP7-dM.js → resource-ohWKO6Fh.js} +20 -20
- package/dist/{su-welcome-DXpI1MHr.js → su-welcome-_UZTfrXX.js} +84 -84
- package/dist/{sys-config-BiUWzxGU.js → sys-config-DVuBsK7p.js} +19 -18
- package/dist/udp-core.css +1 -1
- package/dist/{utogether-DXDcsKt7.js → utogether-CxobZqGL.js} +1 -1
- package/package.json +18 -18
- package/src/components/SuScrollTree/ScrollPanel.vue +3 -3
- package/src/components/udp/flip-down/FlipCard/flip-card.vue +251 -0
- package/src/components/udp/flip-down/FlipCard/interfaces.ts +4 -0
- package/src/components/udp/flip-down/FlipClock/flip-clock.vue +113 -0
- package/src/components/udp/grid.vue +12 -6
- package/src/components/udp/index.ts +2 -2
- package/src/components/udp/lov.vue +1 -1
- package/src/components/udp/modal-grid.vue +288 -297
- package/src/components/udp/utils.ts +4 -11
- package/src/layout/components/lay-search/index.vue +25 -25
- package/src/main.ts +18 -10
- package/src/plugins/i18n/zh.ts +348 -338
- package/src/plugins/vxe-table/index.ts +2 -2
- package/src/plugins/vxe-table/render.tsx +95 -18
- package/src/views/login/login-view.vue +1 -1
- package/src/views/system/role/AuthorityInfo.vue +19 -15
- package/src/views/system/role/Role.vue +1 -5
- package/src/views/system/role/RolePanel.vue +11 -2
- package/src/views/system/role/UserInfo.vue +5 -3
- package/src/views/system/role-assign/RoleAssign.vue +57 -57
- package/src/views/system/role-assign/RolePanel.vue +139 -136
- package/src/views/system/sysUser/SysUserPanel.vue +37 -37
- package/src/views/uapp/pda/pda-app.vue +41 -10
- package/src/views/udev/dict/DictView.vue +6 -1
- package/src/views/udev/dict/childView.vue +1 -6
- package/src/views/ufile/aggregation/File.vue +5 -5
- package/src/views/ufile/file/water-mark.vue +14 -14
- package/src/views/uhome/su-welcome.vue +2 -2
- package/src/views/ulogin/login.vue +8 -0
- package/src/views/urpt/design/DesignPanel.vue +10 -33
- package/src/views/urpt/design/ReportDesign.vue +12 -16
- package/src/views/urpt/static-resource/resource.vue +3 -3
- package/src/views/urpt/template/ReportTemplate.vue +7 -7
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-RUhvzu76.js +0 -101
- package/dist/Org-Dg9Xkd34.js +0 -34
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-BwfL_JVZ.js +0 -125
- 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
|
-
|
|
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 = {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
/**
|
|
@@ -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-
|
|
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
|
-
|
|
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="
|
|
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="
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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>
|