vxe-table 4.20.5 → 4.20.7

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 (177) hide show
  1. package/dist/all.esm.js +81 -42
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/{iconfont.1784367605558.ttf → iconfont.1784868296497.ttf} +0 -0
  5. package/es/iconfont.1784868296497.woff +0 -0
  6. package/es/iconfont.1784868296497.woff2 +0 -0
  7. package/es/index.css +1 -1
  8. package/es/index.min.css +1 -1
  9. package/es/locale/lang/ar-EG.js +1 -1
  10. package/es/locale/lang/de-DE.js +1 -1
  11. package/es/locale/lang/en-US.js +1 -1
  12. package/es/locale/lang/es-ES.js +1 -1
  13. package/es/locale/lang/fr-FR.js +1 -1
  14. package/es/locale/lang/hu-HU.js +1 -1
  15. package/es/locale/lang/hy-AM.js +1 -1
  16. package/es/locale/lang/id-ID.js +1 -1
  17. package/es/locale/lang/it-IT.js +1 -1
  18. package/es/locale/lang/ja-JP.js +1 -1
  19. package/es/locale/lang/ko-KR.js +1 -1
  20. package/es/locale/lang/ms-MY.js +1 -1
  21. package/es/locale/lang/nb-NO.js +1 -1
  22. package/es/locale/lang/pt-BR.js +1 -1
  23. package/es/locale/lang/ru-RU.js +1 -1
  24. package/es/locale/lang/th-TH.js +1 -1
  25. package/es/locale/lang/ug-CN.js +1 -1
  26. package/es/locale/lang/uk-UA.js +1 -1
  27. package/es/locale/lang/uz-UZ.js +1 -1
  28. package/es/locale/lang/vi-VN.js +1 -1
  29. package/es/locale/lang/zh-CHT.js +1 -1
  30. package/es/locale/lang/zh-CN.js +1 -1
  31. package/es/style.css +1 -1
  32. package/es/style.min.css +1 -1
  33. package/es/table/module/custom/panel.js +2 -2
  34. package/es/table/module/export/hook.js +69 -31
  35. package/es/table/module/export/util.js +1 -1
  36. package/es/table/src/table.js +4 -3
  37. package/es/table/style.css +43 -22
  38. package/es/table/style.min.css +1 -1
  39. package/es/ui/index.js +2 -2
  40. package/es/ui/src/dom.js +3 -0
  41. package/es/ui/src/log.js +2 -2
  42. package/es/vxe-table/style.css +43 -22
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/lib/{iconfont.1784367605558.ttf → iconfont.1784868296497.ttf} +0 -0
  45. package/lib/iconfont.1784868296497.woff +0 -0
  46. package/lib/iconfont.1784868296497.woff2 +0 -0
  47. package/lib/index.css +1 -1
  48. package/lib/index.min.css +1 -1
  49. package/lib/index.umd.js +89 -41
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.js +1 -1
  52. package/lib/locale/lang/ar-EG.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.umd.js +1 -1
  54. package/lib/locale/lang/de-DE.js +1 -1
  55. package/lib/locale/lang/de-DE.min.js +1 -1
  56. package/lib/locale/lang/de-DE.umd.js +1 -1
  57. package/lib/locale/lang/en-US.js +1 -1
  58. package/lib/locale/lang/en-US.min.js +1 -1
  59. package/lib/locale/lang/en-US.umd.js +1 -1
  60. package/lib/locale/lang/es-ES.js +1 -1
  61. package/lib/locale/lang/es-ES.min.js +1 -1
  62. package/lib/locale/lang/es-ES.umd.js +1 -1
  63. package/lib/locale/lang/fr-FR.js +1 -1
  64. package/lib/locale/lang/fr-FR.min.js +1 -1
  65. package/lib/locale/lang/fr-FR.umd.js +1 -1
  66. package/lib/locale/lang/hu-HU.js +1 -1
  67. package/lib/locale/lang/hu-HU.min.js +1 -1
  68. package/lib/locale/lang/hu-HU.umd.js +1 -1
  69. package/lib/locale/lang/hy-AM.js +1 -1
  70. package/lib/locale/lang/hy-AM.min.js +1 -1
  71. package/lib/locale/lang/hy-AM.umd.js +1 -1
  72. package/lib/locale/lang/id-ID.js +1 -1
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/id-ID.umd.js +1 -1
  75. package/lib/locale/lang/it-IT.js +1 -1
  76. package/lib/locale/lang/it-IT.min.js +1 -1
  77. package/lib/locale/lang/it-IT.umd.js +1 -1
  78. package/lib/locale/lang/ja-JP.js +1 -1
  79. package/lib/locale/lang/ja-JP.min.js +1 -1
  80. package/lib/locale/lang/ja-JP.umd.js +1 -1
  81. package/lib/locale/lang/ko-KR.js +1 -1
  82. package/lib/locale/lang/ko-KR.min.js +1 -1
  83. package/lib/locale/lang/ko-KR.umd.js +1 -1
  84. package/lib/locale/lang/ms-MY.js +1 -1
  85. package/lib/locale/lang/ms-MY.min.js +1 -1
  86. package/lib/locale/lang/ms-MY.umd.js +1 -1
  87. package/lib/locale/lang/nb-NO.js +1 -1
  88. package/lib/locale/lang/nb-NO.min.js +1 -1
  89. package/lib/locale/lang/nb-NO.umd.js +1 -1
  90. package/lib/locale/lang/pt-BR.js +1 -1
  91. package/lib/locale/lang/pt-BR.min.js +1 -1
  92. package/lib/locale/lang/pt-BR.umd.js +1 -1
  93. package/lib/locale/lang/ru-RU.js +1 -1
  94. package/lib/locale/lang/ru-RU.min.js +1 -1
  95. package/lib/locale/lang/ru-RU.umd.js +1 -1
  96. package/lib/locale/lang/th-TH.js +1 -1
  97. package/lib/locale/lang/th-TH.min.js +1 -1
  98. package/lib/locale/lang/th-TH.umd.js +1 -1
  99. package/lib/locale/lang/ug-CN.js +1 -1
  100. package/lib/locale/lang/ug-CN.min.js +1 -1
  101. package/lib/locale/lang/ug-CN.umd.js +1 -1
  102. package/lib/locale/lang/uk-UA.js +1 -1
  103. package/lib/locale/lang/uk-UA.min.js +1 -1
  104. package/lib/locale/lang/uk-UA.umd.js +1 -1
  105. package/lib/locale/lang/uz-UZ.js +1 -1
  106. package/lib/locale/lang/uz-UZ.min.js +1 -1
  107. package/lib/locale/lang/uz-UZ.umd.js +1 -1
  108. package/lib/locale/lang/vi-VN.js +1 -1
  109. package/lib/locale/lang/vi-VN.min.js +1 -1
  110. package/lib/locale/lang/vi-VN.umd.js +1 -1
  111. package/lib/locale/lang/zh-CHT.js +1 -1
  112. package/lib/locale/lang/zh-CHT.min.js +1 -1
  113. package/lib/locale/lang/zh-CHT.umd.js +1 -1
  114. package/lib/locale/lang/zh-CN.js +1 -1
  115. package/lib/locale/lang/zh-CN.min.js +1 -1
  116. package/lib/locale/lang/zh-CN.umd.js +1 -1
  117. package/lib/style.css +1 -1
  118. package/lib/style.min.css +1 -1
  119. package/lib/table/module/custom/panel.js +2 -2
  120. package/lib/table/module/custom/panel.min.js +1 -1
  121. package/lib/table/module/export/hook.js +75 -32
  122. package/lib/table/module/export/hook.min.js +1 -1
  123. package/lib/table/module/export/util.js +1 -1
  124. package/lib/table/module/export/util.min.js +1 -1
  125. package/lib/table/src/table.js +2 -1
  126. package/lib/table/src/table.min.js +1 -1
  127. package/lib/table/style/style.css +43 -22
  128. package/lib/table/style/style.min.css +1 -1
  129. package/lib/ui/index.js +2 -2
  130. package/lib/ui/index.min.js +1 -1
  131. package/lib/ui/src/dom.js +4 -0
  132. package/lib/ui/src/dom.min.js +1 -1
  133. package/lib/ui/src/log.js +2 -2
  134. package/lib/ui/src/log.min.js +1 -1
  135. package/lib/vxe-table/style/style.css +43 -22
  136. package/lib/vxe-table/style/style.min.css +1 -1
  137. package/package.json +2 -2
  138. package/packages/locale/lang/ar-EG.ts +1 -1
  139. package/packages/locale/lang/de-DE.ts +1 -1
  140. package/packages/locale/lang/en-US.ts +1 -1
  141. package/packages/locale/lang/es-ES.ts +1 -1
  142. package/packages/locale/lang/fr-FR.ts +1 -1
  143. package/packages/locale/lang/hu-HU.ts +1 -1
  144. package/packages/locale/lang/hy-AM.ts +1 -1
  145. package/packages/locale/lang/id-ID.ts +1 -1
  146. package/packages/locale/lang/it-IT.ts +1 -1
  147. package/packages/locale/lang/ja-JP.ts +1 -1
  148. package/packages/locale/lang/ko-KR.ts +1 -1
  149. package/packages/locale/lang/ms-MY.ts +1 -1
  150. package/packages/locale/lang/nb-NO.ts +1 -1
  151. package/packages/locale/lang/pt-BR.ts +1 -1
  152. package/packages/locale/lang/ru-RU.ts +1 -1
  153. package/packages/locale/lang/th-TH.ts +1 -1
  154. package/packages/locale/lang/ug-CN.ts +1 -1
  155. package/packages/locale/lang/uk-UA.ts +1 -1
  156. package/packages/locale/lang/uz-UZ.ts +1 -1
  157. package/packages/locale/lang/vi-VN.ts +1 -1
  158. package/packages/locale/lang/zh-CHT.ts +1 -1
  159. package/packages/locale/lang/zh-CN.ts +1 -1
  160. package/packages/table/module/custom/panel.ts +2 -2
  161. package/packages/table/module/export/hook.ts +71 -31
  162. package/packages/table/module/export/util.ts +1 -1
  163. package/packages/table/src/table.ts +4 -3
  164. package/packages/ui/index.ts +1 -1
  165. package/packages/ui/src/dom.ts +4 -0
  166. package/packages/ui/src/log.ts +1 -1
  167. package/styles/components/icon.scss +5 -1
  168. package/styles/components/table.scss +1 -1
  169. package/styles/helpers/baseMixin.scss +16 -5
  170. package/styles/icon/iconfont.ttf +0 -0
  171. package/styles/icon/iconfont.woff +0 -0
  172. package/styles/icon/iconfont.woff2 +0 -0
  173. package/styles/theme/base.scss +1 -0
  174. package/es/iconfont.1784367605558.woff +0 -0
  175. package/es/iconfont.1784367605558.woff2 +0 -0
  176. package/lib/iconfont.1784367605558.woff +0 -0
  177. package/lib/iconfont.1784367605558.woff2 +0 -0
package/dist/all.esm.js CHANGED
@@ -44,7 +44,7 @@ function eqEmptyValue(cellValue) {
44
44
  return cellValue === '' || XEUtils.eqNull(cellValue);
45
45
  }
46
46
 
47
- const version = "4.20.5";
47
+ const version = "4.20.7";
48
48
  VxeUI.version = version;
49
49
  VxeUI.tableVersion = version;
50
50
  VxeUI.setConfig({
@@ -425,7 +425,7 @@ VxeUI.setIcon({
425
425
  TOOLBAR_TOOLS_PRINT: iconPrefix + 'print',
426
426
  TOOLBAR_TOOLS_FULLSCREEN: iconPrefix + 'fullscreen',
427
427
  TOOLBAR_TOOLS_MINIMIZE: iconPrefix + 'minimize',
428
- TOOLBAR_TOOLS_CUSTOM: iconPrefix + 'custom-column',
428
+ TOOLBAR_TOOLS_CUSTOM: iconPrefix + 'setting',
429
429
  TOOLBAR_TOOLS_FIXED_LEFT: iconPrefix + 'fixed-left',
430
430
  TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE: iconPrefix + 'fixed-left-fill',
431
431
  TOOLBAR_TOOLS_FIXED_RIGHT: iconPrefix + 'fixed-right',
@@ -756,12 +756,12 @@ function wheelScrollTopTo(diffNum, cb) {
756
756
  }
757
757
 
758
758
  const { log } = VxeUI;
759
- const tableVersion = `table v${"4.20.5"}`;
759
+ const tableVersion = `table v${"4.20.7"}`;
760
760
  function createComponentLog(name) {
761
761
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
762
762
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
763
763
  const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : '';
764
- const versionInfo = [uiVersion, tableVersion, ganttVersion, designVersion].join(' ');
764
+ const versionInfo = [uiVersion, tableVersion, ganttVersion, designVersion].filter(v => v).join(' ');
765
765
  return {
766
766
  warnLog: log.create('warn', versionInfo + '] [' + name),
767
767
  errLog: log.create('error', versionInfo + '] [' + name)
@@ -6909,8 +6909,8 @@ var TableCustomPanelComponent = defineVxeComponent({
6909
6909
  immediate: false,
6910
6910
  disabled: isHidden,
6911
6911
  modelValue: column.renderResizeWidth,
6912
- min: customMinWidth || undefined,
6913
- max: customMaxWidth || undefined,
6912
+ min: customMinWidth || 0,
6913
+ max: customMaxWidth || 9999,
6914
6914
  'onUpdate:modelValue'(value) {
6915
6915
  const width = Math.max(0, Number(value));
6916
6916
  column.renderResizeWidth = width;
@@ -10447,7 +10447,7 @@ hooks$5.add('tableEditModule', {
10447
10447
  });
10448
10448
 
10449
10449
  // 默认导出或打印的 HTML 样式
10450
- const defaultHtmlStyle = 'body{padding:0;color:rgba(0,0,0,0.7);font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu;}body *{-webkit-box-sizing:border-box;box-sizing:border-box;}.vxe-table{border-collapse:collapse;text-align:left;border-spacing:0;}.vxe-table.is--default-width,.vxe-table.is--auto-width{width:100%;}.vxe-table.is--scale-width{table-layout:fixed;}.vxe-table,.vxe-table th,.vxe-table td,.vxe-table td{word-break:break-all;border-color:#D0D0D0;border-style:solid;border-width:0;}.border--default,.border--full,.border--outer{border-top-width:1px;}.border--default,.border--full,.border--outer{border-left-width:1px}.border--outer,.border--default th,.border--default td,.border--full th,.border--full td,.border--outer th,.border--inner th,.border--inner td{border-bottom-width:1px;}.border--default,.border--outer,.border--full th,.border--full td{border-right-width:1px;}.border--default th,.border--full th,.border--outer th{background-color:#f8f8f9;}.vxe-table td>div,.vxe-table th>div{padding:0.5em 0.4em;}.col--center{text-align:center;}.col--right{text-align:right;}.vxe-table .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all;}.vxe-table--tree-node{text-align:left;}.vxe-table--tree-node-wrapper{position:relative;}.vxe-table--tree-icon-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;}.vxe-table--tree-unfold-icon,.vxe-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:0.5em;border-right-color:transparent;border-bottom-color:transparent;}.vxe-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent;}.vxe-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599;}.vxe-table--tree-cell{display:block;padding-left:1.5em;}.vxe-table input[type="checkbox"]{margin:0;}.vxe-table input[type="checkbox"],.vxe-table input[type="radio"],.vxe-table input[type="checkbox"]+span,.vxe-table input[type="radio"]+span{vertical-align:middle;padding-left:0.4em}';
10450
+ const defaultHtmlStyle = 'body{padding:0;color:rgba(0,0,0,0.7);font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu}body *{-webkit-box-sizing:border-box;box-sizing:border-box}.vxe-table{border-collapse:collapse;text-align:left;border-spacing:0}.vxe-table.is--default-width,.vxe-table.is--auto-width{width:100%}.vxe-table.is--scale-width{table-layout:fixed}.vxe-table,.vxe-table th,.vxe-table td,.vxe-table td{white-space:pre-line;word-break:break-all;border-color:#D0D0D0;border-style:solid;border-width:0}.border--default,.border--full,.border--outer{border-top-width:1px}.border--default,.border--full,.border--outer{border-left-width:1px}.border--outer,.border--default th,.border--default td,.border--full th,.border--full td,.border--outer th,.border--inner th,.border--inner td{border-bottom-width:1px}.border--default,.border--outer,.border--full th,.border--full td{border-right-width:1px}.border--default th,.border--full th,.border--outer th{background-color:#f8f8f9}.vxe-table td>div,.vxe-table th>div{padding:0.5em 0.4em}.col--center{text-align:center}.col--right{text-align:right}.vxe-table .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.vxe-table--tree-node{text-align:left}.vxe-table--tree-node-wrapper{position:relative}.vxe-table--tree-icon-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-table--tree-unfold-icon,.vxe-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:0.5em;border-right-color:transparent;border-bottom-color:transparent}.vxe-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent}.vxe-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599}.vxe-table--tree-cell{display:block;padding-left:1.5em}.vxe-table input[type="checkbox"]{margin:0}.vxe-table input[type="checkbox"],.vxe-table input[type="radio"],.vxe-table input[type="checkbox"]+span,.vxe-table input[type="radio"]+span{vertical-align:middle;padding-left:0.4em}';
10451
10451
  function getExportBlobByContent(content, options) {
10452
10452
  return new Blob([content], { type: `text/${options.type};charset=utf-8;` });
10453
10453
  }
@@ -10573,7 +10573,7 @@ function toTxtCellLabel(val) {
10573
10573
  if (/[",\s\n]/.test(val)) {
10574
10574
  return `"${val.replace(/"/g, '""')}"`;
10575
10575
  }
10576
- return val;
10576
+ return XEUtils.eqNull(val) ? '' : val;
10577
10577
  }
10578
10578
  function getElementsByTagName(elem, qualifiedName) {
10579
10579
  return elem.getElementsByTagName(qualifiedName);
@@ -11651,19 +11651,21 @@ hooks$4.add('tableExportModule', {
11651
11651
  return false;
11652
11652
  });
11653
11653
  };
11654
- const handleFilterFields = (exportOpts, column, includeFields, excludeFields) => {
11655
- if (excludeFields) {
11656
- if (XEUtils.includes(excludeFields, column.field)) {
11657
- return false;
11658
- }
11654
+ const handleFilterFields = (exportOpts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps) => {
11655
+ const { field } = column;
11656
+ if (excludeFdMaps[field]) {
11657
+ return false;
11659
11658
  }
11660
11659
  if (includeFields) {
11661
- if (XEUtils.includes(includeFields, column.field)) {
11660
+ if (includeFdMaps[field]) {
11662
11661
  return true;
11663
11662
  }
11664
11663
  return false;
11665
11664
  }
11666
- return exportOpts.original ? !!column.field : defaultFilterExportColumn(column);
11665
+ if (extraFdMaps[field]) {
11666
+ return true;
11667
+ }
11668
+ return exportOpts.original ? !!field : defaultFilterExportColumn(column);
11667
11669
  };
11668
11670
  const handleExportAndPrint = (options, isPrint) => {
11669
11671
  const $xeGrid = $xeTable.xeGrid;
@@ -11700,7 +11702,7 @@ hooks$4.add('tableExportModule', {
11700
11702
  const modes = defOpts.modes || [];
11701
11703
  const checkMethod = customOpts.checkMethod;
11702
11704
  const exportColumns = collectColumn.slice(0);
11703
- const { columns, excludeFields, includeFields } = defOpts;
11705
+ const { columns, excludeFields, includeFields, extraFields } = defOpts;
11704
11706
  // 处理类型
11705
11707
  const typeList = types.map((value) => {
11706
11708
  return {
@@ -11720,22 +11722,47 @@ hooks$4.add('tableExportModule', {
11720
11722
  label: getI18n$4(`vxe.export.modes.${item}`)
11721
11723
  };
11722
11724
  });
11725
+ const excludeFdMaps = {};
11726
+ if (excludeFields && excludeFields.length) {
11727
+ excludeFields.forEach(field => {
11728
+ excludeFdMaps[field] = 1;
11729
+ });
11730
+ }
11731
+ const includeFdMaps = {};
11732
+ if (includeFields && includeFields.length) {
11733
+ includeFields.forEach(field => {
11734
+ includeFdMaps[field] = 1;
11735
+ });
11736
+ }
11737
+ const extraFdMaps = {};
11738
+ if (extraFields) {
11739
+ extraFields.forEach(field => {
11740
+ extraFdMaps[field] = 1;
11741
+ });
11742
+ }
11723
11743
  // 默认选中
11724
- XEUtils.eachTree(exportColumns, (column, index, items, path, parent) => {
11744
+ // 优先级 columns > excludeFields > (includeFields || extraFields)
11745
+ XEUtils.eachTree(exportColumns, (column, index, items, path, parentColumn) => {
11725
11746
  const isColGroup = column.children && column.children.length > 0;
11726
11747
  let isChecked = false;
11748
+ const isExtraChecked = extraFdMaps[column.field];
11727
11749
  if (columns && columns.length) {
11728
11750
  isChecked = handleFilterColumns(defOpts, column, columns);
11729
11751
  }
11730
11752
  else if (excludeFields || includeFields) {
11731
- isChecked = handleFilterFields(defOpts, column, includeFields, excludeFields);
11753
+ isChecked = handleFilterFields(defOpts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps);
11732
11754
  }
11733
11755
  else {
11734
- isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
11756
+ if (isExtraChecked) {
11757
+ isChecked = true;
11758
+ }
11759
+ else {
11760
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
11761
+ }
11735
11762
  }
11736
11763
  column.checked = isChecked;
11737
11764
  column.halfChecked = false;
11738
- column.disabled = (parent && parent.disabled) || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false);
11765
+ column.disabled = (parentColumn && parentColumn.disabled) || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false);
11739
11766
  });
11740
11767
  // 更新条件
11741
11768
  exportStore.columns = exportColumns;
@@ -11846,30 +11873,54 @@ hooks$4.add('tableExportModule', {
11846
11873
  warnLog$4('vxe.error.delProp', ['isAllExpand', 'isTreeAllExpanded']);
11847
11874
  opts.isTreeAllExpanded = opts.isAllExpand;
11848
11875
  }
11849
- let { filename, sheetName, type, mode, columns, original, columnFilterMethod, beforeExportMethod, includeFields, excludeFields } = opts;
11876
+ let { filename, sheetName, type, mode, columns, columnFilterMethod, beforeExportMethod, includeFields, excludeFields, extraFields } = opts;
11850
11877
  let groups = [];
11851
11878
  const selectRecords = $xeTable.getCheckboxRecords();
11852
11879
  if (!mode) {
11853
11880
  mode = selectRecords.length ? 'selected' : 'current';
11854
11881
  }
11882
+ const excludeFdMaps = {};
11883
+ if (excludeFields && excludeFields.length) {
11884
+ excludeFields.forEach(field => {
11885
+ excludeFdMaps[field] = 1;
11886
+ });
11887
+ }
11888
+ const includeFdMaps = {};
11889
+ if (includeFields && includeFields.length) {
11890
+ includeFields.forEach(field => {
11891
+ includeFdMaps[field] = 1;
11892
+ });
11893
+ }
11894
+ const extraFdMaps = {};
11895
+ if (extraFields) {
11896
+ extraFields.forEach(field => {
11897
+ extraFdMaps[field] = 1;
11898
+ });
11899
+ }
11855
11900
  let isCustomCol = false;
11856
11901
  let customCols = [];
11857
11902
  if (columns && columns.length) {
11858
11903
  isCustomCol = true;
11859
- customCols = columns;
11904
+ customCols = XEUtils.searchTree(columns, () => true, { children: 'children', mapChildren: 'childNodes', original: true });
11860
11905
  }
11861
11906
  else {
11862
11907
  customCols = XEUtils.searchTree(collectColumn, column => {
11863
11908
  const isColGroup = column.children && column.children.length > 0;
11864
11909
  let isChecked = false;
11910
+ const isExtraChecked = extraFdMaps[column.field];
11865
11911
  if (columns && columns.length) {
11866
11912
  isChecked = handleFilterColumns(opts, column, columns);
11867
11913
  }
11868
11914
  else if (excludeFields || includeFields) {
11869
- isChecked = handleFilterFields(opts, column, includeFields, excludeFields);
11915
+ isChecked = handleFilterFields(opts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps);
11870
11916
  }
11871
11917
  else {
11872
- isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
11918
+ if (isExtraChecked) {
11919
+ isChecked = true;
11920
+ }
11921
+ else {
11922
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
11923
+ }
11873
11924
  }
11874
11925
  return isChecked;
11875
11926
  }, { children: 'children', mapChildren: 'childNodes', original: true });
@@ -11877,20 +11928,7 @@ hooks$4.add('tableExportModule', {
11877
11928
  const handleOptions = Object.assign({}, opts, { filename: '', sheetName: '', _columnConfs: columns });
11878
11929
  // 如果设置源数据,则默认导出设置了字段的列
11879
11930
  if (!isCustomCol && !columnFilterMethod) {
11880
- columnFilterMethod = ({ column }) => {
11881
- if (excludeFields) {
11882
- if (XEUtils.includes(excludeFields, column.field)) {
11883
- return false;
11884
- }
11885
- }
11886
- if (includeFields) {
11887
- if (XEUtils.includes(includeFields, column.field)) {
11888
- return true;
11889
- }
11890
- return false;
11891
- }
11892
- return original ? !!column.field : defaultFilterExportColumn(column);
11893
- };
11931
+ columnFilterMethod = ({ column }) => handleFilterFields(handleOptions, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps);
11894
11932
  handleOptions.columnFilterMethod = columnFilterMethod;
11895
11933
  }
11896
11934
  if (customCols) {
@@ -15880,15 +15918,16 @@ var VxeTableComponent = defineVxeComponent({
15880
15918
  const { extraFields, includeFields, excludeFields } = editDirtyOpts;
15881
15919
  const kpFields = [];
15882
15920
  if (updateColFlag) {
15883
- if (includeFields && includeFields.length) {
15884
- return includeFields;
15885
- }
15921
+ // 优先级 excludeFields > (includeFields || extraFields)
15886
15922
  const excludeFdMaps = {};
15887
15923
  if (excludeFields && excludeFields.length) {
15888
15924
  excludeFields.forEach(field => {
15889
15925
  excludeFdMaps[field] = 1;
15890
15926
  });
15891
15927
  }
15928
+ if (includeFields && includeFields.length) {
15929
+ return excludeFields && excludeFields.length ? includeFields.filter(field => !excludeFdMaps[field]) : includeFields;
15930
+ }
15892
15931
  const addFdMaps = {};
15893
15932
  if (extraFields && extraFields.length) {
15894
15933
  extraFields.forEach(field => {
@@ -32584,7 +32623,7 @@ var zhCN = {
32584
32623
  expMode: '选择数据',
32585
32624
  expCurrentColumn: '全部字段',
32586
32625
  expColumn: '选择字段',
32587
- widthMode: '列宽方式',
32626
+ widthMode: '列宽设置',
32588
32627
  wModeTitle: '设置打印时列宽的渲染方式',
32589
32628
  wdModes: {
32590
32629
  default: '默认',