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.
@@ -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 parseCsvAndTxt(columns, content, cellSeparator) {
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(columns, content) {
663
- return parseCsvAndTxt(columns, content, ',');
673
+ function parseCsv(tableConf, content) {
674
+ return parseCsvAndTxt(tableConf, content, ',');
664
675
  }
665
- function parseTxt(columns, content) {
666
- return parseCsvAndTxt(columns, content, '\t');
676
+ function parseTxt(tableConf, content) {
677
+ return parseCsvAndTxt(tableConf, content, '\t');
667
678
  }
668
- function parseHTML(columns, content) {
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'), (rowNode) => {
680
- XEUtils.arrayEach(getElementsByTagName(rowNode, 'th'), (cellNode) => {
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(columns, content) {
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'), (cellNode) => {
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
- * @param {Array} fields 字段名列表
735
- * @param {Array} rows 数据列表
736
- */
737
- function checkImportData(columns, fields) {
738
- const tableFields = [];
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
- tableFields.push(field);
753
+ tableFieldMaps[field] = column;
754
+ }
755
+ if (title) {
756
+ tableTitleMaps[column.getTitle()] = column;
743
757
  }
744
758
  });
745
- return fields.some(field => tableFields.indexOf(field) > -1);
746
- }
747
- function handleImport($xetable, content, opts) {
748
- const { tableFullColumn, _importResolve, _importReject } = $xetable;
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(tableFullColumn, content);
765
+ rest = parseCsv(tableConf, content);
753
766
  break;
754
767
  case 'txt':
755
- rest = parseTxt(tableFullColumn, content);
768
+ rest = parseTxt(tableConf, content);
756
769
  break;
757
770
  case 'html':
758
- rest = parseHTML(tableFullColumn, content);
771
+ rest = parseHTML(tableConf, content);
759
772
  break;
760
773
  case 'xml':
761
- rest = parseXML(tableFullColumn, content);
774
+ rest = parseXML(tableConf, content);
762
775
  break;
763
776
  }
764
777
  const { fields, rows } = rest;
765
- const status = checkImportData(tableFullColumn, fields);
778
+ const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
766
779
  if (status) {
767
- $xetable.createData(rows)
780
+ $xeTable.createData(rows)
768
781
  .then((data) => {
769
782
  let loadRest;
770
783
  if (opts.mode === 'insert' || opts.mode === 'insertBottom') {
771
- loadRest = $xetable.insertAt(data, -1);
784
+ loadRest = $xeTable.insertAt(data, -1);
772
785
  }
773
786
  if (opts.mode === 'insertTop') {
774
- loadRest = $xetable.insert(data);
787
+ loadRest = $xeTable.insert(data);
775
788
  }
776
789
  else {
777
- loadRest = $xetable.reloadData(data);
790
+ loadRest = $xeTable.reloadData(data);
778
791
  }
779
792
  if (opts.message !== false) {
780
793
  // 检测弹窗模块
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.12.10-beta.21";
3
+ export const version = "3.12.10-beta.22";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.12.10-beta.21"}`;
3
+ const version = `table v${"3.12.10-beta.22"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
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.21";
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.21"}`;
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 parseCsvAndTxt(columns, content, cellSeparator) {
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(columns, content) {
22034
- return parseCsvAndTxt(columns, content, ',');
22047
+ function parseCsv(tableConf, content) {
22048
+ return parseCsvAndTxt(tableConf, content, ',');
22035
22049
  }
22036
- function parseTxt(columns, content) {
22037
- return parseCsvAndTxt(columns, content, '\t');
22050
+ function parseTxt(tableConf, content) {
22051
+ return parseCsvAndTxt(tableConf, content, '\t');
22038
22052
  }
22039
- function parseHTML(columns, content) {
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(columns, content) {
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
- } = $xetable;
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(tableFullColumn, content);
22152
+ rest = parseCsv(tableConf, content);
22137
22153
  break;
22138
22154
  case 'txt':
22139
- rest = parseTxt(tableFullColumn, content);
22155
+ rest = parseTxt(tableConf, content);
22140
22156
  break;
22141
22157
  case 'html':
22142
- rest = parseHTML(tableFullColumn, content);
22158
+ rest = parseHTML(tableConf, content);
22143
22159
  break;
22144
22160
  case 'xml':
22145
- rest = parseXML(tableFullColumn, content);
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 = checkImportData(tableFullColumn, fields);
22168
+ const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
22153
22169
  if (status) {
22154
- $xetable.createData(rows).then(data => {
22170
+ $xeTable.createData(rows).then(data => {
22155
22171
  let loadRest;
22156
22172
  if (opts.mode === 'insert' || opts.mode === 'insertBottom') {
22157
- loadRest = $xetable.insertAt(data, -1);
22173
+ loadRest = $xeTable.insertAt(data, -1);
22158
22174
  }
22159
22175
  if (opts.mode === 'insertTop') {
22160
- loadRest = $xetable.insert(data);
22176
+ loadRest = $xeTable.insert(data);
22161
22177
  } else {
22162
- loadRest = $xetable.reloadData(data);
22178
+ loadRest = $xeTable.reloadData(data);
22163
22179
  }
22164
22180
  if (opts.message !== false) {
22165
22181
  // 检测弹窗模块