vxe-table 3.12.10-beta.21 → 3.12.10-beta.23
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/export/mixin.js +50 -37
- package/es/table/src/body.js +7 -5
- package/es/table/src/header.js +27 -2
- package/es/table/style.css +13 -7
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +13 -7
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +78 -45
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/export/mixin.js +53 -37
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/src/body.js +6 -5
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/header.js +17 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/style/style.css +13 -7
- package/lib/table/style/style.min.css +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/lib/vxe-table/style/style.css +13 -7
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/export/mixin.ts +88 -53
- package/packages/table/src/body.ts +7 -7
- package/packages/table/src/header.ts +27 -2
- package/styles/components/table.scss +14 -8
- /package/es/{iconfont.1737182271148.ttf → iconfont.1737201503534.ttf} +0 -0
- /package/es/{iconfont.1737182271148.woff → iconfont.1737201503534.woff} +0 -0
- /package/es/{iconfont.1737182271148.woff2 → iconfont.1737201503534.woff2} +0 -0
- /package/lib/{iconfont.1737182271148.ttf → iconfont.1737201503534.ttf} +0 -0
- /package/lib/{iconfont.1737182271148.woff → iconfont.1737201503534.woff} +0 -0
- /package/lib/{iconfont.1737182271148.woff2 → iconfont.1737201503534.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/table/src/body.js
CHANGED
|
@@ -316,13 +316,11 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
|
|
|
316
316
|
]));
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
+
let showAreaRowStatus = false;
|
|
319
320
|
if (mouseConfig && mouseOpts.area && selectCellToRow) {
|
|
320
|
-
if ((
|
|
321
|
+
if ((!_columnIndex && selectCellToRow === true) ||
|
|
321
322
|
(selectCellToRow === column.field)) {
|
|
322
|
-
|
|
323
|
-
key: 'tca',
|
|
324
|
-
class: 'vxe-cell--area-status'
|
|
325
|
-
}));
|
|
323
|
+
showAreaRowStatus = true;
|
|
326
324
|
}
|
|
327
325
|
}
|
|
328
326
|
if (rowResize && rowOpts.resizable) {
|
|
@@ -347,6 +345,7 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
|
|
|
347
345
|
'col--tree-node': treeNode,
|
|
348
346
|
'col--edit': isEdit,
|
|
349
347
|
'col--ellipsis': hasEllipsis,
|
|
348
|
+
'col--to-row': showAreaRowStatus,
|
|
350
349
|
'col--auto-height': isVNAutoHeight,
|
|
351
350
|
'fixed--width': !isAutoCellWidth,
|
|
352
351
|
'fixed--hidden': fixedHiddenColumn,
|
|
@@ -777,6 +776,9 @@ export default {
|
|
|
777
776
|
}),
|
|
778
777
|
h('span', {
|
|
779
778
|
class: 'vxe-table--cell-active-area'
|
|
779
|
+
}),
|
|
780
|
+
h('span', {
|
|
781
|
+
class: 'vxe-table--cell-row-status-area'
|
|
780
782
|
})
|
|
781
783
|
])
|
|
782
784
|
: renderEmptyElement($xeTable),
|
package/es/table/src/header.js
CHANGED
|
@@ -249,9 +249,10 @@ export default {
|
|
|
249
249
|
const { xID } = $xeTable;
|
|
250
250
|
const { fixedType, fixedColumn, tableColumn } = props;
|
|
251
251
|
const { headerColumn } = this;
|
|
252
|
-
const { showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
|
|
252
|
+
const { mouseConfig, showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
|
|
253
253
|
const { isGroup, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
|
|
254
254
|
const { visibleColumn, fullColumnIdData } = tableInternalData;
|
|
255
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
255
256
|
let renderHeaderList = headerColumn;
|
|
256
257
|
let renderColumnList = tableColumn;
|
|
257
258
|
let isOptimizeMode = false;
|
|
@@ -354,7 +355,31 @@ export default {
|
|
|
354
355
|
*/
|
|
355
356
|
h('thead', {
|
|
356
357
|
ref: 'refHeaderTHead'
|
|
357
|
-
}, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))
|
|
358
|
+
}, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList)),
|
|
359
|
+
mouseConfig && mouseOpts.area
|
|
360
|
+
? h('div', {
|
|
361
|
+
class: 'vxe-table--cell-area'
|
|
362
|
+
}, [
|
|
363
|
+
h('span', {
|
|
364
|
+
class: 'vxe-table--cell-main-area'
|
|
365
|
+
}),
|
|
366
|
+
h('span', {
|
|
367
|
+
class: 'vxe-table--cell-copy-area'
|
|
368
|
+
}),
|
|
369
|
+
h('span', {
|
|
370
|
+
class: 'vxe-table--cell-extend-area'
|
|
371
|
+
}),
|
|
372
|
+
h('span', {
|
|
373
|
+
class: 'vxe-table--cell-multi-area'
|
|
374
|
+
}),
|
|
375
|
+
h('span', {
|
|
376
|
+
class: 'vxe-table--cell-active-area'
|
|
377
|
+
}),
|
|
378
|
+
h('span', {
|
|
379
|
+
class: 'vxe-table--cell-col-status-area'
|
|
380
|
+
})
|
|
381
|
+
])
|
|
382
|
+
: renderEmptyElement($xeTable)
|
|
358
383
|
]),
|
|
359
384
|
/**
|
|
360
385
|
* 其他
|
package/es/table/style.css
CHANGED
|
@@ -1901,19 +1901,17 @@
|
|
|
1901
1901
|
.vxe-table--cell-extend-area,
|
|
1902
1902
|
.vxe-table--cell-active-area,
|
|
1903
1903
|
.vxe-table--cell-copy-area,
|
|
1904
|
-
.vxe-table--cell-status
|
|
1904
|
+
.vxe-table--cell-col-status-area,
|
|
1905
|
+
.vxe-table--cell-row-status-area {
|
|
1905
1906
|
display: none;
|
|
1906
1907
|
position: absolute;
|
|
1907
1908
|
pointer-events: none;
|
|
1908
1909
|
z-index: 1;
|
|
1909
1910
|
}
|
|
1910
1911
|
|
|
1911
|
-
.vxe-table--cell-status {
|
|
1912
|
+
.vxe-table--header-wrapper .vxe-table--cell-col-status-area {
|
|
1912
1913
|
top: 0;
|
|
1913
|
-
|
|
1914
|
-
width: var(--vxe-ui-table-cell-area-status-border-width);
|
|
1915
|
-
height: 0;
|
|
1916
|
-
background-color: var(--vxe-ui-font-primary-color);
|
|
1914
|
+
height: 100%;
|
|
1917
1915
|
}
|
|
1918
1916
|
|
|
1919
1917
|
.vxe-table--fixed-left-wrapper .vxe-table--checkbox-range,
|
|
@@ -1921,11 +1919,15 @@
|
|
|
1921
1919
|
.vxe-table--fixed-left-wrapper .vxe-table--cell-extend-area,
|
|
1922
1920
|
.vxe-table--fixed-left-wrapper .vxe-table--cell-active-area,
|
|
1923
1921
|
.vxe-table--fixed-left-wrapper .vxe-table--cell-copy-area,
|
|
1922
|
+
.vxe-table--fixed-left-wrapper .vxe-table--cell-col-status-area,
|
|
1923
|
+
.vxe-table--fixed-left-wrapper .vxe-table--cell-row-status-area,
|
|
1924
1924
|
.vxe-table--fixed-right-wrapper .vxe-table--checkbox-range,
|
|
1925
1925
|
.vxe-table--fixed-right-wrapper .vxe-table--cell-main-area,
|
|
1926
1926
|
.vxe-table--fixed-right-wrapper .vxe-table--cell-extend-area,
|
|
1927
1927
|
.vxe-table--fixed-right-wrapper .vxe-table--cell-active-area,
|
|
1928
|
-
.vxe-table--fixed-right-wrapper .vxe-table--cell-copy-area
|
|
1928
|
+
.vxe-table--fixed-right-wrapper .vxe-table--cell-copy-area,
|
|
1929
|
+
.vxe-table--fixed-right-wrapper .vxe-table--cell-col-status-area,
|
|
1930
|
+
.vxe-table--fixed-right-wrapper .vxe-table--cell-row-status-area {
|
|
1929
1931
|
z-index: 2;
|
|
1930
1932
|
}
|
|
1931
1933
|
|
|
@@ -1979,6 +1981,10 @@
|
|
|
1979
1981
|
.vxe-table--cell-area .vxe-table--cell-extend-area {
|
|
1980
1982
|
border: var(--vxe-ui-table-cell-extend-area-border-width) solid var(--vxe-ui-table-cell-extend-area-border-color);
|
|
1981
1983
|
}
|
|
1984
|
+
.vxe-table--cell-area .vxe-table--cell-col-status-area,
|
|
1985
|
+
.vxe-table--cell-area .vxe-table--cell-row-status-area {
|
|
1986
|
+
background-color: var(--vxe-ui-table-checkbox-range-background-color);
|
|
1987
|
+
}
|
|
1982
1988
|
|
|
1983
1989
|
@keyframes moveCopyCellBorder {
|
|
1984
1990
|
to {
|