cloud-web-corejs 1.1.0-dev.6 → 1.1.0-dev.61

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 (499) hide show
  1. package/README.md +38 -0
  2. package/bin/core-resources.js +16 -0
  3. package/bin/create-child-app.js +34 -0
  4. package/docs/child-app/README.md +95 -0
  5. package/docs/child-app/activiti-resources.md +63 -0
  6. package/docs/child-app/generate-prompt.md +55 -0
  7. package/docs/child-app/luckysheet-resources.md +80 -0
  8. package/docs/child-app/public-resources-plan.md +288 -0
  9. package/docs/child-app/resources-implementation.md +101 -0
  10. package/docs/child-app/tinymce-resources.md +88 -0
  11. package/docs/child-app/validation.md +34 -0
  12. package/docs/qiankun/346/216/245/345/205/245/345/215/217/350/256/256.md +298 -0
  13. package/docs/qiankun/350/257/246/346/203/205/346/211/277/350/275/275/345/255/220/345/272/224/347/224/250/345/257/271/346/216/245/346/270/205/345/215/225.md +111 -0
  14. package/package.json +29 -4
  15. package/resource-tools/index.js +126 -0
  16. package/src/app-bootstrap.js +531 -0
  17. package/src/app-bootstrap.sync.js +502 -0
  18. package/src/boot-assets.legacy.js +13 -0
  19. package/src/boot-assets.next.js +7 -0
  20. package/src/components/Qrcode/fileParse.vue +11 -0
  21. package/src/components/Tinymce/dynamicLoadScript.js +51 -59
  22. package/src/components/Tinymce/index.vue +382 -336
  23. package/src/components/Tinymce/mce-chrome.scss +150 -0
  24. package/src/components/VabUpload/image-viewer.vue +18 -10
  25. package/src/components/VabUpload/index.js +11 -4
  26. package/src/components/VabUpload/index.vue +1 -1
  27. package/src/components/VabUpload/mixins/fileLibraryDialog.js +2 -0
  28. package/src/components/VabUpload/mixins.js +72 -40
  29. package/src/components/VabUpload/partUploadConfig.js +95 -0
  30. package/src/components/VabUpload/privateProfileDialogMixins.js +2 -0
  31. package/src/components/VabUpload/style.scss +282 -0
  32. package/src/components/VabUpload/view.vue +19 -18
  33. package/src/components/baseArea/index.vue +2 -2
  34. package/src/components/baseInputExport/mixins.js +1 -6
  35. package/src/components/bizTab/BizTabListPage.vue +66 -33
  36. package/src/components/bizTab/README.md +3 -1
  37. package/src/components/bizTab/bizBillDetailMixin.js +2 -0
  38. package/src/components/code-editor/ace-chrome.scss +17 -0
  39. package/src/components/code-editor/index.vue +361 -340
  40. package/src/components/errorMsg/index.vue +142 -13
  41. package/src/components/errorMsg/mixins.js +53 -0
  42. package/src/components/excelExport/conditionExportConfig.js +112 -0
  43. package/src/components/excelExport/exportColumnMemory.js +118 -0
  44. package/src/components/excelExport/exportFieldDialog.vue +50 -38
  45. package/src/components/excelExport/exportType.js +8 -0
  46. package/src/components/excelExport/index.js +30 -13
  47. package/src/components/excelExport/index.vue +7 -1
  48. package/src/components/excelExport/mixins.js +782 -293
  49. package/src/components/excelImport/index.vue +156 -156
  50. package/src/components/excelImport/mixins.js +888 -834
  51. package/src/components/fileLibrary/mixins/indexMixins.js +2 -0
  52. package/src/components/fileLibrary/style.scss +579 -0
  53. package/src/components/formDialog/index.vue +11 -8
  54. package/src/components/hiprint/style.scss +188 -0
  55. package/src/components/hiprint/view/json-view.vue +4 -4
  56. package/src/components/jdPrint/mixins.js +2 -0
  57. package/src/components/jsonImport/index.vue +1 -1
  58. package/src/components/jsonImport/mixins.js +6 -10
  59. package/src/components/langImport/index.vue +1 -1
  60. package/src/components/langImport/mixins.js +6 -10
  61. package/src/components/luckysheet/loadResources.js +64 -0
  62. package/src/components/luckysheet/view.vue +239 -210
  63. package/src/components/mobile/buttonGroup/index.vue +1 -1
  64. package/src/components/mobile/wf/addTaskUserdialog.vue +100 -80
  65. package/src/components/mobile/wf/content.vue +1734 -1662
  66. package/src/components/mobile/wf/deleteTaskUserDialog.vue +73 -54
  67. package/src/components/mobile/wf/selectUserDialog.vue +118 -0
  68. package/src/components/mobile/wf/setCandidateDialog.vue +69 -48
  69. package/src/components/mobile/wf/urgingDialog.vue +75 -52
  70. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  71. package/src/components/obsUpload/index.js +4 -1
  72. package/src/components/obsUpload/index.vue +1 -1
  73. package/src/components/obsUpload/mixins.js +45 -15
  74. package/src/components/onlineTalk/index.vue +4 -4
  75. package/src/components/onlineTalk/mixins.js +21 -7
  76. package/src/components/table/index.js +96 -81
  77. package/src/components/table/plugins/cell-area/index.js +10 -3
  78. package/src/components/table/style.scss +1399 -0
  79. package/src/components/table/vxeFilter/mixin.js +28 -18
  80. package/src/components/wf/content.vue +3 -2
  81. package/src/components/wf/content2.vue +1 -1
  82. package/src/components/wf/style.scss +265 -0
  83. package/src/components/wf/wf.js +7 -0
  84. package/src/components/wf/wfActionItems.js +3 -0
  85. package/src/components/wf/wfStartDialog.vue +1 -0
  86. package/src/components/wf/wfTransferEnabled.js +54 -0
  87. package/src/components/wf/wfUtil.js +47 -29
  88. package/src/components/wf/wfVisibility.js +6 -0
  89. package/src/components/xform/docs/2026-07 table/344/270/216excelExport/344/277/256/345/244/215/345/217/212/345/257/274/345/207/272/344/274/230/345/214/226.md" +64 -57
  90. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +1 -1
  91. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +1 -1
  92. package/src/components/xform/docs/2026-09 /345/212/250/346/200/201/345/255/227/346/256/265/350/247/204/345/210/231/344/270/216/346/265/201/347/250/213/346/216/247/345/210/266/346/211/247/350/241/214/351/241/272/345/272/217/350/220/275/345/234/260/346/226/271/346/241/210.md" +409 -0
  93. package/src/components/xform/docs/2026-09 /346/235/241/344/273/266/345/257/274/345/207/272/345/244/247/346/225/260/346/215/256/351/207/217/345/264/251/346/272/203/346/216/222/346/237/245.md" +389 -0
  94. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/344/273/243/347/240/201/350/257/204/345/256/241.md" +255 -0
  95. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/346/265/213/350/257/225/351/252/214/350/257/201/345/256/236/346/226/275/346/226/207/346/241/243.md" +595 -0
  96. package/src/components/xform/docs/2026-09 /347/274/226/350/276/221/350/241/250/350/241/214/345/206/205/344/277/235/345/255/230/346/240/241/351/252/214/350/214/203/345/233/264/344/270/216/345/210/227/345/277/205/345/241/253/350/247/243/346/236/220/344/277/256/345/244/215.md" +233 -0
  97. package/src/components/xform/docs/2026-09 /350/241/250/345/215/225/345/257/274/345/205/245/351/200/232/351/201/223/346/242/263/347/220/206/344/270/216/350/220/275/345/234/260/346/226/271/346/241/210.md" +745 -0
  98. package/src/components/xform/docs//346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206/344/270/216/344/277/256/345/244/215/350/220/275/345/234/260/346/226/271/346/241/210.md +324 -0
  99. package/src/components/xform/form-designer/designer.js +2133 -2100
  100. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +7 -0
  101. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -2
  102. package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +243 -227
  103. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +228 -207
  104. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +165 -136
  105. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +30 -4
  106. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +190 -185
  107. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2657 -1774
  108. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +27 -4
  109. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
  110. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  111. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +1 -1
  112. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +1 -1
  113. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -1
  114. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  115. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +1 -1
  116. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +1 -1
  117. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +1 -1
  118. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +1 -1
  119. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +1 -1
  120. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -1
  121. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +1 -1
  122. package/src/components/xform/form-designer/form-widget/field-widget/descriptions-widget.vue +1 -1
  123. package/src/components/xform/form-designer/form-widget/field-widget/divider-widget.vue +1 -1
  124. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +1 -1
  125. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +1 -1
  126. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +35 -4
  127. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  128. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  129. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  130. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +64 -10
  131. package/src/components/xform/form-designer/form-widget/field-widget/file-upload-widget.vue +1 -1
  132. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +14 -4
  133. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +1 -1
  134. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +19 -6
  135. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +1 -1
  136. package/src/components/xform/form-designer/form-widget/field-widget/index.js +10 -1
  137. package/src/components/xform/form-designer/form-widget/field-widget/input-batch-widget.vue +1 -1
  138. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +29 -3
  139. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +1 -1
  140. package/src/components/xform/form-designer/form-widget/field-widget/news-list-widget.vue +1 -1
  141. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
  142. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +1 -1
  143. package/src/components/xform/form-designer/form-widget/field-widget/picture-upload-widget.vue +1 -1
  144. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  145. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +1 -1
  146. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +1 -1
  147. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +1 -1
  148. package/src/components/xform/form-designer/form-widget/field-widget/rate-widget.vue +1 -1
  149. package/src/components/xform/form-designer/form-widget/field-widget/rich-editor-widget.vue +1 -1
  150. package/src/components/xform/form-designer/form-widget/field-widget/row-col-select-widget.vue +64 -0
  151. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +1 -1
  152. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +1 -1
  153. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  154. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +1 -1
  155. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -2
  156. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +1 -1
  157. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +1 -1
  158. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -145
  159. package/src/components/xform/form-designer/form-widget/field-widget/slider-widget.vue +1 -1
  160. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +1 -1
  161. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +1 -1
  162. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +1 -1
  163. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +1 -1
  164. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +3 -2
  165. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +1 -1
  166. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +1 -1
  167. package/src/components/xform/form-designer/form-widget/field-widget/textarea-widget.vue +1 -1
  168. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +1 -1
  169. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +1 -1
  170. package/src/components/xform/form-designer/form-widget/field-widget/title-head-widget.vue +1 -1
  171. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +1 -1
  172. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -3
  173. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +25 -1
  174. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +1 -1
  175. package/src/components/xform/form-designer/indexMixin.js +27 -0
  176. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +687 -602
  177. package/src/components/xform/form-designer/setting-panel/form-setting.vue +269 -36
  178. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +335 -12
  179. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +23 -7
  180. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +13 -1
  181. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +846 -860
  182. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-lazyRender-editor.vue +27 -0
  183. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabChange-editor.vue +28 -0
  184. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabClick-editor.vue +28 -0
  185. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +62 -1
  186. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +142 -2
  187. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/empty-number-input.vue +51 -0
  188. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +27 -2
  189. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +33 -3
  190. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +2 -4
  191. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIconClickable-editor.vue +23 -0
  192. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +18 -4
  193. package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
  194. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +13 -0
  195. package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
  196. package/src/components/xform/form-designer/widget-panel/indexMixin.js +15 -2
  197. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +152 -9
  198. package/src/components/xform/form-render/container-item/containerItemMixin.js +93 -8
  199. package/src/components/xform/form-render/container-item/data-table-item.vue +352 -347
  200. package/src/components/xform/form-render/container-item/data-table-mixin.js +7261 -5985
  201. package/src/components/xform/form-render/container-item/detail-h5-item.vue +48 -19
  202. package/src/components/xform/form-render/container-item/detail-item.vue +350 -446
  203. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +55 -1
  204. package/src/components/xform/form-render/container-item/list-h5-item.vue +261 -178
  205. package/src/components/xform/form-render/container-item/panel-item.vue +1 -1
  206. package/src/components/xform/form-render/container-item/tab-item.vue +177 -129
  207. package/src/components/xform/form-render/fieldControlEngine.js +218 -0
  208. package/src/components/xform/form-render/fieldControlMixin.js +536 -0
  209. package/src/components/xform/form-render/index.vue +164 -153
  210. package/src/components/xform/form-render/indexMixin.js +5443 -5311
  211. package/src/components/xform/form-render/pageDialogScope.js +54 -0
  212. package/src/components/xform/icon-picker/index.vue +1 -1
  213. package/src/components/xform/lang/en-US.js +8 -0
  214. package/src/components/xform/lang/zh-CN.js +9 -0
  215. package/src/components/xform/mixins/businessLock.js +59 -0
  216. package/src/components/xform/mixins/defaultHandle.js +713 -707
  217. package/src/components/xform/mixins/scriptHttp.js +42 -21
  218. package/src/components/xform/mixins/wfStart.js +105 -0
  219. package/src/components/xform/mixins/wfVisibility.js +33 -0
  220. package/src/components/xform/styles/census.scss +288 -0
  221. package/src/components/xform/styles/containers.scss +215 -0
  222. package/src/components/xform/styles/designer.scss +904 -0
  223. package/src/components/xform/styles/detail-temp.scss +71 -0
  224. package/src/components/xform/styles/h5-designer.scss +191 -0
  225. package/src/components/xform/styles/h5-runtime.scss +520 -0
  226. package/src/components/xform/styles/h5.scss +836 -516
  227. package/src/components/xform/styles/skins.scss +398 -0
  228. package/src/components/xform/styles/table-layout.scss +91 -0
  229. package/src/components/xform/styles/titles.scss +255 -0
  230. package/src/components/xform/utils/dynamicSchemaUtil.js +385 -361
  231. package/src/components/xform/utils/fixedQueryUtil.js +29 -4
  232. package/src/components/xform/utils/serviceNameCache.js +69 -0
  233. package/src/components/xform/utils/tableColumnHelper.js +46 -4
  234. package/src/components/xform/utils/util.js +1776 -1708
  235. package/src/core-resources/css/h5.scss +548 -0
  236. package/src/core-resources/css/iconfont.css +1447 -0
  237. package/src/core-resources/font/iconfont.ttf +0 -0
  238. package/src/core-resources/font/iconfont.woff +0 -0
  239. package/src/core-resources/font/iconfont.woff2 +0 -0
  240. package/src/core-resources/images/default-header.png +0 -0
  241. package/src/core-resources/images/ico-default_wenjian.svg +1 -0
  242. package/src/core-resources/images/ico-excel.svg +1 -0
  243. package/src/core-resources/images/ico-ftl.svg +7 -0
  244. package/src/core-resources/images/ico-html.svg +1 -0
  245. package/src/core-resources/images/ico-java.svg +1 -0
  246. package/src/core-resources/images/ico-music.svg +1 -0
  247. package/src/core-resources/images/ico-pdf.svg +1 -0
  248. package/src/core-resources/images/ico-photo.svg +1 -0
  249. package/src/core-resources/images/ico-ppt.svg +1 -0
  250. package/src/core-resources/images/ico-psd.svg +1 -0
  251. package/src/core-resources/images/ico-service.png +0 -0
  252. package/src/core-resources/images/ico-txt.svg +1 -0
  253. package/src/core-resources/images/ico-video.svg +1 -0
  254. package/src/core-resources/images/ico-vue.svg +8 -0
  255. package/src/core-resources/images/ico-wenjianjia.svg +1 -0
  256. package/src/core-resources/images/ico-wrod.svg +1 -0
  257. package/src/core-resources/images/ico-xml.svg +1 -0
  258. package/src/core-resources/images/ico-yasuobao.svg +1 -0
  259. package/src/core-resources/images/icon-error.png +0 -0
  260. package/src/core-resources/images/icon-tips.png +0 -0
  261. package/src/core-resources/images/nodata.png +0 -0
  262. package/src/core-resources/images/nodata2.png +0 -0
  263. package/src/directive/append-to-body/index.js +48 -0
  264. package/src/directive/el-dialog-center/index.js +3 -2
  265. package/src/directive/el-drag-dialog/drag.js +33 -4
  266. package/src/icons/index.js +9 -0
  267. package/src/icons/svg/404.svg +1 -0
  268. package/src/icons/svg/alert.svg +1 -0
  269. package/src/icons/svg/bug.svg +1 -0
  270. package/src/icons/svg/button.svg +1 -0
  271. package/src/icons/svg/card.svg +1 -0
  272. package/src/icons/svg/cascader-field.svg +1 -0
  273. package/src/icons/svg/census.svg +1 -0
  274. package/src/icons/svg/chart.svg +1 -0
  275. package/src/icons/svg/checkbox-field.svg +1 -0
  276. package/src/icons/svg/clipboard.svg +1 -0
  277. package/src/icons/svg/color-field.svg +1 -0
  278. package/src/icons/svg/component.svg +1 -0
  279. package/src/icons/svg/custom-component.svg +1 -0
  280. package/src/icons/svg/dashboard.svg +1 -0
  281. package/src/icons/svg/data-table.svg +1 -0
  282. package/src/icons/svg/date-field.svg +1 -0
  283. package/src/icons/svg/date-range-field.svg +1 -0
  284. package/src/icons/svg/descriptions.svg +1 -0
  285. package/src/icons/svg/divider.svg +1 -0
  286. package/src/icons/svg/document.svg +1 -0
  287. package/src/icons/svg/documentation.svg +1 -0
  288. package/src/icons/svg/drag.svg +1 -0
  289. package/src/icons/svg/echart-category.svg +1 -0
  290. package/src/icons/svg/echart-pie.svg +1 -0
  291. package/src/icons/svg/echart.svg +1 -0
  292. package/src/icons/svg/edit.svg +1 -0
  293. package/src/icons/svg/education.svg +1 -0
  294. package/src/icons/svg/email.svg +1 -0
  295. package/src/icons/svg/example.svg +1 -0
  296. package/src/icons/svg/excel.svg +1 -0
  297. package/src/icons/svg/exit-fullscreen.svg +1 -0
  298. package/src/icons/svg/eye-open.svg +1 -0
  299. package/src/icons/svg/eye.svg +1 -0
  300. package/src/icons/svg/file-upload-field.svg +1 -0
  301. package/src/icons/svg/form.svg +1 -0
  302. package/src/icons/svg/fullscreen.svg +1 -0
  303. package/src/icons/svg/github.svg +1 -0
  304. package/src/icons/svg/grid.svg +1 -0
  305. package/src/icons/svg/guide.svg +1 -0
  306. package/src/icons/svg/html-text.svg +1 -0
  307. package/src/icons/svg/ico-more.svg +1 -0
  308. package/src/icons/svg/ico-wenjianjia.svg +1 -0
  309. package/src/icons/svg/icon.svg +1 -0
  310. package/src/icons/svg/input-batch.svg +1 -0
  311. package/src/icons/svg/international.svg +1 -0
  312. package/src/icons/svg/language.svg +1 -0
  313. package/src/icons/svg/link.svg +1 -0
  314. package/src/icons/svg/list-export.svg +1 -0
  315. package/src/icons/svg/list.svg +1 -0
  316. package/src/icons/svg/lock.svg +1 -0
  317. package/src/icons/svg/message.svg +1 -0
  318. package/src/icons/svg/money.svg +1 -0
  319. package/src/icons/svg/nested.svg +1 -0
  320. package/src/icons/svg/news-list.svg +1 -0
  321. package/src/icons/svg/node-tree.svg +1 -0
  322. package/src/icons/svg/number-field.svg +1 -0
  323. package/src/icons/svg/password.svg +1 -0
  324. package/src/icons/svg/pdf.svg +1 -0
  325. package/src/icons/svg/people.svg +1 -0
  326. package/src/icons/svg/peoples.svg +1 -0
  327. package/src/icons/svg/picture-upload-field.svg +1 -0
  328. package/src/icons/svg/qq.svg +1 -0
  329. package/src/icons/svg/query.svg +1 -0
  330. package/src/icons/svg/radio-field.svg +1 -0
  331. package/src/icons/svg/rate-field.svg +1 -0
  332. package/src/icons/svg/redo.svg +1 -0
  333. package/src/icons/svg/rich-editor-field.svg +1 -0
  334. package/src/icons/svg/search.svg +1 -0
  335. package/src/icons/svg/searchbox.svg +1 -0
  336. package/src/icons/svg/section.svg +1 -0
  337. package/src/icons/svg/select-field.svg +1 -0
  338. package/src/icons/svg/shopping.svg +1 -0
  339. package/src/icons/svg/size.svg +1 -0
  340. package/src/icons/svg/skill.svg +1 -0
  341. package/src/icons/svg/slider-field.svg +1 -0
  342. package/src/icons/svg/slot-component.svg +1 -0
  343. package/src/icons/svg/slot-field.svg +1 -0
  344. package/src/icons/svg/star.svg +1 -0
  345. package/src/icons/svg/static-text.svg +1 -0
  346. package/src/icons/svg/status.svg +1 -0
  347. package/src/icons/svg/sub-form.svg +1 -0
  348. package/src/icons/svg/switch-field.svg +1 -0
  349. package/src/icons/svg/tab.svg +1 -0
  350. package/src/icons/svg/table.svg +1 -0
  351. package/src/icons/svg/text-field.svg +1 -0
  352. package/src/icons/svg/text.svg +1 -0
  353. package/src/icons/svg/textarea-field.svg +1 -0
  354. package/src/icons/svg/theme.svg +1 -0
  355. package/src/icons/svg/time-field.svg +1 -0
  356. package/src/icons/svg/time-range-field.svg +1 -0
  357. package/src/icons/svg/tips-text.svg +1 -0
  358. package/src/icons/svg/title-head.svg +1 -0
  359. package/src/icons/svg/tree-pane.svg +1 -0
  360. package/src/icons/svg/tree-table.svg +1 -0
  361. package/src/icons/svg/tree.svg +1 -0
  362. package/src/icons/svg/undo.svg +1 -0
  363. package/src/icons/svg/uploadbox.svg +1 -0
  364. package/src/icons/svg/user.svg +1 -0
  365. package/src/icons/svg/vf-box.svg +1 -0
  366. package/src/icons/svg/vf-dialog.svg +1 -0
  367. package/src/icons/svg/vf-drawer.svg +1 -0
  368. package/src/icons/svg/vue-sfc.svg +1 -0
  369. package/src/icons/svg/wechat.svg +1 -0
  370. package/src/icons/svg/zip.svg +1 -0
  371. package/src/index.js +2 -510
  372. package/src/index.next.js +5 -0
  373. package/src/index.sync.js +5 -0
  374. package/src/layout/components/Sidebar/default.vue +1656 -1655
  375. package/src/layout/components/TagsView/index.vue +330 -323
  376. package/src/layout/components/TagsView/style.scss +92 -0
  377. package/src/layout/components/watermark/index.vue +1 -1
  378. package/src/layout/defaultLayout.vue +2 -2
  379. package/src/router/index.js +43 -48
  380. package/src/router/modules/customer.js +12 -0
  381. package/src/store/modules/settings.js +1 -1
  382. package/src/store/modules/tagsView.js +241 -217
  383. package/src/store/modules/user.js +16 -12
  384. package/src/styles/btn.scss +315 -0
  385. package/src/styles/dialog.scss +1710 -0
  386. package/src/styles/element-ui.scss +1076 -0
  387. package/src/styles/element-variables.scss +31 -0
  388. package/src/styles/global.scss +115 -0
  389. package/src/styles/index.scss +245 -0
  390. package/src/styles/layout-skins.scss +840 -0
  391. package/src/styles/legacy-base.scss +19 -0
  392. package/src/styles/menu-icons.scss +75 -0
  393. package/src/styles/mixin.scss +80 -0
  394. package/src/styles/nprogress.scss +14 -0
  395. package/src/styles/page-shell.scss +723 -0
  396. package/src/styles/sidebar.scss +296 -0
  397. package/src/styles/split-handle.scss +52 -0
  398. package/src/styles/theme-variables.scss +7 -0
  399. package/src/styles/transition.scss +48 -0
  400. package/src/styles/utilities.scss +253 -0
  401. package/src/styles/variables.scss +72 -0
  402. package/src/utils/baseDictsCache.js +197 -0
  403. package/src/utils/chunkLoadError.js +24 -0
  404. package/src/utils/featureResources.js +57 -0
  405. package/src/utils/importLimit.js +72 -0
  406. package/src/utils/pdfUtil.js +6 -1
  407. package/src/utils/request.js +149 -9
  408. package/src/utils/resolveViewComponent.js +45 -90
  409. package/src/utils/runtimeRecovery.js +105 -0
  410. package/src/utils/swiperLoader.js +20 -0
  411. package/src/utils/vab.js +1334 -1283
  412. package/src/utils/xlsxLoader.js +29 -0
  413. package/src/views/bd/setting/formVersion/compareContMixin.scss +1 -1
  414. package/src/views/bd/setting/form_template/edit.vue +378 -356
  415. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  416. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  417. package/src/views/bd/setting/form_template/list.vue +304 -303
  418. package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
  419. package/src/views/bd/setting/form_template/mixins/list.js +749 -721
  420. package/src/views/bd/setting/form_template/mixins/list2.js +412 -411
  421. package/src/views/bd/setting/form_template/mixins/wf_list.js +431 -430
  422. package/src/views/mobile/user/area/dialog.vue +1 -1
  423. package/src/views/mobile/user/user/dialog.vue +1 -1
  424. package/src/views/user/bill_setting/mixins/wf.js +8 -0
  425. package/src/views/user/bill_setting/render.vue +1 -1
  426. package/src/views/user/commMenu/index.vue +3 -1
  427. package/src/views/user/commMenu/style.scss +123 -0
  428. package/src/views/user/common_attribute/edit.vue +2 -0
  429. package/src/views/user/common_attribute/itemEdit.vue +2 -0
  430. package/src/views/user/file_view_ins/list.vue +970 -970
  431. package/src/views/user/form/form_template/list.vue +527 -506
  432. package/src/views/user/form/vform/designer.vue +823 -821
  433. package/src/views/user/form/view/list.vue +24 -1
  434. package/src/views/user/home/default.vue +1124 -1117
  435. package/src/views/user/home/default2.vue +12 -8
  436. package/src/views/user/home/index.vue +102 -102
  437. package/src/views/user/home/wjl/content.vue +1581 -1569
  438. package/src/views/user/intf_permission/edit.vue +230 -0
  439. package/src/views/user/intf_permission/list.vue +196 -0
  440. package/src/views/user/menuFallback/index.vue +23 -0
  441. package/src/views/user/notify_message/dialog.vue +139 -139
  442. package/src/views/user/outLink/form_view.vue +202 -202
  443. package/src/views/user/outLink/index.vue +110 -110
  444. package/src/views/user/role/edit.vue +4 -0
  445. package/src/views/user/role/role-box.scss +83 -0
  446. package/src/views/user/role/voc_edit.vue +4 -0
  447. package/src/views/user/user/list.vue +28 -6
  448. package/src/views/user/wf/iframe/index.vue +51 -51
  449. package/src/views/user/wf/iframe/index2.vue +64 -64
  450. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  451. package/src/views/user/wf/wf_manage/list2.vue +871 -871
  452. package/src/views/user/wf/wf_manage/wfContentDialog.vue +177 -126
  453. package/src/views/user/wf/wf_obj_config/activiti_wf.vue +134 -133
  454. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
  455. package/src/views/user/wf/wf_obj_config/list.vue +747 -746
  456. package/src/views/user/wf/wf_obj_config/list_form.vue +374 -373
  457. package/templates/child-app/.env +3 -0
  458. package/templates/child-app/README.md +49 -0
  459. package/templates/child-app/app.config.js +6 -0
  460. package/templates/child-app/babel.config.js +1 -0
  461. package/templates/child-app/core-resources.config.js +15 -0
  462. package/templates/child-app/gitignore +7 -0
  463. package/templates/child-app/package.json +34 -0
  464. package/templates/child-app/public/index.html +12 -0
  465. package/templates/child-app/src/assets/401_images/401.gif +0 -0
  466. package/templates/child-app/src/assets/404_images/404.png +0 -0
  467. package/templates/child-app/src/assets/404_images/404_cloud.png +0 -0
  468. package/templates/child-app/src/assets/logo.png +0 -0
  469. package/templates/child-app/src/corejsConfig.js +2 -0
  470. package/templates/child-app/src/icons/index.js +2 -0
  471. package/templates/child-app/src/icons/svg/child-demo.svg +1 -0
  472. package/templates/child-app/src/layout/index.vue +4 -0
  473. package/templates/child-app/src/main.js +5 -0
  474. package/templates/child-app/src/prefixConfig.js +13 -0
  475. package/templates/child-app/src/resources/css/login.scss +29 -0
  476. package/templates/child-app/src/resources/images/bg-login5.jpg +0 -0
  477. package/templates/child-app/src/resources/images/home-img.png +0 -0
  478. package/templates/child-app/src/router/modules/customer.js +3 -0
  479. package/templates/child-app/src/settings.js +25 -0
  480. package/templates/child-app/src/styles/app.scss +2 -0
  481. package/templates/child-app/src/views/demo/detail.vue +19 -0
  482. package/templates/child-app/src/views/demo/list.vue +38 -0
  483. package/templates/child-app/src/views/user/login/index.vue +18 -0
  484. package/templates/child-app/vue.config.js +107 -0
  485. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +0 -285
  486. package/src/components/xform/form-render/formDynamicFieldMixin.js +0 -131
  487. package/src/views/demo/bizTab/bill/billConfig.js +0 -41
  488. package/src/views/demo/bizTab/bill/detail.vue +0 -436
  489. package/src/views/demo/bizTab/bill/list.vue +0 -288
  490. package/src/views/demo/bizTab/bill/productDialog.vue +0 -176
  491. package/src/views/demo/bizTab/simple/billApi.js +0 -123
  492. package/src/views/demo/bizTab/simple/detail.vue +0 -407
  493. package/src/views/demo/bizTab/simple/list.vue +0 -217
  494. package/src/views/demo/bizTab/standalone/index.vue +0 -121
  495. package/src/views/demo/bizTab/wf/billConfig.js +0 -44
  496. package/src/views/demo/bizTab/wf/detail.vue +0 -661
  497. package/src/views/demo/bizTab/wf/list.vue +0 -242
  498. package/src/views/user/outLink/cc_form_view.vue +0 -188
  499. /package/src/{resources → core-resources}/js/base/common.js +0 -0
@@ -70,22 +70,16 @@
70
70
  v-for="(row, rowIndex) in fieldModel"
71
71
  :key="rowIndex"
72
72
  class="item"
73
- @click="onRowClick(row)"
74
- :class="[
75
- { checked: checkItemIds.includes(row.id) },
76
- itemCardClass,
77
- getRowCompareClass(row),
78
- ]"
73
+ @click="itemCheck(row)"
74
+ :class="{ checked: checkItemIds.includes(row.id) }"
79
75
  >
80
- <!-- 右上角查看角标(对齐 bill_setting 的 .pro-item .t::after)。
81
- 与 itemStyle 解绑:点整行进详情是明细行的统一行为,
82
- 这个角标是它的视觉提示,不该藏在选项后面。
83
- 查询选择场景点行是勾选、不进详情,故不显示。 -->
84
- <i class="h5-item-arrow" v-if="!widget.options.isQueryTable"></i>
85
- <!-- 明细行不放删除按钮:点击整行进详情即可。
86
- 要恢复的话,除了放回这个 div,还得给它补流程判断
87
- (有流程且当前节点不可编辑时要藏掉),它不是 widget,
88
- 拿不到 hiddenByWf / widgetShowRule 那两套。 -->
76
+ <div
77
+ v-if="!widget.options.isQueryTable"
78
+ class="del-btn"
79
+ @click.stop="deleteRow(row, rowIndex)"
80
+ >
81
+ <i class="el-icon-delete"></i>
82
+ </div>
89
83
  <template v-if="vxeOption.columns.length > 0">
90
84
  <div class="t1" v-if="widget.options.isQueryTable">
91
85
  <template
@@ -185,14 +179,6 @@
185
179
  <!-- <div class="status">未审核</div>-->
186
180
  </template>
187
181
  </div>
188
- <!-- 明细卡片的主标题,对齐 bill_setting 的 .pro-item .t(render.vue:105):
189
- 只出主字段的值、前面一个圆点、右上角是「查看」角标。
190
- 上面那个 .t1 是查询选择列表专用的(出「标题:值」若干对),两者互斥。
191
- 主字段就是 isMainFiled 标的那一列(columns() 里取第一个可见列),
192
- 查询选择模式一直用它当标题行,这里把同一口径用到明细卡片上。 -->
193
- <div class="t1 h5-item-title" v-else-if="!!mainTitleColumn">
194
- <b>{{ getColumnDisplayText(mainTitleColumn, row, rowIndex) }}</b>
195
- </div>
196
182
  <div class="t2">
197
183
  <template
198
184
  v-if="
@@ -200,19 +186,13 @@
200
186
  "
201
187
  >
202
188
  <template v-for="(column, columnIndex) in vxeOption.columns">
203
- <!-- 主字段已经当标题了,不再在字段区重复一遍(查询选择模式本来
204
- 就是这个口径,这里两种模式统一)。没有主标题时(mainTitleColumn
205
- 为空,如只有一列)照常全出。 -->
206
189
  <template
207
190
  v-if="
208
- (!column.isMainFiled || !mainTitleColumn) &&
191
+ (!widget.options.isQueryTable || !column.isMainFiled) &&
209
192
  column.showForRow
210
193
  "
211
194
  >
212
- <!-- m2 = 半行(一行两个)。类名沿用 style.scss:14095 早就留好的
213
- `.t2 > dl.m2{width:50%}`(那条规则一直没人往 dl 上打过类)。
214
- 由列的「H5列宽」选项控制,见 isHalfColumn。 -->
215
- <dl :key="columnIndex" :class="{ m2: isHalfColumn(column) }">
195
+ <dl :key="columnIndex">
216
196
  <div>
217
197
  <dt>{{ column.title }}:</dt>
218
198
  <dd>
@@ -230,11 +210,84 @@
230
210
  }}
231
211
  </template>
232
212
 
233
- <!-- 明细行只出纯文本:编辑控件(widget)与操作链接
234
- (editDelete/editButton)都不在行上渲染,点整行进详情,
235
- 详情弹框里才是可编辑的控件。 -->
213
+ <template
214
+ v-else-if="
215
+ column.slots && column.slots.default == 'widget'
216
+ "
217
+ >
218
+ <component
219
+ :is="getColumnWidgetName(column.params.widget)"
220
+ :field="column.params.widget"
221
+ :form-model="globalModel.formModel"
222
+ :designer="null"
223
+ :key="rowIndex + '-' + columnIndex"
224
+ :parent-widget="widget"
225
+ :columnConfig="column.params.columnConfig"
226
+ :subFormRowIndex="rowIndex"
227
+ :formItemProp="
228
+ getColumnProp(widget, {
229
+ column: column,
230
+ rowIndex: rowIndex,
231
+ row: row,
232
+ items: fieldModel,
233
+ })
234
+ "
235
+ :tableParam="{
236
+ column: column,
237
+ rowIndex: rowIndex,
238
+ row: row,
239
+ items: fieldModel,
240
+ }"
241
+ ></component>
242
+ </template>
243
+ <template
244
+ v-else-if="column.params.formatS == 'editDelete'"
245
+ >
246
+ <a
247
+ href="javascript:void(0);"
248
+ class="a-link"
249
+ @click.stop="deleteRow(row, rowIndex)"
250
+ >
251
+ <el-tooltip
252
+ :enterable="false"
253
+ effect="dark"
254
+ content="删除"
255
+ placement="top"
256
+ popper-class="tooltip-skin"
257
+ >
258
+ <i class="el-icon-delete" />
259
+ </el-tooltip>
260
+ </a>
261
+ </template>
262
+ <template
263
+ v-else-if="column.params.formatS == 'editButton'"
264
+ >
265
+ <a
266
+ href="javascript:void(0);"
267
+ class="a-link"
268
+ @click.stop="openEditDialog(row)"
269
+ >
270
+ <el-tooltip
271
+ :enterable="false"
272
+ effect="dark"
273
+ content="查看"
274
+ placement="top"
275
+ popper-class="tooltip-skin"
276
+ >
277
+ <i class="el-icon-edit" />
278
+ </el-tooltip>
279
+ </a>
280
+ </template>
236
281
  <template v-else>
237
- {{ getColumnDisplayText(column, row, rowIndex) }}
282
+ {{
283
+ column.formatter({
284
+ cellValue: row[column.field],
285
+ column: column,
286
+ rowIndex: rowIndex,
287
+ row: row,
288
+ items: fieldModel,
289
+ })
290
+ }}
238
291
  </template>
239
292
  </dd>
240
293
  </div>
@@ -243,9 +296,12 @@
243
296
  </template>
244
297
  </template>
245
298
  </div>
246
- <!-- 明细行不摆操作按钮区:点整行进详情。查询选择场景(isQueryTable)
247
- 仍保留行按钮,那边点行是勾选、按钮另有用途。 -->
248
- <div class="btns" v-if="widget.options.isQueryTable">
299
+ <div class="btns">
300
+ <!-- <div class="checkbox_fl">
301
+ <el-checkbox></el-checkbox>
302
+ </div> -->
303
+ <!-- <a class="btn"><i class="el-icon-delete"/><span>删除</span></a>
304
+ <a class="btn"><i class="el-icon-edit"/><span>查看</span></a>-->
249
305
  <template
250
306
  v-if="!!widget.lineButtons && widget.lineButtons.length > 0"
251
307
  >
@@ -605,9 +661,63 @@
605
661
  </template>
606
662
  </template>
607
663
  </div>
608
- <!-- 明细详情弹框里不摆行操作按钮区:行按钮(lineButtons)属于列表行的
609
- 操作,详情里用不上;容器本身带 border-top 和 padding,即使按钮被
610
- wf 联动隐藏了也会留下一条空白横条。关闭走右上角的 X。 -->
664
+ <div class="btns">
665
+ <template
666
+ v-if="!!widget.lineButtons && widget.lineButtons.length > 0"
667
+ >
668
+ <template v-for="(subWidget, swIdx) in widget.lineButtons">
669
+ <template v-if="'container' === subWidget.category">
670
+ <component
671
+ :is="subWidget.type + '-item'"
672
+ :widget="subWidget"
673
+ :key="swIdx"
674
+ :parent-list="widget.lineButtons"
675
+ :index-of-parent-list="swIdx"
676
+ :parent-widget="widget"
677
+ :subFormRowIndex="rowIndex"
678
+ :tableParam="{
679
+ rowIndex: rowIndex,
680
+ row: row,
681
+ items: fieldModel,
682
+ }"
683
+ >
684
+ <!-- 递归传递插槽!!! -->
685
+ <template
686
+ v-for="slot in Object.keys($scopedSlots)"
687
+ v-slot:[slot]="scope"
688
+ >
689
+ <slot :name="slot" v-bind="scope" />
690
+ </template>
691
+ </component>
692
+ </template>
693
+ <template v-else>
694
+ <component
695
+ :is="subWidget.type + '-widget'"
696
+ :field="subWidget"
697
+ :designer="null"
698
+ :key="swIdx"
699
+ :parent-list="widget.lineButtons"
700
+ :index-of-parent-list="swIdx"
701
+ :parent-widget="widget"
702
+ :subFormRowIndex="rowIndex"
703
+ :tableParam="{
704
+ rowIndex: rowIndex,
705
+ row: row,
706
+ items: fieldModel,
707
+ }"
708
+ >
709
+ <!-- 递归传递插槽!!! -->
710
+ <template
711
+ v-for="slot in Object.keys($scopedSlots)"
712
+ v-slot:[slot]="scope"
713
+ >
714
+ <slot :name="slot" v-bind="scope" />
715
+ </template>
716
+ </component>
717
+ </template>
718
+ </template>
719
+ </template>
720
+ </div>
611
721
  </template>
612
722
 
613
723
  <!-- <div class="t1">
@@ -622,16 +732,6 @@
622
732
  </div>
623
733
  </div>
624
734
  </div>
625
- <span slot="footer" class="dialog-footer">
626
- <el-button
627
- type="primary"
628
- plain
629
- class="button-sty"
630
- icon="el-icon-close"
631
- @click="showRowDetailDialog = false"
632
- >{{ $t1("关闭") }}</el-button
633
- >
634
- </span>
635
735
  </el-dialog>
636
736
  </container-item-wrapper>
637
737
  </template>
@@ -655,7 +755,8 @@ import {
655
755
  } from "../../../../components/xform/utils/textMaskUtil";
656
756
  import { extendDeeply } from "../../../../utils/index.js";
657
757
  import { mergeQueryParam } from "../../../../components/xform/utils/queryParamUtil";
658
- import render from "../../../../views/user/bill_setting/render.vue";
758
+ import render from "../../../../views/user/bill_setting/render.vue";
759
+ import axios from "axios";
659
760
 
660
761
  const baseRefUtil = {
661
762
  emitter,
@@ -741,7 +842,10 @@ export default {
741
842
  },
742
843
  keyword: null,
743
844
 
744
- checkItemIds: [],
845
+ checkItemIds: [],
846
+ tableQuerySeq: 0,
847
+ tableQueryCancelSource: null,
848
+ tableDestroyed: false,
745
849
  };
746
850
  },
747
851
  watch: {
@@ -753,13 +857,6 @@ export default {
753
857
  formConfig: function () {
754
858
  return this.getFormConfig();
755
859
  },
756
- /**
757
- * 明细行卡片样式开关。只判 === 'card':老表单该 option 为 null/undefined
758
- * (upgradeWidgetConfig 补的是 null,运行时读不到这个键),必须退回朴素列表。
759
- */
760
- itemCardClass: function () {
761
- return this.widget.options.itemStyle === "card" ? "h5-item-card" : "";
762
- },
763
860
  paginationLayout: function () {
764
861
  return this.widget.options.smallPagination
765
862
  ? "prev, pager, next"
@@ -777,26 +874,6 @@ export default {
777
874
  : !!this.widget.options.buttonsColumnFixed &&
778
875
  this.widget.options.buttonsColumnFixed;
779
876
  },
780
- /**
781
- * 明细卡片主标题所用的列(对齐 bill_setting 的 mainFieldName)。
782
- *
783
- * 主字段就是 columns() 里标了 isMainFiled 的那一列 —— 第一个既有 prop
784
- * 又 showForRow 的列,不是另配的选项。查询选择列表一直拿它当标题行,
785
- * 这里把同一口径用到明细卡片上。
786
- *
787
- * 返回值同时决定字段区要不要把主字段排除掉(模板里那个 v-if)。
788
- */
789
- mainTitleColumn() {
790
- let visible = (this.vxeOption.columns || []).filter(
791
- (column) => column.showForRow
792
- );
793
- let main = visible.find((column) => column.isMainFiled) || null;
794
- if (!main) return null;
795
- // 查询选择模式的标题行是另一个 .t1,与可见列数无关,一直排除主字段,保持原口径
796
- if (this.widget.options.isQueryTable) return main;
797
- // 明细卡片:只有一列时不抽标题 —— 抽走字段区就空了,不如照常当字段出
798
- return visible.length < 2 ? null : main;
799
- },
800
877
  columns() {
801
878
  let tableColumns = this.widget.options.tableColumns;
802
879
  let newColumns = [];
@@ -832,8 +909,7 @@ export default {
832
909
  fixed: !!t.fixed && t.fixed,
833
910
  field: t.prop,
834
911
  title: t.label,
835
- // 原来这里还有一个 `witdh: t.width` —— 键名拼错(w-i-t-d-h)、全库无人读取,
836
- // 且 H5 卡片是 dl/dt/dd 排版本来就不吃列宽。列配置里的「列宽」已一并去掉。
912
+ witdh: t.width,
837
913
  sortable: t.sortable,
838
914
  align: t.align ? t.align : "center",
839
915
  formatter: this.formatterValue,
@@ -920,10 +996,38 @@ export default {
920
996
  this.handleOnMounted();
921
997
  this.initTableList();
922
998
  },
923
- beforeDestroy: function () {
924
- this.unregisterFromRefList();
925
- },
926
- methods: {
999
+ beforeDestroy: function () {
1000
+ this.tableDestroyed = true;
1001
+ this.cancelActiveTableQuery("table destroyed");
1002
+ this.unregisterFromRefList();
1003
+ },
1004
+ methods: {
1005
+ cancelActiveTableQuery(reason) {
1006
+ if (this.tableQueryCancelSource) {
1007
+ this.tableQueryCancelSource.cancel(reason || "superseded table query");
1008
+ this.tableQueryCancelSource = null;
1009
+ }
1010
+ },
1011
+ startTableQuery() {
1012
+ this.cancelActiveTableQuery();
1013
+ const source = axios.CancelToken.source();
1014
+ const context = { seq: ++this.tableQuerySeq, source };
1015
+ this.tableQueryCancelSource = source;
1016
+ return context;
1017
+ },
1018
+ isCurrentTableQuery(context) {
1019
+ return (
1020
+ !this.tableDestroyed &&
1021
+ context &&
1022
+ context.seq === this.tableQuerySeq &&
1023
+ this.tableQueryCancelSource === context.source
1024
+ );
1025
+ },
1026
+ finishTableQuery(context) {
1027
+ if (context && this.tableQueryCancelSource === context.source) {
1028
+ this.tableQueryCancelSource = null;
1029
+ }
1030
+ },
927
1031
  openAdvancedSearchDialog() {
928
1032
  /*let formData = this.formModel;
929
1033
  let advancedFormData = {};
@@ -1127,15 +1231,15 @@ export default {
1127
1231
  },*/
1128
1232
  ...dataTableConfig.config,
1129
1233
  },
1130
- exportAjax: (param) => {
1234
+ exportAjax: (param) => {
1131
1235
  let $grid = this.getGridTable();
1132
1236
  let pageSize = param.size;
1133
1237
  let currentPage = param.current;
1134
1238
  let page = { pageSize, currentPage };
1135
- return this.vxeOption.config.proxyConfig.ajax.query.call(this, {
1136
- page,
1137
- param,
1138
- });
1239
+ return this.vxeOption.config.proxyConfig.ajax.query.call(this, {
1240
+ page,
1241
+ param: { ...param, __exportQuery: true },
1242
+ });
1139
1243
  },
1140
1244
  };
1141
1245
 
@@ -1147,8 +1251,12 @@ export default {
1147
1251
  total: isDataPage ? "objx.total" : "objx.length", // 配置响应结果总页数字段
1148
1252
  },
1149
1253
  ajax: {
1150
- // 接收 Promise 对象
1151
- query: ({ page, sorts, filters, form, param }) => {
1254
+ // 接收 Promise 对象
1255
+ query: ({ page, sorts, filters, form, param }) => {
1256
+ const isExportQuery = param?.__exportQuery === true;
1257
+ const queryContext = isExportQuery
1258
+ ? null
1259
+ : this.startTableQuery();
1152
1260
  let scriptCode = this.getScriptCode();
1153
1261
  let formData = tableOption.param ? tableOption.param() || {} : {};
1154
1262
  const queryParams = Object.assign({}, formData);
@@ -1164,8 +1272,9 @@ export default {
1164
1272
  queryParams.current = page.currentPage;
1165
1273
  }
1166
1274
 
1167
- queryParams.searchCount = isQueryAllPage !== false;
1168
- Object.assign(queryParams, param);
1275
+ queryParams.searchCount = isQueryAllPage !== false;
1276
+ Object.assign(queryParams, param);
1277
+ delete queryParams.__exportQuery;
1169
1278
 
1170
1279
  // 与 PC 链路同规则:condition 追加合并,其余键平铺覆盖
1171
1280
  if (that.dataTableConfig.queryParam) {
@@ -1177,8 +1286,18 @@ export default {
1177
1286
  ...queryParams,
1178
1287
  };
1179
1288
  if (scriptCode) {
1180
- let done = (res) => {
1181
- resolve(res);
1289
+ let done = (res) => {
1290
+ if (
1291
+ !isExportQuery &&
1292
+ !this.isCurrentTableQuery(queryContext)
1293
+ ) {
1294
+ reject(new axios.Cancel("stale table query"));
1295
+ return;
1296
+ }
1297
+ resolve(res);
1298
+ if (isExportQuery) return;
1299
+ const querySeq = queryContext.seq;
1300
+ this.finishTableQuery(queryContext);
1182
1301
  if (res.type === "success") {
1183
1302
  let rows = res.objx
1184
1303
  ? res.objx.records || res.objx || []
@@ -1192,8 +1311,13 @@ export default {
1192
1311
  records: rows,
1193
1312
  };
1194
1313
  }
1195
- that.$nextTick(() => {
1196
- setTimeout(function () {
1314
+ that.$nextTick(() => {
1315
+ setTimeout(function () {
1316
+ if (
1317
+ that.tableDestroyed ||
1318
+ querySeq !== that.tableQuerySeq
1319
+ )
1320
+ return;
1197
1321
  dataTableConfig.callback &&
1198
1322
  dataTableConfig.callback(rows);
1199
1323
  tableOption.callback && tableOption.callback(rows);
@@ -1214,11 +1338,17 @@ export default {
1214
1338
  this.setValue([]);
1215
1339
  }
1216
1340
  };
1217
- this.loadDefaultQueryList(reqData, done).catch((error) => {
1218
- reject(error);
1219
- });
1220
- } else {
1221
- resolve();
1341
+ this.loadDefaultQueryList(
1342
+ reqData,
1343
+ done,
1344
+ queryContext?.source.token
1345
+ ).catch((error) => {
1346
+ if (queryContext) this.finishTableQuery(queryContext);
1347
+ reject(error);
1348
+ });
1349
+ } else {
1350
+ if (queryContext) this.finishTableQuery(queryContext);
1351
+ resolve();
1222
1352
  }
1223
1353
  });
1224
1354
  },
@@ -1330,10 +1460,14 @@ export default {
1330
1460
  }
1331
1461
  if (!isQueryTable && !this.formDataId) return;
1332
1462
 
1333
- let scriptCode = this.getScriptCode();
1334
- if (scriptCode) {
1335
- this.loadDefaultViewList();
1336
- }
1463
+ let scriptCode = this.getScriptCode();
1464
+ if (scriptCode) {
1465
+ this.loadDefaultViewList().catch((error) => {
1466
+ if (!axios.isCancel(error) && !this.tableDestroyed) {
1467
+ console.error("[data-table-h5] default view query failed", error);
1468
+ }
1469
+ });
1470
+ }
1337
1471
  },
1338
1472
  getAccessParam() {
1339
1473
  if (!this.widget.options.formScriptParam) return;
@@ -1379,7 +1513,7 @@ export default {
1379
1513
  ? { ...base, ...(innerData || {}) }
1380
1514
  : { ...base, data: innerData || {} };
1381
1515
  },
1382
- loadDefaultQueryList(reqData, done) {
1516
+ loadDefaultQueryList(reqData, done, cancelToken) {
1383
1517
  let reportTemplate = this.getFormRef().reportTemplate;
1384
1518
  let scriptCode = this.getScriptCode();
1385
1519
  let accessParam = this.getAccessParam() || {};
@@ -1397,14 +1531,16 @@ export default {
1397
1531
  return this.formHttp({
1398
1532
  scriptCode: scriptCode,
1399
1533
  data: this.buildFormScriptData(reportTemplate, requestData),
1400
- isLoading: false,
1534
+ isLoading: false,
1535
+ cancelToken,
1401
1536
  ...defaultOption,
1402
1537
  callback: (res) => {
1403
1538
  done(res);
1404
1539
  },
1405
1540
  });
1406
1541
  },
1407
- loadDefaultViewList() {
1542
+ loadDefaultViewList() {
1543
+ const queryContext = this.startTableQuery();
1408
1544
  let dataId = this.formDataId;
1409
1545
  let reportTemplate = this.getFormRef().reportTemplate;
1410
1546
  let accessParam = this.getAccessParam() || {};
@@ -1414,23 +1550,30 @@ export default {
1414
1550
  otherParam.attachmentType = attachmentType;
1415
1551
  }
1416
1552
  let scriptCode = this.getScriptCode();
1417
- return this.formHttp({
1418
- scriptCode: scriptCode,
1553
+ const requestTask = this.formHttp({
1554
+ scriptCode: scriptCode,
1555
+ cancelToken: queryContext.source.token,
1419
1556
  data: this.buildFormScriptData(reportTemplate, {
1420
1557
  id: dataId,
1421
1558
  ...otherParam,
1422
1559
  ...accessParam,
1423
1560
  }),
1424
- callback: (res) => {
1425
- let rows = res.objx ? res.objx.records || res.objx || [] : [];
1426
- this.setValue(rows);
1561
+ callback: (res) => {
1562
+ if (!this.isCurrentTableQuery(queryContext)) return;
1563
+ let rows = res.objx ? res.objx.records || res.objx || [] : [];
1564
+ this.finishTableQuery(queryContext);
1565
+ this.setValue(rows);
1427
1566
  this.handleCustomEvent(
1428
1567
  this.widget.options.formScriptCallback,
1429
1568
  ["rows"],
1430
1569
  [rows]
1431
1570
  );
1432
- },
1433
- });
1571
+ },
1572
+ });
1573
+ return Promise.resolve(requestTask).catch((error) => {
1574
+ this.finishTableQuery(queryContext);
1575
+ throw error;
1576
+ });
1434
1577
  },
1435
1578
  getReqParam(item, dataId, billData) {
1436
1579
  let param = {};
@@ -1604,66 +1747,6 @@ export default {
1604
1747
  option.prefix = option.prefix || serverName;
1605
1748
  this.$excelExport({ targetRef: tableRef, ...option });
1606
1749
  },
1607
- /**
1608
- * 行级对比标记,复用 indexMixin 的 getCompareRowClass(data-table 也在用,
1609
- * 见 data-table-mixin.js 的 rowClassName)。返回
1610
- * xform-compare-row-new / xform-compare-row-changed / ""。
1611
- * 未参与对比的子表由 getCompareRowClass 内部的 isCompareSubTable 拦掉,
1612
- * 不会满屏高亮,这里无需重复判断。
1613
- */
1614
- getRowCompareClass(row) {
1615
- let formRef = this.getFormRef();
1616
- if (!formRef || !formRef.isCompare || !formRef.getCompareRowClass)
1617
- return "";
1618
- return formRef.getCompareRowClass(this.fieldKeyName, row);
1619
- },
1620
- /**
1621
- * 该列在 H5 明细卡片里是否占半行(一行两个)。
1622
- *
1623
- * 取列的「H5列宽」选项(table-column-dialog 的「编辑更多属性」里配),
1624
- * 运行期从 columnConfig 上读 —— createColumns 把整个设计器列对象原样挂在
1625
- * `col.params.columnConfig` 上(data-table-mixin.js:1762)。
1626
- * 只认 'half':没配过的老列读到 undefined,按整行处理;不能写成 !== 'full'。
1627
- */
1628
- isHalfColumn(column) {
1629
- return column?.params?.columnConfig?.h5Span === "half";
1630
- },
1631
- /**
1632
- * 明细行的显示文本。
1633
- *
1634
- * 行上不渲染编辑控件,所以有选项的列(下拉/状态/单选/多选)必须自己把
1635
- * value 换成 label —— 否则状态列会显示成 1 而不是「审核中」,
1636
- * 因为 formatterValue 只做日期与数字格式化,不查选项表。
1637
- */
1638
- getColumnDisplayText(column, row, rowIndex) {
1639
- let value = row[column.field];
1640
- let columnWidget = column.params ? column.params.widget : null;
1641
- let widgetOptions = (columnWidget && columnWidget.options) || {};
1642
- let optionList = widgetOptions.optionItems || widgetOptions.statusParam;
1643
- if (optionList && optionList.length) {
1644
- let hit = optionList.filter((o) => String(o.value) === String(value))[0];
1645
- if (hit) return hit.label;
1646
- }
1647
- return column.formatter({
1648
- cellValue: value,
1649
- column: column,
1650
- rowIndex: rowIndex,
1651
- row: row,
1652
- items: this.fieldModel,
1653
- });
1654
- },
1655
- /**
1656
- * 行点击:
1657
- * - 查询选择场景(isQueryTable):点行是勾选,保持原行为;
1658
- * - 明细行:点整行打开明细详情(行上不再摆删除/操作按钮)。
1659
- */
1660
- onRowClick(row) {
1661
- if (this.widget.options.isQueryTable) {
1662
- this.itemCheck(row);
1663
- return
1664
- }
1665
- this.openRowDetailDialog(row);
1666
- },
1667
1750
  itemCheck(row) {
1668
1751
  let dataTableConfig = this.dataTableConfig;
1669
1752
  if (dataTableConfig) {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <container-item-wrapper :widget="widget">
3
3
  <div :key="widget.id" class="table-container" v-show="!widget.options.hidden" :style="heightStyle">
4
- <template v-if="!!widget.widgetList && widget.widgetList.length > 0" v-show="!widget.options.hidden">
4
+ <template v-if="!!widget.widgetList && widget.widgetList.length > 0">
5
5
  <template v-for="(subWidget, swIdx) in widget.widgetList">
6
6
  <template v-if="'container' === subWidget.category">
7
7
  <component