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.
Files changed (44) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/export/mixin.js +50 -37
  6. package/es/table/src/body.js +7 -5
  7. package/es/table/src/header.js +27 -2
  8. package/es/table/style.css +13 -7
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-table/style.css +13 -7
  13. package/es/vxe-table/style.min.css +1 -1
  14. package/lib/index.css +1 -1
  15. package/lib/index.min.css +1 -1
  16. package/lib/index.umd.js +78 -45
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/style.css +1 -1
  19. package/lib/style.min.css +1 -1
  20. package/lib/table/module/export/mixin.js +53 -37
  21. package/lib/table/module/export/mixin.min.js +1 -1
  22. package/lib/table/src/body.js +6 -5
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/header.js +17 -1
  25. package/lib/table/src/header.min.js +1 -1
  26. package/lib/table/style/style.css +13 -7
  27. package/lib/table/style/style.min.css +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/lib/vxe-table/style/style.css +13 -7
  33. package/lib/vxe-table/style/style.min.css +1 -1
  34. package/package.json +1 -1
  35. package/packages/table/module/export/mixin.ts +88 -53
  36. package/packages/table/src/body.ts +7 -7
  37. package/packages/table/src/header.ts +27 -2
  38. package/styles/components/table.scss +14 -8
  39. /package/es/{iconfont.1737182271148.ttf → iconfont.1737201503534.ttf} +0 -0
  40. /package/es/{iconfont.1737182271148.woff → iconfont.1737201503534.woff} +0 -0
  41. /package/es/{iconfont.1737182271148.woff2 → iconfont.1737201503534.woff2} +0 -0
  42. /package/lib/{iconfont.1737182271148.ttf → iconfont.1737201503534.ttf} +0 -0
  43. /package/lib/{iconfont.1737182271148.woff → iconfont.1737201503534.woff} +0 -0
  44. /package/lib/{iconfont.1737182271148.woff2 → iconfont.1737201503534.woff2} +0 -0
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.23";
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.23"}`;
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
@@ -15430,12 +15430,10 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
15430
15430
  }, errorValidItem.content)]])]));
15431
15431
  }
15432
15432
  }
15433
+ let showAreaRowStatus = false;
15433
15434
  if (mouseConfig && mouseOpts.area && selectCellToRow) {
15434
- if (!$columnIndex && selectCellToRow === true || selectCellToRow === column.field) {
15435
- tdVNs.push(h('div', {
15436
- key: 'tca',
15437
- class: 'vxe-cell--area-status'
15438
- }));
15435
+ if (!_columnIndex && selectCellToRow === true || selectCellToRow === column.field) {
15436
+ showAreaRowStatus = true;
15439
15437
  }
15440
15438
  }
15441
15439
  if (rowResize && rowOpts.resizable) {
@@ -15457,6 +15455,7 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
15457
15455
  'col--tree-node': treeNode,
15458
15456
  'col--edit': isEdit,
15459
15457
  'col--ellipsis': hasEllipsis,
15458
+ 'col--to-row': showAreaRowStatus,
15460
15459
  'col--auto-height': isVNAutoHeight,
15461
15460
  'fixed--width': !isAutoCellWidth,
15462
15461
  'fixed--hidden': fixedHiddenColumn,
@@ -15940,6 +15939,8 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
15940
15939
  class: 'vxe-table--cell-multi-area'
15941
15940
  }), h('span', {
15942
15941
  class: 'vxe-table--cell-active-area'
15942
+ }), h('span', {
15943
+ class: 'vxe-table--cell-row-status-area'
15943
15944
  })]) : body_renderEmptyElement($xeTable), !fixedType ? h('div', {
15944
15945
  class: 'vxe-table--empty-block',
15945
15946
  ref: 'emptyBlock'
@@ -16262,6 +16263,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
16262
16263
  headerColumn
16263
16264
  } = this;
16264
16265
  const {
16266
+ mouseConfig,
16265
16267
  showHeaderOverflow: allColumnHeaderOverflow,
16266
16268
  spanMethod,
16267
16269
  footerSpanMethod
@@ -16276,6 +16278,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
16276
16278
  visibleColumn,
16277
16279
  fullColumnIdData
16278
16280
  } = tableInternalData;
16281
+ const mouseOpts = $xeTable.computeMouseOpts;
16279
16282
  let renderHeaderList = headerColumn;
16280
16283
  let renderColumnList = tableColumn;
16281
16284
  let isOptimizeMode = false;
@@ -16370,7 +16373,21 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
16370
16373
  */
16371
16374
  h('thead', {
16372
16375
  ref: 'refHeaderTHead'
16373
- }, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))]),
16376
+ }, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList)), mouseConfig && mouseOpts.area ? h('div', {
16377
+ class: 'vxe-table--cell-area'
16378
+ }, [h('span', {
16379
+ class: 'vxe-table--cell-main-area'
16380
+ }), h('span', {
16381
+ class: 'vxe-table--cell-copy-area'
16382
+ }), h('span', {
16383
+ class: 'vxe-table--cell-extend-area'
16384
+ }), h('span', {
16385
+ class: 'vxe-table--cell-multi-area'
16386
+ }), h('span', {
16387
+ class: 'vxe-table--cell-active-area'
16388
+ }), h('span', {
16389
+ class: 'vxe-table--cell-col-status-area'
16390
+ })]) : header_renderEmptyElement($xeTable)]),
16374
16391
  /**
16375
16392
  * 其他
16376
16393
  */
@@ -21992,7 +22009,21 @@ function getTxtCellValue(val, vMaps) {
21992
22009
  const rest = replaceTxtCell(val, vMaps);
21993
22010
  return rest.replace(/^"+$/g, qVal => '"'.repeat(Math.ceil(qVal.length / 2)));
21994
22011
  }
21995
- function parseCsvAndTxt(columns, content, cellSeparator) {
22012
+ function toExportField(tableConf, field) {
22013
+ const {
22014
+ fieldMaps,
22015
+ titleMaps
22016
+ } = tableConf;
22017
+ // title 转 field
22018
+ if (!fieldMaps[field]) {
22019
+ const teCol = titleMaps[field];
22020
+ if (teCol && teCol.field) {
22021
+ field = teCol.field;
22022
+ }
22023
+ }
22024
+ return field;
22025
+ }
22026
+ function parseCsvAndTxt(tableConf, content, cellSeparator) {
21996
22027
  const list = content.split(enterSymbol);
21997
22028
  const rows = [];
21998
22029
  let fields = [];
@@ -22013,11 +22044,11 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
22013
22044
  });
22014
22045
  const cells = rVal.split(cellSeparator);
22015
22046
  if (!fields.length) {
22016
- fields = cells.map(val => getTxtCellValue(val.trim(), vMaps));
22047
+ fields = cells.map(val => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
22017
22048
  } else {
22018
22049
  cells.forEach((val, colIndex) => {
22019
22050
  if (colIndex < fields.length) {
22020
- item[fields[colIndex]] = getTxtCellValue(val, vMaps);
22051
+ item[fields[colIndex]] = getTxtCellValue(val.trim(), vMaps);
22021
22052
  }
22022
22053
  });
22023
22054
  rows.push(item);
@@ -22030,13 +22061,13 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
22030
22061
  rows
22031
22062
  };
22032
22063
  }
22033
- function parseCsv(columns, content) {
22034
- return parseCsvAndTxt(columns, content, ',');
22064
+ function parseCsv(tableConf, content) {
22065
+ return parseCsvAndTxt(tableConf, content, ',');
22035
22066
  }
22036
- function parseTxt(columns, content) {
22037
- return parseCsvAndTxt(columns, content, '\t');
22067
+ function parseTxt(tableConf, content) {
22068
+ return parseCsvAndTxt(tableConf, content, '\t');
22038
22069
  }
22039
- function parseHTML(columns, content) {
22070
+ function parseHTML(tableConf, content) {
22040
22071
  const domParser = new DOMParser();
22041
22072
  const xmlDoc = domParser.parseFromString(content, 'text/html');
22042
22073
  const bodyNodes = getElementsByTagName(xmlDoc, 'body');
@@ -22049,7 +22080,7 @@ function parseHTML(columns, content) {
22049
22080
  if (theadNodes.length) {
22050
22081
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(theadNodes[0], 'tr'), rowNode => {
22051
22082
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(rowNode, 'th'), cellNode => {
22052
- fields.push(cellNode.textContent);
22083
+ fields.push(toExportField(tableConf, cellNode.textContent || ''));
22053
22084
  });
22054
22085
  });
22055
22086
  const tbodyNodes = getElementsByTagName(tableNodes[0], 'tbody');
@@ -22072,7 +22103,7 @@ function parseHTML(columns, content) {
22072
22103
  rows
22073
22104
  };
22074
22105
  }
22075
- function parseXML(columns, content) {
22106
+ function parseXML(tableConf, content) {
22076
22107
  const domParser = new DOMParser();
22077
22108
  const xmlDoc = domParser.parseFromString(content, 'application/xml');
22078
22109
  const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet');
@@ -22084,7 +22115,7 @@ function parseXML(columns, content) {
22084
22115
  const rowNodes = getElementsByTagName(tableNodes[0], 'Row');
22085
22116
  if (rowNodes.length) {
22086
22117
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
22087
- fields.push(cellNode.textContent);
22118
+ fields.push(toExportField(tableConf, cellNode.textContent || ''));
22088
22119
  });
22089
22120
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowNodes, (rowNode, index) => {
22090
22121
  if (index) {
@@ -22106,60 +22137,62 @@ function parseXML(columns, content) {
22106
22137
  rows
22107
22138
  };
22108
22139
  }
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) {
22140
+ function handleImport($xeTable, content, opts) {
22141
+ const internalData = $xeTable;
22125
22142
  const {
22126
22143
  tableFullColumn,
22127
22144
  _importResolve,
22128
22145
  _importReject
22129
- } = $xetable;
22146
+ } = internalData;
22130
22147
  let rest = {
22131
22148
  fields: [],
22132
22149
  rows: []
22133
22150
  };
22151
+ const tableFieldMaps = {};
22152
+ const tableTitleMaps = {};
22153
+ tableFullColumn.forEach(column => {
22154
+ const field = column.field;
22155
+ const title = column.getTitle();
22156
+ if (field) {
22157
+ tableFieldMaps[field] = column;
22158
+ }
22159
+ if (title) {
22160
+ tableTitleMaps[column.getTitle()] = column;
22161
+ }
22162
+ });
22163
+ const tableConf = {
22164
+ fieldMaps: tableFieldMaps,
22165
+ titleMaps: tableTitleMaps
22166
+ };
22134
22167
  switch (opts.type) {
22135
22168
  case 'csv':
22136
- rest = parseCsv(tableFullColumn, content);
22169
+ rest = parseCsv(tableConf, content);
22137
22170
  break;
22138
22171
  case 'txt':
22139
- rest = parseTxt(tableFullColumn, content);
22172
+ rest = parseTxt(tableConf, content);
22140
22173
  break;
22141
22174
  case 'html':
22142
- rest = parseHTML(tableFullColumn, content);
22175
+ rest = parseHTML(tableConf, content);
22143
22176
  break;
22144
22177
  case 'xml':
22145
- rest = parseXML(tableFullColumn, content);
22178
+ rest = parseXML(tableConf, content);
22146
22179
  break;
22147
22180
  }
22148
22181
  const {
22149
22182
  fields,
22150
22183
  rows
22151
22184
  } = rest;
22152
- const status = checkImportData(tableFullColumn, fields);
22185
+ const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
22153
22186
  if (status) {
22154
- $xetable.createData(rows).then(data => {
22187
+ $xeTable.createData(rows).then(data => {
22155
22188
  let loadRest;
22156
22189
  if (opts.mode === 'insert' || opts.mode === 'insertBottom') {
22157
- loadRest = $xetable.insertAt(data, -1);
22190
+ loadRest = $xeTable.insertAt(data, -1);
22158
22191
  }
22159
22192
  if (opts.mode === 'insertTop') {
22160
- loadRest = $xetable.insert(data);
22193
+ loadRest = $xeTable.insert(data);
22161
22194
  } else {
22162
- loadRest = $xetable.reloadData(data);
22195
+ loadRest = $xeTable.reloadData(data);
22163
22196
  }
22164
22197
  if (opts.message !== false) {
22165
22198
  // 检测弹窗模块