vxe-table 3.6.16 → 3.7.0-beta.0

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 (94) hide show
  1. package/lib/export/src/mixin.js +12 -7
  2. package/lib/export/src/mixin.min.js +1 -1
  3. package/lib/form/src/form.js +109 -89
  4. package/lib/form/src/form.min.js +1 -1
  5. package/lib/icon/style/{iconfont.1688167751253.ttf → iconfont.1688918886373.ttf} +0 -0
  6. package/lib/icon/style/iconfont.1688918886373.woff +0 -0
  7. package/lib/icon/style/iconfont.1688918886373.woff2 +0 -0
  8. package/lib/icon/style/style.css +25 -1
  9. package/lib/icon/style/style.min.css +25 -1
  10. package/lib/{iconfont.1688167751253.ttf → iconfont.1688918886373.ttf} +0 -0
  11. package/lib/iconfont.1688918886373.woff +0 -0
  12. package/lib/iconfont.1688918886373.woff2 +0 -0
  13. package/lib/index.css +1 -1
  14. package/lib/index.umd.js +271 -129
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/locale/lang/en-US.js +6 -2
  17. package/lib/locale/lang/en-US.min.js +1 -1
  18. package/lib/locale/lang/en-US.umd.js +6 -2
  19. package/lib/locale/lang/es-ES.js +9 -5
  20. package/lib/locale/lang/es-ES.min.js +1 -1
  21. package/lib/locale/lang/es-ES.umd.js +9 -5
  22. package/lib/locale/lang/ja-JP.js +6 -2
  23. package/lib/locale/lang/ja-JP.min.js +1 -1
  24. package/lib/locale/lang/ja-JP.umd.js +6 -2
  25. package/lib/locale/lang/zh-CN.js +6 -2
  26. package/lib/locale/lang/zh-CN.min.js +1 -1
  27. package/lib/locale/lang/zh-CN.umd.js +6 -2
  28. package/lib/locale/lang/zh-HK.min.js +1 -1
  29. package/lib/locale/lang/zh-HK.umd.js +6 -2
  30. package/lib/locale/lang/zh-MO.min.js +1 -1
  31. package/lib/locale/lang/zh-MO.umd.js +6 -2
  32. package/lib/locale/lang/zh-TC.js +6 -2
  33. package/lib/locale/lang/zh-TC.min.js +1 -1
  34. package/lib/locale/lang/zh-TC.umd.js +6 -2
  35. package/lib/locale/lang/zh-TW.min.js +1 -1
  36. package/lib/locale/lang/zh-TW.umd.js +6 -2
  37. package/lib/style.css +1 -1
  38. package/lib/style.min.css +1 -1
  39. package/lib/table/src/cell.js +7 -1
  40. package/lib/table/src/cell.min.js +1 -1
  41. package/lib/table/src/column.js +2 -0
  42. package/lib/table/src/column.min.js +1 -1
  43. package/lib/table/src/columnInfo.js +2 -0
  44. package/lib/table/src/columnInfo.min.js +1 -1
  45. package/lib/table/src/methods.js +26 -11
  46. package/lib/table/src/methods.min.js +1 -1
  47. package/lib/table/src/table.js +17 -0
  48. package/lib/table/src/table.min.js +1 -1
  49. package/lib/table/src/util.js +16 -0
  50. package/lib/table/src/util.min.js +1 -1
  51. package/lib/table/style/style.css +2 -2
  52. package/lib/table/style/style.min.css +1 -1
  53. package/lib/toolbar/src/toolbar.js +57 -12
  54. package/lib/toolbar/src/toolbar.min.js +1 -1
  55. package/lib/toolbar/style/style.css +44 -13
  56. package/lib/toolbar/style/style.min.css +1 -1
  57. package/lib/tools/log.js +1 -1
  58. package/lib/tools/log.min.js +1 -1
  59. package/lib/v-x-e-table/index.js +1 -1
  60. package/lib/v-x-e-table/index.min.js +1 -1
  61. package/lib/v-x-e-table/src/conf.js +12 -3
  62. package/lib/v-x-e-table/src/conf.min.js +1 -1
  63. package/lib/v-x-e-table/style/style.css +25 -1
  64. package/lib/v-x-e-table/style/style.min.css +1 -1
  65. package/package.json +1 -1
  66. package/packages/export/src/mixin.js +9 -7
  67. package/packages/form/src/form.js +91 -60
  68. package/packages/locale/lang/en-US.js +6 -2
  69. package/packages/locale/lang/es-ES.js +9 -5
  70. package/packages/locale/lang/ja-JP.js +6 -2
  71. package/packages/locale/lang/zh-CN.js +6 -2
  72. package/packages/locale/lang/zh-TC.js +6 -2
  73. package/packages/table/src/cell.js +9 -1
  74. package/packages/table/src/column.js +2 -0
  75. package/packages/table/src/columnInfo.js +2 -0
  76. package/packages/table/src/methods.js +25 -12
  77. package/packages/table/src/table.js +17 -0
  78. package/packages/table/src/util.js +16 -0
  79. package/packages/toolbar/src/toolbar.js +98 -45
  80. package/packages/v-x-e-table/src/conf.js +11 -3
  81. package/styles/icon/iconfont.ttf +0 -0
  82. package/styles/icon/iconfont.woff +0 -0
  83. package/styles/icon/iconfont.woff2 +0 -0
  84. package/styles/icon.scss +25 -1
  85. package/styles/table.scss +2 -2
  86. package/styles/toolbar.scss +35 -8
  87. package/types/column.d.ts +4 -1
  88. package/types/export.d.ts +5 -0
  89. package/types/form.d.ts +14 -8
  90. package/types/toolbar.d.ts +17 -6
  91. package/lib/icon/style/iconfont.1688167751253.woff +0 -0
  92. package/lib/icon/style/iconfont.1688167751253.woff2 +0 -0
  93. package/lib/iconfont.1688167751253.woff +0 -0
  94. package/lib/iconfont.1688167751253.woff2 +0 -0
package/lib/index.umd.js CHANGED
@@ -10712,6 +10712,9 @@ var iconPrefix = 'vxe-icon-';
10712
10712
  showMessage: true,
10713
10713
  message: 'default'
10714
10714
  },
10715
+ columnConfig: {
10716
+ maxFixedSize: 4
10717
+ },
10715
10718
  // menuConfig: {
10716
10719
  // visibleMethod () {}
10717
10720
  // },
@@ -10853,6 +10856,10 @@ var iconPrefix = 'vxe-icon-';
10853
10856
  TOOLBAR_TOOLS_FULLSCREEN: iconPrefix + 'fullscreen',
10854
10857
  TOOLBAR_TOOLS_MINIMIZE: iconPrefix + 'minimize',
10855
10858
  TOOLBAR_TOOLS_CUSTOM: iconPrefix + 'custom-column',
10859
+ TOOLBAR_TOOLS_FIXED_LEFT: iconPrefix + 'fixed-left',
10860
+ TOOLBAR_TOOLS_FIXED_LEFT_ACTIVED: iconPrefix + 'fixed-left-fill',
10861
+ TOOLBAR_TOOLS_FIXED_RIGHT: iconPrefix + 'fixed-right',
10862
+ TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVED: iconPrefix + 'fixed-right-fill',
10856
10863
  // form
10857
10864
  FORM_PREFIX: iconPrefix + 'question-circle-fill',
10858
10865
  FORM_SUFFIX: iconPrefix + 'question-circle-fill',
@@ -10963,11 +10970,13 @@ var iconPrefix = 'vxe-icon-';
10963
10970
  // export: {
10964
10971
  // types: ['csv', 'html', 'xml', 'txt']
10965
10972
  // },
10966
- // custom: {
10967
- // isFooter: true
10968
- // },
10973
+ custom: {
10974
+ allowFixed: true,
10975
+ showFooter: true
10976
+ }
10969
10977
  // buttons: []
10970
10978
  },
10979
+
10971
10980
  button: {
10972
10981
  // size: null,
10973
10982
  // transfer: false
@@ -11033,7 +11042,7 @@ var es_array_concat = __webpack_require__(2222);
11033
11042
 
11034
11043
 
11035
11044
  function getLog(message, params) {
11036
- return "[vxe-table v".concat("3.6.16", "] ").concat(conf.i18n(message, params));
11045
+ return "[vxe-table v".concat("3.7.0-beta.0", "] ").concat(conf.i18n(message, params));
11037
11046
  }
11038
11047
  function outLog(type) {
11039
11048
  return function (message, params) {
@@ -12220,7 +12229,7 @@ function _t(key, args) {
12220
12229
  var v = 'v3';
12221
12230
  var VXETable = {
12222
12231
  v: v,
12223
- version: "3.6.16",
12232
+ version: "3.7.0-beta.0",
12224
12233
  reg: reg,
12225
12234
  use: use,
12226
12235
  setup: setup,
@@ -12320,6 +12329,8 @@ function _objectSpread2(target) {
12320
12329
  }
12321
12330
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.number.constructor.js
12322
12331
  var es_number_constructor = __webpack_require__(9653);
12332
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.fixed.js
12333
+ var es_string_fixed = __webpack_require__(9253);
12323
12334
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.every.js
12324
12335
  var es_array_every = __webpack_require__(6541);
12325
12336
  // EXTERNAL MODULE: ./node_modules/core-js/modules/web.timers.js
@@ -12328,8 +12339,6 @@ var web_timers = __webpack_require__(2564);
12328
12339
  var es_map = __webpack_require__(1532);
12329
12340
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.date.now.js
12330
12341
  var es_date_now = __webpack_require__(3843);
12331
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.fixed.js
12332
- var es_string_fixed = __webpack_require__(9253);
12333
12342
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js
12334
12343
  var es_promise = __webpack_require__(8674);
12335
12344
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.js
@@ -12396,6 +12405,7 @@ var ColumnInfo = /*#__PURE__*/function () {
12396
12405
  cellRender: _vm.cellRender,
12397
12406
  editRender: _vm.editRender,
12398
12407
  contentRender: _vm.contentRender,
12408
+ headerExportMethod: _vm.headerExportMethod,
12399
12409
  exportMethod: _vm.exportMethod,
12400
12410
  footerExportMethod: _vm.footerExportMethod,
12401
12411
  titleHelp: _vm.titleHelp,
@@ -12418,6 +12428,7 @@ var ColumnInfo = /*#__PURE__*/function () {
12418
12428
  colSpan: 1,
12419
12429
  order: null,
12420
12430
  sortTime: 0,
12431
+ customOrder: 0,
12421
12432
  renderWidth: 0,
12422
12433
  renderHeight: 0,
12423
12434
  resizeWidth: 0,
@@ -12746,6 +12757,21 @@ function handleFieldOrColumn(_vm, fieldOrColumn) {
12746
12757
  }
12747
12758
  return null;
12748
12759
  }
12760
+ function getRootColumn($xetable, column) {
12761
+ var fullColumnIdData = $xetable.fullColumnIdData;
12762
+ if (!column) {
12763
+ return null;
12764
+ }
12765
+ var parentColId = column.parentId;
12766
+ while (fullColumnIdData[parentColId]) {
12767
+ var _column = fullColumnIdData[parentColId].column;
12768
+ parentColId = _column.parentId;
12769
+ if (!parentColId) {
12770
+ return _column;
12771
+ }
12772
+ }
12773
+ return column;
12774
+ }
12749
12775
  function queryCellElement(cell, selector) {
12750
12776
  return cell.querySelector('.vxe-cell' + selector);
12751
12777
  }
@@ -14813,7 +14839,8 @@ var Cell = {
14813
14839
  }
14814
14840
  if (!trigger || trigger === 'default') {
14815
14841
  on.click = function (evnt) {
14816
- return $table.triggerTreeExpandEvent(evnt, params);
14842
+ evnt.stopPropagation();
14843
+ $table.triggerTreeExpandEvent(evnt, params);
14817
14844
  };
14818
14845
  }
14819
14846
  return [h('div', {
@@ -14893,6 +14920,7 @@ var Cell = {
14893
14920
  on = {
14894
14921
  click: function click(evnt) {
14895
14922
  if (!isDisabled && isVisible) {
14923
+ evnt.stopPropagation();
14896
14924
  $table.triggerRadioRowEvent(evnt, params);
14897
14925
  }
14898
14926
  }
@@ -14953,6 +14981,7 @@ var Cell = {
14953
14981
  on = {
14954
14982
  click: function click(evnt) {
14955
14983
  if (!isAllCheckboxDisabled) {
14984
+ evnt.stopPropagation();
14956
14985
  $table.triggerCheckAllEvent(evnt, !isAllCheckboxSelected);
14957
14986
  }
14958
14987
  }
@@ -15014,6 +15043,7 @@ var Cell = {
15014
15043
  on = {
15015
15044
  click: function click(evnt) {
15016
15045
  if (!isDisabled && isVisible) {
15046
+ evnt.stopPropagation();
15017
15047
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
15018
15048
  }
15019
15049
  }
@@ -15087,6 +15117,7 @@ var Cell = {
15087
15117
  on = {
15088
15118
  click: function click(evnt) {
15089
15119
  if (!isDisabled && isVisible) {
15120
+ evnt.stopPropagation();
15090
15121
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
15091
15122
  }
15092
15123
  }
@@ -15169,6 +15200,7 @@ var Cell = {
15169
15200
  }],
15170
15201
  on: {
15171
15202
  click: function click(evnt) {
15203
+ evnt.stopPropagation();
15172
15204
  $table.triggerRowExpandEvent(evnt, params);
15173
15205
  }
15174
15206
  }
@@ -16519,7 +16551,7 @@ var Methods = {
16519
16551
  */
16520
16552
  isUpdateByRow: function isUpdateByRow(row, field) {
16521
16553
  var _this16 = this;
16522
- var visibleColumn = this.visibleColumn,
16554
+ var tableFullColumn = this.tableFullColumn,
16523
16555
  keepSource = this.keepSource,
16524
16556
  treeConfig = this.treeConfig,
16525
16557
  treeOpts = this.treeOpts,
@@ -16549,8 +16581,8 @@ var Methods = {
16549
16581
  if (arguments.length > 1) {
16550
16582
  return !eqCellValue(oRow, row, field);
16551
16583
  }
16552
- for (var index = 0, len = visibleColumn.length; index < len; index++) {
16553
- property = visibleColumn[index].field;
16584
+ for (var index = 0, len = tableFullColumn.length; index < len; index++) {
16585
+ property = tableFullColumn[index].field;
16554
16586
  if (property && !eqCellValue(oRow, row, property)) {
16555
16587
  return true;
16556
16588
  }
@@ -17042,8 +17074,9 @@ var Methods = {
17042
17074
  */
17043
17075
  setColumnFixed: function setColumnFixed(fieldOrColumn, fixed) {
17044
17076
  var column = handleFieldOrColumn(this, fieldOrColumn);
17045
- if (column && column.fixed !== fixed) {
17046
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column], function (column) {
17077
+ var targetColumn = getRootColumn(this, column);
17078
+ if (targetColumn && targetColumn.fixed !== fixed) {
17079
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn], function (column) {
17047
17080
  column.fixed = fixed;
17048
17081
  });
17049
17082
  this.saveCustomFixed();
@@ -17056,8 +17089,9 @@ var Methods = {
17056
17089
  */
17057
17090
  clearColumnFixed: function clearColumnFixed(fieldOrColumn) {
17058
17091
  var column = handleFieldOrColumn(this, fieldOrColumn);
17059
- if (column && column.fixed) {
17060
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column], function (column) {
17092
+ var targetColumn = getRootColumn(this, column);
17093
+ if (targetColumn && targetColumn.fixed) {
17094
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([targetColumn], function (column) {
17061
17095
  column.fixed = null;
17062
17096
  });
17063
17097
  this.saveCustomFixed();
@@ -17115,14 +17149,15 @@ var Methods = {
17115
17149
  * 如果已关联工具栏,则会同步更新
17116
17150
  */
17117
17151
  resetColumn: function resetColumn(options) {
17118
- var customOpts = this.customOpts;
17152
+ var collectColumn = this.collectColumn,
17153
+ customOpts = this.customOpts;
17119
17154
  var checkMethod = customOpts.checkMethod;
17120
17155
  var opts = Object.assign({
17121
17156
  visible: true,
17122
17157
  resizable: options === true,
17123
17158
  fixed: options === true
17124
17159
  }, options);
17125
- this.tableFullColumn.forEach(function (column) {
17160
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn, function (column) {
17126
17161
  if (opts.resizable) {
17127
17162
  column.resizeWidth = 0;
17128
17163
  }
@@ -17204,7 +17239,15 @@ var Methods = {
17204
17239
  if (isCustomOrder) {
17205
17240
  var columnOrderStorage = getCustomStorageMap(orderStorageKey)[id];
17206
17241
  if (columnOrderStorage) {
17207
- // 开发中...
17242
+ // const colOrderSeqs = columnOrderStorage.split(',')
17243
+ // colOrderSeqs.forEach((orderConf) => {
17244
+ // const [colKey, order] = orderConf.split('|')
17245
+ // if (customMap[colKey]) {
17246
+ // customMap[colKey].order = order
17247
+ // } else {
17248
+ // customMap[colKey] = { order }
17249
+ // }
17250
+ // })
17208
17251
  }
17209
17252
  }
17210
17253
  if (isCustomVisible) {
@@ -17245,7 +17288,8 @@ var Methods = {
17245
17288
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(customMap, function (_ref5, field) {
17246
17289
  var visible = _ref5.visible,
17247
17290
  resizeWidth = _ref5.resizeWidth,
17248
- fixed = _ref5.fixed;
17291
+ fixed = _ref5.fixed,
17292
+ order = _ref5.order;
17249
17293
  var column = keyMap[field];
17250
17294
  if (column) {
17251
17295
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizeWidth)) {
@@ -17257,6 +17301,9 @@ var Methods = {
17257
17301
  if (fixed) {
17258
17302
  column.fixed = fixed;
17259
17303
  }
17304
+ if (order) {
17305
+ column.colSeq = order;
17306
+ }
17260
17307
  }
17261
17308
  });
17262
17309
  }
@@ -21216,6 +21263,7 @@ var Loading = Object.assign(loading, {
21216
21263
 
21217
21264
 
21218
21265
 
21266
+
21219
21267
 
21220
21268
 
21221
21269
  /**
@@ -21924,6 +21972,23 @@ function handleUupdateResize(_vm) {
21924
21972
  customOpts: function customOpts() {
21925
21973
  return Object.assign({}, conf.table.customConfig, this.customConfig);
21926
21974
  },
21975
+ fixedColumnSize: function fixedColumnSize() {
21976
+ var tableFullColumn = this.tableFullColumn;
21977
+ var fixedSize = 0;
21978
+ tableFullColumn.forEach(function (column) {
21979
+ if (column.fixed) {
21980
+ fixedSize++;
21981
+ }
21982
+ });
21983
+ return fixedSize;
21984
+ },
21985
+ isMaxFixedColumn: function isMaxFixedColumn() {
21986
+ var maxFixedSize = this.columnOpts.maxFixedSize;
21987
+ if (maxFixedSize) {
21988
+ return this.fixedColumnSize >= maxFixedSize;
21989
+ }
21990
+ return false;
21991
+ },
21927
21992
  tableBorder: function tableBorder() {
21928
21993
  var border = this.border;
21929
21994
  if (border === true) {
@@ -30216,8 +30281,12 @@ function getExportData($xetable, opts) {
30216
30281
  function getBooleanValue(cellValue) {
30217
30282
  return cellValue === 'TRUE' || cellValue === 'true' || cellValue === true;
30218
30283
  }
30219
- function getHeaderTitle(opts, column) {
30220
- return (opts.original ? column.property : column.getTitle()) || '';
30284
+ function getHeaderTitle($xetable, opts, column) {
30285
+ var headerExportMethod = column.headerExportMethod;
30286
+ return headerExportMethod ? headerExportMethod({
30287
+ column: column,
30288
+ $table: $xetable
30289
+ }) : (opts.original ? column.property : column.getTitle()) || '';
30221
30290
  }
30222
30291
  function getFooterCellValue($xetable, opts, items, column) {
30223
30292
  var renderOpts = column.editRender || column.cellRender;
@@ -30280,7 +30349,7 @@ function toCsv($xetable, opts, columns, datas) {
30280
30349
  var content = csvBOM;
30281
30350
  if (opts.isHeader) {
30282
30351
  content += columns.map(function (column) {
30283
- return toTxtCellLabel(getHeaderTitle(opts, column));
30352
+ return toTxtCellLabel(getHeaderTitle($xetable, opts, column));
30284
30353
  }).join(',') + enterSymbol;
30285
30354
  }
30286
30355
  datas.forEach(function (row) {
@@ -30303,7 +30372,7 @@ function toTxt($xetable, opts, columns, datas) {
30303
30372
  var content = '';
30304
30373
  if (opts.isHeader) {
30305
30374
  content += columns.map(function (column) {
30306
- return toTxtCellLabel(getHeaderTitle(opts, column));
30375
+ return toTxtCellLabel(getHeaderTitle($xetable, opts, column));
30307
30376
  }).join('\t') + enterSymbol;
30308
30377
  }
30309
30378
  datas.forEach(function (row) {
@@ -30373,7 +30442,7 @@ function toHtml($xetable, opts, columns, datas) {
30373
30442
  tables.push("<tr>".concat(cols.map(function (column) {
30374
30443
  var headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
30375
30444
  var classNames = hasEllipsis($xetable, column, 'showHeaderOverflow', allColumnHeaderOverflow) ? ['col--ellipsis'] : [];
30376
- var cellTitle = getHeaderTitle(opts, column);
30445
+ var cellTitle = getHeaderTitle($xetable, opts, column);
30377
30446
  var childWidth = 0;
30378
30447
  var countChild = 0;
30379
30448
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column], function (item) {
@@ -30398,7 +30467,7 @@ function toHtml($xetable, opts, columns, datas) {
30398
30467
  tables.push("<tr>".concat(columns.map(function (column) {
30399
30468
  var headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
30400
30469
  var classNames = hasEllipsis($xetable, column, 'showHeaderOverflow', allColumnHeaderOverflow) ? ['col--ellipsis'] : [];
30401
- var cellTitle = getHeaderTitle(opts, column);
30470
+ var cellTitle = getHeaderTitle($xetable, opts, column);
30402
30471
  if (headAlign) {
30403
30472
  classNames.push("col--".concat(headAlign));
30404
30473
  }
@@ -30512,7 +30581,7 @@ function toXML($xetable, opts, columns, datas) {
30512
30581
  }).join('')].join('');
30513
30582
  if (opts.isHeader) {
30514
30583
  xml += "<Row>".concat(columns.map(function (column) {
30515
- return "<Cell><Data ss:Type=\"String\">".concat(getHeaderTitle(opts, column), "</Data></Cell>");
30584
+ return "<Cell><Data ss:Type=\"String\">".concat(getHeaderTitle($xetable, opts, column), "</Data></Cell>");
30516
30585
  }).join(''), "</Row>");
30517
30586
  }
30518
30587
  datas.forEach(function (row) {
@@ -31317,6 +31386,7 @@ var mixin_convertToRows = function convertToRows(originColumns) {
31317
31386
  };
31318
31387
  }
31319
31388
  if (customCols) {
31389
+ opts._isCustomColumn = true;
31320
31390
  groups = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(customCols, function (item) {
31321
31391
  var targetColumn;
31322
31392
  if (item) {
@@ -32950,6 +33020,8 @@ var column_props = {
32950
33020
  type: Boolean,
32951
33021
  "default": null
32952
33022
  },
33023
+ // 表头单元格数据导出方法
33024
+ headerExportMethod: Function,
32953
33025
  // 单元格数据导出方法
32954
33026
  exportMethod: Function,
32955
33027
  // 表尾单元格数据导出方法
@@ -34251,6 +34323,7 @@ var Grid = Object.assign(grid, {
34251
34323
 
34252
34324
 
34253
34325
 
34326
+
34254
34327
 
34255
34328
 
34256
34329
  var renderDropdowns = function renderDropdowns(h, _vm, item, isBtn) {
@@ -34416,6 +34489,7 @@ function renderCustoms(h, _vm) {
34416
34489
  customStore = _vm.customStore,
34417
34490
  customOpts = _vm.customOpts,
34418
34491
  columns = _vm.columns;
34492
+ var isMaxFixedColumn = $xetable ? $xetable.isMaxFixedColumn : true;
34419
34493
  var cols = [];
34420
34494
  var customBtnOns = {};
34421
34495
  var customWrapperOns = {};
@@ -34432,7 +34506,7 @@ function renderCustoms(h, _vm) {
34432
34506
  // 点击触发
34433
34507
  customBtnOns.click = _vm.handleClickSettingEvent;
34434
34508
  }
34435
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(columns, function (column) {
34509
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(columns, function (column, index, items, path, parent) {
34436
34510
  var colTitle = utils.formatText(column.getTitle(), 1);
34437
34511
  var colKey = column.getKey();
34438
34512
  var isColGroup = column.children && column.children.length;
@@ -34444,7 +34518,11 @@ function renderCustoms(h, _vm) {
34444
34518
  var isIndeterminate = column.halfVisible;
34445
34519
  cols.push(h('li', {
34446
34520
  "class": ['vxe-custom--option', "level--".concat(column.level), {
34447
- 'is--group': isColGroup,
34521
+ 'is--group': isColGroup
34522
+ }]
34523
+ }, [h('div', {
34524
+ title: colTitle,
34525
+ "class": ['vxe-custom--checkbox-option', {
34448
34526
  'is--checked': isChecked,
34449
34527
  'is--indeterminate': isIndeterminate,
34450
34528
  'is--disabled': isDisabled
@@ -34463,7 +34541,35 @@ function renderCustoms(h, _vm) {
34463
34541
  "class": ['vxe-checkbox--icon', isIndeterminate ? conf.icon.TABLE_CHECKBOX_INDETERMINATE : isChecked ? conf.icon.TABLE_CHECKBOX_CHECKED : conf.icon.TABLE_CHECKBOX_UNCHECKED]
34464
34542
  }), h('span', {
34465
34543
  "class": 'vxe-checkbox--label'
34466
- }, colTitle)]));
34544
+ }, colTitle)]), !parent && customOpts.allowFixed ? h('div', {
34545
+ "class": 'vxe-custom--fixed-option'
34546
+ }, [h('span', {
34547
+ "class": ['vxe-custom--fixed-left-option', column.fixed === 'left' ? conf.icon.TOOLBAR_TOOLS_FIXED_LEFT_ACTIVED : conf.icon.TOOLBAR_TOOLS_FIXED_LEFT, {
34548
+ 'is--checked': column.fixed === 'left',
34549
+ 'is--disabled': isMaxFixedColumn && !column.fixed
34550
+ }],
34551
+ attrs: {
34552
+ title: conf.i18n(column.fixed === 'left' ? 'vxe.toolbar.cancelfixed' : 'vxe.toolbar.fixedLeft')
34553
+ },
34554
+ on: {
34555
+ click: function click() {
34556
+ _vm.changeFixedOption(column, 'left');
34557
+ }
34558
+ }
34559
+ }), h('span', {
34560
+ "class": ['vxe-custom--fixed-right-option', column.fixed === 'right' ? conf.icon.TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVED : conf.icon.TOOLBAR_TOOLS_FIXED_RIGHT, {
34561
+ 'is--checked': column.fixed === 'right',
34562
+ 'is--disabled': isMaxFixedColumn && !column.fixed
34563
+ }],
34564
+ attrs: {
34565
+ title: conf.i18n(column.fixed === 'right' ? 'vxe.toolbar.cancelfixed' : 'vxe.toolbar.fixedRight')
34566
+ },
34567
+ on: {
34568
+ click: function click() {
34569
+ _vm.changeFixedOption(column, 'right');
34570
+ }
34571
+ }
34572
+ })]) : null]));
34467
34573
  }
34468
34574
  });
34469
34575
  var isAllChecked = customStore.isAll;
@@ -34487,7 +34593,9 @@ function renderCustoms(h, _vm) {
34487
34593
  }, [h('ul', {
34488
34594
  "class": 'vxe-custom--header'
34489
34595
  }, [h('li', {
34490
- "class": ['vxe-custom--option', {
34596
+ "class": 'vxe-custom--option'
34597
+ }, [h('div', {
34598
+ "class": ['vxe-custom--checkbox-option', {
34491
34599
  'is--checked': isAllChecked,
34492
34600
  'is--indeterminate': isAllIndeterminate
34493
34601
  }],
@@ -34501,22 +34609,22 @@ function renderCustoms(h, _vm) {
34501
34609
  "class": ['vxe-checkbox--icon', isAllIndeterminate ? conf.icon.TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? conf.icon.TABLE_CHECKBOX_CHECKED : conf.icon.TABLE_CHECKBOX_UNCHECKED]
34502
34610
  }), h('span', {
34503
34611
  "class": 'vxe-checkbox--label'
34504
- }, conf.i18n('vxe.toolbar.customAll'))])]), h('ul', {
34612
+ }, conf.i18n('vxe.toolbar.customAll'))])])]), h('ul', {
34505
34613
  "class": 'vxe-custom--body',
34506
34614
  on: customWrapperOns
34507
- }, cols), customOpts.isFooter === false ? null : h('div', {
34615
+ }, cols), customOpts.showFooter || customOpts.isFooter ? h('div', {
34508
34616
  "class": 'vxe-custom--footer'
34509
34617
  }, [h('button', {
34510
- "class": 'btn--confirm',
34511
- on: {
34512
- click: _vm.confirmCustomEvent
34513
- }
34514
- }, conf.i18n('vxe.toolbar.customConfirm')), h('button', {
34515
34618
  "class": 'btn--reset',
34516
34619
  on: {
34517
34620
  click: _vm.resetCustomEvent
34518
34621
  }
34519
- }, conf.i18n('vxe.toolbar.customRestore'))])])]);
34622
+ }, customOpts.resetButtonText || conf.i18n('vxe.toolbar.customRestore')), h('button', {
34623
+ "class": 'btn--confirm',
34624
+ on: {
34625
+ click: _vm.confirmCustomEvent
34626
+ }
34627
+ }, customOpts.confirmButtonText || conf.i18n('vxe.toolbar.customConfirm'))]) : null])]);
34520
34628
  }
34521
34629
  /* harmony default export */ const toolbar = ({
34522
34630
  name: 'VxeToolbar',
@@ -34779,6 +34887,16 @@ function renderCustoms(h, _vm) {
34779
34887
  }
34780
34888
  this.checkCustomStatus();
34781
34889
  },
34890
+ changeFixedOption: function changeFixedOption(column, colFixed) {
34891
+ var $xetable = this.$xetable;
34892
+ if (column.fixed === colFixed) {
34893
+ $xetable.clearColumnFixed(column);
34894
+ } else {
34895
+ if (!$xetable.isMaxFixedColumn || column.fixed) {
34896
+ $xetable.setColumnFixed(column, colFixed);
34897
+ }
34898
+ }
34899
+ },
34782
34900
  handleOptionCheck: function handleOptionCheck(column) {
34783
34901
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(this.columns, function (item) {
34784
34902
  return item === column;
@@ -37777,11 +37895,20 @@ function getResetValue(value, resetValue) {
37777
37895
  }
37778
37896
  },
37779
37897
  clearValidate: function clearValidate(fieldOrItem) {
37898
+ var _this6 = this;
37780
37899
  if (fieldOrItem) {
37781
- var item = handleFieldOrItem(this, fieldOrItem);
37782
- if (item) {
37783
- item.showError = false;
37900
+ var fields = fieldOrItem;
37901
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
37902
+ fields = [fieldOrItem];
37784
37903
  }
37904
+ fields.forEach(function (field) {
37905
+ if (field) {
37906
+ var item = handleFieldOrItem(_this6, field);
37907
+ if (item) {
37908
+ item.showError = false;
37909
+ }
37910
+ }
37911
+ });
37785
37912
  } else {
37786
37913
  this.getItems().forEach(function (item) {
37787
37914
  item.showError = false;
@@ -37794,11 +37921,17 @@ function getResetValue(value, resetValue) {
37794
37921
  return this.beginValidate(this.getItems(), '', callback);
37795
37922
  },
37796
37923
  validateField: function validateField(fieldOrItem, callback) {
37797
- var item = handleFieldOrItem(this, fieldOrItem);
37798
- return this.beginValidate(item ? [item] : [], '', callback);
37924
+ var _this7 = this;
37925
+ var fields = [];
37926
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
37927
+ fields = [fieldOrItem];
37928
+ }
37929
+ return this.beginValidate(fields.map(function (field) {
37930
+ return handleFieldOrItem(_this7, field);
37931
+ }), '', callback);
37799
37932
  },
37800
37933
  beginValidate: function beginValidate(itemList, type, callback) {
37801
- var _this6 = this;
37934
+ var _this8 = this;
37802
37935
  var data = this.data,
37803
37936
  formRules = this.rules,
37804
37937
  validOpts = this.validOpts;
@@ -37809,26 +37942,17 @@ function getResetValue(value, resetValue) {
37809
37942
  if (data && formRules) {
37810
37943
  itemList.forEach(function (item) {
37811
37944
  var field = item.field;
37812
- if (field && !isHiddenItem(_this6, item) && isActivetem(_this6, item)) {
37813
- itemValids.push(_this6.validItemRules(type || 'all', field).then(function () {
37945
+ if (field && !isHiddenItem(_this8, item) && isActivetem(_this8, item)) {
37946
+ itemValids.push(_this8.validItemRules(type || 'all', field).then(function () {
37814
37947
  item.errRule = null;
37815
- })["catch"](function (_ref2) {
37816
- var rule = _ref2.rule,
37817
- rules = _ref2.rules;
37818
- var rest = {
37819
- rule: rule,
37820
- rules: rules,
37821
- data: data,
37822
- field: field,
37823
- property: field,
37824
- $form: _this6
37825
- };
37948
+ })["catch"](function (errorMaps) {
37949
+ var rest = errorMaps[field];
37826
37950
  if (!validRest[field]) {
37827
37951
  validRest[field] = [];
37828
37952
  }
37829
37953
  validRest[field].push(rest);
37830
37954
  validFields.push(field);
37831
- item.errRule = rule;
37955
+ item.errRule = rest[0].rule;
37832
37956
  return Promise.reject(rest);
37833
37957
  }));
37834
37958
  }
@@ -37839,7 +37963,7 @@ function getResetValue(value, resetValue) {
37839
37963
  }
37840
37964
  })["catch"](function () {
37841
37965
  return new Promise(function (resolve) {
37842
- _this6.showErrTime = setTimeout(function () {
37966
+ _this8.showErrTime = setTimeout(function () {
37843
37967
  itemList.forEach(function (item) {
37844
37968
  if (item.errRule) {
37845
37969
  item.showError = true;
@@ -37847,8 +37971,8 @@ function getResetValue(value, resetValue) {
37847
37971
  });
37848
37972
  }, 20);
37849
37973
  if (validOpts.autoPos) {
37850
- _this6.$nextTick(function () {
37851
- _this6.handleFocus(validFields);
37974
+ _this8.$nextTick(function () {
37975
+ _this8.handleFocus(validFields);
37852
37976
  });
37853
37977
  }
37854
37978
  if (callback) {
@@ -37879,77 +38003,91 @@ function getResetValue(value, resetValue) {
37879
38003
  * validator=Function({ itemValue, rule, rules, data, property }) 自定义校验,接收一个 Promise
37880
38004
  * trigger=change 触发方式
37881
38005
  */
37882
- validItemRules: function validItemRules(validType, property, val) {
37883
- var _this7 = this;
38006
+ validItemRules: function validItemRules(validType, fields, val) {
38007
+ var _this9 = this;
37884
38008
  var data = this.data,
37885
38009
  formRules = this.rules;
37886
- var errorRules = [];
37887
- var syncVailds = [];
37888
- if (property && formRules) {
37889
- var rules = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(formRules, property);
37890
- if (rules) {
37891
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(val) ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, property) : val;
37892
- rules.forEach(function (rule) {
37893
- var type = rule.type,
37894
- trigger = rule.trigger,
37895
- required = rule.required;
37896
- if (validType === 'all' || !trigger || validType === rule.trigger) {
37897
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(rule.validator)) {
37898
- var customValid = rule.validator({
37899
- itemValue: itemValue,
37900
- rule: rule,
37901
- rules: rules,
37902
- data: data,
37903
- field: property,
37904
- property: property,
37905
- $form: _this7
37906
- });
37907
- if (customValid) {
37908
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isError(customValid)) {
37909
- errorRules.push(new form_Rule({
37910
- type: 'custom',
37911
- trigger: trigger,
37912
- content: customValid.message,
37913
- rule: new form_Rule(rule)
37914
- }));
37915
- } else if (customValid["catch"]) {
37916
- // 如果为异步校验(注:异步校验是并发无序的)
37917
- syncVailds.push(customValid["catch"](function (e) {
38010
+ var errorMaps = {};
38011
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fields)) {
38012
+ fields = [fields];
38013
+ }
38014
+ return Promise.all(fields.map(function (property) {
38015
+ var syncVailds = [];
38016
+ var errorRules = [];
38017
+ if (property && formRules) {
38018
+ var rules = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(formRules, property);
38019
+ if (rules) {
38020
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(val) ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, property) : val;
38021
+ rules.forEach(function (rule) {
38022
+ var type = rule.type,
38023
+ trigger = rule.trigger,
38024
+ required = rule.required;
38025
+ if (validType === 'all' || !trigger || validType === rule.trigger) {
38026
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(rule.validator)) {
38027
+ var customValid = rule.validator({
38028
+ itemValue: itemValue,
38029
+ rule: rule,
38030
+ rules: rules,
38031
+ data: data,
38032
+ field: property,
38033
+ property: property,
38034
+ $form: _this9
38035
+ });
38036
+ if (customValid) {
38037
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isError(customValid)) {
37918
38038
  errorRules.push(new form_Rule({
37919
38039
  type: 'custom',
37920
38040
  trigger: trigger,
37921
- content: e ? e.message : rule.content || rule.message,
38041
+ content: customValid.message,
37922
38042
  rule: new form_Rule(rule)
37923
38043
  }));
37924
- }));
38044
+ } else if (customValid["catch"]) {
38045
+ // 如果为异步校验(注:异步校验是并发无序的)
38046
+ syncVailds.push(customValid["catch"](function (e) {
38047
+ errorRules.push(new form_Rule({
38048
+ type: 'custom',
38049
+ trigger: trigger,
38050
+ content: e ? e.message : rule.content || rule.message,
38051
+ rule: new form_Rule(rule)
38052
+ }));
38053
+ }));
38054
+ }
37925
38055
  }
37926
- }
37927
- } else {
37928
- var isArrType = type === 'array';
37929
- var isArrVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(itemValue);
37930
- var hasEmpty = true;
37931
- if (isArrType || isArrVal) {
37932
- hasEmpty = !isArrVal || !itemValue.length;
37933
- } else if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(itemValue)) {
37934
- hasEmpty = eqEmptyValue(itemValue.trim());
37935
38056
  } else {
37936
- hasEmpty = eqEmptyValue(itemValue);
37937
- }
37938
- if (required ? hasEmpty || form_validErrorRuleValue(rule, itemValue) : !hasEmpty && form_validErrorRuleValue(rule, itemValue)) {
37939
- errorRules.push(new form_Rule(rule));
38057
+ var isArrType = type === 'array';
38058
+ var isArrVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(itemValue);
38059
+ var hasEmpty = true;
38060
+ if (isArrType || isArrVal) {
38061
+ hasEmpty = !isArrVal || !itemValue.length;
38062
+ } else if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(itemValue)) {
38063
+ hasEmpty = eqEmptyValue(itemValue.trim());
38064
+ } else {
38065
+ hasEmpty = eqEmptyValue(itemValue);
38066
+ }
38067
+ if (required ? hasEmpty || form_validErrorRuleValue(rule, itemValue) : !hasEmpty && form_validErrorRuleValue(rule, itemValue)) {
38068
+ errorRules.push(new form_Rule(rule));
38069
+ }
37940
38070
  }
37941
38071
  }
37942
- }
37943
- });
38072
+ });
38073
+ }
37944
38074
  }
37945
- }
37946
- return Promise.all(syncVailds).then(function () {
37947
- if (errorRules.length) {
37948
- var rest = {
37949
- rules: errorRules,
37950
- rule: errorRules[0]
37951
- };
37952
- return Promise.reject(rest);
38075
+ return Promise.all(syncVailds).then(function () {
38076
+ if (errorRules.length) {
38077
+ errorMaps[property] = errorRules.map(function (rule) {
38078
+ return {
38079
+ $form: _this9,
38080
+ rule: rule,
38081
+ data: data,
38082
+ field: property,
38083
+ property: property
38084
+ };
38085
+ });
38086
+ }
38087
+ });
38088
+ })).then(function () {
38089
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEmpty(errorMaps)) {
38090
+ return Promise.reject(errorMaps);
37953
38091
  }
37954
38092
  });
37955
38093
  },
@@ -37988,16 +38126,16 @@ function getResetValue(value, resetValue) {
37988
38126
  }
37989
38127
  },
37990
38128
  triggerItemEvent: function triggerItemEvent(evnt, field, itemValue) {
37991
- var _this8 = this;
38129
+ var _this10 = this;
37992
38130
  if (field) {
37993
38131
  return this.validItemRules(evnt ? ['blur'].includes(evnt.type) ? 'blur' : 'change' : 'all', field, itemValue).then(function () {
37994
- _this8.clearValidate(field);
37995
- })["catch"](function (_ref3) {
37996
- var rule = _ref3.rule;
37997
- var item = _this8.getItemByField(field);
37998
- if (item) {
38132
+ _this10.clearValidate(field);
38133
+ })["catch"](function (errorMaps) {
38134
+ var rest = errorMaps[field];
38135
+ var item = _this10.getItemByField(field);
38136
+ if (item && rest) {
37999
38137
  item.showError = true;
38000
- item.errRule = rule;
38138
+ item.errRule = rest[0].rule;
38001
38139
  }
38002
38140
  });
38003
38141
  }
@@ -39358,7 +39496,8 @@ var Pulldown = Object.assign(pulldown, {
39358
39496
  customTitle: '列设置',
39359
39497
  customAll: '全部',
39360
39498
  customConfirm: '确认',
39361
- customRestore: '重置'
39499
+ customRestore: '重置',
39500
+ maxFixedCol: '最大固定列的数量不能超过 {0} 个'
39362
39501
  },
39363
39502
  grid: {
39364
39503
  selectOneRecord: '请至少选择一条记录!',
@@ -39467,7 +39606,10 @@ var Pulldown = Object.assign(pulldown, {
39467
39606
  custom: '列设置',
39468
39607
  customAll: '全部',
39469
39608
  customConfirm: '确认',
39470
- customRestore: '还原'
39609
+ customRestore: '重置',
39610
+ fixedLeft: '固定在左侧',
39611
+ fixedRight: '固定在右侧',
39612
+ cancelfixed: '取消固定'
39471
39613
  },
39472
39614
  input: {
39473
39615
  date: {