@utogether/udp-core 1.0.2 → 1.0.3
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-B1rIjAAu.js → 403-D6H3sArg.js} +1 -1
- package/dist/{404-mBqc2y4t.js → 404-DTyfysQ2.js} +1 -1
- package/dist/{500-BoI45Zdh.js → 500-DKaVDaBm.js} +1 -1
- package/dist/{AuthorityInfo-B08NBIIn.js → AuthorityInfo-DQULR69Y.js} +1 -1
- package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-BLP1SaiH.js → AuthorityInfo.vue_vue_type_style_index_0_lang-CzAnoTnO.js} +1 -1
- package/dist/{Company-JGGyWEWH.js → Company-BWFrR-Cq.js} +3 -3
- package/dist/{CompanyPanel-BQ_cCmDx.js → CompanyPanel-Dh814lsw.js} +1 -1
- package/dist/{Department-z2iO6hwM.js → Department-DagPxerl.js} +3 -3
- package/dist/{DepartmentPanel-BtQe7zwU.js → DepartmentPanel-BVy2YGED.js} +1 -1
- package/dist/{DesignPanel-7mhtVWas.js → DesignPanel-DKfjfj2S.js} +1 -1
- package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-4EsHemj_.js → DesignPanel.vue_vue_type_style_index_0_lang-D-a8W08Y.js} +2 -2
- package/dist/{DictView-CjchV2Yk.js → DictView-CE5nEiKu.js} +10 -9
- package/dist/{InvOrganization-Pn1O_XP0.js → InvOrganization-CZk_EbFZ.js} +1 -1
- package/dist/{Org-BqytV_vi.js → Org-BO8jfnqN.js} +1 -1
- package/dist/{Preview-CLpUUMay.js → Preview-DYJaP96f.js} +1 -1
- package/dist/{ReportDefine-Cz1KtEUF.js → ReportDefine-DZXbs7iX.js} +1 -1
- package/dist/{ReportDesign-BaORYud4.js → ReportDesign-CSdqOQ1D.js} +2 -2
- package/dist/{ReportQuery-CPCPXiXz.js → ReportQuery-_Vdt3CnA.js} +1 -1
- package/dist/{ReportQueryFrom-C_AcrfkJ.js → ReportQueryFrom-BWKddh9p.js} +1 -1
- package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-Bm67ejay.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-DbdGwioi.js} +1 -1
- package/dist/{ReportTemplate-CFiNMz79.js → ReportTemplate-DS-DGao8.js} +1 -1
- package/dist/{Role-B-XDoJd5.js → Role-BM0kEu7y.js} +3 -3
- package/dist/{RoleAssign-BolW8YVs.js → RoleAssign-Cp05HUWn.js} +3 -3
- package/dist/{RolePanel-HilSuYns.js → RolePanel-DeuHpCdK.js} +1 -1
- package/dist/{RolePanel-2kfs5tw9.js → RolePanel-hXeshcCZ.js} +1 -1
- package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DPzgfAyV.js → RolePanel.vue_vue_type_script_setup_true_lang-Bf0pSCTN.js} +3 -3
- package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-CE4gApUY.js → RolePanel.vue_vue_type_script_setup_true_lang-CNyWCIJm.js} +1 -1
- package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-CCTH4RkH.js → ScrollPanel.vue_vue_type_style_index_0_lang-BiKe39xG.js} +1 -1
- package/dist/{Staff-BTk3whFC.js → Staff-DLltLFMl.js} +3 -3
- package/dist/{StaffInfo-d3AuSzlA.js → StaffInfo-pfELaI_i.js} +1 -1
- package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-eOL4VlfE.js → StaffInfo.vue_vue_type_script_setup_true_lang-BKKdNggm.js} +1 -1
- package/dist/{StaffPanel-DV-D4jjz.js → StaffPanel-D3Pk28JN.js} +1 -1
- package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-4sFq3CEo.js → StaffPanel.vue_vue_type_script_setup_true_lang-D9HLeyKe.js} +47 -39
- package/dist/{SysUser-BnjYytws.js → SysUser-BOh7ejz3.js} +2 -2
- package/dist/{SysUserPanel-CBoyD-Qi.js → SysUserPanel-RElVo0BV.js} +1 -1
- package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-PrTlTZR-.js → SysUserPanel.vue_vue_type_script_setup_true_lang-DoW0v5y9.js} +1 -1
- package/dist/{SystemMenu-kYB_ZaUt.js → SystemMenu-DZneBqKO.js} +28 -28
- package/dist/{UserInfo-4dx97VBL.js → UserInfo-D9qo_f_9.js} +1 -1
- package/dist/{UserInfo.vue_vue_type_style_index_0_lang-BpbC_ZDm.js → UserInfo.vue_vue_type_style_index_0_lang-CY4dtMnZ.js} +1 -1
- package/dist/{childView-CHPNfTEb.js → childView-CmlGxD9G.js} +1 -1
- package/dist/{childView-CKA_JgVZ.js → childView-DStrPumM.js} +1 -1
- package/dist/{childView.vue_vue_type_style_index_0_lang-Bym2fQRd.js → childView.vue_vue_type_style_index_0_lang-B9k694be.js} +19 -20
- package/dist/{childView.vue_vue_type_style_index_0_lang-W7bCtXeu.js → childView.vue_vue_type_style_index_0_lang-Dtv1rrdP.js} +31 -31
- package/dist/{code-rule-CbxuZg0-.js → code-rule-CxzgQDH_.js} +1 -1
- package/dist/core.es.js +1 -1
- package/dist/{cron-task-nTOpqQYf.js → cron-task-kbyRTz97.js} +1 -1
- package/dist/{frameView-Z1tPUyCh.js → frameView-BawZlIge.js} +1 -1
- package/dist/index-nkstuOxE.js +5533 -0
- package/dist/{layoutView--MGA9zUB.js → layoutView-DVGqPJmA.js} +1 -1
- package/dist/{log-in-CSYJDA6m.js → log-in-j2PZGLQH.js} +1 -1
- package/dist/{log-out-DiwGCg7p.js → log-out-DIJU-Vpf.js} +1 -1
- package/dist/{login-C6Y0ajDp.js → login-DvmHMcgD.js} +1 -1
- package/dist/{login-log-C0V-_l3F.js → login-log-DJBGJVV0.js} +4 -4
- package/dist/{lov-view-Cmv7wZZ9.js → lov-view-C-dIDLh8.js} +2 -2
- package/dist/{menuInfo-UeutJpOa.js → menuInfo-D0mcKmrT.js} +1 -1
- package/dist/{menuInfo.vue_vue_type_style_index_0_lang-CWX4Mu67.js → menuInfo.vue_vue_type_style_index_0_lang-CbwS7aGl.js} +1 -1
- package/dist/{pda-app-B6w99SJo.js → pda-app-BjvyTDkw.js} +1 -1
- package/dist/{resource-BybJvUv0.js → resource-BknIxaTQ.js} +1 -1
- package/dist/{su-welcome-C1bmxHoY.js → su-welcome-CwtvamZC.js} +20 -20
- package/dist/{sys-config-BnmIDnCj.js → sys-config-CCKhGcCL.js} +1 -1
- package/package.json +1 -1
- package/src/plugins/vxe-table/index.ts +116 -116
- package/src/plugins/vxe-table/render.tsx +950 -945
- package/src/utils/dataFormat/index.ts +17 -18
- package/src/views/organization/staff/StaffPanel.vue +12 -3
- package/src/views/system/menu/SystemMenu.vue +185 -185
- package/src/views/udev/dict/DictView.vue +2 -2
- package/src/views/udev/dict/childView.vue +6 -6
- package/src/views/udev/lov/childView.vue +174 -174
- package/src/views/uhome/components/menu-favorite.vue +3 -2
- package/src/views/upms/user/login-log.vue +5 -5
- package/dist/index-C3q8HoJM.js +0 -4650
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: wei.li
|
|
3
|
-
* @Date: 2022-07-15 17:02:56
|
|
4
|
-
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
-
* @LastEditTime: 2025-
|
|
6
|
-
* @Description: file contentu
|
|
7
|
-
-->
|
|
8
|
-
<template>
|
|
9
|
-
<div class="ut-loview-wrapper">
|
|
10
|
-
<
|
|
11
|
-
<div v-spinning="loading">
|
|
12
|
-
<ut-content :title="$t('message.title.lovView')" @close="handleClose">
|
|
13
|
-
<template v-slot:header>
|
|
14
|
-
<ut-button icon="ri-save-3-fill" content="save" @tap="handleSave()" />
|
|
15
|
-
</template>
|
|
16
|
-
<template v-slot:body>
|
|
17
|
-
<ut-form ref="formRef" :record="record" :items="items" data-status="update" />
|
|
18
|
-
<ut-divider :title="$t('message.title.lovColConfig')" />
|
|
19
|
-
<ut-grid
|
|
20
|
-
ref="xgrid"
|
|
21
|
-
:columns="columns"
|
|
22
|
-
:url="subUrl"
|
|
23
|
-
:default-value="{ headerId: record.id }"
|
|
24
|
-
:default-params="{ headerId: record.id }"
|
|
25
|
-
:height="height"
|
|
26
|
-
:events="onEvents"
|
|
27
|
-
/>
|
|
28
|
-
</template>
|
|
29
|
-
</ut-content>
|
|
30
|
-
</div>
|
|
31
|
-
</
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
34
|
-
|
|
35
|
-
<script setup lang="ts">
|
|
36
|
-
import { ref } from 'vue';
|
|
37
|
-
import to from 'await-to-js';
|
|
38
|
-
import { useRender } from '@utogether/utils';
|
|
39
|
-
import { useSystemStoreHook } from '../../../store/modules/system';
|
|
40
|
-
import { getServiceApi } from '../../../api';
|
|
41
|
-
|
|
42
|
-
interface IProps {
|
|
43
|
-
record: IRecord;
|
|
44
|
-
show: boolean;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const props = withDefaults(defineProps<IProps>(), {
|
|
48
|
-
record: (): IRecord => {
|
|
49
|
-
return {};
|
|
50
|
-
},
|
|
51
|
-
show: false
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
const renderHook = useRender();
|
|
55
|
-
const dictData = useSystemStoreHook().dicts;
|
|
56
|
-
const loading = ref(false);
|
|
57
|
-
const optionProps = { value: 'dictCode', label: 'dictName' };
|
|
58
|
-
|
|
59
|
-
const formRef = ref(null);
|
|
60
|
-
|
|
61
|
-
const url = '/upfm/v1/lovViewHeader';
|
|
62
|
-
const subUrl = '/upfm/v1/lovViewLine';
|
|
63
|
-
|
|
64
|
-
const items = [
|
|
65
|
-
{ field: 'lovCode', disabled: true },
|
|
66
|
-
{ field: 'lovName', required: true },
|
|
67
|
-
{ field: 'valueField', required: true },
|
|
68
|
-
// { field: 'displayField', required: true },
|
|
69
|
-
{ field: 'lovTitle' },
|
|
70
|
-
{ field: 'lovType', code: 'SU.LOV.TYPE', required: true },
|
|
71
|
-
{ field: 'lovUrl', required: true, visible: props.record.lovType === 'url' },
|
|
72
|
-
{
|
|
73
|
-
field: 'sqlStatement',
|
|
74
|
-
span: 24,
|
|
75
|
-
visible: props.record.lovType === 'sql',
|
|
76
|
-
itemRender: { name: '$textarea', props: { rows: 5 } },
|
|
77
|
-
required: true
|
|
78
|
-
}
|
|
79
|
-
];
|
|
80
|
-
|
|
81
|
-
// 列字段
|
|
82
|
-
const columns: ITableColProps[] = [
|
|
83
|
-
{ type: 'checkbox', width: 50, align: 'center' },
|
|
84
|
-
{ field: 'seqNo', required: true, width: 100, editRender: renderHook.renderNumber() },
|
|
85
|
-
{ field: 'colField', required: true, editRender: renderHook.renderInput() },
|
|
86
|
-
{ field: 'colTitle', required: true, editRender: renderHook.renderInput() },
|
|
87
|
-
{ field: 'colWidth', required: true, width: 120, editRender: renderHook.renderNumber() },
|
|
88
|
-
{
|
|
89
|
-
field: 'fieldType',
|
|
90
|
-
width: 120,
|
|
91
|
-
editRender: renderHook.renderDict('SU.FIELD.TYPE', onChange),
|
|
92
|
-
formatter: ['formatDict', 'SU.FIELD.TYPE']
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
field: 'dictCode',
|
|
96
|
-
title: 'message.dictName',
|
|
97
|
-
width: 120,
|
|
98
|
-
editRender: renderHook.renderSelectLocal({ options: dictData, optionProps }),
|
|
99
|
-
formatter: ['formatSelectLocal', [dictData, 'dictCode', 'dictName']]
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
field: 'isSearch',
|
|
103
|
-
width: 120,
|
|
104
|
-
required: true,
|
|
105
|
-
editRender: renderHook.renderDict('SU.WHETHER'),
|
|
106
|
-
formatter: ['formatDict', 'SU.WHETHER']
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
field: 'isCol',
|
|
110
|
-
width: 120,
|
|
111
|
-
required: true,
|
|
112
|
-
editRender: renderHook.renderDict('SU.WHETHER'),
|
|
113
|
-
formatter: ['formatDict', 'SU.WHETHER']
|
|
114
|
-
}
|
|
115
|
-
];
|
|
116
|
-
|
|
117
|
-
const xgrid = ref(null);
|
|
118
|
-
const height = window.innerHeight -
|
|
119
|
-
|
|
120
|
-
//激活事件
|
|
121
|
-
const onEvents = {
|
|
122
|
-
editActived({ row }) {
|
|
123
|
-
columns[6].editRender.props.disabled = row.fieldType !== 'dictCode';
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// change事件
|
|
128
|
-
function onChange(item) {
|
|
129
|
-
item.row.dictName = '';
|
|
130
|
-
columns[6].editRender.props.disabled = item.row.fieldType !== 'dictCode';
|
|
131
|
-
columns[6].required = item.row.fieldType !== 'dictCode';
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* @description: 保存值集视图
|
|
136
|
-
* @return {*}
|
|
137
|
-
*/
|
|
138
|
-
const handleSave = () => {
|
|
139
|
-
formRef.value.validateForm(async valid => {
|
|
140
|
-
if (!valid) {
|
|
141
|
-
loading.value = true;
|
|
142
|
-
const [err] = await to(getServiceApi().put(url, [props.record]));
|
|
143
|
-
if (!err) {
|
|
144
|
-
const data = xgrid.value.getInstance().getRecordset();
|
|
145
|
-
data.insertRecords.length && (await to(getServiceApi().post(subUrl, data.insertRecords)));
|
|
146
|
-
data.updateRecords.length && (await to(getServiceApi().put(subUrl, data.updateRecords)));
|
|
147
|
-
}
|
|
148
|
-
loading.value = false;
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const emit = defineEmits<{ (e: 'onClose'): void }>();
|
|
154
|
-
// 抽屉关闭
|
|
155
|
-
function handleClose() {
|
|
156
|
-
emit('onClose');
|
|
157
|
-
}
|
|
158
|
-
</script>
|
|
159
|
-
|
|
160
|
-
<style lang="scss">
|
|
161
|
-
.ut-loview-wrapper {
|
|
162
|
-
.el-drawer__header {
|
|
163
|
-
margin-bottom: 0;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.el-drawer__body {
|
|
167
|
-
padding: 5px 0;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.ut-content-body {
|
|
171
|
-
height: 90%;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
</style>
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: wei.li
|
|
3
|
+
* @Date: 2022-07-15 17:02:56
|
|
4
|
+
* @LastEditors: levi7754 levi7754@163.com
|
|
5
|
+
* @LastEditTime: 2025-12-05 17:00:29
|
|
6
|
+
* @Description: file contentu
|
|
7
|
+
-->
|
|
8
|
+
<template>
|
|
9
|
+
<div class="ut-loview-wrapper">
|
|
10
|
+
<vxe-drawer :model-value="show" position="right" :show-header="false" width="90%">
|
|
11
|
+
<div v-spinning="loading">
|
|
12
|
+
<ut-content :title="$t('message.title.lovView')" @close="handleClose">
|
|
13
|
+
<template v-slot:header>
|
|
14
|
+
<ut-button icon="ri-save-3-fill" content="save" @tap="handleSave()" />
|
|
15
|
+
</template>
|
|
16
|
+
<template v-slot:body>
|
|
17
|
+
<ut-form ref="formRef" :record="record" :items="items" data-status="update" />
|
|
18
|
+
<ut-divider :title="$t('message.title.lovColConfig')" />
|
|
19
|
+
<ut-grid
|
|
20
|
+
ref="xgrid"
|
|
21
|
+
:columns="columns"
|
|
22
|
+
:url="subUrl"
|
|
23
|
+
:default-value="{ headerId: record.id }"
|
|
24
|
+
:default-params="{ headerId: record.id }"
|
|
25
|
+
:height="height"
|
|
26
|
+
:events="onEvents"
|
|
27
|
+
/>
|
|
28
|
+
</template>
|
|
29
|
+
</ut-content>
|
|
30
|
+
</div>
|
|
31
|
+
</vxe-drawer>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<script setup lang="ts">
|
|
36
|
+
import { ref } from 'vue';
|
|
37
|
+
import to from 'await-to-js';
|
|
38
|
+
import { useRender } from '@utogether/utils';
|
|
39
|
+
import { useSystemStoreHook } from '../../../store/modules/system';
|
|
40
|
+
import { getServiceApi } from '../../../api';
|
|
41
|
+
|
|
42
|
+
interface IProps {
|
|
43
|
+
record: IRecord;
|
|
44
|
+
show: boolean;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const props = withDefaults(defineProps<IProps>(), {
|
|
48
|
+
record: (): IRecord => {
|
|
49
|
+
return {};
|
|
50
|
+
},
|
|
51
|
+
show: false
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const renderHook = useRender();
|
|
55
|
+
const dictData = useSystemStoreHook().dicts;
|
|
56
|
+
const loading = ref(false);
|
|
57
|
+
const optionProps = { value: 'dictCode', label: 'dictName' };
|
|
58
|
+
|
|
59
|
+
const formRef = ref(null);
|
|
60
|
+
|
|
61
|
+
const url = '/upfm/v1/lovViewHeader';
|
|
62
|
+
const subUrl = '/upfm/v1/lovViewLine';
|
|
63
|
+
|
|
64
|
+
const items = [
|
|
65
|
+
{ field: 'lovCode', disabled: true },
|
|
66
|
+
{ field: 'lovName', required: true },
|
|
67
|
+
{ field: 'valueField', required: true },
|
|
68
|
+
// { field: 'displayField', required: true },
|
|
69
|
+
{ field: 'lovTitle' },
|
|
70
|
+
{ field: 'lovType', code: 'SU.LOV.TYPE', required: true },
|
|
71
|
+
{ field: 'lovUrl', required: true, visible: props.record.lovType === 'url' },
|
|
72
|
+
{
|
|
73
|
+
field: 'sqlStatement',
|
|
74
|
+
span: 24,
|
|
75
|
+
visible: props.record.lovType === 'sql',
|
|
76
|
+
itemRender: { name: '$textarea', props: { rows: 5 } },
|
|
77
|
+
required: true
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
// 列字段
|
|
82
|
+
const columns: ITableColProps[] = [
|
|
83
|
+
{ type: 'checkbox', width: 50, align: 'center' },
|
|
84
|
+
{ field: 'seqNo', required: true, width: 100, editRender: renderHook.renderNumber() },
|
|
85
|
+
{ field: 'colField', required: true, editRender: renderHook.renderInput() },
|
|
86
|
+
{ field: 'colTitle', required: true, editRender: renderHook.renderInput() },
|
|
87
|
+
{ field: 'colWidth', required: true, width: 120, editRender: renderHook.renderNumber() },
|
|
88
|
+
{
|
|
89
|
+
field: 'fieldType',
|
|
90
|
+
width: 120,
|
|
91
|
+
editRender: renderHook.renderDict('SU.FIELD.TYPE', onChange),
|
|
92
|
+
formatter: ['formatDict', 'SU.FIELD.TYPE']
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
field: 'dictCode',
|
|
96
|
+
title: 'message.dictName',
|
|
97
|
+
width: 120,
|
|
98
|
+
editRender: renderHook.renderSelectLocal({ options: dictData, optionProps }),
|
|
99
|
+
formatter: ['formatSelectLocal', [dictData, 'dictCode', 'dictName']]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
field: 'isSearch',
|
|
103
|
+
width: 120,
|
|
104
|
+
required: true,
|
|
105
|
+
editRender: renderHook.renderDict('SU.WHETHER'),
|
|
106
|
+
formatter: ['formatDict', 'SU.WHETHER']
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
field: 'isCol',
|
|
110
|
+
width: 120,
|
|
111
|
+
required: true,
|
|
112
|
+
editRender: renderHook.renderDict('SU.WHETHER'),
|
|
113
|
+
formatter: ['formatDict', 'SU.WHETHER']
|
|
114
|
+
}
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
const xgrid = ref(null);
|
|
118
|
+
const height = window.innerHeight - 195;
|
|
119
|
+
|
|
120
|
+
//激活事件
|
|
121
|
+
const onEvents = {
|
|
122
|
+
editActived({ row }) {
|
|
123
|
+
columns[6].editRender.props.disabled = row.fieldType !== 'dictCode';
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// change事件
|
|
128
|
+
function onChange(item) {
|
|
129
|
+
item.row.dictName = '';
|
|
130
|
+
columns[6].editRender.props.disabled = item.row.fieldType !== 'dictCode';
|
|
131
|
+
columns[6].required = item.row.fieldType !== 'dictCode';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @description: 保存值集视图
|
|
136
|
+
* @return {*}
|
|
137
|
+
*/
|
|
138
|
+
const handleSave = () => {
|
|
139
|
+
formRef.value.validateForm(async valid => {
|
|
140
|
+
if (!valid) {
|
|
141
|
+
loading.value = true;
|
|
142
|
+
const [err] = await to(getServiceApi().put(url, [props.record]));
|
|
143
|
+
if (!err) {
|
|
144
|
+
const data = xgrid.value.getInstance().getRecordset();
|
|
145
|
+
data.insertRecords.length && (await to(getServiceApi().post(subUrl, data.insertRecords)));
|
|
146
|
+
data.updateRecords.length && (await to(getServiceApi().put(subUrl, data.updateRecords)));
|
|
147
|
+
}
|
|
148
|
+
loading.value = false;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const emit = defineEmits<{ (e: 'onClose'): void }>();
|
|
154
|
+
// 抽屉关闭
|
|
155
|
+
function handleClose() {
|
|
156
|
+
emit('onClose');
|
|
157
|
+
}
|
|
158
|
+
</script>
|
|
159
|
+
|
|
160
|
+
<style lang="scss">
|
|
161
|
+
.ut-loview-wrapper {
|
|
162
|
+
.el-drawer__header {
|
|
163
|
+
margin-bottom: 0;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.el-drawer__body {
|
|
167
|
+
padding: 5px 0;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.ut-content-body {
|
|
171
|
+
height: 90%;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
</style>
|
|
@@ -226,6 +226,7 @@ const onChange = (menu, event) => {
|
|
|
226
226
|
const onMoveEnd = () => {
|
|
227
227
|
favoriteMenus.value.forEach((item, idx) => {
|
|
228
228
|
item.seqNo = (idx + 1) * 10;
|
|
229
|
+
console.log('seqNo=', item.seqNo);
|
|
229
230
|
});
|
|
230
231
|
};
|
|
231
232
|
/** 获取排序最大值 */
|
|
@@ -234,11 +235,11 @@ const getMax = () => {
|
|
|
234
235
|
};
|
|
235
236
|
const onConfirm = () => {
|
|
236
237
|
console.log(favoriteMenus);
|
|
237
|
-
const body = favoriteMenus.value.map(m => {
|
|
238
|
+
const body = favoriteMenus.value.map((m, idx) => {
|
|
238
239
|
return {
|
|
239
240
|
userName: props.userName,
|
|
240
241
|
menuId: m.menuId,
|
|
241
|
-
seqNo:
|
|
242
|
+
seqNo: 10 * (idx + 1)
|
|
242
243
|
};
|
|
243
244
|
});
|
|
244
245
|
console.log(body);
|
|
@@ -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-
|
|
5
|
+
* @LastEditTime: 2025-12-08 08:22:23
|
|
6
6
|
* @Description: 用户登录日志
|
|
7
7
|
-->
|
|
8
8
|
|
|
@@ -44,11 +44,11 @@ const formItems = [
|
|
|
44
44
|
const xgrid = ref(null);
|
|
45
45
|
const columns = [
|
|
46
46
|
{ field: 'employeeName', minWidth: 120 },
|
|
47
|
-
{ field: 'userName', title: 'message.udp.userName', width:
|
|
47
|
+
{ field: 'userName', title: 'message.udp.userName', width: 220 },
|
|
48
48
|
{ field: 'loginTime', title: 'message.udp.loginTime', width: 160 },
|
|
49
49
|
{ field: 'operatingSystem', title: 'message.udp.operatingSystem', width: 120 },
|
|
50
|
-
{ field: 'browser', title: 'message.udp.browser', width:
|
|
51
|
-
{ field: 'browserVersion', title: 'message.udp.browserVersion', width:
|
|
52
|
-
{ field: 'ip', title: 'message.udp.ip', width:
|
|
50
|
+
{ field: 'browser', title: 'message.udp.browser', width: 130 },
|
|
51
|
+
{ field: 'browserVersion', title: 'message.udp.browserVersion', width: 150 },
|
|
52
|
+
{ field: 'ip', title: 'message.udp.ip', width: 200 }
|
|
53
53
|
];
|
|
54
54
|
</script>
|