@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
@@ -1,136 +1,139 @@
1
- <template>
2
- <div v-spinning="data.loading" class="page-content">
3
- <ut-grid
4
- ref="xgrid"
5
- :items="formItems"
6
- :columns="gridCol"
7
- :default-params="data.fetchExtParam"
8
- :buttons="buttons"
9
- :auto-load="false"
10
- :url="url"
11
- mode="form"
12
- @buttonClick="onButtonClick"
13
- />
14
- <ut-modal-grid
15
- v-if="data.showModalView"
16
- ref="xmodal"
17
- :items="formItems"
18
- :columns="columns"
19
- :show-footer="true"
20
- :editable="false"
21
- url="/uums/role"
22
- width="60%"
23
- @close="data.showModalView = false"
24
- @confirm="onConfirm"
25
- />
26
- </div>
27
- </template>
28
-
29
- <script setup lang="tsx">
30
- import { useI18n } from 'vue-i18n';
31
- import { ref, reactive, watch, inject, nextTick } from 'vue';
32
- import { clone } from 'xe-utils';
33
- import { VxeUI } from 'vxe-pc-ui';
34
- import to from 'await-to-js';
35
- import { successMessage } from '@utogether/utils';
36
- import { getServiceApi } from '../../../api';
37
-
38
- const data = reactive<IRecord>({
39
- record: {},
40
- loading: false,
41
- showModalView: false
42
- });
43
- const { t } = useI18n();
44
-
45
- const xgrid = ref(null);
46
- const xmodal = ref(null);
47
- const active: IRecord = inject('active');
48
-
49
- const url = '/uums/orgRole';
50
- watch(
51
- () => active.value,
52
- () => {
53
- if (!active?.value.id) return;
54
- data.fetchExtParam = { orgId: active?.value.id };
55
- nextTick(() => {
56
- xgrid.value.refreshData();
57
- });
58
- }
59
- );
60
-
61
- const buttons = [{ code: 'del', auth: '/' }];
62
-
63
- const formItems = [
64
- { field: 'roleName', title: 'message.udp.roleName' },
65
- { field: 'roleCode', title: 'message.udp.roleCode' }
66
- ];
67
-
68
- const columns = [
69
- { type: 'checkbox', width: 40 },
70
- { field: 'roleCode', title: 'message.udp.roleCode' },
71
- { field: 'roleName', title: 'message.udp.roleName' },
72
- { field: 'roleDesc', title: 'message.udp.roleDesc' },
73
- { field: 'enabled', width: 100, formatter: ['formatDict', 'SU.ENABLE'] }
74
- ];
75
-
76
- const gridCol: any[] = clone(columns, true);
77
- gridCol.push({
78
- field: 'operate',
79
- width: 80,
80
- fixed: 'right',
81
- slots: {
82
- default: ({ row }) => {
83
- return [
84
- <ut-button
85
- icon="ri-delete-bin-5-fill"
86
- content="del"
87
- status="danger"
88
- auth="del"
89
- onTap={() => handleDel(row)}
90
- />
91
- ];
92
- }
93
- }
94
- });
95
-
96
- // 新增
97
- const handleAdd = () => {
98
- data.record = {};
99
- data.record.orgId = active.value.id;
100
- data.showModalView = true;
101
- };
102
- // 删除
103
- const handleDel = async row => {
104
- const type = await VxeUI.modal.confirm(t('message.tip.del'));
105
- if (type === 'confirm') {
106
- const param = { orgId: active.value.id, roleId: row.id };
107
- data.loading = true;
108
- const [err] = await to(getServiceApi().delete(url, param));
109
- if (!err) {
110
- successMessage(t('message.operateSuccess'));
111
- }
112
- xgrid.value.refreshData();
113
- data.loading = false;
114
- }
115
- };
116
- const onConfirm = async records => {
117
- const orgRoleList = [];
118
- records.forEach(m => {
119
- m.orgId = active.value.id;
120
- m.roleId = m.id;
121
- orgRoleList.push(m);
122
- });
123
- const param = { orgRoleList };
124
- xmodal.value.showLoading();
125
- const [err] = await to(getServiceApi().post(url, param));
126
- if (!err) {
127
- successMessage();
128
- xgrid.value.refreshData();
129
- data.showModalView = false;
130
- }
131
- };
132
-
133
- const onButtonClick = code => {
134
- code === 'add' && handleAdd();
135
- };
136
- </script>
1
+ <template>
2
+ <div v-spinning="data.loading" class="page-content">
3
+ <ut-grid
4
+ ref="xgrid"
5
+ :items="formItems"
6
+ :columns="gridCol"
7
+ :default-params="data.fetchExtParam"
8
+ :default-value="data.fetchExtParam"
9
+ :buttons="buttons"
10
+ :auto-load="false"
11
+ :url="url"
12
+ :check-method="checkMethod"
13
+ mode="form"
14
+ @buttonClick="onButtonClick"
15
+ />
16
+ <ut-modal-grid
17
+ v-if="data.showModalView"
18
+ ref="xmodal"
19
+ :items="formItems"
20
+ :columns="columns"
21
+ :show-footer="true"
22
+ :editable="false"
23
+ :title="$t('message.udp.roleList')"
24
+ url="/uums/role"
25
+ width="60%"
26
+ height="75%"
27
+ @close="data.showModalView = false"
28
+ @confirm="onConfirm"
29
+ />
30
+ </div>
31
+ </template>
32
+
33
+ <script setup lang="tsx">
34
+ import { useI18n } from 'vue-i18n';
35
+ import { ref, reactive, watch, inject, nextTick } from 'vue';
36
+ import { clone } from 'xe-utils';
37
+ import { VxeUI } from 'vxe-pc-ui';
38
+ import to from 'await-to-js';
39
+ import { successMessage } from '@utogether/utils';
40
+ import { getServiceApi } from '../../../api';
41
+
42
+ const data = reactive<IRecord>({
43
+ record: {},
44
+ loading: false,
45
+ showModalView: false
46
+ });
47
+ const { t } = useI18n();
48
+
49
+ const xgrid = ref(null);
50
+ const xmodal = ref(null);
51
+ const active: IRecord = inject('active');
52
+
53
+ const url = '/uums/orgRole';
54
+ watch(
55
+ () => active.value,
56
+ () => {
57
+ if (!active?.value.id) return;
58
+ data.fetchExtParam = { orgId: active?.value.id };
59
+ nextTick(() => {
60
+ xgrid.value.refreshData();
61
+ });
62
+ }
63
+ );
64
+
65
+ const buttons = [{ code: 'del', auth: '/' }];
66
+
67
+ const formItems = [
68
+ { field: 'roleName', title: 'message.udp.roleName', span: 9 },
69
+ { field: 'roleCode', title: 'message.udp.roleCode', span: 9 }
70
+ ];
71
+
72
+ const columns = [
73
+ { type: 'checkbox', width: 40 },
74
+ { field: 'roleCode', title: 'message.udp.roleCode' },
75
+ { field: 'roleName', title: 'message.udp.roleName' },
76
+ { field: 'roleDesc', title: 'message.udp.roleDesc' },
77
+ { field: 'enabled', width: 100, formatter: ['formatDict', 'SU.ENABLE'] }
78
+ ];
79
+
80
+ const gridCol: any[] = clone(columns, true);
81
+ gridCol.push({
82
+ field: 'operate',
83
+ width: 80,
84
+ fixed: 'right',
85
+ slots: {
86
+ default: ({ row }) => {
87
+ if (row.roleCode === 'admin') return null;
88
+ return [
89
+ <ut-button icon="ri-delete-bin-5-fill" content="del" status="danger" auth="del" onTap={() => handleDel(row)} />
90
+ ];
91
+ }
92
+ }
93
+ });
94
+
95
+ // 新增
96
+ const handleAdd = () => {
97
+ data.record = {};
98
+ data.record.orgId = active.value.id;
99
+ data.showModalView = true;
100
+ };
101
+ // 删除
102
+ const handleDel = async row => {
103
+ const type = await VxeUI.modal.confirm(t('message.tip.del'));
104
+ if (type === 'confirm') {
105
+ const param = { orgId: active.value.id, roleId: row.id };
106
+ data.loading = true;
107
+ const [err] = await to(getServiceApi().delete(url, param));
108
+ if (!err) {
109
+ successMessage(t('message.operateSuccess'));
110
+ }
111
+ xgrid.value.refreshData();
112
+ data.loading = false;
113
+ }
114
+ };
115
+ const onConfirm = async records => {
116
+ const orgRoleList = [];
117
+ records.forEach(m => {
118
+ m.orgId = active.value.id;
119
+ m.roleId = m.id;
120
+ orgRoleList.push(m);
121
+ });
122
+ const param = { orgRoleList };
123
+ xmodal.value.showLoading();
124
+ const [err] = await to(getServiceApi().post(url, param));
125
+ if (!err) {
126
+ successMessage();
127
+ xgrid.value.refreshData();
128
+ data.showModalView = false;
129
+ }
130
+ };
131
+
132
+ const checkMethod = row => {
133
+ return row.roleCode !== 'admin';
134
+ };
135
+
136
+ const onButtonClick = code => {
137
+ code === 'add' && handleAdd();
138
+ };
139
+ </script>
@@ -5,7 +5,9 @@
5
5
  :columns="columns"
6
6
  :items="formItems"
7
7
  :url="url"
8
- :default-params="paramExt"
8
+ :auto-load="false"
9
+ :default-params="defaultParams"
10
+ :default-value="defaultParams"
9
11
  :events="onGridEvents"
10
12
  />
11
13
  <!-- 编辑用户信息 -->
@@ -15,12 +17,7 @@
15
17
  <vxe-form-item :title="$t('message.unitName')" field="unitId" span="24">
16
18
  <template #default="{ data }">
17
19
  <vxe-select v-model="data.unitId">
18
- <vxe-option
19
- v-for="unit in treeList"
20
- :key="unit.id"
21
- :value="unit.id"
22
- :label="unit.unitName"
23
- />
20
+ <vxe-option v-for="unit in treeList" :key="unit.id" :value="unit.id" :label="unit.unitName" />
24
21
  </vxe-select>
25
22
  </template>
26
23
  </vxe-form-item>
@@ -30,12 +27,7 @@
30
27
  field="userName"
31
28
  span="24"
32
29
  />
33
- <vxe-form-item
34
- :title="$t('message.userName')"
35
- field="name"
36
- span="24"
37
- :item-render="{ name: 'input' }"
38
- />
30
+ <vxe-form-item :title="$t('message.userName')" field="name" span="24" :item-render="{ name: 'input' }" />
39
31
  <vxe-form-item
40
32
  v-if="data.dataStatus === 'add'"
41
33
  :title="$t('message.userPwd')"
@@ -53,7 +45,7 @@
53
45
  </template>
54
46
  </vxe-modal>
55
47
  <!-- 用户角色 -->
56
- <vxe-modal v-model="data.showUserRole" :title="$t('message.title.roleInfo')" width="600">
48
+ <vxe-modal v-model="data.showUserRole" :loading="loading" :title="$t('message.title.roleInfo')" width="600">
57
49
  <template #default>
58
50
  <vxe-table height="300" :data="data.roleList" border>
59
51
  <vxe-column type="seq" width="60" />
@@ -62,13 +54,20 @@
62
54
  </vxe-table>
63
55
  </template>
64
56
  </vxe-modal>
65
- <vxe-modal v-model="data.showAuth" :title="$t('message.title.authority')" height="300" width="360">
57
+
58
+ <vxe-modal
59
+ v-model="data.showAuth"
60
+ :loading="loading"
61
+ :title="$t('message.title.authority', { role: data.record.name || '88888' })"
62
+ height="620"
63
+ width="560"
64
+ >
66
65
  <template #default>
67
66
  <el-tree-v2
68
67
  ref="xTree"
69
68
  :data="data.roleList"
70
69
  :props="{ children: 'children', label: 'menuName' }"
71
- :height="420"
70
+ :height="560"
72
71
  node-key="id"
73
72
  />
74
73
  </template>
@@ -78,9 +77,9 @@
78
77
 
79
78
  <script setup lang="tsx">
80
79
  import { useI18n } from 'vue-i18n';
81
- import { ref, reactive, inject, nextTick, onMounted } from 'vue';
80
+ import { ref, reactive, inject, onMounted } from 'vue';
82
81
  import to from 'await-to-js';
83
- import { useRender, errorMessage, warnMessage } from '@utogether/utils';
82
+ import { useRender, errorMessage, warnMessage, delay } from '@utogether/utils';
84
83
  import { VxeUI, VxeFormPropTypes } from 'vxe-pc-ui';
85
84
  import { isEmpty } from 'xe-utils';
86
85
  import { getServiceApi } from '../../../api';
@@ -127,8 +126,9 @@ const rules: VxeFormPropTypes.Rules = {
127
126
  ]
128
127
  };
129
128
  const renderHook = useRender();
130
- const paramExt = ref({});
129
+ const defaultParams = ref({});
131
130
  const treeList: IRecord[] = inject('treeList');
131
+ const loading = ref(false);
132
132
 
133
133
  const url = '/uums/user';
134
134
 
@@ -163,21 +163,12 @@ const columns = [
163
163
  fixed: 'right',
164
164
  slots: {
165
165
  default: ({ row }) => {
166
+ if (!row.id) return null;
166
167
  return [
167
168
  <>
168
169
  <ut-button icon="ri-user-fill" content="role" onTap={() => handleRole(row)} />
169
- <ut-button
170
- icon="ri-lock-fill"
171
- content="auth"
172
- status="success"
173
- onTap={() => handleAuth(row)}
174
- />
175
- <ut-button
176
- icon="ri-lock-fill"
177
- content="passwordReset"
178
- status="warning"
179
- onTap={() => handleResetPwd(row)}
180
- />
170
+ <ut-button icon="ri-lock-fill" content="auth" status="success" onTap={() => handleAuth(row)} />
171
+ <ut-button icon="ri-lock-fill" content="passwordReset" status="warning" onTap={() => handleResetPwd(row)} />
181
172
  </>
182
173
  ];
183
174
  }
@@ -197,11 +188,14 @@ async function handleClick({ row }) {
197
188
  * @return {*}
198
189
  */
199
190
  const handleRole = async (row: any) => {
191
+ data.roleList = [];
192
+ data.showUserRole = true;
193
+ loading.value = true;
200
194
  const serverData = await serviceApi.get(url + '/getUserRole', { userName: row.userName });
195
+ loading.value = false;
201
196
  data.roleList = serverData[0]?.sysRoles;
202
- nextTick(() => {
203
- data.showUserRole = true;
204
- });
197
+ // nextTick(() => {
198
+ // });
205
199
  };
206
200
  /**
207
201
  * @description: 密码重置
@@ -224,11 +218,15 @@ const handleResetPwd = async (row: Object) => {
224
218
  * @return {*}
225
219
  */
226
220
  const handleAuth = async row => {
221
+ data.roleList = [];
222
+ data.showAuth = true;
223
+ loading.value = true;
224
+ data.record = row;
227
225
  const [err, res] = await to(serviceApi.get(url + '/getUserRole', { userName: row.userName }));
226
+ loading.value = false;
228
227
  if (!err) {
229
228
  if (!isEmpty(res)) {
230
229
  data.roleList = res[0]?.sysMenuExts;
231
- data.showAuth = true;
232
230
  } else {
233
231
  warnMessage(t('message.tip.emptyAuth'));
234
232
  }
@@ -264,8 +262,10 @@ const handleClose = () => {
264
262
  const getUnitList = () => {
265
263
  serviceApi
266
264
  .get('/uums/unit', { pageSize: 10 })
267
- .then(res => {
268
- paramExt.value = { unitId: res[0].id, enabled: '1' };
265
+ .then(async res => {
266
+ defaultParams.value = { unitId: res[0].id, enabled: '1' };
267
+ await delay(100);
268
+ xgrid.value.refreshData();
269
269
  })
270
270
  .catch(() => {
271
271
  errorMessage('获取租户失败,刷新后重试');
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-12-23 11:22:51
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-29 17:11:13
5
+ * @LastEditTime: 2025-08-11 14:58:55
6
6
  * @Description: 托盘管理
7
7
  -->
8
8
 
@@ -13,10 +13,11 @@
13
13
  v-if="showModalForm"
14
14
  :record="record"
15
15
  :items="items"
16
- :width="360"
17
- :height="340"
16
+ :width="420"
17
+ :height="400"
18
18
  :title="$t('message.title.appAdd')"
19
19
  :url="url"
20
+ class="ut-app-form"
20
21
  data-status="add"
21
22
  @close="showModalForm = false"
22
23
  @confirm="onConfirm"
@@ -56,10 +57,16 @@ const record = ref({});
56
57
  // 列字段
57
58
  const columns = [
58
59
  { type: 'checkbox', width: 45, align: 'center' },
59
- // { field: 'trayTypeCode', width: 110, formatter: ['formatDict', 'SU.TRAY.TYPE'] },
60
- { field: 'appVersion', width: 110 },
61
- { field: 'buildNo', width: 130 },
62
- { field: 'versionInfo', miWidth: 200 },
60
+ { field: 'appVersion', title: 'message.udp.appVersion', width: 110 },
61
+ { field: 'buildNo', title: 'message.udp.buildNo', width: 130 },
62
+ {
63
+ field: 'isForceUpdate',
64
+ title: 'message.udp.isForceUpdate',
65
+ width: 130,
66
+ formatter: ({ row }) =>
67
+ row.isForceUpdate === 'Y' ? t('message.udp.forceUpdate') : t('message.udp.freeUpdate')
68
+ },
69
+ { field: 'versionInfo', title: 'message.udp.versionInfo', miWidth: 200 },
63
70
  {
64
71
  field: 'enabled',
65
72
  title: 'message.status',
@@ -139,12 +146,29 @@ const onButtonClick = code => {
139
146
  };
140
147
 
141
148
  const items = [
142
- { field: 'appVersion', required: true },
143
- { field: 'buildNo', required: true },
144
- { field: 'versionInfo', required: true, itemRender: renderHook.renderTextarea() },
149
+ { field: 'appVersion', title: 'message.udp.appVersion', required: true },
150
+ { field: 'buildNo', title: 'message.udp.buildNo', required: true },
151
+ {
152
+ field: 'isForceUpdate',
153
+ title: 'message.udp.isForceUpdate',
154
+ required: true,
155
+ itemRender: renderHook.renderSwitch({
156
+ openLabel: t('message.udp.forceUpdate'),
157
+ closeLabel: t('message.udp.freeUpdate'),
158
+ openValue: 'Y',
159
+ closeValue: 'N'
160
+ })
161
+ },
162
+ {
163
+ field: 'versionInfo',
164
+ title: 'message.udp.versionInfo',
165
+ required: true,
166
+ itemRender: renderHook.renderTextarea()
167
+ },
145
168
  {
146
169
  field: 'downloadUrl',
147
170
  required: false,
171
+ title: 'message.udp.downloadUrl',
148
172
  itemRender: { name: '#upload', props: { baseUrl: baseURL } }
149
173
  }
150
174
  ];
@@ -174,3 +198,10 @@ const onConfirm = () => {
174
198
  xgrid.value.refreshData();
175
199
  };
176
200
  </script>
201
+ <style lang="scss" scoped>
202
+ .ut-app-form {
203
+ ::v-deep(.vxe-switch--label) {
204
+ width: 100%;
205
+ }
206
+ }
207
+ </style>
@@ -11,8 +11,9 @@
11
11
  ref="xgrid"
12
12
  :items="formItems"
13
13
  :columns="columns"
14
- url="/upfm/v1/lov"
14
+ :check-method="checkMethod"
15
15
  :events="onGridEvents"
16
+ url="/upfm/v1/lov"
16
17
  />
17
18
  <child-view v-if="shouDrawer" :show="shouDrawer" :record="record" @onClose="handleClose" />
18
19
  </div>
@@ -103,4 +104,8 @@ const onGridEvents = {
103
104
  // function onFocus(e) {
104
105
  // console.log('onFocus', e);
105
106
  // }
107
+
108
+ const checkMethod = row => {
109
+ return row.dictType !== '0';
110
+ };
106
111
  </script>
@@ -46,12 +46,7 @@
46
46
  <template #default="{ row }">
47
47
  <ut-button status="primary" content="edit" @tap="onEdit(row)" />
48
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
- />
49
+ <ut-button status="success" content="add" :disabled="row.enabled !== '1'" @tap="onChildren(row)" />
55
50
  </template>
56
51
  </vxe-table-column>
57
52
  </vxe-table>
@@ -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
  {