@fecp/mobile 1.1.23 → 1.1.24

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 (135) hide show
  1. package/es/mobile.css +11 -11
  2. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.mjs +121 -0
  3. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.mjs +55 -0
  4. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.mjs +44 -0
  5. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.mjs +24 -0
  6. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/configStore.mjs +9 -0
  7. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/core.mjs +10 -0
  8. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/dataStore.mjs +4 -0
  9. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.mjs +151 -0
  10. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.mjs +44 -0
  11. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/hooks.mjs +5 -0
  12. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.mjs +55 -0
  13. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18nStore.mjs +8 -0
  14. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.mjs +16 -0
  15. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/iconStore.mjs +4 -0
  16. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.mjs +49 -0
  17. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/log.mjs +17 -0
  18. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.mjs +44 -0
  19. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.mjs +60 -0
  20. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.mjs +34 -0
  21. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.mjs +80 -0
  22. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.mjs +39 -0
  23. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/theme.mjs +20 -0
  24. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/themeStore.mjs +6 -0
  25. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/useFns.mjs +27 -0
  26. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/validators.mjs +5 -0
  27. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/colgroup/index.mjs +14 -0
  28. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/column/index.mjs +14 -0
  29. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.mjs +23 -0
  30. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/index.mjs +16 -0
  31. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/src/grid.mjs +1221 -0
  32. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/locale/lang/zh-CN.mjs +714 -0
  33. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/index.mjs +25 -0
  34. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/hook.mjs +256 -0
  35. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/panel.mjs +987 -0
  36. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/edit/hook.mjs +875 -0
  37. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/export-panel.mjs +478 -0
  38. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/hook.mjs +1456 -0
  39. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/import-panel.mjs +221 -0
  40. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/util.mjs +23 -0
  41. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/hook.mjs +343 -0
  42. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/panel.mjs +220 -0
  43. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/keyboard/hook.mjs +474 -0
  44. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/hook.mjs +283 -0
  45. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/panel.mjs +150 -0
  46. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/validator/hook.mjs +471 -0
  47. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/render/index.mjs +953 -0
  48. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/body.mjs +772 -0
  49. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/cell.mjs +1058 -0
  50. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/column.mjs +166 -0
  51. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/columnInfo.mjs +161 -0
  52. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/emits.mjs +97 -0
  53. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/footer.mjs +349 -0
  54. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/group.mjs +45 -0
  55. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/header.mjs +367 -0
  56. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/props.mjs +279 -0
  57. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/table.mjs +10668 -0
  58. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/use/cell-view.mjs +37 -0
  59. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/util.mjs +537 -0
  60. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.mjs +12 -0
  61. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/src/toolbar.mjs +527 -0
  62. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/index.mjs +360 -0
  63. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/dom.mjs +157 -0
  64. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/log.mjs +9 -0
  65. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/utils.mjs +49 -0
  66. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/vn.mjs +42 -0
  67. package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +6 -5
  68. package/lib/mobile.css +11 -11
  69. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.js +118 -0
  70. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.js +55 -0
  71. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.js +44 -0
  72. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.js +24 -0
  73. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/configStore.js +9 -0
  74. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/core.js +10 -0
  75. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/dataStore.js +4 -0
  76. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.js +151 -0
  77. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.js +44 -0
  78. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/hooks.js +5 -0
  79. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.js +55 -0
  80. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18nStore.js +8 -0
  81. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.js +16 -0
  82. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/iconStore.js +4 -0
  83. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.js +49 -0
  84. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/log.js +17 -0
  85. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.js +44 -0
  86. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.js +60 -0
  87. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.js +34 -0
  88. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.js +80 -0
  89. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.js +39 -0
  90. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/theme.js +20 -0
  91. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/themeStore.js +6 -0
  92. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/useFns.js +27 -0
  93. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/validators.js +5 -0
  94. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/colgroup/index.js +15 -0
  95. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/column/index.js +15 -0
  96. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.js +23 -0
  97. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/index.js +16 -0
  98. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/src/grid.js +1221 -0
  99. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/locale/lang/zh-CN.js +714 -0
  100. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/index.js +26 -0
  101. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/hook.js +257 -0
  102. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/panel.js +987 -0
  103. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/edit/hook.js +876 -0
  104. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/export-panel.js +478 -0
  105. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/hook.js +1457 -0
  106. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/import-panel.js +221 -0
  107. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/util.js +23 -0
  108. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/hook.js +344 -0
  109. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/panel.js +220 -0
  110. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/keyboard/hook.js +475 -0
  111. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/hook.js +284 -0
  112. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/panel.js +150 -0
  113. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/validator/hook.js +472 -0
  114. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/render/index.js +954 -0
  115. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/body.js +772 -0
  116. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/cell.js +1058 -0
  117. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/column.js +166 -0
  118. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/columnInfo.js +161 -0
  119. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/emits.js +97 -0
  120. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/footer.js +349 -0
  121. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/group.js +45 -0
  122. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/header.js +367 -0
  123. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/props.js +279 -0
  124. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/table.js +10668 -0
  125. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/use/cell-view.js +37 -0
  126. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/util.js +537 -0
  127. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.js +13 -0
  128. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/src/toolbar.js +527 -0
  129. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/index.js +360 -0
  130. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/dom.js +157 -0
  131. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/log.js +9 -0
  132. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/utils.js +49 -0
  133. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/vn.js +42 -0
  134. package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +6 -5
  135. package/package.json +1 -1
@@ -0,0 +1,1456 @@
1
+ import { inject, nextTick } from "vue";
2
+ import XEUtils from "../../../../../../../../../_virtual/index.mjs";
3
+ import "../../../ui/index.mjs";
4
+ import { isColumnInfo, getCellValue } from "../../src/util.mjs";
5
+ import { parseFile, formatText, eqEmptyValue } from "../../../ui/src/utils.mjs";
6
+ import { hasClass } from "../../../ui/src/dom.mjs";
7
+ import { getExportBlobByContent, createHtmlPage } from "./util.mjs";
8
+ import { errLog } from "../../../ui/src/log.mjs";
9
+ import { VxeUI } from "../../../../../../../@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.mjs";
10
+ const { getI18n, hooks, renderer } = VxeUI;
11
+ let htmlCellElem;
12
+ const csvBOM = "\uFEFF";
13
+ const enterSymbol = "\r\n";
14
+ function defaultFilterExportColumn(column) {
15
+ return column.field || ["seq", "checkbox", "radio"].indexOf(column.type) > -1;
16
+ }
17
+ const getConvertColumns = (columns) => {
18
+ const result = [];
19
+ columns.forEach((column) => {
20
+ if (column.childNodes && column.childNodes.length) {
21
+ result.push(column);
22
+ result.push(...getConvertColumns(column.childNodes));
23
+ } else {
24
+ result.push(column);
25
+ }
26
+ });
27
+ return result;
28
+ };
29
+ const convertToRows = (originColumns) => {
30
+ let maxLevel = 1;
31
+ const traverse = (column, parent) => {
32
+ if (parent) {
33
+ column._level = parent._level + 1;
34
+ if (maxLevel < column._level) {
35
+ maxLevel = column._level;
36
+ }
37
+ }
38
+ if (column.childNodes && column.childNodes.length) {
39
+ let colSpan = 0;
40
+ column.childNodes.forEach((subColumn) => {
41
+ traverse(subColumn, column);
42
+ colSpan += subColumn._colSpan;
43
+ });
44
+ column._colSpan = colSpan;
45
+ } else {
46
+ column._colSpan = 1;
47
+ }
48
+ };
49
+ originColumns.forEach((column) => {
50
+ column._level = 1;
51
+ traverse(column);
52
+ });
53
+ const rows = [];
54
+ for (let i = 0; i < maxLevel; i++) {
55
+ rows.push([]);
56
+ }
57
+ const allColumns = getConvertColumns(originColumns);
58
+ allColumns.forEach((column) => {
59
+ if (column.childNodes && column.childNodes.length) {
60
+ column._rowSpan = 1;
61
+ } else {
62
+ column._rowSpan = maxLevel - column._level + 1;
63
+ }
64
+ rows[column._level - 1].push(column);
65
+ });
66
+ return rows;
67
+ };
68
+ function toTableBorder(border) {
69
+ if (border === true) {
70
+ return "full";
71
+ }
72
+ if (border) {
73
+ return border;
74
+ }
75
+ return "default";
76
+ }
77
+ function getBooleanValue(cellValue) {
78
+ return cellValue === "TRUE" || cellValue === "true" || cellValue === true;
79
+ }
80
+ function getFooterData($xeTable, opts, footerTableData) {
81
+ const { footerFilterMethod } = opts;
82
+ return footerFilterMethod ? footerTableData.filter((items, index) => footerFilterMethod({ $table: $xeTable, items, $rowIndex: index })) : footerTableData;
83
+ }
84
+ function getCsvCellTypeLabel(column, cellValue) {
85
+ if (cellValue) {
86
+ if (column.type === "seq") {
87
+ return ` ${cellValue}`;
88
+ }
89
+ switch (column.cellType) {
90
+ case "string":
91
+ if (!isNaN(cellValue)) {
92
+ return ` ${cellValue}`;
93
+ }
94
+ break;
95
+ case "number":
96
+ break;
97
+ default:
98
+ if (cellValue.length >= 12 && !isNaN(cellValue)) {
99
+ return ` ${cellValue}`;
100
+ }
101
+ break;
102
+ }
103
+ }
104
+ return cellValue;
105
+ }
106
+ function toTxtCellLabel(val) {
107
+ if (/[",\s\n]/.test(val)) {
108
+ return `"${val.replace(/"/g, '""')}"`;
109
+ }
110
+ return val;
111
+ }
112
+ function getElementsByTagName(elem, qualifiedName) {
113
+ return elem.getElementsByTagName(qualifiedName);
114
+ }
115
+ function getTxtCellKey(now) {
116
+ return `#${now}@${XEUtils.uniqueId()}`;
117
+ }
118
+ function replaceTxtCell(cell, vMaps) {
119
+ return cell.replace(/#\d+@\d+/g, (key) => XEUtils.hasOwnProp(vMaps, key) ? vMaps[key] : key);
120
+ }
121
+ function getTxtCellValue(val, vMaps) {
122
+ const rest = replaceTxtCell(val, vMaps);
123
+ return rest.replace(/^"+$/g, (qVal) => '"'.repeat(Math.ceil(qVal.length / 2)));
124
+ }
125
+ function toExportField(tableConf, field) {
126
+ const { fieldMaps, titleMaps } = tableConf;
127
+ if (!fieldMaps[field]) {
128
+ const teCol = titleMaps[field];
129
+ if (teCol && teCol.field) {
130
+ field = teCol.field;
131
+ }
132
+ }
133
+ return field;
134
+ }
135
+ function parseCsvAndTxt(tableConf, content, cellSeparator) {
136
+ const list = content.split(enterSymbol);
137
+ const rows = [];
138
+ let fields = [];
139
+ if (list.length) {
140
+ const vMaps = {};
141
+ const now = Date.now();
142
+ list.forEach((rVal) => {
143
+ if (rVal) {
144
+ const item = {};
145
+ rVal = rVal.replace(/("")|(\n)/g, (text, dVal) => {
146
+ const key = getTxtCellKey(now);
147
+ vMaps[key] = dVal ? '"' : "\n";
148
+ return key;
149
+ }).replace(/"(.*?)"/g, (text, cVal) => {
150
+ const key = getTxtCellKey(now);
151
+ vMaps[key] = replaceTxtCell(cVal, vMaps);
152
+ return key;
153
+ });
154
+ const cells = rVal.split(cellSeparator);
155
+ if (!fields.length) {
156
+ fields = cells.map((val) => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
157
+ } else {
158
+ cells.forEach((val, colIndex) => {
159
+ if (colIndex < fields.length) {
160
+ item[fields[colIndex]] = getTxtCellValue(val.trim(), vMaps);
161
+ }
162
+ });
163
+ rows.push(item);
164
+ }
165
+ }
166
+ });
167
+ }
168
+ return { fields, rows };
169
+ }
170
+ function parseCsv(tableConf, content) {
171
+ return parseCsvAndTxt(tableConf, content, ",");
172
+ }
173
+ function parseTxt(tableConf, content) {
174
+ return parseCsvAndTxt(tableConf, content, " ");
175
+ }
176
+ function parseHTML(tableConf, content) {
177
+ const domParser = new DOMParser();
178
+ const xmlDoc = domParser.parseFromString(content, "text/html");
179
+ const bodyNodes = getElementsByTagName(xmlDoc, "body");
180
+ const rows = [];
181
+ const fields = [];
182
+ if (bodyNodes.length) {
183
+ const tableNodes = getElementsByTagName(bodyNodes[0], "table");
184
+ if (tableNodes.length) {
185
+ const theadNodes = getElementsByTagName(tableNodes[0], "thead");
186
+ if (theadNodes.length) {
187
+ XEUtils.arrayEach(getElementsByTagName(theadNodes[0], "tr"), (rowNode) => {
188
+ XEUtils.arrayEach(getElementsByTagName(rowNode, "th"), (cellNode) => {
189
+ fields.push(toExportField(tableConf, cellNode.textContent || ""));
190
+ });
191
+ });
192
+ const tbodyNodes = getElementsByTagName(tableNodes[0], "tbody");
193
+ if (tbodyNodes.length) {
194
+ XEUtils.arrayEach(getElementsByTagName(tbodyNodes[0], "tr"), (rowNode) => {
195
+ const item = {};
196
+ XEUtils.arrayEach(getElementsByTagName(rowNode, "td"), (cellNode, colIndex) => {
197
+ if (fields[colIndex]) {
198
+ item[fields[colIndex]] = cellNode.textContent || "";
199
+ }
200
+ });
201
+ rows.push(item);
202
+ });
203
+ }
204
+ }
205
+ }
206
+ }
207
+ return { fields, rows };
208
+ }
209
+ function parseXML(tableConf, content) {
210
+ const domParser = new DOMParser();
211
+ const xmlDoc = domParser.parseFromString(content, "application/xml");
212
+ const sheetNodes = getElementsByTagName(xmlDoc, "Worksheet");
213
+ const rows = [];
214
+ const fields = [];
215
+ if (sheetNodes.length) {
216
+ const tableNodes = getElementsByTagName(sheetNodes[0], "Table");
217
+ if (tableNodes.length) {
218
+ const rowNodes = getElementsByTagName(tableNodes[0], "Row");
219
+ if (rowNodes.length) {
220
+ XEUtils.arrayEach(getElementsByTagName(rowNodes[0], "Cell"), (cellNode) => {
221
+ fields.push(toExportField(tableConf, cellNode.textContent || ""));
222
+ });
223
+ XEUtils.arrayEach(rowNodes, (rowNode, index) => {
224
+ if (index) {
225
+ const item = {};
226
+ const cellNodes = getElementsByTagName(rowNode, "Cell");
227
+ XEUtils.arrayEach(cellNodes, (cellNode, colIndex) => {
228
+ if (fields[colIndex]) {
229
+ item[fields[colIndex]] = cellNode.textContent;
230
+ }
231
+ });
232
+ rows.push(item);
233
+ }
234
+ });
235
+ }
236
+ }
237
+ }
238
+ return { fields, rows };
239
+ }
240
+ function clearColumnConvert(columns) {
241
+ XEUtils.eachTree(columns, (column) => {
242
+ delete column._level;
243
+ delete column._colSpan;
244
+ delete column._rowSpan;
245
+ delete column._children;
246
+ delete column.childNodes;
247
+ }, { children: "children" });
248
+ }
249
+ const tableExportMethodKeys = ["exportData", "importByFile", "importData", "saveFile", "readFile", "print", "getPrintHtml", "openImport", "closeImport", "openExport", "closeExport", "openPrint", "closePrint"];
250
+ hooks.add("tableExportModule", {
251
+ setupTable($xeTable) {
252
+ const { props, reactData, internalData } = $xeTable;
253
+ const { computeTreeOpts, computePrintOpts, computeExportOpts, computeImportOpts, computeCustomOpts, computeSeqOpts, computeRadioOpts, computeCheckboxOpts, computeColumnOpts } = $xeTable.getComputeMaps();
254
+ const $xeGrid = inject("$xeGrid", null);
255
+ const hasTreeChildren = (row) => {
256
+ const treeOpts = computeTreeOpts.value;
257
+ const childrenField = treeOpts.children || treeOpts.childrenField;
258
+ return row[childrenField] && row[childrenField].length;
259
+ };
260
+ const getSeq = (cellValue, row, $rowIndex, column, $columnIndex) => {
261
+ const seqOpts = computeSeqOpts.value;
262
+ const seqMethod = seqOpts.seqMethod || column.seqMethod;
263
+ if (seqMethod) {
264
+ return seqMethod({
265
+ $table: $xeTable,
266
+ row,
267
+ rowIndex: $xeTable.getRowIndex(row),
268
+ $rowIndex,
269
+ column,
270
+ columnIndex: $xeTable.getColumnIndex(column),
271
+ $columnIndex
272
+ });
273
+ }
274
+ return cellValue;
275
+ };
276
+ function getHeaderTitle(opts, column) {
277
+ const columnOpts = computeColumnOpts.value;
278
+ const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod;
279
+ return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : (opts.isTitle ? column.getTitle() : column.field) || "";
280
+ }
281
+ const toBooleanValue = (cellValue) => {
282
+ return XEUtils.isBoolean(cellValue) ? cellValue ? "TRUE" : "FALSE" : cellValue;
283
+ };
284
+ const toStringValue = (cellValue) => {
285
+ return eqEmptyValue(cellValue) ? "" : `${cellValue}`;
286
+ };
287
+ const getBodyLabelData = (opts, columns, datas) => {
288
+ const { isAllExpand, mode } = opts;
289
+ const { treeConfig } = props;
290
+ const radioOpts = computeRadioOpts.value;
291
+ const checkboxOpts = computeCheckboxOpts.value;
292
+ const treeOpts = computeTreeOpts.value;
293
+ const columnOpts = computeColumnOpts.value;
294
+ if (!htmlCellElem) {
295
+ htmlCellElem = document.createElement("div");
296
+ }
297
+ if (treeConfig) {
298
+ const childrenField = treeOpts.children || treeOpts.childrenField;
299
+ const rest = [];
300
+ const expandMaps = /* @__PURE__ */ new Map();
301
+ XEUtils.eachTree(datas, (item, $rowIndex, items, path, parent, nodes) => {
302
+ const row = item._row || item;
303
+ const parentRow = parent && parent._row ? parent._row : parent;
304
+ if (isAllExpand || !parentRow || expandMaps.has(parentRow) && $xeTable.isTreeExpandByRow(parentRow)) {
305
+ const hasRowChild = hasTreeChildren(row);
306
+ const item2 = {
307
+ _row: row,
308
+ _level: nodes.length - 1,
309
+ _hasChild: hasRowChild,
310
+ _expand: hasRowChild && $xeTable.isTreeExpandByRow(row)
311
+ };
312
+ columns.forEach((column, $columnIndex) => {
313
+ let cellValue = "";
314
+ const renderOpts = column.editRender || column.cellRender;
315
+ let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
316
+ if (!bodyExportMethod && renderOpts && renderOpts.name) {
317
+ const compConf = renderer.get(renderOpts.name);
318
+ if (compConf) {
319
+ bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
320
+ }
321
+ }
322
+ if (!bodyExportMethod) {
323
+ bodyExportMethod = columnOpts.exportMethod;
324
+ }
325
+ if (bodyExportMethod) {
326
+ cellValue = bodyExportMethod({ $table: $xeTable, row, column, options: opts });
327
+ } else {
328
+ switch (column.type) {
329
+ case "seq": {
330
+ const seqVal = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : ".").join("");
331
+ cellValue = mode === "all" ? seqVal : getSeq(seqVal, row, $rowIndex, column, $columnIndex);
332
+ break;
333
+ }
334
+ case "checkbox":
335
+ cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row));
336
+ item2._checkboxLabel = checkboxOpts.labelField ? XEUtils.get(row, checkboxOpts.labelField) : "";
337
+ item2._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row });
338
+ break;
339
+ case "radio":
340
+ cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row));
341
+ item2._radioLabel = radioOpts.labelField ? XEUtils.get(row, radioOpts.labelField) : "";
342
+ item2._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row });
343
+ break;
344
+ default:
345
+ if (opts.original) {
346
+ cellValue = getCellValue(row, column);
347
+ } else {
348
+ cellValue = $xeTable.getCellLabel(row, column);
349
+ if (column.type === "html") {
350
+ htmlCellElem.innerHTML = cellValue;
351
+ cellValue = htmlCellElem.innerText.trim();
352
+ } else {
353
+ const cell = $xeTable.getCellElement(row, column);
354
+ if (cell && !hasClass(cell, "is--progress")) {
355
+ cellValue = cell.innerText.trim();
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+ item2[column.id] = toStringValue(cellValue);
362
+ });
363
+ expandMaps.set(row, 1);
364
+ rest.push(Object.assign(item2, row));
365
+ }
366
+ }, { children: childrenField });
367
+ return rest;
368
+ }
369
+ return datas.map((row, $rowIndex) => {
370
+ const item = {
371
+ _row: row
372
+ };
373
+ columns.forEach((column, $columnIndex) => {
374
+ let cellValue = "";
375
+ const renderOpts = column.editRender || column.cellRender;
376
+ let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
377
+ if (!bodyExportMethod && renderOpts && renderOpts.name) {
378
+ const compConf = renderer.get(renderOpts.name);
379
+ if (compConf) {
380
+ bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
381
+ }
382
+ }
383
+ if (bodyExportMethod) {
384
+ cellValue = bodyExportMethod({ $table: $xeTable, row, column, options: opts });
385
+ } else {
386
+ switch (column.type) {
387
+ case "seq": {
388
+ const seqValue = $rowIndex + 1;
389
+ cellValue = mode === "all" ? seqValue : getSeq(seqValue, row, $rowIndex, column, $columnIndex);
390
+ break;
391
+ }
392
+ case "checkbox":
393
+ cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row));
394
+ item._checkboxLabel = checkboxOpts.labelField ? XEUtils.get(row, checkboxOpts.labelField) : "";
395
+ item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row });
396
+ break;
397
+ case "radio":
398
+ cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row));
399
+ item._radioLabel = radioOpts.labelField ? XEUtils.get(row, radioOpts.labelField) : "";
400
+ item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row });
401
+ break;
402
+ default:
403
+ if (opts.original) {
404
+ cellValue = getCellValue(row, column);
405
+ } else {
406
+ cellValue = $xeTable.getCellLabel(row, column);
407
+ if (column.type === "html") {
408
+ htmlCellElem.innerHTML = cellValue;
409
+ cellValue = htmlCellElem.innerText.trim();
410
+ } else {
411
+ const cell = $xeTable.getCellElement(row, column);
412
+ if (cell && !hasClass(cell, "is--progress")) {
413
+ cellValue = cell.innerText.trim();
414
+ }
415
+ }
416
+ }
417
+ }
418
+ }
419
+ item[column.id] = toStringValue(cellValue);
420
+ });
421
+ return item;
422
+ });
423
+ };
424
+ const getExportData = (opts) => {
425
+ const { columns, dataFilterMethod } = opts;
426
+ let datas = opts.data;
427
+ if (dataFilterMethod) {
428
+ datas = datas.filter((row, index) => dataFilterMethod({ $table: $xeTable, row, $rowIndex: index }));
429
+ }
430
+ return getBodyLabelData(opts, columns, datas);
431
+ };
432
+ const getFooterCellValue = (opts, row, column) => {
433
+ const columnOpts = computeColumnOpts.value;
434
+ const renderOpts = column.editRender || column.cellRender;
435
+ let footLabelMethod = column.footerExportMethod;
436
+ if (!footLabelMethod && renderOpts && renderOpts.name) {
437
+ const compConf = renderer.get(renderOpts.name);
438
+ if (compConf) {
439
+ footLabelMethod = compConf.tableFooterExportMethod || compConf.footerExportMethod;
440
+ }
441
+ }
442
+ if (!footLabelMethod) {
443
+ footLabelMethod = columnOpts.footerExportMethod;
444
+ }
445
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
446
+ if (footLabelMethod) {
447
+ return footLabelMethod({ $table: $xeTable, items: row, itemIndex: _columnIndex, row, _columnIndex, column, options: opts });
448
+ }
449
+ if (XEUtils.isArray(row)) {
450
+ return XEUtils.toValueString(row[_columnIndex]);
451
+ }
452
+ return XEUtils.get(row, column.field);
453
+ };
454
+ const toCsv = ($xeTable2, opts, columns, datas) => {
455
+ let content = csvBOM;
456
+ if (opts.isHeader) {
457
+ content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join(",") + enterSymbol;
458
+ }
459
+ datas.forEach((row) => {
460
+ content += columns.map((column) => toTxtCellLabel(getCsvCellTypeLabel(column, row[column.id]))).join(",") + enterSymbol;
461
+ });
462
+ if (opts.isFooter) {
463
+ const { footerTableData } = reactData;
464
+ const footers = getFooterData($xeTable2, opts, footerTableData);
465
+ footers.forEach((row) => {
466
+ content += columns.map((column) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join(",") + enterSymbol;
467
+ });
468
+ }
469
+ return content;
470
+ };
471
+ const toTxt = ($xeTable2, opts, columns, datas) => {
472
+ let content = "";
473
+ if (opts.isHeader) {
474
+ content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join(" ") + enterSymbol;
475
+ }
476
+ datas.forEach((row) => {
477
+ content += columns.map((column) => toTxtCellLabel(row[column.id])).join(" ") + enterSymbol;
478
+ });
479
+ if (opts.isFooter) {
480
+ const { footerTableData } = reactData;
481
+ const footers = getFooterData($xeTable2, opts, footerTableData);
482
+ footers.forEach((row) => {
483
+ content += columns.map((column) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join(" ") + enterSymbol;
484
+ });
485
+ }
486
+ return content;
487
+ };
488
+ const hasEllipsis = (column, property, allColumnOverflow) => {
489
+ const columnOverflow = column[property];
490
+ const headOverflow = XEUtils.isUndefined(columnOverflow) || XEUtils.isNull(columnOverflow) ? allColumnOverflow : columnOverflow;
491
+ const showEllipsis = headOverflow === "ellipsis";
492
+ const showTitle = headOverflow === "title";
493
+ const showTooltip = headOverflow === true || headOverflow === "tooltip";
494
+ let isEllipsis = showTitle || showTooltip || showEllipsis;
495
+ const { scrollXLoad, scrollYLoad } = reactData;
496
+ if ((scrollXLoad || scrollYLoad) && !isEllipsis) {
497
+ isEllipsis = true;
498
+ }
499
+ return isEllipsis;
500
+ };
501
+ const toHtml = (opts, columns, datas) => {
502
+ const { id, border, treeConfig, headerAlign: allHeaderAlign, align: allAlign, footerAlign: allFooterAlign, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow } = props;
503
+ const { isAllSelected, isIndeterminate } = reactData;
504
+ const { mergeBodyCellMaps } = internalData;
505
+ const treeOpts = computeTreeOpts.value;
506
+ const { print: isPrint, isHeader, isFooter, isColgroup, isMerge, colgroups, original } = opts;
507
+ const allCls = "check-all";
508
+ const clss = [
509
+ "vxe-table",
510
+ `border--${toTableBorder(border)}`,
511
+ isPrint ? "is--print" : "",
512
+ isHeader ? "is--header" : ""
513
+ ].filter((cls) => cls);
514
+ const tables = [
515
+ `<table class="${clss.join(" ")}" border="0" cellspacing="0" cellpadding="0">`,
516
+ `<colgroup>${columns.map((column) => `<col style="width:${column.renderWidth}px">`).join("")}</colgroup>`
517
+ ];
518
+ if (isHeader) {
519
+ tables.push("<thead>");
520
+ if (isColgroup && !original) {
521
+ colgroups.forEach((cols) => {
522
+ tables.push(`<tr>${cols.map((column) => {
523
+ const headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
524
+ const classNames = hasEllipsis(column, "showHeaderOverflow", allColumnHeaderOverflow) ? ["col--ellipsis"] : [];
525
+ const cellTitle = getHeaderTitle(opts, column);
526
+ let childWidth = 0;
527
+ let countChild = 0;
528
+ XEUtils.eachTree([column], (item) => {
529
+ if (!item.childNodes || !column.childNodes.length) {
530
+ countChild++;
531
+ }
532
+ childWidth += item.renderWidth;
533
+ }, { children: "childNodes" });
534
+ const cellWidth = childWidth - countChild;
535
+ if (headAlign) {
536
+ classNames.push(`col--${headAlign}`);
537
+ }
538
+ if (column.type === "checkbox") {
539
+ return `<th class="${classNames.join(" ")}" colspan="${column._colSpan}" rowspan="${column._rowSpan}"><div ${isPrint ? "" : `style="width: ${cellWidth}px"`}><input type="checkbox" class="${allCls}" ${isAllSelected ? "checked" : ""}><span>${cellTitle}</span></div></th>`;
540
+ }
541
+ return `<th class="${classNames.join(" ")}" colspan="${column._colSpan}" rowspan="${column._rowSpan}" title="${cellTitle}"><div ${isPrint ? "" : `style="width: ${cellWidth}px"`}><span>${formatText(cellTitle, true)}</span></div></th>`;
542
+ }).join("")}</tr>`);
543
+ });
544
+ } else {
545
+ tables.push(`<tr>${columns.map((column) => {
546
+ const headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
547
+ const classNames = hasEllipsis(column, "showHeaderOverflow", allColumnHeaderOverflow) ? ["col--ellipsis"] : [];
548
+ const cellTitle = getHeaderTitle(opts, column);
549
+ if (headAlign) {
550
+ classNames.push(`col--${headAlign}`);
551
+ }
552
+ if (column.type === "checkbox") {
553
+ return `<th class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" class="${allCls}" ${isAllSelected ? "checked" : ""}><span>${cellTitle}</span></div></th>`;
554
+ }
555
+ return `<th class="${classNames.join(" ")}" title="${cellTitle}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><span>${formatText(cellTitle, true)}</span></div></th>`;
556
+ }).join("")}</tr>`);
557
+ }
558
+ tables.push("</thead>");
559
+ }
560
+ if (datas.length) {
561
+ tables.push("<tbody>");
562
+ if (treeConfig) {
563
+ datas.forEach((item) => {
564
+ tables.push("<tr>" + columns.map((column) => {
565
+ const colid = column.id;
566
+ const cellAlign = column.align || allAlign;
567
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
568
+ const cellValue = item[colid];
569
+ if (cellAlign) {
570
+ classNames.push(`col--${cellAlign}`);
571
+ }
572
+ if (column.treeNode) {
573
+ let treeIcon = "";
574
+ if (item._hasChild) {
575
+ treeIcon = `<i class="${item._expand ? "vxe-table--tree-fold-icon" : "vxe-table--tree-unfold-icon"}"></i>`;
576
+ }
577
+ classNames.push("vxe-table--tree-node");
578
+ if (column.type === "radio") {
579
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></div></div></td>`;
580
+ } else if (column.type === "checkbox") {
581
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></div></div></td>`;
582
+ }
583
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell">${cellValue}</div></div></div></td>`;
584
+ }
585
+ if (column.type === "radio") {
586
+ return `<td class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></td>`;
587
+ } else if (column.type === "checkbox") {
588
+ return `<td class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></td>`;
589
+ }
590
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
591
+ }).join("") + "</tr>");
592
+ });
593
+ } else {
594
+ datas.forEach((item) => {
595
+ tables.push("<tr>" + columns.map((column) => {
596
+ const cellAlign = column.align || allAlign;
597
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
598
+ const cellValue = item[column.id];
599
+ let rowSpan = 1;
600
+ let colSpan = 1;
601
+ if (isMerge) {
602
+ const _rowIndex = $xeTable.getVTRowIndex(item._row);
603
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
604
+ const spanRest = mergeBodyCellMaps[`${_rowIndex}:${_columnIndex}`];
605
+ if (spanRest) {
606
+ const { rowspan, colspan } = spanRest;
607
+ if (!rowspan || !colspan) {
608
+ return "";
609
+ }
610
+ if (rowspan > 1) {
611
+ rowSpan = rowspan;
612
+ }
613
+ if (colspan > 1) {
614
+ colSpan = colspan;
615
+ }
616
+ }
617
+ }
618
+ if (cellAlign) {
619
+ classNames.push(`col--${cellAlign}`);
620
+ }
621
+ if (column.type === "radio") {
622
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></td>`;
623
+ } else if (column.type === "checkbox") {
624
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></td>`;
625
+ }
626
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
627
+ }).join("") + "</tr>");
628
+ });
629
+ }
630
+ tables.push("</tbody>");
631
+ }
632
+ if (isFooter) {
633
+ const { footerTableData } = reactData;
634
+ const footers = getFooterData($xeTable, opts, footerTableData);
635
+ if (footers.length) {
636
+ tables.push("<tfoot>");
637
+ footers.forEach((row) => {
638
+ tables.push(`<tr>${columns.map((column) => {
639
+ const footAlign = column.footerAlign || column.align || allFooterAlign || allAlign;
640
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
641
+ const cellValue = getFooterCellValue(opts, row, column);
642
+ if (footAlign) {
643
+ classNames.push(`col--${footAlign}`);
644
+ }
645
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
646
+ }).join("")}</tr>`);
647
+ });
648
+ tables.push("</tfoot>");
649
+ }
650
+ }
651
+ const script = !isAllSelected && isIndeterminate ? `<script>(function(){var a=document.querySelector(".${allCls}");if(a){a.indeterminate=true}})()<\/script>` : "";
652
+ tables.push("</table>", script);
653
+ return isPrint ? tables.join("") : createHtmlPage(opts, tables.join(""));
654
+ };
655
+ const toXML = (opts, columns, datas) => {
656
+ let xml = [
657
+ '<?xml version="1.0"?>',
658
+ '<?mso-application progid="Excel.Sheet"?>',
659
+ '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">',
660
+ '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',
661
+ "<Version>16.00</Version>",
662
+ "</DocumentProperties>",
663
+ '<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',
664
+ "<WindowHeight>7920</WindowHeight>",
665
+ "<WindowWidth>21570</WindowWidth>",
666
+ "<WindowTopX>32767</WindowTopX>",
667
+ "<WindowTopY>32767</WindowTopY>",
668
+ "<ProtectStructure>False</ProtectStructure>",
669
+ "<ProtectWindows>False</ProtectWindows>",
670
+ "</ExcelWorkbook>",
671
+ `<Worksheet ss:Name="${opts.sheetName}">`,
672
+ "<Table>",
673
+ columns.map((column) => `<Column ss:Width="${column.renderWidth}"/>`).join("")
674
+ ].join("");
675
+ if (opts.isHeader) {
676
+ xml += `<Row>${columns.map((column) => `<Cell><Data ss:Type="String">${getHeaderTitle(opts, column)}</Data></Cell>`).join("")}</Row>`;
677
+ }
678
+ datas.forEach((row) => {
679
+ xml += "<Row>" + columns.map((column) => `<Cell><Data ss:Type="String">${row[column.id]}</Data></Cell>`).join("") + "</Row>";
680
+ });
681
+ if (opts.isFooter) {
682
+ const { footerTableData } = reactData;
683
+ const footers = getFooterData($xeTable, opts, footerTableData);
684
+ footers.forEach((row) => {
685
+ xml += `<Row>${columns.map((column) => `<Cell><Data ss:Type="String">${getFooterCellValue(opts, row, column)}</Data></Cell>`).join("")}</Row>`;
686
+ });
687
+ }
688
+ return `${xml}</Table></Worksheet></Workbook>`;
689
+ };
690
+ const getContent = ($xeTable2, opts, columns, datas) => {
691
+ if (columns.length) {
692
+ switch (opts.type) {
693
+ case "csv":
694
+ return toCsv($xeTable2, opts, columns, datas);
695
+ case "txt":
696
+ return toTxt($xeTable2, opts, columns, datas);
697
+ case "html":
698
+ return toHtml(opts, columns, datas);
699
+ case "xml":
700
+ return toXML(opts, columns, datas);
701
+ }
702
+ }
703
+ return "";
704
+ };
705
+ const downloadFile = (opts, content) => {
706
+ const { filename, type, download } = opts;
707
+ if (!download) {
708
+ const blob = getExportBlobByContent(content, opts);
709
+ return Promise.resolve({ type, content, blob });
710
+ }
711
+ if (VxeUI.saveFile) {
712
+ VxeUI.saveFile({ filename, type, content }).then(() => {
713
+ if (opts.message !== false) {
714
+ if (VxeUI.modal) {
715
+ VxeUI.modal.message({ content: getI18n("vxe.table.expSuccess"), status: "success" });
716
+ }
717
+ }
718
+ });
719
+ }
720
+ };
721
+ const handleExport = (opts) => {
722
+ const { remote, columns, colgroups, exportMethod, afterExportMethod } = opts;
723
+ return new Promise((resolve) => {
724
+ if (remote) {
725
+ const params = { options: opts, $table: $xeTable, $grid: $xeGrid };
726
+ resolve(exportMethod ? exportMethod(params) : params);
727
+ } else {
728
+ const datas = getExportData(opts);
729
+ resolve($xeTable.preventEvent(null, "event.export", { options: opts, columns, colgroups, datas }, () => {
730
+ return downloadFile(opts, getContent($xeTable, opts, columns, datas));
731
+ }));
732
+ }
733
+ }).then((params) => {
734
+ clearColumnConvert(columns);
735
+ if (!opts.print) {
736
+ if (afterExportMethod) {
737
+ afterExportMethod({ status: true, options: opts, $table: $xeTable, $grid: $xeGrid });
738
+ }
739
+ }
740
+ return Object.assign({ status: true }, params);
741
+ }).catch(() => {
742
+ clearColumnConvert(columns);
743
+ if (!opts.print) {
744
+ if (afterExportMethod) {
745
+ afterExportMethod({ status: false, options: opts, $table: $xeTable, $grid: $xeGrid });
746
+ }
747
+ }
748
+ const params = { status: false };
749
+ return Promise.reject(params);
750
+ });
751
+ };
752
+ const handleImport = (content, opts) => {
753
+ const { tableFullColumn, _importResolve, _importReject } = internalData;
754
+ let rest = { fields: [], rows: [] };
755
+ const tableFieldMaps = {};
756
+ const tableTitleMaps = {};
757
+ tableFullColumn.forEach((column) => {
758
+ const field = column.field;
759
+ const title = column.getTitle();
760
+ if (field) {
761
+ tableFieldMaps[field] = column;
762
+ }
763
+ if (title) {
764
+ tableTitleMaps[column.getTitle()] = column;
765
+ }
766
+ });
767
+ const tableConf = {
768
+ fieldMaps: tableFieldMaps,
769
+ titleMaps: tableTitleMaps
770
+ };
771
+ switch (opts.type) {
772
+ case "csv":
773
+ rest = parseCsv(tableConf, content);
774
+ break;
775
+ case "txt":
776
+ rest = parseTxt(tableConf, content);
777
+ break;
778
+ case "html":
779
+ rest = parseHTML(tableConf, content);
780
+ break;
781
+ case "xml":
782
+ rest = parseXML(tableConf, content);
783
+ break;
784
+ }
785
+ const { fields, rows } = rest;
786
+ const status = fields.some((field) => tableFieldMaps[field] || tableTitleMaps[field]);
787
+ if (status) {
788
+ $xeTable.createData(rows).then((data) => {
789
+ let loadRest;
790
+ if (opts.mode === "insert" || opts.mode === "insertBottom") {
791
+ loadRest = $xeTable.insertAt(data, -1);
792
+ }
793
+ if (opts.mode === "insertTop") {
794
+ loadRest = $xeTable.insert(data);
795
+ } else {
796
+ loadRest = $xeTable.reloadData(data);
797
+ }
798
+ if (opts.message !== false) {
799
+ if (VxeUI.modal) {
800
+ VxeUI.modal.message({ content: getI18n("vxe.table.impSuccess", [rows.length]), status: "success" });
801
+ }
802
+ }
803
+ return loadRest.then(() => {
804
+ if (_importResolve) {
805
+ _importResolve({ status: true });
806
+ }
807
+ });
808
+ });
809
+ } else if (opts.message !== false) {
810
+ if (VxeUI.modal) {
811
+ VxeUI.modal.message({ content: getI18n("vxe.error.impFields"), status: "error" });
812
+ }
813
+ if (_importReject) {
814
+ _importReject({ status: false });
815
+ }
816
+ }
817
+ };
818
+ const handleFileImport = (file, opts) => {
819
+ const { importMethod, afterImportMethod } = opts;
820
+ const { type, filename } = parseFile(file);
821
+ const importOpts = computeImportOpts.value;
822
+ if (!importMethod && !XEUtils.includes(XEUtils.keys(importOpts._typeMaps), type)) {
823
+ if (opts.message !== false) {
824
+ if (VxeUI.modal) {
825
+ VxeUI.modal.message({ content: getI18n("vxe.error.notType", [type]), status: "error" });
826
+ }
827
+ }
828
+ const params = { status: false };
829
+ return Promise.reject(params);
830
+ }
831
+ const rest = new Promise((resolve, reject) => {
832
+ const _importResolve = (params) => {
833
+ resolve(params);
834
+ internalData._importResolve = null;
835
+ internalData._importReject = null;
836
+ };
837
+ const _importReject = (params) => {
838
+ reject(params);
839
+ internalData._importResolve = null;
840
+ internalData._importReject = null;
841
+ };
842
+ internalData._importResolve = _importResolve;
843
+ internalData._importReject = _importReject;
844
+ if (window.FileReader) {
845
+ const options = Object.assign({ mode: "insertTop" }, opts, { type, filename });
846
+ if (options.remote) {
847
+ if (importMethod) {
848
+ Promise.resolve(importMethod({ file, options, $table: $xeTable })).then(() => {
849
+ _importResolve({ status: true });
850
+ }).catch(() => {
851
+ _importResolve({ status: true });
852
+ });
853
+ } else {
854
+ _importResolve({ status: true });
855
+ }
856
+ } else {
857
+ const { tableFullColumn } = internalData;
858
+ $xeTable.preventEvent(null, "event.import", { file, options, columns: tableFullColumn }, () => {
859
+ const reader = new FileReader();
860
+ reader.onerror = () => {
861
+ errLog("vxe.error.notType", [type]);
862
+ _importReject({ status: false });
863
+ };
864
+ reader.onload = (e) => {
865
+ handleImport(e.target.result, options);
866
+ };
867
+ reader.readAsText(file, options.encoding || "UTF-8");
868
+ });
869
+ }
870
+ } else {
871
+ errLog("vxe.error.notExp");
872
+ _importResolve({ status: true });
873
+ }
874
+ });
875
+ return rest.then(() => {
876
+ if (afterImportMethod) {
877
+ afterImportMethod({ status: true, options: opts, $table: $xeTable });
878
+ }
879
+ }).catch((e) => {
880
+ if (afterImportMethod) {
881
+ afterImportMethod({ status: false, options: opts, $table: $xeTable });
882
+ }
883
+ return Promise.reject(e);
884
+ });
885
+ };
886
+ const handleFilterColumns = (exportOpts, column, columns) => {
887
+ return columns.some((item) => {
888
+ if (isColumnInfo(item)) {
889
+ return column.id === item.id;
890
+ } else if (XEUtils.isString(item)) {
891
+ return column.field === item;
892
+ } else {
893
+ const colid = item.id || item.colId;
894
+ const type = item.type;
895
+ const field = item.field;
896
+ if (colid) {
897
+ return column.id === colid;
898
+ } else if (field && type) {
899
+ return column.field === field && column.type === type;
900
+ } else if (field) {
901
+ return column.field === field;
902
+ } else if (type) {
903
+ return column.type === type;
904
+ }
905
+ }
906
+ return false;
907
+ });
908
+ };
909
+ const handleFilterFields = (exportOpts, column, includeFields, excludeFields) => {
910
+ if (excludeFields) {
911
+ if (XEUtils.includes(excludeFields, column.field)) {
912
+ return false;
913
+ }
914
+ }
915
+ if (includeFields) {
916
+ if (XEUtils.includes(includeFields, column.field)) {
917
+ return true;
918
+ }
919
+ return false;
920
+ }
921
+ return exportOpts.original ? column.field : defaultFilterExportColumn(column);
922
+ };
923
+ const handleExportAndPrint = (options, isPrint) => {
924
+ const { treeConfig, showHeader, showFooter } = props;
925
+ const { initStore, isGroup, footerTableData, exportStore, exportParams } = reactData;
926
+ const { collectColumn, mergeBodyList, mergeFooterList } = internalData;
927
+ const exportOpts = computeExportOpts.value;
928
+ const hasTree = treeConfig;
929
+ const customOpts = computeCustomOpts.value;
930
+ const selectRecords = $xeTable.getCheckboxRecords();
931
+ const proxyOpts = $xeGrid ? $xeGrid.getComputeMaps().computeProxyOpts.value : {};
932
+ const hasFooter = !!footerTableData.length;
933
+ const hasMerge = !!(mergeBodyList.length || mergeFooterList.length);
934
+ const defOpts = Object.assign({
935
+ message: true,
936
+ isHeader: showHeader,
937
+ isTitle: showHeader,
938
+ isFooter: showFooter,
939
+ isColgroup: isGroup,
940
+ isMerge: hasMerge,
941
+ useStyle: true,
942
+ current: "current",
943
+ modes: (proxyOpts.ajax && proxyOpts.ajax.queryAll ? ["all"] : []).concat(["current", "selected", "empty"])
944
+ }, options);
945
+ const types = defOpts.types || XEUtils.keys(exportOpts._typeMaps);
946
+ const modes = defOpts.modes || [];
947
+ const checkMethod = customOpts.checkMethod;
948
+ const exportColumns = collectColumn.slice(0);
949
+ const { columns, excludeFields, includeFields } = defOpts;
950
+ const typeList = types.map((value) => {
951
+ return {
952
+ value,
953
+ label: getI18n(`vxe.export.types.${value}`)
954
+ };
955
+ });
956
+ const modeList = modes.map((item) => {
957
+ if (item && item.value) {
958
+ return {
959
+ value: item.value,
960
+ label: item.label || item.value
961
+ };
962
+ }
963
+ return {
964
+ value: item,
965
+ label: getI18n(`vxe.export.modes.${item}`)
966
+ };
967
+ });
968
+ XEUtils.eachTree(exportColumns, (column, index, items, path, parent) => {
969
+ const isColGroup = column.children && column.children.length;
970
+ let isChecked = false;
971
+ if (columns && columns.length) {
972
+ isChecked = handleFilterColumns(defOpts, column, columns);
973
+ } else if (excludeFields || includeFields) {
974
+ isChecked = handleFilterFields(defOpts, column, includeFields, excludeFields);
975
+ } else {
976
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
977
+ }
978
+ column.checked = isChecked;
979
+ column.halfChecked = false;
980
+ column.disabled = parent && parent.disabled || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false);
981
+ });
982
+ Object.assign(exportStore, {
983
+ columns: exportColumns,
984
+ typeList,
985
+ modeList,
986
+ hasFooter,
987
+ hasMerge,
988
+ hasTree,
989
+ isPrint,
990
+ hasColgroup: isGroup,
991
+ visible: true
992
+ });
993
+ Object.assign(exportParams, {
994
+ mode: selectRecords.length ? "selected" : "current"
995
+ }, defOpts);
996
+ const { filename, sheetName, mode, type } = exportParams;
997
+ if (filename) {
998
+ if (XEUtils.isFunction(filename)) {
999
+ exportParams.filename = filename({
1000
+ options: defOpts,
1001
+ $table: $xeTable,
1002
+ $grid: $xeGrid
1003
+ });
1004
+ } else {
1005
+ exportParams.filename = `${filename}`;
1006
+ }
1007
+ }
1008
+ if (sheetName) {
1009
+ if (XEUtils.isFunction(sheetName)) {
1010
+ exportParams.sheetName = sheetName({
1011
+ options: defOpts,
1012
+ $table: $xeTable,
1013
+ $grid: $xeGrid
1014
+ });
1015
+ } else {
1016
+ exportParams.sheetName = `${sheetName}`;
1017
+ }
1018
+ }
1019
+ if (!modeList.some((item) => item.value === mode)) {
1020
+ exportParams.mode = modeList[0].value;
1021
+ }
1022
+ if (!typeList.some((item) => item.value === type)) {
1023
+ exportParams.type = typeList[0].value;
1024
+ }
1025
+ initStore.export = true;
1026
+ return nextTick();
1027
+ };
1028
+ const handleCloseExport = () => {
1029
+ if (VxeUI.modal) {
1030
+ return VxeUI.modal.close("VXE_EXPORT_MODAL");
1031
+ }
1032
+ return Promise.resolve();
1033
+ };
1034
+ const exportMethods = {
1035
+ /**
1036
+ * 导出文件,支持 csv/html/xml/txt
1037
+ * 如果是树表格,则默认是导出所有节点
1038
+ * 如果是启用了虚拟滚动,则只能导出数据源,可以配合 dataFilterMethod 函数转换数据
1039
+ * @param {Object} options 参数
1040
+ */
1041
+ exportData(options) {
1042
+ const { treeConfig, showHeader, showFooter } = props;
1043
+ const { isGroup } = reactData;
1044
+ const { tableFullColumn, afterFullData, collectColumn, mergeBodyList, mergeFooterList } = internalData;
1045
+ const exportOpts = computeExportOpts.value;
1046
+ const treeOpts = computeTreeOpts.value;
1047
+ const proxyOpts = $xeGrid ? $xeGrid.getComputeMaps().computeProxyOpts.value : {};
1048
+ const hasMerge = !!(mergeBodyList.length || mergeFooterList.length);
1049
+ const opts = Object.assign({
1050
+ message: true,
1051
+ isHeader: showHeader,
1052
+ isTitle: showHeader,
1053
+ isFooter: showFooter,
1054
+ isColgroup: isGroup,
1055
+ isMerge: hasMerge,
1056
+ useStyle: true,
1057
+ current: "current",
1058
+ modes: (proxyOpts.ajax && proxyOpts.ajax.queryAll ? ["all"] : []).concat(["current", "selected", "empty"]),
1059
+ download: true,
1060
+ type: "csv"
1061
+ // filename: '',
1062
+ // sheetName: '',
1063
+ // original: false,
1064
+ // isAllExpand: false,
1065
+ // data: null,
1066
+ // remote: false,
1067
+ // dataFilterMethod: null,
1068
+ // footerFilterMethod: null,
1069
+ // exportMethod: null,
1070
+ // columnFilterMethod: null,
1071
+ // beforeExportMethod: null,
1072
+ // afterExportMethod: null
1073
+ }, exportOpts, options);
1074
+ let { filename, sheetName, type, mode, columns, original, columnFilterMethod, beforeExportMethod, includeFields, excludeFields } = opts;
1075
+ let groups = [];
1076
+ const selectRecords = $xeTable.getCheckboxRecords();
1077
+ if (!mode) {
1078
+ mode = selectRecords.length ? "selected" : "current";
1079
+ }
1080
+ const customCols = columns && columns.length ? columns : XEUtils.searchTree(collectColumn, (column) => {
1081
+ const isColGroup = column.children && column.children.length;
1082
+ let isChecked = false;
1083
+ if (columns && columns.length) {
1084
+ isChecked = handleFilterColumns(opts, column, columns);
1085
+ } else if (excludeFields || includeFields) {
1086
+ isChecked = handleFilterFields(opts, column, includeFields, excludeFields);
1087
+ } else {
1088
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
1089
+ }
1090
+ return isChecked;
1091
+ }, { children: "children", mapChildren: "childNodes", original: true });
1092
+ const handleOptions = Object.assign({}, opts, { filename: "", sheetName: "" });
1093
+ if (!customCols && !columnFilterMethod) {
1094
+ handleOptions.columnFilterMethod = ({ column }) => {
1095
+ if (excludeFields) {
1096
+ if (XEUtils.includes(excludeFields, column.field)) {
1097
+ return false;
1098
+ }
1099
+ }
1100
+ if (includeFields) {
1101
+ if (XEUtils.includes(includeFields, column.field)) {
1102
+ return true;
1103
+ }
1104
+ return false;
1105
+ }
1106
+ return original ? column.field : defaultFilterExportColumn(column);
1107
+ };
1108
+ }
1109
+ if (customCols) {
1110
+ handleOptions._isCustomColumn = true;
1111
+ groups = XEUtils.searchTree(XEUtils.mapTree(customCols, (item) => {
1112
+ let targetColumn;
1113
+ if (item) {
1114
+ if (isColumnInfo(item)) {
1115
+ targetColumn = item;
1116
+ } else if (XEUtils.isString(item)) {
1117
+ targetColumn = $xeTable.getColumnByField(item);
1118
+ } else {
1119
+ const colid = item.id || item.colId;
1120
+ const type2 = item.type;
1121
+ const field = item.field;
1122
+ if (colid) {
1123
+ targetColumn = $xeTable.getColumnById(colid);
1124
+ } else if (field && type2) {
1125
+ targetColumn = tableFullColumn.find((column) => column.field === field && column.type === type2);
1126
+ } else if (field) {
1127
+ targetColumn = $xeTable.getColumnByField(field);
1128
+ } else if (type2) {
1129
+ targetColumn = tableFullColumn.find((column) => column.type === type2);
1130
+ }
1131
+ }
1132
+ return targetColumn || {};
1133
+ }
1134
+ }, {
1135
+ children: "childNodes",
1136
+ mapChildren: "_children"
1137
+ }), (column, index) => isColumnInfo(column) && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column, $columnIndex: index })), {
1138
+ children: "_children",
1139
+ mapChildren: "childNodes",
1140
+ original: true
1141
+ });
1142
+ } else {
1143
+ groups = XEUtils.searchTree(isGroup ? collectColumn : tableFullColumn, (column, index) => column.visible && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column, $columnIndex: index })), { children: "children", mapChildren: "childNodes", original: true });
1144
+ }
1145
+ const cols = [];
1146
+ XEUtils.eachTree(groups, (column) => {
1147
+ const isColGroup = column.children && column.children.length;
1148
+ if (!isColGroup) {
1149
+ cols.push(column);
1150
+ }
1151
+ }, { children: "childNodes" });
1152
+ handleOptions.columns = cols;
1153
+ handleOptions.colgroups = convertToRows(groups);
1154
+ if (filename) {
1155
+ if (XEUtils.isFunction(filename)) {
1156
+ handleOptions.filename = filename({
1157
+ options: opts,
1158
+ $table: $xeTable,
1159
+ $grid: $xeGrid
1160
+ });
1161
+ } else {
1162
+ handleOptions.filename = `${filename}`;
1163
+ }
1164
+ }
1165
+ if (!handleOptions.filename) {
1166
+ handleOptions.filename = getI18n(handleOptions.original ? "vxe.table.expOriginFilename" : "vxe.table.expFilename", [XEUtils.toDateString(Date.now(), "yyyyMMddHHmmss")]);
1167
+ }
1168
+ if (sheetName) {
1169
+ if (XEUtils.isFunction(sheetName)) {
1170
+ handleOptions.sheetName = sheetName({
1171
+ options: opts,
1172
+ $table: $xeTable,
1173
+ $grid: $xeGrid
1174
+ });
1175
+ } else {
1176
+ handleOptions.sheetName = `${sheetName}`;
1177
+ }
1178
+ }
1179
+ if (!handleOptions.sheetName) {
1180
+ handleOptions.sheetName = document.title || "";
1181
+ }
1182
+ if (!handleOptions.exportMethod && !XEUtils.includes(XEUtils.keys(exportOpts._typeMaps), type)) {
1183
+ errLog("vxe.error.notType", [type]);
1184
+ const params = { status: false };
1185
+ return Promise.reject(params);
1186
+ }
1187
+ if (!handleOptions.print) {
1188
+ if (beforeExportMethod) {
1189
+ beforeExportMethod({ options: handleOptions, $table: $xeTable, $grid: $xeGrid });
1190
+ }
1191
+ }
1192
+ if (!handleOptions.data) {
1193
+ handleOptions.data = [];
1194
+ if (mode === "selected") {
1195
+ if (["html", "pdf"].indexOf(type) > -1 && treeConfig) {
1196
+ handleOptions.data = XEUtils.searchTree($xeTable.getTableData().fullData, (item) => $xeTable.findRowIndexOf(selectRecords, item) > -1, Object.assign({}, treeOpts, { data: "_row" }));
1197
+ } else {
1198
+ handleOptions.data = selectRecords;
1199
+ }
1200
+ } else if (mode === "all") {
1201
+ if ($xeGrid && !handleOptions.remote) {
1202
+ const gridReactData = $xeGrid.reactData;
1203
+ const { computeProxyOpts } = $xeGrid.getComputeMaps();
1204
+ const proxyOpts2 = computeProxyOpts.value;
1205
+ const { sortData } = gridReactData;
1206
+ const { beforeQueryAll, afterQueryAll, ajax = {} } = proxyOpts2;
1207
+ const resConfigs = proxyOpts2.response || proxyOpts2.props || {};
1208
+ const ajaxMethods = ajax.queryAll;
1209
+ const queryAllSuccessMethods = ajax.queryAllSuccess;
1210
+ const queryAllErrorMethods = ajax.queryAllError;
1211
+ if (ajaxMethods) {
1212
+ const params = {
1213
+ $table: $xeTable,
1214
+ $grid: $xeGrid,
1215
+ sort: sortData.length ? sortData[0] : {},
1216
+ sorts: sortData,
1217
+ filters: gridReactData.filterData,
1218
+ form: gridReactData.formData,
1219
+ options: handleOptions
1220
+ };
1221
+ return Promise.resolve((beforeQueryAll || ajaxMethods)(params)).then((rest) => {
1222
+ const listProp = resConfigs.list;
1223
+ handleOptions.data = (listProp ? XEUtils.isFunction(listProp) ? listProp({ data: rest, $grid: $xeGrid }) : XEUtils.get(rest, listProp) : rest) || [];
1224
+ if (afterQueryAll) {
1225
+ afterQueryAll(params);
1226
+ }
1227
+ if (queryAllSuccessMethods) {
1228
+ queryAllSuccessMethods(Object.assign(Object.assign({}, params), { response: rest }));
1229
+ }
1230
+ return handleExport(handleOptions);
1231
+ }).catch((rest) => {
1232
+ if (queryAllErrorMethods) {
1233
+ queryAllErrorMethods(Object.assign(Object.assign({}, params), { response: rest }));
1234
+ }
1235
+ });
1236
+ }
1237
+ }
1238
+ }
1239
+ if (mode === "current") {
1240
+ handleOptions.data = afterFullData;
1241
+ }
1242
+ }
1243
+ return handleExport(handleOptions);
1244
+ },
1245
+ importByFile(file, options) {
1246
+ const opts = Object.assign({}, options);
1247
+ const { beforeImportMethod } = opts;
1248
+ if (beforeImportMethod) {
1249
+ beforeImportMethod({ options: opts, $table: $xeTable });
1250
+ }
1251
+ return handleFileImport(file, opts);
1252
+ },
1253
+ importData(options) {
1254
+ const importOpts = computeImportOpts.value;
1255
+ const opts = Object.assign({
1256
+ types: XEUtils.keys(importOpts._typeMaps)
1257
+ // beforeImportMethod: null,
1258
+ // afterImportMethod: null
1259
+ }, importOpts, options);
1260
+ const { beforeImportMethod, afterImportMethod } = opts;
1261
+ if (beforeImportMethod) {
1262
+ beforeImportMethod({ options: opts, $table: $xeTable });
1263
+ }
1264
+ return VxeUI.readFile(opts).catch((e) => {
1265
+ if (afterImportMethod) {
1266
+ afterImportMethod({ status: false, options: opts, $table: $xeTable });
1267
+ }
1268
+ return Promise.reject(e);
1269
+ }).then((params) => {
1270
+ const { file } = params;
1271
+ return handleFileImport(file, opts);
1272
+ });
1273
+ },
1274
+ saveFile(options) {
1275
+ return VxeUI.saveFile(options);
1276
+ },
1277
+ readFile(options) {
1278
+ return VxeUI.readFile(options);
1279
+ },
1280
+ print(options) {
1281
+ const printOpts = computePrintOpts.value;
1282
+ const opts = Object.assign({
1283
+ original: false
1284
+ // beforePrintMethod
1285
+ }, printOpts, options, {
1286
+ type: "html",
1287
+ download: false,
1288
+ remote: false,
1289
+ print: true
1290
+ });
1291
+ const { sheetName } = opts;
1292
+ let printTitle = "";
1293
+ if (sheetName) {
1294
+ if (XEUtils.isFunction(sheetName)) {
1295
+ printTitle = sheetName({
1296
+ options: opts,
1297
+ $table: $xeTable,
1298
+ $grid: $xeGrid
1299
+ });
1300
+ } else {
1301
+ printTitle = `${sheetName}`;
1302
+ }
1303
+ }
1304
+ if (!printTitle) {
1305
+ printTitle = document.title || "";
1306
+ }
1307
+ const beforePrintMethod = opts.beforePrintMethod;
1308
+ const tableHtml = opts.html || opts.content;
1309
+ return new Promise((resolve, reject) => {
1310
+ if (VxeUI.print) {
1311
+ if (tableHtml) {
1312
+ resolve(VxeUI.print({
1313
+ title: printTitle,
1314
+ html: tableHtml,
1315
+ customStyle: opts.style,
1316
+ beforeMethod: beforePrintMethod ? ({ html }) => {
1317
+ return beforePrintMethod({
1318
+ html,
1319
+ content: html,
1320
+ options: opts,
1321
+ $table: $xeTable
1322
+ });
1323
+ } : void 0
1324
+ }));
1325
+ } else {
1326
+ resolve(exportMethods.exportData(opts).then(({ content }) => {
1327
+ return VxeUI.print({
1328
+ title: printTitle,
1329
+ html: content,
1330
+ customStyle: opts.style,
1331
+ beforeMethod: beforePrintMethod ? ({ html }) => {
1332
+ return beforePrintMethod({
1333
+ html,
1334
+ content: html,
1335
+ options: opts,
1336
+ $table: $xeTable
1337
+ });
1338
+ } : void 0
1339
+ });
1340
+ }));
1341
+ }
1342
+ } else {
1343
+ const e = { status: false };
1344
+ reject(e);
1345
+ }
1346
+ });
1347
+ },
1348
+ getPrintHtml(options) {
1349
+ const printOpts = computePrintOpts.value;
1350
+ const opts = Object.assign({
1351
+ original: false
1352
+ // beforePrintMethod
1353
+ }, printOpts, options, {
1354
+ type: "html",
1355
+ download: false,
1356
+ remote: false,
1357
+ print: true
1358
+ });
1359
+ return $xeTable.exportData(opts).then(({ content }) => {
1360
+ return {
1361
+ html: content
1362
+ };
1363
+ });
1364
+ },
1365
+ closeImport() {
1366
+ if (VxeUI.modal) {
1367
+ return VxeUI.modal.close("VXE_IMPORT_MODAL");
1368
+ }
1369
+ return Promise.resolve();
1370
+ },
1371
+ openImport(options) {
1372
+ const { treeConfig, importConfig } = props;
1373
+ const { initStore, importStore, importParams } = reactData;
1374
+ const importOpts = computeImportOpts.value;
1375
+ const defOpts = Object.assign({
1376
+ mode: "insertTop",
1377
+ message: true,
1378
+ types: XEUtils.keys(importOpts._typeMaps),
1379
+ modes: ["insertTop", "covering"]
1380
+ }, importOpts, options);
1381
+ const types = defOpts.types || [];
1382
+ const modes = defOpts.modes || [];
1383
+ const isTree = !!treeConfig;
1384
+ if (isTree) {
1385
+ if (defOpts.message) {
1386
+ if (VxeUI.modal) {
1387
+ VxeUI.modal.message({ content: getI18n("vxe.error.treeNotImp"), status: "error" });
1388
+ }
1389
+ }
1390
+ return;
1391
+ }
1392
+ if (!importConfig) {
1393
+ errLog("vxe.error.reqProp", ["import-config"]);
1394
+ }
1395
+ const typeList = types.map((value) => {
1396
+ return {
1397
+ value,
1398
+ label: getI18n(`vxe.export.types.${value}`)
1399
+ };
1400
+ });
1401
+ const modeList = modes.map((item) => {
1402
+ if (item && item.value) {
1403
+ return {
1404
+ value: item.value,
1405
+ label: item.label || item.value
1406
+ };
1407
+ }
1408
+ return {
1409
+ value: item,
1410
+ label: getI18n(`vxe.import.modes.${item}`)
1411
+ };
1412
+ });
1413
+ Object.assign(importStore, {
1414
+ file: null,
1415
+ type: "",
1416
+ filename: "",
1417
+ modeList,
1418
+ typeList,
1419
+ visible: true
1420
+ });
1421
+ Object.assign(importParams, defOpts);
1422
+ if (!modeList.some((item) => item.value === importParams.mode)) {
1423
+ importParams.mode = modeList[0].value;
1424
+ }
1425
+ initStore.import = true;
1426
+ },
1427
+ closeExport: handleCloseExport,
1428
+ openExport(options) {
1429
+ const exportOpts = computeExportOpts.value;
1430
+ const defOpts = Object.assign({
1431
+ message: true,
1432
+ types: XEUtils.keys(exportOpts._typeMaps)
1433
+ }, exportOpts, options);
1434
+ if (!props.exportConfig) {
1435
+ errLog("vxe.error.reqProp", ["export-config"]);
1436
+ }
1437
+ handleExportAndPrint(defOpts);
1438
+ },
1439
+ closePrint: handleCloseExport,
1440
+ openPrint(options) {
1441
+ const printOpts = computePrintOpts.value;
1442
+ const defOpts = Object.assign({
1443
+ message: true
1444
+ }, printOpts, options);
1445
+ if (!props.printConfig) {
1446
+ errLog("vxe.error.reqProp", ["print-config"]);
1447
+ }
1448
+ handleExportAndPrint(defOpts, true);
1449
+ }
1450
+ };
1451
+ return exportMethods;
1452
+ },
1453
+ setupGrid($xeGrid) {
1454
+ return $xeGrid.extendTableMethods(tableExportMethodKeys);
1455
+ }
1456
+ });