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
@@ -0,0 +1,502 @@
1
+ // 同步启动:与 app-bootstrap.js 相同,但 excelImport / VabUpload / jsonImport / langImport 不走 lazyPrototypePlugin。
2
+ // 由 index.sync.js 接入。
3
+ import Vue from "vue";
4
+ import Cookies from "js-cookie";
5
+ import Element from "element-ui";
6
+ import App from "@base/App";
7
+ import store from "@base/store";
8
+ import router, { resetRouter } from "@base/router";
9
+ import settings from "@/settings";
10
+ import { setToken as setAuthToken } from "@base/utils/auth";
11
+ import { loadViewComponentAsync } from "@base/utils/resolveViewComponent";
12
+ import { installRuntimeRecovery } from "@base/utils/runtimeRecovery";
13
+
14
+ import "@base/permission"; // permission control
15
+
16
+ import * as filters from "@base/filters"; // global filters
17
+
18
+ // main.js 文件添加以下代码
19
+
20
+ import BaseKeepAlive from "@base/utils/keepAlive.js";
21
+
22
+ Vue.component("BaseKeepAlive", BaseKeepAlive);
23
+
24
+ import VXETable from "vxe-table";
25
+ import "vxe-table/lib/style.css";
26
+ import "@base/components/table/style.scss";
27
+ import "@base/components/fileLibrary/style.scss";
28
+ import "@base/components/VabUpload/style.scss";
29
+ import "@base/components/xform/styles/table-layout.scss";
30
+ import "@base/components/xform/styles/designer.scss";
31
+ import "@base/components/xform/styles/census.scss";
32
+ import "@base/components/xform/styles/titles.scss";
33
+ import "@base/components/xform/styles/containers.scss";
34
+ import "@base/components/xform/styles/skins.scss";
35
+ import "@base/components/xform/styles/detail-temp.scss";
36
+ import "@base/components/xform/styles/h5-designer.scss";
37
+ import "@base/components/xform/styles/h5-runtime.scss";
38
+ import "@base/components/hiprint/style.scss";
39
+ import "@base/components/wf/style.scss";
40
+
41
+ // 区域选取/复制粘贴:自研实现,通过 window.VXETableMixin 挂载,
42
+ // 必须在下面的 Vue.use(VXETable) 之前求值(core 在 install 时读取一次并 delete)
43
+ import "@base/components/table/plugins/cell-area/index.js";
44
+ import "@base/components/table/plugins/cell-area/index.scss";
45
+
46
+ // 引入扩展插件(官方付费插件,已由上面的自研 cell-area 替代,保留仅作回退参考)
47
+ // import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js";
48
+ // import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css";
49
+
50
+ /* // 设置授权信息
51
+ VXETable.setup({
52
+ // showAuthLog: true, // 是否在控制台显示授权信息,专业版支持关闭
53
+ // authId: 'gbeumewkoyt2rhf9', // 获取授权后在官网登录后进入“用户中心”查看
54
+ authId: 'gbeumewkoyt2rhft', // 获取授权后在官网登录后进入“用户中心”查看
55
+ // onAuth (e) {
56
+ // // 打印授权状态
57
+ // console.log(e)
58
+ // }
59
+ }) */
60
+
61
+ import Vab from "@base/utils/vab";
62
+ import createCodeEditorAsyncComponent from "@base/components/code-editor/async";
63
+
64
+ Vue.use(Vab);
65
+
66
+ // appCode 兜底派生:子应用(拥有自己的子命名空间,即 WEB_PREFIX !== MAIN_WEB_PREFIX)
67
+ // 若未在自身 settings.js 里维护 appCode,则从 WEB_PREFIX 去前导斜杠派生(/mkweb → mkweb),
68
+ // 免得每个子应用再手填一处、也不会写错。主应用/独立主站两前缀相同 → 保持空。
69
+ // 优先级:mount 里的 props.appCode > settings 显式值 > 此派生。window.WEB_PREFIX /
70
+ // MAIN_WEB_PREFIX 已由上面 vab 的 Object.assign(window, prefixConfig) 设好。
71
+ if (!settings.appCode) {
72
+ const webPrefix = window.WEB_PREFIX || "";
73
+ const mainWebPrefix = window.MAIN_WEB_PREFIX || "";
74
+ if (webPrefix && webPrefix !== mainWebPrefix) {
75
+ settings.appCode = webPrefix.replace(/^\/+/, "");
76
+ }
77
+ }
78
+
79
+ Vue.use(VXETable);
80
+
81
+ /* import tablePluns from "@/mixins/table/index.js"
82
+ VXETable.use(tablePluns) */
83
+
84
+ import "@base/components/table/index.js";
85
+
86
+ import drag from "@base/directive/el-drag-dialog/index.js";
87
+
88
+ Vue.use(drag.install);
89
+
90
+ import elDialogCenter from "@base/directive/el-dialog-center/index.js";
91
+
92
+ Vue.use(elDialogCenter.install);
93
+
94
+ import ErroreBox from "@base/components/errorMsg/index.js";
95
+
96
+ Vue.use(ErroreBox);
97
+
98
+ import ExcelExport from "@base/components/excelExport/index.js";
99
+
100
+ Vue.use(ExcelExport);
101
+
102
+ // 同步入口:不走 lazyPrototypePlugin,启动时直接注册
103
+ import ExcelImport from "@base/components/excelImport/index.js";
104
+
105
+ Vue.use(ExcelImport);
106
+
107
+ import ConfirmDialog from "@base/components/confirmDialog/index.js";
108
+
109
+ Vue.use(ConfirmDialog);
110
+
111
+ import baseAlert from "@base/components/baseAlert/index.js";
112
+
113
+ Vue.use(baseAlert);
114
+
115
+ import FormDialog from "@base/components/formDialog/index.js";
116
+
117
+ Vue.use(FormDialog);
118
+
119
+ import FormDrawer from "@base/components/formDrawer/index.js";
120
+
121
+ Vue.use(FormDrawer);
122
+
123
+ import permission from "@base/directive/permission";
124
+
125
+ Vue.use(permission);
126
+
127
+ import VabUpload from "@base/components/VabUpload/index.js";
128
+
129
+ Vue.use(VabUpload);
130
+
131
+ Vue.component("baseUpload", () =>
132
+ import("@base/components/VabUpload/view.vue")
133
+ );
134
+
135
+ import baseAttachment from "@base/components/baseAttachment/install";
136
+
137
+ Vue.use(baseAttachment);
138
+ Vue.component("attachmentShowList", () =>
139
+ import("@base/components/baseAttachment/showList")
140
+ );
141
+
142
+ import "@base/core-resources/js/base/common.js";
143
+
144
+ import vxeFilter from "@base/components/table/vxeFilter/index.js";
145
+
146
+ Vue.use(vxeFilter);
147
+
148
+ // 首屏优化:低频/非首屏组件转懒注册(名字与组件内 name 一致,写死字符串)
149
+ Vue.component("base-table-export", () =>
150
+ import("@base/components/excelExport/button.vue")
151
+ );
152
+
153
+ /* Vue.component('extendedProperties', () => import('@base/components/extendedProperties/view.vue')); */
154
+
155
+ import LimitNumber from "@base/directive/LimitNumber/index.js";
156
+
157
+ Vue.use(LimitNumber);
158
+
159
+ import baseInputNumber from "@base/components/baseInputNumber/index.vue";
160
+
161
+ Vue.component(baseInputNumber.name, baseInputNumber);
162
+
163
+ import elReadonly from "@base/directive/el-readonly/index.js";
164
+
165
+ Vue.use(elReadonly);
166
+
167
+ import appendToBody from "@base/directive/append-to-body/index.js";
168
+
169
+ Vue.use(appendToBody.install);
170
+
171
+ /*import cnPrint from "@base/components/cnPrint/index.js"
172
+
173
+ Vue.use(cnPrint);*/
174
+
175
+ Vue.component("oplogTable", () =>
176
+ import("@base/components/oplogTable/index.vue")
177
+ );
178
+
179
+ Vue.component("baseInputBatch", () =>
180
+ import("@base/components/baseInputBatch/index.vue")
181
+ );
182
+
183
+ Vue.component("baseArea", () => import("@base/components/baseArea/index.vue"));
184
+
185
+ Vue.component("baseInputExport", () =>
186
+ import("@base/components/baseInputExport/index.vue")
187
+ );
188
+
189
+ Vue.component("advancedSearchDialog", () =>
190
+ import("@base/components/advancedSearchDialog/index.vue")
191
+ );
192
+
193
+ // baseTabs/baseTabPane 必须同步注册,不可懒注册:
194
+ // xform 详情容器(detail-item)把所有 detail-pane 及其内部字段组件放在 <baseTabs> 的默认插槽里。
195
+ // 异步组件未解析时 Vue 只渲染占位注释节点,插槽内的组件不会被实例化,
196
+ // 于是 detail-item 的 mounted 早于内部字段组件的 created(registerToRefList)执行,
197
+ // 模板脚本 onMounted 里的 getWidgetRef('xxx') 首次进入必然拿到 undefined(二次进入因异步工厂已缓存而正常)。
198
+ import baseTabs from "@base/components/baseTabs/index.vue";
199
+ import baseTabPane from "@base/components/baseTabs/baseTabPane.vue";
200
+
201
+ Vue.component(baseTabs.name, baseTabs);
202
+ Vue.component(baseTabPane.name, baseTabPane);
203
+
204
+ import vb_tabs from "@base/components/vb-tabs/index.vue";
205
+ import vb_tab_pane from "@base/components/vb-tabs/tab-pane.vue";
206
+ import xTabs from "@base/components/vb-tabs/x-tabs.vue";
207
+
208
+ Vue.component(vb_tabs.name, vb_tabs);
209
+ Vue.component(vb_tab_pane.name, vb_tab_pane);
210
+ Vue.component(xTabs.name, xTabs);
211
+
212
+ Vue.component("status-tag", () =>
213
+ import("@base/components/statusTag/index.vue")
214
+ );
215
+
216
+ Vue.component("CodeEditor", createCodeEditorAsyncComponent);
217
+
218
+ Vue.component("scriptDescriptionButton", () =>
219
+ import("@base/components/scriptDescription/button")
220
+ );
221
+
222
+ Vue.component("scriptTestButton", () =>
223
+ import("@base/components/scriptTest/button")
224
+ );
225
+
226
+ Vue.component("BaseTextarea", () =>
227
+ import("@base/components/base-textarea/index.vue")
228
+ );
229
+
230
+ import JsonImport from "@base/components/jsonImport/index.js";
231
+
232
+ Vue.use(JsonImport);
233
+
234
+ import LangImport from "@base/components/langImport/index.js";
235
+
236
+ Vue.use(LangImport);
237
+
238
+ //vform
239
+ // import '@base/components/xform/utils/directive'
240
+
241
+ import i18n from "@base/lang/index.js";
242
+
243
+ /**
244
+ * If you don't want to use mock-server
245
+ * you want to use MockJs for mock api
246
+ * you can execute: mockXHR()
247
+ *
248
+ * Currently MockJs will be used in the production environment,
249
+ * please remove it before going online ! ! !
250
+ */
251
+ if (process.env.NODE_ENV === "production") {
252
+ /* const { mockXHR } = require('../mock')
253
+ mockXHR() */
254
+ }
255
+
256
+ Vue.use(Element, {
257
+ size: Cookies.get("size") || "medium", // set element-ui default size
258
+ // locale: enLang // 如果使用中文,无需设置,请删除
259
+ });
260
+ installRuntimeRecovery();
261
+
262
+ // register global utility filters
263
+ Object.keys(filters).forEach((key) => {
264
+ Vue.filter(key, filters[key]);
265
+ });
266
+
267
+ // 详情承载宿主:弹框 remote 分支用它 loadMicroApp 装载归属子应用渲染私有详情页
268
+ Vue.component("micro-view-host", () =>
269
+ import("@base/components/micro-view-host/index.vue")
270
+ );
271
+
272
+ Vue.config.productionTip = false;
273
+
274
+ let instance = null;
275
+
276
+ function render(props = {}) {
277
+ const { container } = props;
278
+ instance = new Vue({
279
+ router,
280
+ store,
281
+ i18n,
282
+ render: (h) => h(App),
283
+ });
284
+ // Synchronous child renders may call global helpers such as $t2.
285
+ // Publish the initialized root before mounting any child component.
286
+ window.$vueRoot = instance;
287
+ instance.$mount(container ? container.querySelector("#app") : "#app");
288
+ }
289
+
290
+ /**
291
+ * 详情承载入口(qiankun 详情承载协议 §5.5)。
292
+ * 主应用/渲染方的 micro-view-host 用 loadMicroApp 装载本应用并置 props.microDetailHost=true,
293
+ * 要求只渲染 targetPath 指向的详情页、把详情页的刷新/关闭/回调桥接回主应用,不出整站壳。
294
+ * 契约字段见 docs/qiankun详情承载子应用对接清单.md。
295
+ *
296
+ * ⚠ parentVue shim 的委托语义需真机联调打磨:详情页 getTarget(this) 命中 shim 后会用到
297
+ * $http/$message/$baseConfirm/$attrs 等——这些经原型委托到宿主根实例(全局插件已装齐),
298
+ * 仅 $baseReload / _handleCallback 覆盖为回主应用的动作。个别详情页若有更深的 $parent 依赖,
299
+ * 按对接清单 §5.6 做最小改造。
300
+ */
301
+ async function mountDetailHost(props = {}) {
302
+ if (props.appCode) settings.appCode = props.appCode;
303
+ if (props.token) {
304
+ setAuthToken(props.token);
305
+ store.commit("user/SET_TOKEN", props.token);
306
+ }
307
+ if (props.lang) i18n.locale = props.lang;
308
+
309
+ const appCode = props.appCode || settings.appCode;
310
+ const resolved = await loadViewComponentAsync(props.targetPath, { appCode });
311
+ const target = resolved.component;
312
+ const bizParams = props.bizParams || {};
313
+ const viewMeta = props.viewMeta || {};
314
+
315
+ // shim 需先于 render 存在(作为 parentVue prop 传入),其 Vue 能力在挂载后经原型委托到根实例
316
+ const shim = {
317
+ $baseReload: () => props.onReload && props.onReload(),
318
+ _handleCallback: (flag) => props.onHandleCallback && props.onHandleCallback(flag),
319
+ };
320
+
321
+ const { container } = props;
322
+ const mountEl = container ? container.querySelector("#app") : "#app";
323
+ instance = new Vue({
324
+ store,
325
+ i18n,
326
+ render(h) {
327
+ if (!target) {
328
+ return h(
329
+ "div",
330
+ { staticClass: "micro-detail-host-missing" },
331
+ "详情页组件未找到:" + (props.targetPath || "")
332
+ );
333
+ }
334
+ return h(target, {
335
+ props: Object.assign({}, bizParams, viewMeta, {
336
+ parentVue: shim,
337
+ _handleCallback: (flag) =>
338
+ props.onHandleCallback && props.onHandleCallback(flag),
339
+ outParam: props.initialOutParam,
340
+ }),
341
+ on: {
342
+ reload: () => props.onReload && props.onReload(),
343
+ close: () => props.onClose && props.onClose(),
344
+ "update:outParam": (v) =>
345
+ props.onUpdateOutParam && props.onUpdateOutParam(v),
346
+ },
347
+ });
348
+ },
349
+ });
350
+ window.$vueRoot = instance;
351
+ instance.$mount(mountEl);
352
+ // #4 listeners 透传:详情页里父级 v-on="listeners" 那批是详情页直接 this.$emit 的,
353
+ // 拦截根子组件的 $emit,任意事件都转发给主应用的 onEmit(按名字派回原 option.on)。
354
+ const child = instance.$children && instance.$children[0];
355
+ if (child && typeof child.$emit === "function") {
356
+ const rawEmit = child.$emit.bind(child);
357
+ child.$emit = (name, ...args) => {
358
+ if (typeof props.onEmit === "function") props.onEmit(name, ...args);
359
+ return rawEmit(name, ...args);
360
+ };
361
+ }
362
+ // 挂载后把 shim 的原型指向根实例:$http/$message/$baseConfirm 等委托过去,
363
+ // 而 shim 自有的 $baseReload/_handleCallback 覆盖生效(详情页动作时才会调用)
364
+ Object.setPrototypeOf(shim, instance);
365
+ window.$vueRoot = instance;
366
+ }
367
+
368
+ if (!window.__POWERED_BY_QIANKUN__) {
369
+ // 独立运行 / 主应用形态:行为与拆分前一致
370
+ render();
371
+ }
372
+
373
+ /**
374
+ * qiankun 子应用生命周期。
375
+ * 引包子应用入口 re-export 即可:export * from "cloud-web-corejs/src/index";
376
+ * 主子通信协议见 docs/qiankun微前端改造-实现方案.md 3.3。
377
+ */
378
+ export async function bootstrap() {}
379
+
380
+ export async function mount(props = {}) {
381
+ if (props.microDetailHost) {
382
+ // 详情承载模式(micro-view-host 装载):不走整站壳/路由/菜单,
383
+ // 只在容器里渲染 props.targetPath 指向的本应用组件。见对接清单文档。
384
+ return mountDetailHost(props);
385
+ }
386
+ if (props.appCode) {
387
+ // 主应用可经 props 覆盖,子应用也可在自身 settings.js 里声明
388
+ settings.appCode = props.appCode;
389
+ }
390
+ if (props.token) {
391
+ // token 存 sessionStorage,按 origin 隔离——跨域/跨端口主应用的登录态子应用天然拿不到,
392
+ // 主应用显式下发 token 即可免登(写入自身登录态后守卫按已登录走 getInfo2)
393
+ setAuthToken(props.token);
394
+ store.commit("user/SET_TOKEN", props.token);
395
+ }
396
+ store.commit("micro/SET_MICRO_CONTEXT", {
397
+ appCode: props.appCode || settings.appCode,
398
+ // 非数组(null/未传)= 自治嵌入模式:子应用自拉菜单、保留自身壳(micro store 据此置 selfManaged)
399
+ menus: Array.isArray(props.menus) ? props.menus : null,
400
+ mainAdapter: props.mainAdapter || null,
401
+ // 主应用经本地调试覆盖装载:允许 URL 直达未配菜单的页面
402
+ debug: !!props.microDebug,
403
+ });
404
+ // 再次挂载时 unmount 已重置路由,而 roles 仍在会使守卫跳过路由生成,这里主动补一次
405
+ if (store.getters.roles && store.getters.roles.length > 0) {
406
+ if (store.state.micro.selfManaged) {
407
+ await store.dispatch("permission/generateRoutes2", {
408
+ flag: store.state.user.userFlag,
409
+ });
410
+ } else {
411
+ await store.dispatch(
412
+ "permission/generateRoutesFromProps",
413
+ props.menus || []
414
+ );
415
+ }
416
+ }
417
+ render(props);
418
+ }
419
+
420
+ /**
421
+ * 保活协议(主应用 loadMicroApp 模式):
422
+ * update({ microActive: false }) —— 容器被隐藏:暂停路由监听(守卫 next(false) +
423
+ * ensureURL 置空,防止对主应用的 URL 变化做出反应、回写 URL 互相打架);
424
+ * update({ microActive: true }) —— 容器重新显示:恢复监听并把当前 hash 同步进路由
425
+ * (含主应用在隐藏期间切到本应用另一菜单的深导航场景)。
426
+ */
427
+ let pausedEnsureURL = null;
428
+
429
+ function pauseSubRouter() {
430
+ if (store.state.micro.routerPaused) return;
431
+ store.commit("micro/SET_ROUTER_PAUSED", true);
432
+ const history = router.history;
433
+ if (history && typeof history.ensureURL === "function") {
434
+ pausedEnsureURL = history.ensureURL;
435
+ history.ensureURL = function () {};
436
+ }
437
+ }
438
+
439
+ function resumeSubRouter() {
440
+ if (store.state.micro.routerPaused) {
441
+ store.commit("micro/SET_ROUTER_PAUSED", false);
442
+ if (pausedEnsureURL) {
443
+ router.history.ensureURL = pausedEnsureURL;
444
+ pausedEnsureURL = null;
445
+ }
446
+ }
447
+ syncSubRouter();
448
+ }
449
+
450
+ function syncSubRouter() {
451
+ const current = window.location.hash.replace(/^#/, "") || "/";
452
+ if (router.currentRoute.fullPath !== current) {
453
+ // vue-router 3.0.2 的 push 不返回 Promise(3.1.0 才加),直接 .catch 会读到
454
+ // undefined 抛错,且此调用发生在 qiankun update 生命周期内——异常会让 parcel 直接
455
+ // died、后续所有 update(含页签刷新转发)失效。仅当 push 返回 Promise 时才吞异常。
456
+ const nav = router.push(current);
457
+ if (nav && typeof nav.catch === "function") {
458
+ nav.catch(() => {});
459
+ }
460
+ }
461
+ }
462
+
463
+ /**
464
+ * 主应用页签"刷新"转发过来时在子应用内部重建当前页组件。
465
+ * 不能套用主应用那招(delCachedView + 跳 /redirect):子应用与主应用共用同一个
466
+ * 浏览器 hash,跳 /redirect 会被主应用 afterEach 判成"离开子应用路由",
467
+ * 容器随即隐藏并暂停子应用路由,重建被掐断——表现就是点刷新没反应。
468
+ * 改为自增序号通知 AppMain 原地销毁重建,全程不碰 URL。
469
+ */
470
+ function refreshCurrentView() {
471
+ store.commit("micro/BUMP_RELOAD_SEQ");
472
+ }
473
+
474
+ export async function update(props = {}) {
475
+ if (props.microActive === false) {
476
+ pauseSubRouter();
477
+ } else if (props.microActive === true) {
478
+ resumeSubRouter();
479
+ }
480
+ if (props.microRefresh) {
481
+ refreshCurrentView();
482
+ }
483
+ }
484
+
485
+ export async function unmount() {
486
+ if (store.state.micro.routerPaused && pausedEnsureURL) {
487
+ router.history.ensureURL = pausedEnsureURL;
488
+ pausedEnsureURL = null;
489
+ }
490
+ if (instance) {
491
+ instance.$destroy();
492
+ if (instance.$el) {
493
+ instance.$el.innerHTML = "";
494
+ }
495
+ instance = null;
496
+ }
497
+ if (window.$vueRoot) {
498
+ window.$vueRoot = null;
499
+ }
500
+ store.commit("micro/CLEAR_MICRO_CONTEXT");
501
+ resetRouter();
502
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 默认旧模式:继续走消费应用自己的 styles / icons。
3
+ * 升包但不改入口的项目走这条路径,不会去解析包内基础样式和 core 图标。
4
+ *
5
+ * 兜底层:老应用的 styles 旧副本缺包内新增基础文件(dialog/page-shell 等),
6
+ * 先注入包内 legacy-base.scss 补齐;应用自有样式在其后加载,同名规则仍以
7
+ * 应用为准,不影响既有定制。主应用自身的 index.scss 与包内容一致,
8
+ * 会多编译一份相同规则,仅增加少量体积、无视觉影响。
9
+ */
10
+ import "@base/styles/legacy-base.scss";
11
+ import "@/styles/element-variables.scss";
12
+ import "@/styles/index.scss";
13
+ import "@/icons";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 新模式:由 npm 包提供基础样式和 core SVG。
3
+ * 消费应用需把入口改为 @base/index.next.js,并自行引入业务 style.scss / 业务 icons。
4
+ */
5
+ import "@base/styles/element-variables.scss";
6
+ import "@base/styles/index.scss";
7
+ import "@base/icons";
@@ -56,7 +56,16 @@ export default {
56
56
  downloadStatus: "", // 下载状态
57
57
  };
58
58
  },
59
+ beforeDestroy() {
60
+ this.revokeFileObjectUrl();
61
+ },
59
62
  methods: {
63
+ revokeFileObjectUrl() {
64
+ const url = this.fileRaw?.showUrl;
65
+ if (typeof url === "string" && url.startsWith("blob:")) {
66
+ URL.revokeObjectURL(url);
67
+ }
68
+ },
60
69
  clear() {
61
70
  // this.$refs.uploadBtn.select();
62
71
  // document.selection.clear();
@@ -64,6 +73,7 @@ export default {
64
73
  // if (selection.rangeCount > 0) {
65
74
  // selection.removeAllRanges(); // 清除所有选择范围
66
75
  // }
76
+ this.revokeFileObjectUrl();
67
77
  this.$nextTick(()=>{
68
78
  this.fileRaw = false;
69
79
  this.decodedText = null;
@@ -110,6 +120,7 @@ export default {
110
120
  handleFileChange1(event) {
111
121
  const file = event.target.files[0];
112
122
  if (file) {
123
+ this.revokeFileObjectUrl();
113
124
  this.fileRaw = this.createFile(file);
114
125
  } else {
115
126
  this.fileRaw = false;
@@ -1,59 +1,51 @@
1
- let callbacks = []
2
-
3
- function loadedTinymce() {
4
- // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144
5
- // check is successfully downloaded script
6
- return window.tinymce
7
- }
8
-
9
- const dynamicLoadScript = (src, callback) => {
10
- const existingScript = document.getElementById(src)
11
- const cb = callback || function() {}
12
-
13
- if (!existingScript) {
14
- const script = document.createElement('script')
15
- script.src = src // src url for the third-party library being loaded.
16
- script.id = src
17
- document.body.appendChild(script)
18
- callbacks.push(cb)
19
- const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd
20
- onEnd(script)
21
- }
22
-
23
- if (existingScript && cb) {
24
- if (loadedTinymce()) {
25
- cb(null, existingScript)
26
- } else {
27
- callbacks.push(cb)
28
- }
29
- }
30
-
31
- function stdOnEnd(script) {
32
- script.onload = function() {
33
- // this.onload = null here is necessary
34
- // because even IE9 works not like others
35
- this.onerror = this.onload = null
36
- for (const cb of callbacks) {
37
- cb(null, script)
38
- }
39
- callbacks = null
40
- }
41
- script.onerror = function() {
42
- this.onerror = this.onload = null
43
- cb(new Error('Failed to load ' + src), script)
44
- }
45
- }
46
-
47
- function ieOnEnd(script) {
48
- script.onreadystatechange = function() {
49
- if (this.readyState !== 'complete' && this.readyState !== 'loaded') return
50
- this.onreadystatechange = null
51
- for (const cb of callbacks) {
52
- cb(null, script) // there is no way to catch loading errors in IE8
53
- }
54
- callbacks = null
55
- }
56
- }
57
- }
58
-
59
- export default dynamicLoadScript
1
+ // Requests are shared only within this application's module scope.
2
+ const pending = new Map();
3
+ let loadedSource = "";
4
+
5
+ export function loadTinymce(src) {
6
+ if (pending.has(src)) return pending.get(src);
7
+ if (window.tinymce) {
8
+ const expectedBase = new URL(".", src).href.replace(/\/$/, "");
9
+ const actualBase = new URL(window.tinymce.baseURL || "/", window.location.href).href.replace(/\/$/, "");
10
+ if (String(window.tinymce.majorVersion) !== "4" || String(window.tinymce.minorVersion) !== "9.2"
11
+ || (loadedSource !== src && actualBase !== expectedBase)) {
12
+ return Promise.reject(new Error(`TinyMCE 已存在不同版本或来源的全局实例,拒绝覆盖:${src}`));
13
+ }
14
+ return Promise.resolve(window.tinymce);
15
+ }
16
+ const promise = new Promise((resolve, reject) => {
17
+ const script = document.createElement("script");
18
+ script.src = src;
19
+ script.dataset.coreResource = "richText";
20
+ let settled = false;
21
+ const timer = setTimeout(() => finish(new Error(`TinyMCE 加载超时:${src}`)), 30000);
22
+ function finish(error) {
23
+ if (settled) return;
24
+ settled = true;
25
+ clearTimeout(timer);
26
+ script.onload = script.onerror = null;
27
+ if (error) {
28
+ if (script.parentNode) script.parentNode.removeChild(script);
29
+ reject(error);
30
+ } else {
31
+ loadedSource = src;
32
+ resolve(window.tinymce);
33
+ }
34
+ }
35
+ script.onload = () => {
36
+ if (!window.tinymce || String(window.tinymce.majorVersion) !== "4" || String(window.tinymce.minorVersion) !== "9.2") {
37
+ finish(new Error(`TinyMCE 脚本未提供兼容的 4.9.2 实例:${src}`));
38
+ } else finish();
39
+ };
40
+ script.onerror = () => finish(new Error(`TinyMCE 加载失败:${src}`));
41
+ document.body.appendChild(script);
42
+ });
43
+ pending.set(src, promise);
44
+ const clear = () => pending.delete(src);
45
+ promise.then(clear, clear);
46
+ return promise;
47
+ }
48
+
49
+ export default function load(src, callback) {
50
+ loadTinymce(src).then(() => callback(null), error => callback(error));
51
+ }