cloud-web-corejs 1.0.280 → 1.0.282
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/package.json +1 -1
- package/src/components/VabUpload/image-viewer.vue +1 -1
- package/src/components/VabUpload/mixins.js +48 -15
- package/src/components/VabUpload/previewGroup.js +128 -0
- package/src/components/VabUpload/view.vue +1 -1
- package/src/components/excelExport/exportColumnMemory.js +118 -0
- package/src/components/excelExport/exportFieldDialog.vue +63 -40
- package/src/components/excelExport/exportItemConfigUtil.js +30 -0
- package/src/components/excelExport/index.js +30 -13
- package/src/components/excelExport/mixins.js +406 -68
- package/src/components/table/index.js +14 -1
- package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +9 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +7 -1
- package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4 -0
- package/src/components/xform/form-render/container-item/data-table-item.vue +7 -4
- package/src/components/xform/form-render/container-item/data-table-mixin.js +369 -118
- package/src/components/xform/utils/dynamicSchemaUtil.js +24 -0
- package/src/components/xform/utils/textMaskUtil.js +6 -3
- package/src/layout/components/TagsView/index.vue +4 -2
- package/src/store/modules/tagsView.js +27 -3
- package/src/utils/pdfUtil.js +6 -1
- package/src/utils/request.js +17 -0
|
@@ -86,6 +86,7 @@ async function initVxeTable(option) {
|
|
|
86
86
|
isQueryAllPage: true,
|
|
87
87
|
exportColumns: null,
|
|
88
88
|
exportItemColumns: null,
|
|
89
|
+
exportItemColumnsMap: null,
|
|
89
90
|
};
|
|
90
91
|
|
|
91
92
|
let isQueryAllPage = true;
|
|
@@ -168,7 +169,8 @@ async function initVxeTable(option) {
|
|
|
168
169
|
// nOption.getCellValue = getCellValue;
|
|
169
170
|
// nOption.createParams = createParams;
|
|
170
171
|
// nOption.searchColumns = searchColumns;
|
|
171
|
-
// 运行时可变状态(tableName / isQueryAllPage / exportColumns / exportItemColumns
|
|
172
|
+
// 运行时可变状态(tableName / isQueryAllPage / exportColumns / exportItemColumns /
|
|
173
|
+
// exportItemColumnsMap)
|
|
172
174
|
// 一并放进 params:params 随 vxeOption 由页面持有,grid 被 v-if 销毁重建后依然带着这些值
|
|
173
175
|
let params = {
|
|
174
176
|
originOption,
|
|
@@ -978,12 +980,18 @@ function addTableJson(that, $grid, tableName, columns, success) {
|
|
|
978
980
|
};
|
|
979
981
|
let exportColumns = getTableStateValue($grid, "exportColumns");
|
|
980
982
|
let exportItemColumns = getTableStateValue($grid, "exportItemColumns");
|
|
983
|
+
// 明细导出的勾选记忆按导出按钮分组(见 excelExport/exportColumnMemory.js);
|
|
984
|
+
// exportItemColumns 是分组之前的扁平表,旧记录里还有,只读不再写,故一并原样存回。
|
|
985
|
+
let exportItemColumnsMap = getTableStateValue($grid, "exportItemColumnsMap");
|
|
981
986
|
if (exportColumns && exportColumns.length) {
|
|
982
987
|
jsonData.exportColumns = exportColumns;
|
|
983
988
|
}
|
|
984
989
|
if (exportItemColumns && exportItemColumns.length) {
|
|
985
990
|
jsonData.exportItemColumns = exportItemColumns;
|
|
986
991
|
}
|
|
992
|
+
if (exportItemColumnsMap && Object.keys(exportItemColumnsMap).length) {
|
|
993
|
+
jsonData.exportItemColumnsMap = exportItemColumnsMap;
|
|
994
|
+
}
|
|
987
995
|
let json = encodeURIComponent(JSON.stringify(jsonData));
|
|
988
996
|
|
|
989
997
|
let url = USER_PREFIX + "/table_column/addTableJson";
|
|
@@ -1081,6 +1089,11 @@ function initExportColumns($grid, tableState, json) {
|
|
|
1081
1089
|
tableState.exportItemColumns = json.exportItemColumns;
|
|
1082
1090
|
setTableState($grid, "exportItemColumns", json.exportItemColumns);
|
|
1083
1091
|
}
|
|
1092
|
+
let itemMap = json?.exportItemColumnsMap;
|
|
1093
|
+
if (itemMap && Object.keys(itemMap).length) {
|
|
1094
|
+
tableState.exportItemColumnsMap = itemMap;
|
|
1095
|
+
setTableState($grid, "exportItemColumnsMap", itemMap);
|
|
1096
|
+
}
|
|
1084
1097
|
}
|
|
1085
1098
|
|
|
1086
1099
|
function initSearchColumns(oriColumns, syncColumns) {
|
|
@@ -103,6 +103,15 @@ export default {
|
|
|
103
103
|
targetRef: this.field.options.tableRef || null,
|
|
104
104
|
pageSize: this.field.options.exportPageSize || null,
|
|
105
105
|
showImageAtTable: this.field.options.showImageAtTable || null,
|
|
106
|
+
// 明细导出的列 / 脚本编码 / 取数参数三项各自独立:按钮上维护了哪项就以哪项为准,
|
|
107
|
+
// 留空的那项沿用数据表格属性上那套。参数脚本原样下发,由数据表格求值(this 是
|
|
108
|
+
// 表格组件,与配在表格属性上时同义)
|
|
109
|
+
exportItemColumns: this.field.options.exportItemColumns || null,
|
|
110
|
+
exportItemScriptCode: this.field.options.exportItemScriptCode || null,
|
|
111
|
+
exportItemParam: this.field.options.exportItemParam || null,
|
|
112
|
+
// 字段勾选记忆按按钮分组存放,组件名是唯一且稳定的分组标识(见 exportColumnMemory.js)。
|
|
113
|
+
// 同一张表挂多个明细导出按钮时,各按钮的勾选互不覆盖。
|
|
114
|
+
exportButtonName: this.field.options.name || null,
|
|
106
115
|
};
|
|
107
116
|
let tableExportParam = this.handleCustomEvent(this.field.options.tableExportParam);
|
|
108
117
|
let options = { ...opt, ...tableExportParam, type: type };
|
|
@@ -353,7 +353,13 @@ export default {
|
|
|
353
353
|
return;
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
|
-
|
|
356
|
+
// 用 $set:导出按钮是后加的宿主,历史表单 JSON 里没有 exportItemColumns 这个键,
|
|
357
|
+
// 直接赋值不会触发「已维护」文案更新
|
|
358
|
+
this.$set(
|
|
359
|
+
this.optionModel,
|
|
360
|
+
"exportItemColumns",
|
|
361
|
+
this.$baseLodash.cloneDeep(this.tableData)
|
|
362
|
+
);
|
|
357
363
|
this.closeHandle();
|
|
358
364
|
},
|
|
359
365
|
generateRow() {
|
|
@@ -34,16 +34,59 @@
|
|
|
34
34
|
<i class="el-icon-edit"></i>
|
|
35
35
|
</a>
|
|
36
36
|
</el-form-item>
|
|
37
|
+
<el-form-item label="明细导出脚本编码" class="form-item-label-top">
|
|
38
|
+
<el-input v-model="optionModel.exportItemScriptCode"></el-input>
|
|
39
|
+
</el-form-item>
|
|
40
|
+
<el-form-item label="明细导出查询参数">
|
|
41
|
+
<a
|
|
42
|
+
href="javascript:void(0);"
|
|
43
|
+
class="a-link link-oneLind"
|
|
44
|
+
@click="editEventHandler('exportItemParam', tableConfigParams)"
|
|
45
|
+
>
|
|
46
|
+
<span>{{ optionModel.exportItemParam }}</span>
|
|
47
|
+
<i class="el-icon-edit"></i>
|
|
48
|
+
</a>
|
|
49
|
+
</el-form-item>
|
|
50
|
+
<el-form-item label="明细导出列维护">
|
|
51
|
+
<a
|
|
52
|
+
href="javascript:void(0);"
|
|
53
|
+
class="a-link link-oneLind"
|
|
54
|
+
@click="showExportItemColumnsDialog = true"
|
|
55
|
+
>
|
|
56
|
+
<span>{{
|
|
57
|
+
optionModel.exportItemColumns && optionModel.exportItemColumns.length
|
|
58
|
+
? "已维护"
|
|
59
|
+
: null
|
|
60
|
+
}}</span>
|
|
61
|
+
<i class="el-icon-edit"></i>
|
|
62
|
+
</a>
|
|
63
|
+
</el-form-item>
|
|
64
|
+
<el-form-item label-width="0">
|
|
65
|
+
<div class="export-item-columns-tip">
|
|
66
|
+
脚本编码、查询参数、导出列三项各自独立:留空的那项沿用数据表格属性上配的,维护了就以本按钮为准。
|
|
67
|
+
</div>
|
|
68
|
+
</el-form-item>
|
|
69
|
+
<exportItemColumnsDialog
|
|
70
|
+
v-if="showExportItemColumnsDialog"
|
|
71
|
+
:visiable.sync="showExportItemColumnsDialog"
|
|
72
|
+
:designer="designer"
|
|
73
|
+
:selectedWidget="selectedWidget"
|
|
74
|
+
:optionModel="optionModel"
|
|
75
|
+
/>
|
|
37
76
|
</div>
|
|
38
77
|
</template>
|
|
39
78
|
|
|
40
79
|
<script>
|
|
41
80
|
import i18n from "../../../../utils/i18n";
|
|
42
81
|
import eventMixin from "../event-handler/eventMixin";
|
|
82
|
+
import exportItemColumnsDialog from "../container-data-table/exportItemColumns-dialog.vue";
|
|
43
83
|
|
|
44
84
|
export default {
|
|
45
85
|
name: "select-export-item-button-editor",
|
|
46
86
|
mixins: [i18n, eventMixin],
|
|
87
|
+
components: {
|
|
88
|
+
exportItemColumnsDialog,
|
|
89
|
+
},
|
|
47
90
|
props: {
|
|
48
91
|
designer: Object,
|
|
49
92
|
selectedWidget: Object,
|
|
@@ -52,6 +95,9 @@ export default {
|
|
|
52
95
|
data() {
|
|
53
96
|
return {
|
|
54
97
|
eventParams: [],
|
|
98
|
+
// 与数据表格属性面板同一套:脚本里可直接用 dataId / formCode
|
|
99
|
+
tableConfigParams: ["dataId", "formCode"],
|
|
100
|
+
showExportItemColumnsDialog: false,
|
|
55
101
|
};
|
|
56
102
|
},
|
|
57
103
|
methods: {
|
|
@@ -71,4 +117,9 @@ export default {
|
|
|
71
117
|
::v-deep.export-divider .el-divider__text.is-center {
|
|
72
118
|
width: 162px;
|
|
73
119
|
}
|
|
120
|
+
.export-item-columns-tip {
|
|
121
|
+
line-height: 18px;
|
|
122
|
+
color: #909399;
|
|
123
|
+
font-size: 12px;
|
|
124
|
+
}
|
|
74
125
|
</style>
|
|
@@ -3318,6 +3318,10 @@ export const advancedFields = [
|
|
|
3318
3318
|
showImageAtTable: false,
|
|
3319
3319
|
selectExportItemFlag: 1,
|
|
3320
3320
|
exportItemConditionEnabled: !1,
|
|
3321
|
+
// 按钮级明细导出配置:三项各自独立,留空的那项沿用数据表格属性上维护的
|
|
3322
|
+
exportItemColumns: [],
|
|
3323
|
+
exportItemScriptCode: null,
|
|
3324
|
+
exportItemParam: "",
|
|
3321
3325
|
|
|
3322
3326
|
onCreated: "",
|
|
3323
3327
|
onMounted: "",
|
|
@@ -183,7 +183,10 @@
|
|
|
183
183
|
<div>
|
|
184
184
|
<template v-for="(fieldWidget, index) in obj.column.params.widgetList">
|
|
185
185
|
<component
|
|
186
|
-
v-if="
|
|
186
|
+
v-if="
|
|
187
|
+
!!obj.row._X_ROW_KEY &&
|
|
188
|
+
(!!getRowFieldSchema(obj.row) || !!obj.row._X_EXPORT_ROW)
|
|
189
|
+
"
|
|
187
190
|
:is="getColumnWidgetName(fieldWidget)"
|
|
188
191
|
v-bind="getRowWidgetOption(obj, fieldWidget)"
|
|
189
192
|
:form-model="globalModel.formModel"
|
|
@@ -205,15 +208,15 @@
|
|
|
205
208
|
</template>
|
|
206
209
|
<template #editWidget="obj">
|
|
207
210
|
<component
|
|
208
|
-
v-if="!!
|
|
211
|
+
v-if="!!getRowFieldSchema(obj.row)"
|
|
209
212
|
:is="getColumnWidgetName(obj.column.params.editWidget)"
|
|
210
|
-
:field="
|
|
213
|
+
:field="getRowFieldSchema(obj.row)[obj.column.params.editWidget.id]"
|
|
211
214
|
:form-model="globalModel.formModel"
|
|
212
215
|
:designer="null"
|
|
213
216
|
:key="
|
|
214
217
|
obj.rowIndex +
|
|
215
218
|
'-' +
|
|
216
|
-
|
|
219
|
+
getRowFieldSchema(obj.row)[obj.column.params.editWidget.id].id
|
|
217
220
|
"
|
|
218
221
|
:parent-widget="widget"
|
|
219
222
|
:columnConfig="obj.column.params.columnConfig"
|