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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.20.5",
3
+ "version": "4.20.7",
4
4
  "description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -66,7 +66,7 @@
66
66
  "typescript": "~5.9.3",
67
67
  "vue": "3.4.27",
68
68
  "vue-router": "~4.5.1",
69
- "vxe-pc-ui": "4.16.15"
69
+ "vxe-pc-ui": "4.16.21"
70
70
  },
71
71
  "vetur": {
72
72
  "tags": "helper/vetur/tags.json",
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'حدد البيانات',
241
241
  expCurrentColumn: 'جميع الحقول',
242
242
  expColumn: 'حدد الحقل',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Daten auswählen',
241
241
  expCurrentColumn: 'Alle Felder',
242
242
  expColumn: 'Wählen Sie ein Feld aus',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Select data',
241
241
  expCurrentColumn: 'All fields',
242
242
  expColumn: 'Select field',
243
- widthMode: 'Column width mode',
243
+ widthMode: 'Column width settings',
244
244
  wModeTitle: 'Set the rendering mode for column width during printing',
245
245
  wdModes: {
246
246
  default: 'Default',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Seleccionar datos',
241
241
  expCurrentColumn: 'Todos los campos',
242
242
  expColumn: 'Seleccione un campo',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Sélectionner des données',
241
241
  expCurrentColumn: 'Tous les champs',
242
242
  expColumn: 'Sélectionner le champ',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Válassza ki az adatokat',
241
241
  expCurrentColumn: 'Minden mező',
242
242
  expColumn: 'Válassza ki a mezőt',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: '选择数据',
241
241
  expCurrentColumn: '全部字段',
242
242
  expColumn: '选择字段',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Pilih Data',
241
241
  expCurrentColumn: 'Semua bidang',
242
242
  expColumn: 'Pilih bidang',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Seleziona i dati',
241
241
  expCurrentColumn: 'Tutti i campi',
242
242
  expColumn: 'Seleziona il campo',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'データを選択します',
241
241
  expCurrentColumn: 'すべてのフィールド',
242
242
  expColumn: 'フィールドを選択します',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: '데이터를 선택하십시오',
241
241
  expCurrentColumn: '모든 필드',
242
242
  expColumn: '필드를 선택하십시오',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Pilih data',
241
241
  expCurrentColumn: 'Semua bidang',
242
242
  expColumn: 'Pilih medan',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Velg data',
241
241
  expCurrentColumn: 'Alle felt',
242
242
  expColumn: 'Velg felt',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Selecione dados',
241
241
  expCurrentColumn: 'Todos os campos',
242
242
  expColumn: 'Selecione o campo',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Выберите данные',
241
241
  expCurrentColumn: 'Все поля',
242
242
  expColumn: 'Выберите поле',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'เลือกข้อมูล',
241
241
  expCurrentColumn: 'ทั้งหมดฟิลด์',
242
242
  expColumn: 'เลือกฟิลด์',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'ئۇچۇر تاللاش',
241
241
  expCurrentColumn: 'بارلىق سۆز بۆلەك',
242
242
  expColumn: 'سۆز بولىكىنى تاللاش',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Виберіть дані',
241
241
  expCurrentColumn: 'Всі поля',
242
242
  expColumn: 'Виберіть поле',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: "Ma'lumotni tanlang",
241
241
  expCurrentColumn: 'Barcha maydonlar',
242
242
  expColumn: 'Maydonni tanlang',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: 'Chọn dữ liệu',
241
241
  expCurrentColumn: 'Tất cả các lĩnh vực',
242
242
  expColumn: 'Chọn một trường',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: '選擇數據',
241
241
  expCurrentColumn: '全部字段',
242
242
  expColumn: '選擇字段',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -240,7 +240,7 @@ export default {
240
240
  expMode: '选择数据',
241
241
  expCurrentColumn: '全部字段',
242
242
  expColumn: '选择字段',
243
- widthMode: '列宽方式',
243
+ widthMode: '列宽设置',
244
244
  wModeTitle: '设置打印时列宽的渲染方式',
245
245
  wdModes: {
246
246
  default: '默认',
@@ -1252,8 +1252,8 @@ export default defineVxeComponent({
1252
1252
  immediate: false,
1253
1253
  disabled: isHidden,
1254
1254
  modelValue: column.renderResizeWidth,
1255
- min: customMinWidth || undefined,
1256
- max: customMaxWidth || undefined,
1255
+ min: customMinWidth || 0,
1256
+ max: customMaxWidth || 9999,
1257
1257
  'onUpdate:modelValue' (value: any) {
1258
1258
  const width = Math.max(0, Number(value))
1259
1259
  column.renderResizeWidth = width
@@ -129,7 +129,7 @@ function toTxtCellLabel (val: any) {
129
129
  if (/[",\s\n]/.test(val)) {
130
130
  return `"${val.replace(/"/g, '""')}"`
131
131
  }
132
- return val
132
+ return XEUtils.eqNull(val) ? '' : val
133
133
  }
134
134
 
135
135
  function getElementsByTagName (elem: any, qualifiedName: any) {
@@ -1254,19 +1254,21 @@ hooks.add('tableExportModule', {
1254
1254
  })
1255
1255
  }
1256
1256
 
1257
- const handleFilterFields = (exportOpts: VxeTablePropTypes.ExportConfig, column: VxeTableDefines.ColumnInfo, includeFields: string[] | undefined, excludeFields: string[] | undefined) => {
1258
- if (excludeFields) {
1259
- if (XEUtils.includes(excludeFields, column.field)) {
1260
- return false
1261
- }
1257
+ const handleFilterFields = (exportOpts: VxeTablePropTypes.ExportConfig, column: VxeTableDefines.ColumnInfo, includeFields: string[] | undefined, includeFdMaps: Record<string, number>, excludeFdMaps: Record<string, number>, extraFdMaps: Record<string, number>) => {
1258
+ const { field } = column
1259
+ if (excludeFdMaps[field]) {
1260
+ return false
1262
1261
  }
1263
1262
  if (includeFields) {
1264
- if (XEUtils.includes(includeFields, column.field)) {
1263
+ if (includeFdMaps[field]) {
1265
1264
  return true
1266
1265
  }
1267
1266
  return false
1268
1267
  }
1269
- return exportOpts.original ? !!column.field : defaultFilterExportColumn(column)
1268
+ if (extraFdMaps[field]) {
1269
+ return true
1270
+ }
1271
+ return exportOpts.original ? !!field : defaultFilterExportColumn(column)
1270
1272
  }
1271
1273
 
1272
1274
  const handleExportAndPrint = (options: VxeTablePropTypes.ExportOpts | VxeTablePropTypes.ExportConfig, isPrint?: boolean) => {
@@ -1307,7 +1309,7 @@ hooks.add('tableExportModule', {
1307
1309
  const modes: string[] = defOpts.modes || []
1308
1310
  const checkMethod = customOpts.checkMethod
1309
1311
  const exportColumns = collectColumn.slice(0)
1310
- const { columns, excludeFields, includeFields } = defOpts
1312
+ const { columns, excludeFields, includeFields, extraFields } = defOpts
1311
1313
  // 处理类型
1312
1314
  const typeList = types.map((value) => {
1313
1315
  return {
@@ -1327,20 +1329,46 @@ hooks.add('tableExportModule', {
1327
1329
  label: getI18n(`vxe.export.modes.${item}`)
1328
1330
  }
1329
1331
  })
1332
+
1333
+ const excludeFdMaps: Record<string, number> = {}
1334
+ if (excludeFields && excludeFields.length) {
1335
+ excludeFields.forEach(field => {
1336
+ excludeFdMaps[field] = 1
1337
+ })
1338
+ }
1339
+ const includeFdMaps: Record<string, number> = {}
1340
+ if (includeFields && includeFields.length) {
1341
+ includeFields.forEach(field => {
1342
+ includeFdMaps[field] = 1
1343
+ })
1344
+ }
1345
+ const extraFdMaps: Record<string, number> = {}
1346
+ if (extraFields) {
1347
+ extraFields.forEach(field => {
1348
+ extraFdMaps[field] = 1
1349
+ })
1350
+ }
1351
+
1330
1352
  // 默认选中
1331
- XEUtils.eachTree(exportColumns, (column, index, items, path, parent) => {
1353
+ // 优先级 columns > excludeFields > (includeFields || extraFields)
1354
+ XEUtils.eachTree(exportColumns, (column, index, items, path, parentColumn) => {
1332
1355
  const isColGroup = column.children && column.children.length > 0
1333
1356
  let isChecked = false
1357
+ const isExtraChecked = extraFdMaps[column.field]
1334
1358
  if (columns && columns.length) {
1335
1359
  isChecked = handleFilterColumns(defOpts, column, columns)
1336
1360
  } else if (excludeFields || includeFields) {
1337
- isChecked = handleFilterFields(defOpts, column, includeFields, excludeFields)
1361
+ isChecked = handleFilterFields(defOpts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps)
1338
1362
  } else {
1339
- isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column))
1363
+ if (isExtraChecked) {
1364
+ isChecked = true
1365
+ } else {
1366
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column))
1367
+ }
1340
1368
  }
1341
1369
  column.checked = isChecked
1342
1370
  column.halfChecked = false
1343
- column.disabled = (parent && parent.disabled) || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false)
1371
+ column.disabled = (parentColumn && parentColumn.disabled) || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false)
1344
1372
  })
1345
1373
  // 更新条件
1346
1374
  exportStore.columns = exportColumns
@@ -1454,27 +1482,52 @@ hooks.add('tableExportModule', {
1454
1482
  opts.isTreeAllExpanded = (opts as any).isAllExpand
1455
1483
  }
1456
1484
 
1457
- let { filename, sheetName, type, mode, columns, original, columnFilterMethod, beforeExportMethod, includeFields, excludeFields } = opts
1485
+ let { filename, sheetName, type, mode, columns, columnFilterMethod, beforeExportMethod, includeFields, excludeFields, extraFields } = opts
1458
1486
  let groups: any[] = []
1459
1487
  const selectRecords = $xeTable.getCheckboxRecords()
1460
1488
  if (!mode) {
1461
1489
  mode = selectRecords.length ? 'selected' : 'current'
1462
1490
  }
1491
+
1492
+ const excludeFdMaps: Record<string, number> = {}
1493
+ if (excludeFields && excludeFields.length) {
1494
+ excludeFields.forEach(field => {
1495
+ excludeFdMaps[field] = 1
1496
+ })
1497
+ }
1498
+ const includeFdMaps: Record<string, number> = {}
1499
+ if (includeFields && includeFields.length) {
1500
+ includeFields.forEach(field => {
1501
+ includeFdMaps[field] = 1
1502
+ })
1503
+ }
1504
+ const extraFdMaps: Record<string, number> = {}
1505
+ if (extraFields) {
1506
+ extraFields.forEach(field => {
1507
+ extraFdMaps[field] = 1
1508
+ })
1509
+ }
1510
+
1463
1511
  let isCustomCol = false
1464
1512
  let customCols = []
1465
1513
  if (columns && columns.length) {
1466
1514
  isCustomCol = true
1467
- customCols = columns
1515
+ customCols = XEUtils.searchTree(columns, () => true, { children: 'children', mapChildren: 'childNodes', original: true })
1468
1516
  } else {
1469
1517
  customCols = XEUtils.searchTree(collectColumn, column => {
1470
1518
  const isColGroup = column.children && column.children.length > 0
1471
1519
  let isChecked = false
1520
+ const isExtraChecked = extraFdMaps[column.field]
1472
1521
  if (columns && columns.length) {
1473
1522
  isChecked = handleFilterColumns(opts, column, columns)
1474
1523
  } else if (excludeFields || includeFields) {
1475
- isChecked = handleFilterFields(opts, column, includeFields, excludeFields)
1524
+ isChecked = handleFilterFields(opts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps)
1476
1525
  } else {
1477
- isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column))
1526
+ if (isExtraChecked) {
1527
+ isChecked = true
1528
+ } else {
1529
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column))
1530
+ }
1478
1531
  }
1479
1532
  return isChecked
1480
1533
  }, { children: 'children', mapChildren: 'childNodes', original: true })
@@ -1482,20 +1535,7 @@ hooks.add('tableExportModule', {
1482
1535
  const handleOptions: VxeTablePropTypes.ExportHandleOptions = Object.assign({ } as { data: any[], colgroups: any[], columns: any[] }, opts, { filename: '', sheetName: '', _columnConfs: columns })
1483
1536
  // 如果设置源数据,则默认导出设置了字段的列
1484
1537
  if (!isCustomCol && !columnFilterMethod) {
1485
- columnFilterMethod = ({ column }) => {
1486
- if (excludeFields) {
1487
- if (XEUtils.includes(excludeFields, column.field)) {
1488
- return false
1489
- }
1490
- }
1491
- if (includeFields) {
1492
- if (XEUtils.includes(includeFields, column.field)) {
1493
- return true
1494
- }
1495
- return false
1496
- }
1497
- return original ? !!column.field : defaultFilterExportColumn(column)
1498
- }
1538
+ columnFilterMethod = ({ column }) => handleFilterFields(handleOptions, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps)
1499
1539
  handleOptions.columnFilterMethod = columnFilterMethod
1500
1540
  }
1501
1541
  if (customCols) {
@@ -1,7 +1,7 @@
1
1
  import type { VxeTablePropTypes } from '../../../../types'
2
2
 
3
3
  // 默认导出或打印的 HTML 样式
4
- 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}'
4
+ 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}'
5
5
 
6
6
  export function getExportBlobByContent (content: string, options: { type: string }) {
7
7
  return new Blob([content], { type: `text/${options.type};charset=utf-8;` })
@@ -693,15 +693,16 @@ export default defineVxeComponent({
693
693
  const { extraFields, includeFields, excludeFields } = editDirtyOpts
694
694
  const kpFields: string[] = []
695
695
  if (updateColFlag) {
696
- if (includeFields && includeFields.length) {
697
- return includeFields
698
- }
696
+ // 优先级 excludeFields > (includeFields || extraFields)
699
697
  const excludeFdMaps: Record<string, number> = {}
700
698
  if (excludeFields && excludeFields.length) {
701
699
  excludeFields.forEach(field => {
702
700
  excludeFdMaps[field] = 1
703
701
  })
704
702
  }
703
+ if (includeFields && includeFields.length) {
704
+ return excludeFields && excludeFields.length ? includeFields.filter(field => !excludeFdMaps[field]) : includeFields
705
+ }
705
706
  const addFdMaps: Record<string, number> = {}
706
707
  if (extraFields && extraFields.length) {
707
708
  extraFields.forEach(field => {
@@ -392,7 +392,7 @@ VxeUI.setIcon({
392
392
  TOOLBAR_TOOLS_PRINT: iconPrefix + 'print',
393
393
  TOOLBAR_TOOLS_FULLSCREEN: iconPrefix + 'fullscreen',
394
394
  TOOLBAR_TOOLS_MINIMIZE: iconPrefix + 'minimize',
395
- TOOLBAR_TOOLS_CUSTOM: iconPrefix + 'custom-column',
395
+ TOOLBAR_TOOLS_CUSTOM: iconPrefix + 'setting',
396
396
  TOOLBAR_TOOLS_FIXED_LEFT: iconPrefix + 'fixed-left',
397
397
  TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE: iconPrefix + 'fixed-left-fill',
398
398
  TOOLBAR_TOOLS_FIXED_RIGHT: iconPrefix + 'fixed-right',
@@ -262,3 +262,7 @@ export function wheelScrollTopTo (diffNum: number, cb: (progress: number) => voi
262
262
  wtaFrame = null
263
263
  })
264
264
  }
265
+
266
+ export function getPopupContainer (appendTo: string | HTMLElement | ((params: any) => string | HTMLElement) | undefined) {
267
+ return appendTo ? ((XEUtils.isFunction(appendTo) ? appendTo({}) : appendTo) || 'body') : 'body'
268
+ }
@@ -8,7 +8,7 @@ export function createComponentLog (name: string) {
8
8
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : ''
9
9
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : ''
10
10
  const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : ''
11
- const versionInfo = [uiVersion, tableVersion, ganttVersion, designVersion].join(' ')
11
+ const versionInfo = [uiVersion, tableVersion, ganttVersion, designVersion].filter(v => v).join(' ')
12
12
  return {
13
13
  warnLog: log.create('warn', versionInfo + '] [' + name),
14
14
  errLog: log.create('error', versionInfo + '] [' + name)
@@ -4,7 +4,7 @@
4
4
 
5
5
  @font-face {
6
6
  font-family: "vxetableiconfont";
7
- src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
7
+ src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
8
8
  }
9
9
 
10
10
  @keyframes rollCircle {
@@ -78,6 +78,10 @@ $btnThemeList: (
78
78
  }
79
79
  }
80
80
 
81
+ .vxe-table-icon-setting:before {
82
+ content: "\e8b8";
83
+ }
84
+
81
85
  .vxe-table-icon-top:before {
82
86
  content: "\e614";
83
87
  }
@@ -2447,7 +2447,7 @@ $btnThemeList: (
2447
2447
  width: 100%;
2448
2448
  position: absolute;
2449
2449
  left: 50%;
2450
- font-size: 12px;
2450
+ font-size: var(--vxe-ui-table-validate-error-font-size);
2451
2451
  line-height: 1em;
2452
2452
  transform: translate(-50%, -2px);
2453
2453
  text-align: left;
@@ -3,8 +3,12 @@
3
3
  }
4
4
 
5
5
  @mixin createCheckboxIcon {
6
+ & {
7
+ cursor: pointer;
8
+ }
6
9
  .vxe-checkbox--icon {
7
10
  font-size: 1.22em;
11
+ @include createAnimationTransition(all, 0.2s);
8
12
  }
9
13
  .vxe-checkbox--icon {
10
14
  color: var(--vxe-ui-input-border-color);
@@ -20,7 +24,6 @@
20
24
  }
21
25
  }
22
26
  &:not(.is--disabled) {
23
- cursor: pointer;
24
27
  &:hover {
25
28
  .vxe-checkbox--icon {
26
29
  color: var(--vxe-ui-font-primary-color);
@@ -30,6 +33,9 @@
30
33
  &.is--hidden {
31
34
  cursor: default;
32
35
  }
36
+ &.is--readonly {
37
+ cursor: auto;
38
+ }
33
39
  &.is--disabled {
34
40
  color: var(--vxe-ui-font-disabled-color);
35
41
  cursor: not-allowed;
@@ -38,15 +44,18 @@
38
44
  }
39
45
  }
40
46
  .vxe-checkbox--label {
41
- padding-left: 0.5em;
47
+ padding-left: 0.4em;
42
48
  vertical-align: middle;
43
49
  }
44
50
  }
45
51
 
46
52
  @mixin createRadioIcon {
47
- cursor: pointer;
53
+ & {
54
+ cursor: pointer;
55
+ }
48
56
  .vxe-radio--icon {
49
57
  font-size: 1.26em;
58
+ @include createAnimationTransition(all, 0.2s);
50
59
  }
51
60
  .vxe-radio--icon {
52
61
  color: var(--vxe-ui-input-border-color);
@@ -62,13 +71,15 @@
62
71
  }
63
72
  }
64
73
  &:not(.is--disabled) {
65
- cursor: pointer;
66
74
  &:hover {
67
75
  .vxe-radio--icon {
68
76
  color: var(--vxe-ui-font-primary-color);
69
77
  }
70
78
  }
71
79
  }
80
+ &.is--readonly {
81
+ cursor: auto;
82
+ }
72
83
  &.is--disabled {
73
84
  color: var(--vxe-ui-font-disabled-color);
74
85
  cursor: not-allowed;
@@ -77,7 +88,7 @@
77
88
  }
78
89
  }
79
90
  .vxe-radio--label {
80
- padding-left: 0.5em;
91
+ padding-left: 0.4em;
81
92
  vertical-align: middle;
82
93
  }
83
94
  }