vxe-table 3.12.10-beta.21 → 3.12.10-beta.22
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/es/style.css +1 -1
- package/es/table/module/export/mixin.js +50 -37
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +55 -39
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/export/mixin.js +53 -37
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/table/module/export/mixin.ts +88 -53
- /package/es/{iconfont.1737182271148.ttf → iconfont.1737185512944.ttf} +0 -0
- /package/es/{iconfont.1737182271148.woff → iconfont.1737185512944.woff} +0 -0
- /package/es/{iconfont.1737182271148.woff2 → iconfont.1737185512944.woff2} +0 -0
- /package/lib/{iconfont.1737182271148.ttf → iconfont.1737185512944.ttf} +0 -0
- /package/lib/{iconfont.1737182271148.woff → iconfont.1737185512944.woff} +0 -0
- /package/lib/{iconfont.1737182271148.woff2 → iconfont.1737185512944.woff2} +0 -0
|
@@ -623,7 +623,18 @@ function getTxtCellValue(val, vMaps) {
|
|
|
623
623
|
const rest = replaceTxtCell(val, vMaps);
|
|
624
624
|
return rest.replace(/^"+$/g, (qVal) => '"'.repeat(Math.ceil(qVal.length / 2)));
|
|
625
625
|
}
|
|
626
|
-
function
|
|
626
|
+
function toExportField(tableConf, field) {
|
|
627
|
+
const { fieldMaps, titleMaps } = tableConf;
|
|
628
|
+
// title 转 field
|
|
629
|
+
if (!fieldMaps[field]) {
|
|
630
|
+
const teCol = titleMaps[field];
|
|
631
|
+
if (teCol && teCol.field) {
|
|
632
|
+
field = teCol.field;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
return field;
|
|
636
|
+
}
|
|
637
|
+
function parseCsvAndTxt(tableConf, content, cellSeparator) {
|
|
627
638
|
const list = content.split(enterSymbol);
|
|
628
639
|
const rows = [];
|
|
629
640
|
let fields = [];
|
|
@@ -644,12 +655,12 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
644
655
|
});
|
|
645
656
|
const cells = rVal.split(cellSeparator);
|
|
646
657
|
if (!fields.length) {
|
|
647
|
-
fields = cells.map((val) => getTxtCellValue(val.trim(), vMaps));
|
|
658
|
+
fields = cells.map((val) => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
|
|
648
659
|
}
|
|
649
660
|
else {
|
|
650
661
|
cells.forEach((val, colIndex) => {
|
|
651
662
|
if (colIndex < fields.length) {
|
|
652
|
-
item[fields[colIndex]] = getTxtCellValue(val, vMaps);
|
|
663
|
+
item[fields[colIndex]] = getTxtCellValue(val.trim(), vMaps);
|
|
653
664
|
}
|
|
654
665
|
});
|
|
655
666
|
rows.push(item);
|
|
@@ -659,13 +670,13 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
659
670
|
}
|
|
660
671
|
return { fields, rows };
|
|
661
672
|
}
|
|
662
|
-
function parseCsv(
|
|
663
|
-
return parseCsvAndTxt(
|
|
673
|
+
function parseCsv(tableConf, content) {
|
|
674
|
+
return parseCsvAndTxt(tableConf, content, ',');
|
|
664
675
|
}
|
|
665
|
-
function parseTxt(
|
|
666
|
-
return parseCsvAndTxt(
|
|
676
|
+
function parseTxt(tableConf, content) {
|
|
677
|
+
return parseCsvAndTxt(tableConf, content, '\t');
|
|
667
678
|
}
|
|
668
|
-
function parseHTML(
|
|
679
|
+
function parseHTML(tableConf, content) {
|
|
669
680
|
const domParser = new DOMParser();
|
|
670
681
|
const xmlDoc = domParser.parseFromString(content, 'text/html');
|
|
671
682
|
const bodyNodes = getElementsByTagName(xmlDoc, 'body');
|
|
@@ -676,9 +687,9 @@ function parseHTML(columns, content) {
|
|
|
676
687
|
if (tableNodes.length) {
|
|
677
688
|
const theadNodes = getElementsByTagName(tableNodes[0], 'thead');
|
|
678
689
|
if (theadNodes.length) {
|
|
679
|
-
XEUtils.arrayEach(getElementsByTagName(theadNodes[0], 'tr'),
|
|
680
|
-
XEUtils.arrayEach(getElementsByTagName(rowNode, 'th'),
|
|
681
|
-
fields.push(cellNode.textContent);
|
|
690
|
+
XEUtils.arrayEach(getElementsByTagName(theadNodes[0], 'tr'), rowNode => {
|
|
691
|
+
XEUtils.arrayEach(getElementsByTagName(rowNode, 'th'), cellNode => {
|
|
692
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
682
693
|
});
|
|
683
694
|
});
|
|
684
695
|
const tbodyNodes = getElementsByTagName(tableNodes[0], 'tbody');
|
|
@@ -698,7 +709,7 @@ function parseHTML(columns, content) {
|
|
|
698
709
|
}
|
|
699
710
|
return { fields, rows };
|
|
700
711
|
}
|
|
701
|
-
function parseXML(
|
|
712
|
+
function parseXML(tableConf, content) {
|
|
702
713
|
const domParser = new DOMParser();
|
|
703
714
|
const xmlDoc = domParser.parseFromString(content, 'application/xml');
|
|
704
715
|
const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet');
|
|
@@ -709,8 +720,8 @@ function parseXML(columns, content) {
|
|
|
709
720
|
if (tableNodes.length) {
|
|
710
721
|
const rowNodes = getElementsByTagName(tableNodes[0], 'Row');
|
|
711
722
|
if (rowNodes.length) {
|
|
712
|
-
XEUtils.arrayEach(getElementsByTagName(rowNodes[0], 'Cell'),
|
|
713
|
-
fields.push(cellNode.textContent);
|
|
723
|
+
XEUtils.arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
|
|
724
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
714
725
|
});
|
|
715
726
|
XEUtils.arrayEach(rowNodes, (rowNode, index) => {
|
|
716
727
|
if (index) {
|
|
@@ -729,52 +740,54 @@ function parseXML(columns, content) {
|
|
|
729
740
|
}
|
|
730
741
|
return { fields, rows };
|
|
731
742
|
}
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
columns.forEach((column) => {
|
|
743
|
+
function handleImport($xeTable, content, opts) {
|
|
744
|
+
const internalData = $xeTable;
|
|
745
|
+
const { tableFullColumn, _importResolve, _importReject } = internalData;
|
|
746
|
+
let rest = { fields: [], rows: [] };
|
|
747
|
+
const tableFieldMaps = {};
|
|
748
|
+
const tableTitleMaps = {};
|
|
749
|
+
tableFullColumn.forEach((column) => {
|
|
740
750
|
const field = column.field;
|
|
751
|
+
const title = column.getTitle();
|
|
741
752
|
if (field) {
|
|
742
|
-
|
|
753
|
+
tableFieldMaps[field] = column;
|
|
754
|
+
}
|
|
755
|
+
if (title) {
|
|
756
|
+
tableTitleMaps[column.getTitle()] = column;
|
|
743
757
|
}
|
|
744
758
|
});
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
let rest = { fields: [], rows: [] };
|
|
759
|
+
const tableConf = {
|
|
760
|
+
fieldMaps: tableFieldMaps,
|
|
761
|
+
titleMaps: tableTitleMaps
|
|
762
|
+
};
|
|
750
763
|
switch (opts.type) {
|
|
751
764
|
case 'csv':
|
|
752
|
-
rest = parseCsv(
|
|
765
|
+
rest = parseCsv(tableConf, content);
|
|
753
766
|
break;
|
|
754
767
|
case 'txt':
|
|
755
|
-
rest = parseTxt(
|
|
768
|
+
rest = parseTxt(tableConf, content);
|
|
756
769
|
break;
|
|
757
770
|
case 'html':
|
|
758
|
-
rest = parseHTML(
|
|
771
|
+
rest = parseHTML(tableConf, content);
|
|
759
772
|
break;
|
|
760
773
|
case 'xml':
|
|
761
|
-
rest = parseXML(
|
|
774
|
+
rest = parseXML(tableConf, content);
|
|
762
775
|
break;
|
|
763
776
|
}
|
|
764
777
|
const { fields, rows } = rest;
|
|
765
|
-
const status =
|
|
778
|
+
const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
|
|
766
779
|
if (status) {
|
|
767
|
-
$
|
|
780
|
+
$xeTable.createData(rows)
|
|
768
781
|
.then((data) => {
|
|
769
782
|
let loadRest;
|
|
770
783
|
if (opts.mode === 'insert' || opts.mode === 'insertBottom') {
|
|
771
|
-
loadRest = $
|
|
784
|
+
loadRest = $xeTable.insertAt(data, -1);
|
|
772
785
|
}
|
|
773
786
|
if (opts.mode === 'insertTop') {
|
|
774
|
-
loadRest = $
|
|
787
|
+
loadRest = $xeTable.insert(data);
|
|
775
788
|
}
|
|
776
789
|
else {
|
|
777
|
-
loadRest = $
|
|
790
|
+
loadRest = $xeTable.reloadData(data);
|
|
778
791
|
}
|
|
779
792
|
if (opts.message !== false) {
|
|
780
793
|
// 检测弹窗模块
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/index.umd.js
CHANGED
|
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
|
|
|
2220
2220
|
;// CONCATENATED MODULE: ./packages/ui/index.ts
|
|
2221
2221
|
|
|
2222
2222
|
|
|
2223
|
-
const version = "3.12.10-beta.
|
|
2223
|
+
const version = "3.12.10-beta.22";
|
|
2224
2224
|
core_.VxeUI.version = version;
|
|
2225
2225
|
core_.VxeUI.tableVersion = version;
|
|
2226
2226
|
core_.VxeUI.setConfig({
|
|
@@ -2834,7 +2834,7 @@ function isNodeElement(elem) {
|
|
|
2834
2834
|
const {
|
|
2835
2835
|
log: log_log
|
|
2836
2836
|
} = core_.VxeUI;
|
|
2837
|
-
const log_version = `table v${"3.12.10-beta.
|
|
2837
|
+
const log_version = `table v${"3.12.10-beta.22"}`;
|
|
2838
2838
|
const warnLog = log_log.create('warn', log_version);
|
|
2839
2839
|
const errLog = log_log.create('error', log_version);
|
|
2840
2840
|
;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
|
|
@@ -21992,7 +21992,21 @@ function getTxtCellValue(val, vMaps) {
|
|
|
21992
21992
|
const rest = replaceTxtCell(val, vMaps);
|
|
21993
21993
|
return rest.replace(/^"+$/g, qVal => '"'.repeat(Math.ceil(qVal.length / 2)));
|
|
21994
21994
|
}
|
|
21995
|
-
function
|
|
21995
|
+
function toExportField(tableConf, field) {
|
|
21996
|
+
const {
|
|
21997
|
+
fieldMaps,
|
|
21998
|
+
titleMaps
|
|
21999
|
+
} = tableConf;
|
|
22000
|
+
// title 转 field
|
|
22001
|
+
if (!fieldMaps[field]) {
|
|
22002
|
+
const teCol = titleMaps[field];
|
|
22003
|
+
if (teCol && teCol.field) {
|
|
22004
|
+
field = teCol.field;
|
|
22005
|
+
}
|
|
22006
|
+
}
|
|
22007
|
+
return field;
|
|
22008
|
+
}
|
|
22009
|
+
function parseCsvAndTxt(tableConf, content, cellSeparator) {
|
|
21996
22010
|
const list = content.split(enterSymbol);
|
|
21997
22011
|
const rows = [];
|
|
21998
22012
|
let fields = [];
|
|
@@ -22013,11 +22027,11 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
22013
22027
|
});
|
|
22014
22028
|
const cells = rVal.split(cellSeparator);
|
|
22015
22029
|
if (!fields.length) {
|
|
22016
|
-
fields = cells.map(val => getTxtCellValue(val.trim(), vMaps));
|
|
22030
|
+
fields = cells.map(val => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
|
|
22017
22031
|
} else {
|
|
22018
22032
|
cells.forEach((val, colIndex) => {
|
|
22019
22033
|
if (colIndex < fields.length) {
|
|
22020
|
-
item[fields[colIndex]] = getTxtCellValue(val, vMaps);
|
|
22034
|
+
item[fields[colIndex]] = getTxtCellValue(val.trim(), vMaps);
|
|
22021
22035
|
}
|
|
22022
22036
|
});
|
|
22023
22037
|
rows.push(item);
|
|
@@ -22030,13 +22044,13 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
22030
22044
|
rows
|
|
22031
22045
|
};
|
|
22032
22046
|
}
|
|
22033
|
-
function parseCsv(
|
|
22034
|
-
return parseCsvAndTxt(
|
|
22047
|
+
function parseCsv(tableConf, content) {
|
|
22048
|
+
return parseCsvAndTxt(tableConf, content, ',');
|
|
22035
22049
|
}
|
|
22036
|
-
function parseTxt(
|
|
22037
|
-
return parseCsvAndTxt(
|
|
22050
|
+
function parseTxt(tableConf, content) {
|
|
22051
|
+
return parseCsvAndTxt(tableConf, content, '\t');
|
|
22038
22052
|
}
|
|
22039
|
-
function parseHTML(
|
|
22053
|
+
function parseHTML(tableConf, content) {
|
|
22040
22054
|
const domParser = new DOMParser();
|
|
22041
22055
|
const xmlDoc = domParser.parseFromString(content, 'text/html');
|
|
22042
22056
|
const bodyNodes = getElementsByTagName(xmlDoc, 'body');
|
|
@@ -22049,7 +22063,7 @@ function parseHTML(columns, content) {
|
|
|
22049
22063
|
if (theadNodes.length) {
|
|
22050
22064
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(theadNodes[0], 'tr'), rowNode => {
|
|
22051
22065
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(rowNode, 'th'), cellNode => {
|
|
22052
|
-
fields.push(cellNode.textContent);
|
|
22066
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
22053
22067
|
});
|
|
22054
22068
|
});
|
|
22055
22069
|
const tbodyNodes = getElementsByTagName(tableNodes[0], 'tbody');
|
|
@@ -22072,7 +22086,7 @@ function parseHTML(columns, content) {
|
|
|
22072
22086
|
rows
|
|
22073
22087
|
};
|
|
22074
22088
|
}
|
|
22075
|
-
function parseXML(
|
|
22089
|
+
function parseXML(tableConf, content) {
|
|
22076
22090
|
const domParser = new DOMParser();
|
|
22077
22091
|
const xmlDoc = domParser.parseFromString(content, 'application/xml');
|
|
22078
22092
|
const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet');
|
|
@@ -22084,7 +22098,7 @@ function parseXML(columns, content) {
|
|
|
22084
22098
|
const rowNodes = getElementsByTagName(tableNodes[0], 'Row');
|
|
22085
22099
|
if (rowNodes.length) {
|
|
22086
22100
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
|
|
22087
|
-
fields.push(cellNode.textContent);
|
|
22101
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
22088
22102
|
});
|
|
22089
22103
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowNodes, (rowNode, index) => {
|
|
22090
22104
|
if (index) {
|
|
@@ -22106,60 +22120,62 @@ function parseXML(columns, content) {
|
|
|
22106
22120
|
rows
|
|
22107
22121
|
};
|
|
22108
22122
|
}
|
|
22109
|
-
|
|
22110
|
-
|
|
22111
|
-
* @param {Array} fields 字段名列表
|
|
22112
|
-
* @param {Array} rows 数据列表
|
|
22113
|
-
*/
|
|
22114
|
-
function checkImportData(columns, fields) {
|
|
22115
|
-
const tableFields = [];
|
|
22116
|
-
columns.forEach(column => {
|
|
22117
|
-
const field = column.field;
|
|
22118
|
-
if (field) {
|
|
22119
|
-
tableFields.push(field);
|
|
22120
|
-
}
|
|
22121
|
-
});
|
|
22122
|
-
return fields.some(field => tableFields.indexOf(field) > -1);
|
|
22123
|
-
}
|
|
22124
|
-
function handleImport($xetable, content, opts) {
|
|
22123
|
+
function handleImport($xeTable, content, opts) {
|
|
22124
|
+
const internalData = $xeTable;
|
|
22125
22125
|
const {
|
|
22126
22126
|
tableFullColumn,
|
|
22127
22127
|
_importResolve,
|
|
22128
22128
|
_importReject
|
|
22129
|
-
} =
|
|
22129
|
+
} = internalData;
|
|
22130
22130
|
let rest = {
|
|
22131
22131
|
fields: [],
|
|
22132
22132
|
rows: []
|
|
22133
22133
|
};
|
|
22134
|
+
const tableFieldMaps = {};
|
|
22135
|
+
const tableTitleMaps = {};
|
|
22136
|
+
tableFullColumn.forEach(column => {
|
|
22137
|
+
const field = column.field;
|
|
22138
|
+
const title = column.getTitle();
|
|
22139
|
+
if (field) {
|
|
22140
|
+
tableFieldMaps[field] = column;
|
|
22141
|
+
}
|
|
22142
|
+
if (title) {
|
|
22143
|
+
tableTitleMaps[column.getTitle()] = column;
|
|
22144
|
+
}
|
|
22145
|
+
});
|
|
22146
|
+
const tableConf = {
|
|
22147
|
+
fieldMaps: tableFieldMaps,
|
|
22148
|
+
titleMaps: tableTitleMaps
|
|
22149
|
+
};
|
|
22134
22150
|
switch (opts.type) {
|
|
22135
22151
|
case 'csv':
|
|
22136
|
-
rest = parseCsv(
|
|
22152
|
+
rest = parseCsv(tableConf, content);
|
|
22137
22153
|
break;
|
|
22138
22154
|
case 'txt':
|
|
22139
|
-
rest = parseTxt(
|
|
22155
|
+
rest = parseTxt(tableConf, content);
|
|
22140
22156
|
break;
|
|
22141
22157
|
case 'html':
|
|
22142
|
-
rest = parseHTML(
|
|
22158
|
+
rest = parseHTML(tableConf, content);
|
|
22143
22159
|
break;
|
|
22144
22160
|
case 'xml':
|
|
22145
|
-
rest = parseXML(
|
|
22161
|
+
rest = parseXML(tableConf, content);
|
|
22146
22162
|
break;
|
|
22147
22163
|
}
|
|
22148
22164
|
const {
|
|
22149
22165
|
fields,
|
|
22150
22166
|
rows
|
|
22151
22167
|
} = rest;
|
|
22152
|
-
const status =
|
|
22168
|
+
const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
|
|
22153
22169
|
if (status) {
|
|
22154
|
-
$
|
|
22170
|
+
$xeTable.createData(rows).then(data => {
|
|
22155
22171
|
let loadRest;
|
|
22156
22172
|
if (opts.mode === 'insert' || opts.mode === 'insertBottom') {
|
|
22157
|
-
loadRest = $
|
|
22173
|
+
loadRest = $xeTable.insertAt(data, -1);
|
|
22158
22174
|
}
|
|
22159
22175
|
if (opts.mode === 'insertTop') {
|
|
22160
|
-
loadRest = $
|
|
22176
|
+
loadRest = $xeTable.insert(data);
|
|
22161
22177
|
} else {
|
|
22162
|
-
loadRest = $
|
|
22178
|
+
loadRest = $xeTable.reloadData(data);
|
|
22163
22179
|
}
|
|
22164
22180
|
if (opts.message !== false) {
|
|
22165
22181
|
// 检测弹窗模块
|