doway-coms 1.1.49 → 1.1.50

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