@utogether/udp-core 1.0.1-beta.3 → 1.0.1-beta.30
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/build/plugins.ts +3 -3
- package/dist/{403-BuP9jvH9.js → 403-DdjDWbkf.js} +1 -1
- package/dist/{404-DfQk8kKl.js → 404-D9vF2gFz.js} +1 -1
- package/dist/{500-OgROWdiZ.js → 500-mVaDmUjL.js} +1 -1
- package/dist/{AuthorityInfo-q2ksfkWH.js → AuthorityInfo-DOUJ_Zrj.js} +1 -1
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-B12sAzqt.js +100 -0
- package/dist/{Company-DgqowAxc.js → Company-DY__kM9F.js} +3 -3
- package/dist/{CompanyPanel-BNb1rUhD.js → CompanyPanel-C5N8QcMA.js} +17 -17
- package/dist/{Department-Cl8CROSU.js → Department-DsuDZdy5.js} +3 -3
- package/dist/{DepartmentPanel-D5VkqKeP.js → DepartmentPanel-CdwI7Rzu.js} +25 -25
- package/dist/{DesignPanel-BGvEusHC.js → DesignPanel-B50-g0TL.js} +1 -1
- package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BQF1uQ7w.js → DesignPanel.vue_vue_type_style_index_0_lang-KV8JOZ6v.js} +28 -30
- package/dist/DictView-Be2Z5Obk.js +110 -0
- package/dist/InvOrganization-Lui1q3Ou.js +74 -0
- package/dist/Org-qO5ExsPN.js +39 -0
- package/dist/{Preview-BaGmXH7r.js → Preview-Dq4dfV2D.js} +2 -2
- package/dist/{ReportDefine-DkQdBErt.js → ReportDefine-DH3FvbS1.js} +1 -1
- package/dist/{ReportDesign-DzB_A_G6.js → ReportDesign-Bou01Jbr.js} +43 -43
- package/dist/{ReportQuery-DRcMb6ya.js → ReportQuery-BBkmPPSw.js} +1 -1
- package/dist/{ReportQueryFrom-CeA9xhR4.js → ReportQueryFrom-BCY8lTJ7.js} +1 -1
- package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CgGtcs5V.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-CpktcM8J.js} +1 -1
- package/dist/{ReportTemplate-qaiTMQuT.js → ReportTemplate-C_yJXxQ-.js} +28 -28
- package/dist/{Role-DsFulAjq.js → Role-CTatYsrC.js} +6 -6
- package/dist/{RoleAssign-DMRdocpa.js → RoleAssign-Cqt3CelK.js} +9 -9
- package/dist/{RolePanel-wXVysDHM.js → RolePanel-C3JMpNu8.js} +1 -1
- package/dist/{RolePanel-B9POS_pg.js → RolePanel-brKRJIhD.js} +1 -1
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DD8u9pq8.js +132 -0
- package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-CleVvkcY.js → RolePanel.vue_vue_type_script_setup_true_lang-i6Gq4r5B.js} +44 -38
- package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DlXUs0j9.js → ScrollPanel.vue_vue_type_style_index_0_lang-CiWKyjm3.js} +23 -23
- package/dist/{Staff-Cq4V7ruC.js → Staff-Cd3twQ6Y.js} +3 -3
- package/dist/{StaffInfo-CJDKMbud.js → StaffInfo-DJp0a0qd.js} +1 -1
- package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-DQ4DL1KY.js → StaffInfo.vue_vue_type_script_setup_true_lang-Dp2AhJ4I.js} +16 -16
- package/dist/{StaffPanel-CG-uggdr.js → StaffPanel-B93hClzs.js} +1 -1
- package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-DAgN7zN2.js → StaffPanel.vue_vue_type_script_setup_true_lang-CXjUzq7n.js} +2 -2
- package/dist/{SysUser-kwnzRNdD.js → SysUser-BvI6vaqI.js} +2 -2
- package/dist/{SysUserPanel-DTlZf3vk.js → SysUserPanel-C9V8X-Ek.js} +1 -1
- package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-bMqTui07.js +343 -0
- package/dist/{SystemMenu-BVT0n-L2.js → SystemMenu-D4WME5d0.js} +27 -27
- package/dist/{UserInfo-BbTQ9Zat.js → UserInfo-D-AfdfJs.js} +1 -1
- package/dist/{UserInfo.vue_vue_type_style_index_0_lang-D_bpYDmI.js → UserInfo.vue_vue_type_style_index_0_lang-C-JQYIxe.js} +41 -39
- package/dist/{childView-BJbIhjmf.js → childView--WMSo-wH.js} +1 -1
- package/dist/{childView-DCsGFrG-.js → childView-1MTl6Kaj.js} +1 -1
- package/dist/childView.vue_vue_type_style_index_0_lang-B8Losc4Y.js +170 -0
- package/dist/{childView.vue_vue_type_style_index_0_lang-BCDxpVoD.js → childView.vue_vue_type_style_index_0_lang-BAVKNIXs.js} +1 -1
- package/dist/{code-rule-DePU6cdp.js → code-rule-D-RqrQB6.js} +42 -41
- package/dist/core.es.js +19 -10
- package/dist/{cron-task-DUM1SIGL.js → cron-task-D-X-KFZm.js} +11 -11
- package/dist/flow-task-B07st2aD.js +10 -0
- package/dist/{frameView-CEUTDtSm.js → frameView-MAW_-GHJ.js} +1 -1
- package/dist/index-Bc9vCX7z.js +2904 -0
- package/dist/{layoutView-PCjwVwkX.js → layoutView-De2QIEr2.js} +1639 -1629
- package/dist/{log-in-e7D5Ss1P.js → log-in-CpGqc33f.js} +5 -4
- package/dist/{log-out--RRncZhN.js → log-out-D1b4VRMZ.js} +30 -24
- package/dist/{login-log-CvVnyGi3.js → login-log-BNRXLeMi.js} +4 -3
- package/dist/login-rdZ0GPYc.js +249 -0
- package/dist/{lov-view-D8wwkxFJ.js → lov-view-Ao7LMspL.js} +5 -5
- package/dist/{menuInfo-B5JKVwrB.js → menuInfo-DmOcK6An.js} +1 -1
- package/dist/{menuInfo.vue_vue_type_style_index_0_lang-CcM9WX4n.js → menuInfo.vue_vue_type_style_index_0_lang-Ln-zFWV7.js} +121 -99
- package/dist/{pda-app-DIa1p1Ww.js → pda-app-DY63mQ2T.js} +202 -188
- package/dist/{resource-CCQ7Dd-5.js → resource-B21uV58T.js} +18 -18
- package/dist/{su-welcome-CLp9YaJa.js → su-welcome-DgjzJeDF.js} +122 -121
- package/dist/sys-config-DOtK2I32.js +370 -0
- package/dist/udp-core.css +1 -9
- package/dist/utogether-MlnyYtNS.js +4 -0
- package/index.ts +19 -6
- package/package.json +3 -3
- package/src/App.vue +65 -70
- package/src/api/http.ts +1 -4
- package/src/api/index.ts +5 -3
- package/src/api/user.ts +2 -2
- package/src/components/SuCharts/src/UserInfo.vue +3 -3
- package/src/components/SuScrollTree/ScrollPanel.vue +4 -9
- package/src/components/udp/content/index.vue +89 -0
- package/src/components/udp/form/form.vue +109 -0
- package/src/components/udp/{grid.vue → grid/index.vue} +524 -500
- package/src/components/udp/index.ts +4 -6
- package/src/components/udp/ut-stamp-badge/index.vue +272 -0
- package/src/components/udp/utils.ts +408 -379
- package/src/directives/permission/index.ts +1 -1
- package/src/layout/components/lay-navbar/index.vue +8 -6
- package/src/layout/components/lay-panel/index.vue +150 -150
- package/src/layout/components/lay-search/index.vue +1 -1
- package/src/layout/components/lay-select-org/index.vue +4 -9
- package/src/layout/components/lay-sidebar/horizontal.vue +8 -6
- package/src/layout/components/lay-sidebar/mixNav.vue +260 -258
- package/src/layout/components/lay-sidebar/sidebar-logo.vue +8 -12
- package/src/layout/components/lay-tag/index.vue +596 -625
- package/src/layout/hooks/useTag.ts +12 -18
- package/src/layout/types.ts +3 -2
- package/src/main.ts +115 -110
- package/src/plugins/i18n/en.ts +302 -291
- package/src/plugins/i18n/module/u-workflow.ts +1 -1
- package/src/plugins/i18n/zh.ts +362 -338
- package/src/plugins/vxe-table/index.ts +116 -53
- package/src/plugins/vxe-table/render.tsx +183 -57
- package/src/router/index.ts +101 -97
- package/src/router/modules/flow.ts +35 -0
- package/src/router/modules/remaining.ts +1 -26
- package/src/router/utils.ts +50 -7
- package/src/store/modules/app.ts +1 -3
- package/src/store/modules/multiTags.ts +15 -14
- package/src/store/modules/permission.ts +25 -15
- package/src/store/modules/system.ts +1 -3
- package/src/style/button.scss +85 -85
- package/src/style/login.css +1 -1
- package/src/style/vxetable.scss +348 -258
- package/src/utils/authority/index.ts +1 -1
- package/src/utils/index.ts +3 -1
- package/src/utils/propTypes.ts +1 -6
- package/src/utils/{http → udp/http}/index.ts +27 -30
- package/src/utils/{http → udp/http}/types.d.ts +2 -6
- package/src/views/login/login-view.vue +6 -20
- package/src/views/organization/company/CompanyPanel.vue +259 -259
- package/src/views/organization/department/DepartmentPanel.vue +6 -20
- package/src/views/organization/inv-org/InvOrganization.vue +22 -7
- package/src/views/organization/org/Org.vue +9 -5
- package/src/views/system/cron/cron-task.vue +2 -12
- package/src/views/system/menu/SystemMenu.vue +185 -197
- package/src/views/system/menu/menuInfo.vue +384 -372
- 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 +11 -9
- package/src/views/system/role-assign/RoleAssign.vue +2 -2
- package/src/views/system/role-assign/RolePanel.vue +12 -9
- package/src/views/system/sys/sys-config.vue +70 -21
- package/src/views/system/sysUser/SysUserPanel.vue +132 -62
- package/src/views/uapp/pda/pda-app.vue +48 -16
- package/src/views/udev/coderule/code-rule.vue +132 -121
- package/src/views/udev/dict/DictView.vue +118 -106
- package/src/views/udev/dict/childView.vue +71 -111
- package/src/views/udev/lov/childView.vue +1 -7
- package/src/views/udev/lov/lov-view.vue +91 -91
- package/src/views/ufile/aggregation/File.vue +5 -5
- package/src/views/ufile/file/water-mark.vue +14 -14
- package/src/views/uhome/components/menu-favorite.vue +314 -331
- package/src/views/uhome/su-welcome.vue +3 -3
- package/src/views/ulogin/login.vue +19 -12
- package/src/views/upms/interface/log-in.vue +2 -8
- package/src/views/upms/interface/log-out.vue +2 -8
- package/src/views/upms/user/login-log.vue +2 -8
- package/src/views/urpt/design/DesignPanel.vue +16 -35
- package/src/views/urpt/design/Preview.vue +1 -0
- package/src/views/urpt/design/ReportDesign.vue +17 -23
- package/src/views/urpt/static-resource/resource.vue +3 -3
- package/src/views/urpt/template/ReportTemplate.vue +7 -7
- package/src/views/utask/flow-task.vue +18 -0
- package/types/global.d.ts +4 -9
- package/vite.config.ts +2 -1
- package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-Bwsf6lMH.js +0 -102
- package/dist/DictView-BnxfaOBv.js +0 -96
- package/dist/InvOrganization-5y79ZLdY.js +0 -66
- package/dist/Org-2oBAXN2r.js +0 -35
- package/dist/RolePanel.vue_vue_type_script_setup_true_lang-t6S_0zmJ.js +0 -126
- package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BW6PlGjM.js +0 -288
- package/dist/childView.vue_vue_type_style_index_0_lang-CDtsalCm.js +0 -187
- package/dist/index-ZdgOD7cF.js +0 -3399
- package/dist/login-B1CjWVKu.js +0 -252
- package/dist/sys-config-BBmf_SqF.js +0 -277
- package/dist/utogether-Bkptx2lB.js +0 -182
- package/src/components/udp/form-upload.vue +0 -183
- package/src/components/udp/lov.vue +0 -410
- package/src/components/udp/modal-form.vue +0 -180
- package/src/components/udp/modal-grid.vue +0 -297
- package/src/utils/udp/useRender.ts +0 -420
|
@@ -1,53 +1,116 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: levi7754 levi7754@163.com
|
|
3
|
-
* @Date: 2024-06-05 14:32:03
|
|
4
|
-
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime: 2025-
|
|
6
|
-
* @FilePath: /udp-front/packages/udp-core/src/plugins/vxe-table/index.ts
|
|
7
|
-
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
-
*/
|
|
9
|
-
import 'xe-utils';
|
|
10
|
-
import { merge } from 'xe-utils';
|
|
11
|
-
import { geti18n, transformI18n } from '../i18n/index';
|
|
12
|
-
// import { storageLocal } from '@utogether/utils';
|
|
13
|
-
|
|
14
|
-
import { VxetableRender } from './render';
|
|
15
|
-
import { getServiceApi } from '../../api';
|
|
16
|
-
|
|
17
|
-
import VXETable, { VxeUI } from 'vxe-table';
|
|
18
|
-
// import './render.tsx';
|
|
19
|
-
|
|
20
|
-
// const dict = storageLocal.getItem('kLov');
|
|
21
|
-
VxetableRender(VXETable, { serviceApi: getServiceApi(), i18n: transformI18n });
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
1
|
+
/*
|
|
2
|
+
* @Author: levi7754 levi7754@163.com
|
|
3
|
+
* @Date: 2024-06-05 14:32:03
|
|
4
|
+
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
+
* @LastEditTime: 2025-11-04 13:58:45
|
|
6
|
+
* @FilePath: /udp-front/packages/udp-core/src/plugins/vxe-table/index.ts
|
|
7
|
+
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
+
*/
|
|
9
|
+
import 'xe-utils';
|
|
10
|
+
import { merge, toDateString, getWhatDay } from 'xe-utils';
|
|
11
|
+
import { geti18n, transformI18n } from '../i18n/index';
|
|
12
|
+
// import { storageLocal } from '@utogether/utils';
|
|
13
|
+
import { VxetableRender } from '@utogether/utils';
|
|
14
|
+
// import { VxetableRender } from './render';
|
|
15
|
+
import { getServiceApi } from '../../api';
|
|
16
|
+
|
|
17
|
+
import VXETable, { VxeUI } from 'vxe-table';
|
|
18
|
+
// import './render.tsx';
|
|
19
|
+
|
|
20
|
+
// const dict = storageLocal.getItem('kLov');
|
|
21
|
+
VxetableRender(VXETable, { serviceApi: getServiceApi(), i18n: transformI18n });
|
|
22
|
+
setCommands();
|
|
23
|
+
|
|
24
|
+
// 全局默认参数
|
|
25
|
+
const defaultConfig = {
|
|
26
|
+
// 对组件内置的提示语进行国际化翻译
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
i18n: (key, args) => geti18n().global.t(key, args),
|
|
29
|
+
// 可选,对参数中的列头、校验提示..等进行自动翻译(只对支持国际化的有效)
|
|
30
|
+
translate(key) {
|
|
31
|
+
// 例如,只翻译 "message." 开头的键值
|
|
32
|
+
const NAMESPACED = ['message.', 'el.'];
|
|
33
|
+
if (key && NAMESPACED.findIndex(v => key.includes(v)) !== -1) {
|
|
34
|
+
return geti18n().global.t.call(geti18n().global.locale, key);
|
|
35
|
+
}
|
|
36
|
+
return key;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export function setTableConfig(config = {}) {
|
|
41
|
+
VXETable.setConfig(merge(defaultConfig, config));
|
|
42
|
+
|
|
43
|
+
VxeUI.interceptor.add('event.clearEdit', {
|
|
44
|
+
tableInterceptorMethod(params) {
|
|
45
|
+
const { $event } = params;
|
|
46
|
+
if ($event.target.className.indexOf('vxe-table--ignore-clear') > -1) return false;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function setTheme(theme) {
|
|
52
|
+
// 切换为暗黑主题
|
|
53
|
+
VxeUI.setTheme(theme);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function setCommands() {
|
|
57
|
+
// 定义选中日期今天指令
|
|
58
|
+
VxeUI.commands.add('utTodyay', {
|
|
59
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
60
|
+
const startDate = toDateString(new Date(), 'yyyy-MM-dd 00:00:00');
|
|
61
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
62
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// 定义选中日期昨天指令
|
|
66
|
+
VxeUI.commands.add('utYesterDay', {
|
|
67
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
68
|
+
const startDate = toDateString(getWhatDay(new Date(), -1), 'yyyy-MM-dd 00:00:00');
|
|
69
|
+
const endDate = toDateString(getWhatDay(new Date(), -1), 'yyyy-MM-dd 23:59:59');
|
|
70
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// 定义选中日期最近一周指令
|
|
74
|
+
VxeUI.commands.add('utRecentWeek', {
|
|
75
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
76
|
+
const startDate = toDateString(getWhatDay(new Date(), -7), 'yyyy-MM-dd 00:00:00');
|
|
77
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
78
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// 定义选中日期最近一个月指令
|
|
83
|
+
VxeUI.commands.add('utRecentMonth', {
|
|
84
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
85
|
+
const startDate = toDateString(getWhatDay(new Date(), -30), 'yyyy-MM-dd 00:00:00');
|
|
86
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
87
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// 定义选中日期最近三个月指令
|
|
92
|
+
VxeUI.commands.add('utRecentThreeMonth', {
|
|
93
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
94
|
+
const startDate = toDateString(getWhatDay(new Date(), -90), 'yyyy-MM-dd 00:00:00');
|
|
95
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
96
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// 定义选中日期最近半年指令
|
|
101
|
+
VxeUI.commands.add('utRecentHalfYear', {
|
|
102
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
103
|
+
const startDate = toDateString(getWhatDay(new Date(), -180), 'yyyy-MM-dd 00:00:00');
|
|
104
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
105
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
// 定义选中日期最近半年指令
|
|
109
|
+
VxeUI.commands.add('utRecentYear', {
|
|
110
|
+
dateRangePickerCommandMethod({ $dateRangePicker }) {
|
|
111
|
+
const startDate = toDateString(getWhatDay(new Date(), -365), 'yyyy-MM-dd 00:00:00');
|
|
112
|
+
const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59');
|
|
113
|
+
$dateRangePicker.setModelValue(startDate, endDate);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: wei.li
|
|
3
3
|
* @Date: 2021-12-01 09:18:50
|
|
4
4
|
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime: 2025-
|
|
5
|
+
* @LastEditTime: 2025-10-29 16:48:47
|
|
6
6
|
* @Description: file content
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -251,17 +251,15 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
251
251
|
renderTableEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {
|
|
252
252
|
const { row, column } = params;
|
|
253
253
|
const { options, props, optionProps = {}, events } = renderOpts;
|
|
254
|
-
const { label = 'label', value = 'value'
|
|
255
|
-
const { mapField } = props;
|
|
256
|
-
|
|
254
|
+
const { label = 'label', value = 'value' } = optionProps;
|
|
255
|
+
const { mapField, multiple } = props;
|
|
256
|
+
console.log('ssssss');
|
|
257
257
|
const componentHook = useComponent();
|
|
258
258
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
});
|
|
264
|
-
}
|
|
259
|
+
// 多选时
|
|
260
|
+
const modelField = multiple ? `_${column.field}` : column.field;
|
|
261
|
+
// 默认值
|
|
262
|
+
componentHook.setDefaultValue(props, row, column.field);
|
|
265
263
|
|
|
266
264
|
function onChange(val) {
|
|
267
265
|
componentHook.selectChange(val, row, column.field, renderOpts, {
|
|
@@ -276,22 +274,17 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
276
274
|
|
|
277
275
|
return [
|
|
278
276
|
<el-select
|
|
279
|
-
v-model={row[
|
|
277
|
+
v-model={row[modelField]}
|
|
280
278
|
filterable
|
|
281
279
|
clearable
|
|
282
280
|
{...props}
|
|
283
281
|
style="width: 100%"
|
|
282
|
+
class="udp-select-wrapper"
|
|
284
283
|
onChange={v => onChange(v)}
|
|
285
284
|
onClear={() => onClear()}
|
|
286
285
|
>
|
|
287
286
|
{options.map(item => {
|
|
288
|
-
return
|
|
289
|
-
<el-option
|
|
290
|
-
key={item[value]}
|
|
291
|
-
label={extLabel && item[extLabel] ? item[value] : item[label]}
|
|
292
|
-
value={item[value]}
|
|
293
|
-
></el-option>
|
|
294
|
-
);
|
|
287
|
+
return <el-option key={item[value]} label={item[label]} value={item[value]}></el-option>;
|
|
295
288
|
})}
|
|
296
289
|
</el-select>
|
|
297
290
|
];
|
|
@@ -300,17 +293,12 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
300
293
|
const { row, column } = params;
|
|
301
294
|
const { options, props, optionProps = {}, events } = renderOpts;
|
|
302
295
|
const { label = 'label', value = 'value', extLabel } = optionProps;
|
|
303
|
-
const { mapField } = props;
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const isExit = options.some(option => option[label] === dv);
|
|
310
|
-
!isExit && options.push({ [value]: dv, [label]: dv });
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
|
|
296
|
+
const { mapField, multiple } = props;
|
|
297
|
+
console.log('defaultParams');
|
|
298
|
+
// 多选时
|
|
299
|
+
const modelField = multiple ? `_${column.field}` : column.field;
|
|
300
|
+
// 默认值
|
|
301
|
+
componentHook.setDefaultValue(props, row, column.field);
|
|
314
302
|
function onChange(val) {
|
|
315
303
|
componentHook.selectChange(val, row, column.field, renderOpts, {
|
|
316
304
|
column,
|
|
@@ -324,7 +312,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
324
312
|
|
|
325
313
|
return [
|
|
326
314
|
<el-select
|
|
327
|
-
v-model={row[
|
|
315
|
+
v-model={row[modelField]}
|
|
328
316
|
filterable
|
|
329
317
|
clearable
|
|
330
318
|
{...props}
|
|
@@ -350,6 +338,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
350
338
|
const { props, options, optionProps } = renderOpts;
|
|
351
339
|
// @ts-ignore
|
|
352
340
|
const { label = 'label', value = 'value', extLabel } = optionProps;
|
|
341
|
+
console.log('defaultParams');
|
|
353
342
|
const { textValue } = props;
|
|
354
343
|
let val = row[column.field];
|
|
355
344
|
const item = options.find(opt => opt[value] === val);
|
|
@@ -368,13 +357,15 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
368
357
|
const { data, field } = params;
|
|
369
358
|
const { options, props, optionProps = {}, events } = renderOpts;
|
|
370
359
|
const { label = 'label', value = 'value' } = optionProps;
|
|
360
|
+
|
|
361
|
+
const { mapField, multiple } = props;
|
|
362
|
+
|
|
371
363
|
const componentHook = useComponent();
|
|
372
364
|
|
|
365
|
+
// 多选时, model挂载到临时字段上
|
|
366
|
+
const modelField = multiple ? `_${field}` : field;
|
|
373
367
|
// 默认值
|
|
374
|
-
|
|
375
|
-
if (defaultValues) {
|
|
376
|
-
data[field] = defaultValues;
|
|
377
|
-
}
|
|
368
|
+
componentHook.setDefaultValue(props, data, field);
|
|
378
369
|
/**
|
|
379
370
|
* @description: 选中值发生变化时触发
|
|
380
371
|
* @param {*} val 目前的选中值
|
|
@@ -394,7 +385,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
394
385
|
|
|
395
386
|
return [
|
|
396
387
|
<el-select
|
|
397
|
-
v-model={data[
|
|
388
|
+
v-model={data[modelField]}
|
|
398
389
|
filterable
|
|
399
390
|
clearable
|
|
400
391
|
style="width: 100%"
|
|
@@ -409,6 +400,84 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
409
400
|
];
|
|
410
401
|
}
|
|
411
402
|
});
|
|
403
|
+
// 下拉选择
|
|
404
|
+
VXETable.renderer.add('#textarea', {
|
|
405
|
+
renderTableEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {
|
|
406
|
+
const { row, column } = params;
|
|
407
|
+
const { props, events } = renderOpts;
|
|
408
|
+
const { mapField } = props;
|
|
409
|
+
|
|
410
|
+
const componentHook = useComponent();
|
|
411
|
+
function onChange(val) {
|
|
412
|
+
componentHook.change(val, row, column.field, renderOpts, { column, datasource: 'row' });
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
function onClear() {
|
|
416
|
+
componentHook.clear(row, column.field, mapField, events, 'row');
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
return [
|
|
420
|
+
<vxe-textarea
|
|
421
|
+
v-model={row[column.field]}
|
|
422
|
+
{...props}
|
|
423
|
+
style="width: 100%"
|
|
424
|
+
onChange={v => onChange(v)}
|
|
425
|
+
onClear={() => onClear()}
|
|
426
|
+
/>
|
|
427
|
+
];
|
|
428
|
+
},
|
|
429
|
+
renderTableDefault(renderOpts: VxeColumnPropTypes.EditRender, params) {
|
|
430
|
+
const { row, column } = params;
|
|
431
|
+
const { props, events } = renderOpts;
|
|
432
|
+
const { mapField } = props;
|
|
433
|
+
|
|
434
|
+
const componentHook = useComponent();
|
|
435
|
+
|
|
436
|
+
function onChange(val) {
|
|
437
|
+
componentHook.change(val, row, column.field, renderOpts, { column, datasource: 'row' });
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
function onClear() {
|
|
441
|
+
componentHook.clear(row, column.field, mapField, events, 'row');
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
return [
|
|
445
|
+
<vxe-textarea v-model={row[column.field]} {...props} onChange={v => onChange(v)} onClear={() => onClear()} />
|
|
446
|
+
];
|
|
447
|
+
},
|
|
448
|
+
// 可编辑显示模板
|
|
449
|
+
renderTableCell(renderOpts, params) {
|
|
450
|
+
const { row, column } = params;
|
|
451
|
+
return row[column.field];
|
|
452
|
+
},
|
|
453
|
+
renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
|
454
|
+
const { data, field } = params;
|
|
455
|
+
const { props, events } = renderOpts;
|
|
456
|
+
const componentHook = useComponent();
|
|
457
|
+
|
|
458
|
+
// 默认值
|
|
459
|
+
const { defaultValue, mapField } = props;
|
|
460
|
+
if (defaultValue) {
|
|
461
|
+
data[field] = defaultValue;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* @description: 选中值发生变化时触发
|
|
465
|
+
* @param {*} val 目前的选中值
|
|
466
|
+
*/
|
|
467
|
+
function onChange(val) {
|
|
468
|
+
componentHook.change(val, data, field, renderOpts, { datasource: 'data' });
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* @description: 可清空的单选模式下用户点击清空按钮时触发
|
|
473
|
+
*/
|
|
474
|
+
function onClear() {
|
|
475
|
+
componentHook.clear(data, field, mapField, events, 'data');
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
return [<vxe-textarea v-model={data[field]} {...props} onChange={v => onChange(v)} onClear={() => onClear()} />];
|
|
479
|
+
}
|
|
480
|
+
});
|
|
412
481
|
// Lov
|
|
413
482
|
VXETable.renderer.add('#lov', {
|
|
414
483
|
renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
|
@@ -445,7 +514,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
445
514
|
}, '');
|
|
446
515
|
Object.assign(data, obj);
|
|
447
516
|
}
|
|
448
|
-
const parm = {
|
|
517
|
+
const parm = { data, options: record, field };
|
|
449
518
|
events?.change && events.change(parm);
|
|
450
519
|
}
|
|
451
520
|
|
|
@@ -457,13 +526,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
457
526
|
}
|
|
458
527
|
|
|
459
528
|
return [
|
|
460
|
-
<ut-lov
|
|
461
|
-
record={data}
|
|
462
|
-
{...props}
|
|
463
|
-
mode="vxe"
|
|
464
|
-
onChange={(v, f) => onChange(v, f)}
|
|
465
|
-
onClear={() => onClear()}
|
|
466
|
-
/>
|
|
529
|
+
<ut-lov record={data} {...props} mode="vxe" onChange={(v, f) => onChange(v, f)} onClear={() => onClear()} />
|
|
467
530
|
];
|
|
468
531
|
},
|
|
469
532
|
// 单元格编辑
|
|
@@ -483,7 +546,8 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
483
546
|
}
|
|
484
547
|
Object.assign(row, obj);
|
|
485
548
|
}
|
|
486
|
-
|
|
549
|
+
const params = { row, options: record, field: column.field, column };
|
|
550
|
+
events?.change && events.change(params);
|
|
487
551
|
}
|
|
488
552
|
|
|
489
553
|
function onClear() {
|
|
@@ -517,7 +581,8 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
517
581
|
}
|
|
518
582
|
Object.assign(row, obj);
|
|
519
583
|
}
|
|
520
|
-
|
|
584
|
+
const params = { row, options: record, field: column.field, column };
|
|
585
|
+
events?.change && events.change(params);
|
|
521
586
|
}
|
|
522
587
|
/**
|
|
523
588
|
* @description 清空数据
|
|
@@ -527,13 +592,7 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
527
592
|
}
|
|
528
593
|
|
|
529
594
|
return [
|
|
530
|
-
<ut-lov
|
|
531
|
-
record={row}
|
|
532
|
-
mode="ele"
|
|
533
|
-
{...props}
|
|
534
|
-
onChange={(v, f) => onChange(v, f)}
|
|
535
|
-
onClear={() => onClear()}
|
|
536
|
-
/>
|
|
595
|
+
<ut-lov record={row} mode="ele" {...props} onChange={(v, f) => onChange(v, f)} onClear={() => onClear()} />
|
|
537
596
|
];
|
|
538
597
|
},
|
|
539
598
|
// 可编辑显示模板
|
|
@@ -544,19 +603,77 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
544
603
|
});
|
|
545
604
|
// form upload
|
|
546
605
|
VXETable.renderer.add('#upload', {
|
|
606
|
+
renderTableEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {
|
|
607
|
+
const { row, column } = params;
|
|
608
|
+
const { props, events } = renderOpts;
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* @description: 点击清空按钮时触发
|
|
612
|
+
*/
|
|
613
|
+
function onClear(file, fielist) {
|
|
614
|
+
row[column.field] = '';
|
|
615
|
+
events?.remove && events?.remove(file, fielist);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
return [
|
|
619
|
+
<form-upload2
|
|
620
|
+
record={row}
|
|
621
|
+
field={column.field}
|
|
622
|
+
size="mini"
|
|
623
|
+
{...props}
|
|
624
|
+
render-mode="column"
|
|
625
|
+
data-status="edit"
|
|
626
|
+
onRemove={(file, fielist) => onClear(file, fielist)}
|
|
627
|
+
/>
|
|
628
|
+
];
|
|
629
|
+
},
|
|
630
|
+
|
|
631
|
+
// 可编辑显示模板
|
|
632
|
+
renderTableCell(renderOpts, params) {
|
|
633
|
+
const { row, column } = params;
|
|
634
|
+
const { props } = renderOpts;
|
|
635
|
+
return [
|
|
636
|
+
<form-upload2
|
|
637
|
+
record={row}
|
|
638
|
+
field={column.field}
|
|
639
|
+
size="mini"
|
|
640
|
+
{...props}
|
|
641
|
+
mode="image"
|
|
642
|
+
render-mode="column"
|
|
643
|
+
data-status="detail"
|
|
644
|
+
/>
|
|
645
|
+
];
|
|
646
|
+
},
|
|
547
647
|
renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
|
548
648
|
const { data, field } = params;
|
|
549
649
|
const { props, events } = renderOpts;
|
|
550
|
-
|
|
551
650
|
/**
|
|
552
651
|
* @description: 点击清空按钮时触发
|
|
553
652
|
*/
|
|
554
|
-
function onClear() {
|
|
653
|
+
function onClear(file, fielist) {
|
|
555
654
|
data[field] = '';
|
|
556
|
-
|
|
655
|
+
events?.remove && events?.remove(file, fielist);
|
|
557
656
|
}
|
|
558
657
|
|
|
559
|
-
|
|
658
|
+
if (props.singleMode) {
|
|
659
|
+
// 单个模式下,限制只能单个上传
|
|
660
|
+
Object.assign(props, { multiple: false, limitCount: 1, autoHiddenButton: true });
|
|
661
|
+
}
|
|
662
|
+
if (!props.mode || props.mode === 'image') {
|
|
663
|
+
props.imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'apk'];
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
console.log({ props });
|
|
667
|
+
|
|
668
|
+
return [
|
|
669
|
+
<form-upload2
|
|
670
|
+
record={data}
|
|
671
|
+
field={field}
|
|
672
|
+
mode="image"
|
|
673
|
+
{...props}
|
|
674
|
+
onRemove={(file, fielist) => onClear(file, fielist)}
|
|
675
|
+
/>
|
|
676
|
+
];
|
|
560
677
|
}
|
|
561
678
|
});
|
|
562
679
|
|
|
@@ -774,7 +891,16 @@ export const VxetableRender = (VXETable, { serviceApi, i18n }) => {
|
|
|
774
891
|
}
|
|
775
892
|
events?.clear && events.clear({ [datasource]: data, field });
|
|
776
893
|
};
|
|
777
|
-
|
|
894
|
+
const change = (data, field, mapField, events, datasource) => {
|
|
895
|
+
data[field] = null;
|
|
896
|
+
if (!isEmpty(mapField)) {
|
|
897
|
+
for (const key in mapField) {
|
|
898
|
+
data[key] = null;
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
events?.change && events.change({ [datasource]: data, field });
|
|
902
|
+
};
|
|
903
|
+
return { clear, change, remote, selectChange, setDefaultValue };
|
|
778
904
|
};
|
|
779
905
|
|
|
780
906
|
/**
|