cloud-web-corejs 1.0.54-dev.78 → 1.0.54-dev.781

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 (588) hide show
  1. package/package.json +200 -183
  2. package/src/App.vue +73 -75
  3. package/src/api/user.js +85 -40
  4. package/src/components/Qrcode/fileParse.vue +0 -1
  5. package/src/components/Tinymce/index.vue +112 -71
  6. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  7. package/src/components/VabUpload/image-viewer.vue +2 -2
  8. package/src/components/VabUpload/index.js +69 -1
  9. package/src/components/VabUpload/index.vue +13 -2
  10. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  11. package/src/components/VabUpload/mixins.js +1964 -2
  12. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  13. package/src/components/VabUpload/view.vue +209 -120
  14. package/src/components/advancedSearchDialog/mixins.js +28 -1
  15. package/src/components/base-textarea/index.vue +104 -0
  16. package/src/components/baseAlert/index.js +44 -1
  17. package/src/components/baseAlert/index.vue +24 -20
  18. package/src/components/baseAlert/mixins.js +61 -1
  19. package/src/components/baseArea/index.vue +1628 -0
  20. package/src/components/baseAttachment/index.vue +49 -40
  21. package/src/components/baseAttachment/install.js +21 -5
  22. package/src/components/baseAttachment/mixins.js +310 -1
  23. package/src/components/baseInputBatch/mixins.js +58 -1
  24. package/src/components/baseInputExport/index.vue +21 -14
  25. package/src/components/baseInputExport/mixins.js +391 -1
  26. package/src/components/baseInputNumber/index.vue +9 -9
  27. package/src/components/baseTabs/index.vue +16 -8
  28. package/src/components/baseTabs/mixins.js +177 -1
  29. package/src/components/cnPrint/index.js +44 -1
  30. package/src/components/cnPrint/mixins.js +189 -1
  31. package/src/components/code-editor/index.vue +131 -62
  32. package/src/components/confirmDialog/index.js +41 -1
  33. package/src/components/confirmDialog/index.vue +24 -17
  34. package/src/components/confirmDialog/mixins.js +31 -1
  35. package/src/components/errorMsg/index.js +47 -3
  36. package/src/components/errorMsg/index.vue +78 -70
  37. package/src/components/errorMsg/mixins.js +103 -5
  38. package/src/components/excelExport/button.vue +86 -24
  39. package/src/components/excelExport/exportFieldDialog.vue +246 -90
  40. package/src/components/excelExport/index.js +65 -6
  41. package/src/components/excelExport/index.vue +109 -26
  42. package/src/components/excelExport/mixins.js +1132 -8
  43. package/src/components/excelImport/index.js +13 -13
  44. package/src/components/excelImport/mixins.js +2 -1
  45. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  46. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -208
  47. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -0
  48. package/src/components/fileLibrary/filterDialog.vue +454 -0
  49. package/src/components/fileLibrary/index.vue +1109 -687
  50. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  51. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  52. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  53. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +339 -211
  54. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +31 -27
  55. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +4 -4
  56. package/src/components/fileLibrary/mixins/indexMixins.js +230 -101
  57. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +62 -3
  58. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +3 -3
  59. package/src/components/fileLibrary/propertiesDialog.vue +190 -145
  60. package/src/components/fileLibrary/recycleBinDialog.vue +237 -236
  61. package/src/components/fileLibrary/shareDialog.vue +1 -1
  62. package/src/components/formDialog/README.md +241 -0
  63. package/src/components/formDialog/index.js +35 -0
  64. package/src/components/formDialog/index.vue +724 -0
  65. package/src/components/formOplog/mixins.js +85 -4
  66. package/src/components/hiprint/css/bootstrap.min.css +6 -0
  67. package/src/components/hiprint/fonts/glyphicons-halflings-regular.eot +0 -0
  68. package/src/components/hiprint/fonts/glyphicons-halflings-regular.svg +288 -0
  69. package/src/components/hiprint/fonts/glyphicons-halflings-regular.ttf +0 -0
  70. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff +0 -0
  71. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff2 +0 -0
  72. package/src/components/hiprint/hiprint.bundle.js +15 -3
  73. package/src/components/hiprint/view/design/index.vue +140 -47
  74. package/src/components/hiprint/view/design/mixins.js +611 -1
  75. package/src/components/hiprint/view/design/preview.vue +75 -52
  76. package/src/components/hiprint/view/json-view.vue +31 -31
  77. package/src/components/jdPrint/index.js +44 -1
  78. package/src/components/jdPrint/mixins.js +208 -1
  79. package/src/components/jsonImport/exportUtil.js +106 -0
  80. package/src/components/jsonImport/index.js +212 -17
  81. package/src/components/jsonImport/mixins.js +350 -16
  82. package/src/components/langImport/index.js +80 -1
  83. package/src/components/langImport/mixins.js +487 -1
  84. package/src/components/langTag/mixins/addButton.js +51 -5
  85. package/src/components/langTag/mixins/deleteButton.js +55 -5
  86. package/src/components/langTag/mixins/view.js +47 -5
  87. package/src/components/luckysheet/dialog.vue +159 -0
  88. package/src/components/luckysheet/export.js +595 -0
  89. package/src/components/luckysheet/fileUtils.js +147 -0
  90. package/src/components/luckysheet/index.js +72 -0
  91. package/src/components/luckysheet/templateJson.js +12078 -0
  92. package/src/components/luckysheet/view.vue +210 -0
  93. package/src/components/micro-view-host/contract.js +66 -0
  94. package/src/components/micro-view-host/index.vue +148 -0
  95. package/src/components/mobile/file/index.vue +10 -0
  96. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +51 -47
  97. package/src/components/obsUpload/index.js +34 -0
  98. package/src/components/obsUpload/index.vue +234 -0
  99. package/src/components/obsUpload/mixins.js +1542 -0
  100. package/src/components/onlineTalk/index.vue +1 -1
  101. package/src/components/onlineTalk/mixins.js +852 -1
  102. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  103. package/src/components/oplogTable/mixins.js +83 -4
  104. package/src/components/pddPrint/index.js +44 -1
  105. package/src/components/pddPrint/mixins.js +252 -1
  106. package/src/components/projectTag/mixins/addButton.js +52 -1
  107. package/src/components/projectTag/mixins/deleteButton.js +52 -1
  108. package/src/components/projectTag/mixins/view.js +43 -1
  109. package/src/components/scriptDescription/button.vue +12 -4
  110. package/src/components/scriptDescription/mixins.js +30 -1
  111. package/src/components/scriptTest/mixins.js +90 -1
  112. package/src/components/statusTag/mixins.js +66 -1
  113. package/src/components/table/CellSlot.vue +12 -9
  114. package/src/components/table/config.js +74 -1
  115. package/src/components/table/index.js +1215 -11
  116. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js +11028 -0
  117. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css +200 -0
  118. package/src/components/table/tableForm.vue +99 -63
  119. package/src/components/table/tableFormMixin.js +285 -1
  120. package/src/components/table/util/index.js +337 -0
  121. package/src/components/table/vxeFilter/index.js +153 -1
  122. package/src/components/table/vxeFilter/mixin.js +310 -6
  123. package/src/components/tempStorage/index.vue +76 -55
  124. package/src/components/tempStorage/tempStorageDialog.vue +179 -54
  125. package/src/components/vb-tabs/x-tabs.vue +57 -30
  126. package/src/components/vipPrint/index.js +44 -1
  127. package/src/components/vipPrint/mixins.js +268 -1
  128. package/src/components/wf/addOpinionButton.vue +57 -0
  129. package/src/components/wf/content.vue +834 -362
  130. package/src/components/wf/mixins/addOpinionButton.js +53 -0
  131. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  132. package/src/components/wf/mixins/setCandidateDialog.js +217 -5
  133. package/src/components/wf/mixins/setCandidateDialog2.js +252 -0
  134. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -0
  135. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +69 -0
  136. package/src/components/wf/setCandidateButton.vue +40 -0
  137. package/src/components/wf/setCandidateDialog.vue +10 -0
  138. package/src/components/wf/setCandidateDialog2.vue +105 -0
  139. package/src/components/wf/wf.js +2224 -30
  140. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  141. package/src/components/wf/wfStartDialog.vue +66 -42
  142. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  143. package/src/components/wf/wfUtil.js +280 -1
  144. package/src/components/xform/XFormTabContainer//346/226/260/345/242/236/351/241/265/347/255/276/346/250/241/345/274/217-/346/234/200/347/273/210/345/256/236/347/216/260.md +195 -0
  145. 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" +57 -0
  146. package/src/components/xform/docs/2026-07 /346/216/222/346/237/245/344/277/256/345/244/215/350/256/260/345/275/225.md" +73 -0
  147. package/src/components/xform/docs/autocomplete /350/207/252/345/212/250/345/256/214/346/210/220/347/273/204/344/273/266/350/257/264/346/230/216.md" +126 -0
  148. package/src/components/xform/docs//345/220/216/345/217/260/345/255/227/346/256/265/357/274/210/345/212/250/346/200/201/347/224/237/346/210/220/357/274/211JSON /350/257/264/346/230/216.md" +1286 -0
  149. package/src/components/xform/docs//345/257/271/346/257/224/345/212/237/350/203/275/350/220/275/345/234/260/346/226/271/346/241/210.md +986 -0
  150. package/src/components/xform/docs//346/225/260/346/215/256/350/241/250/346/240/274/345/212/250/346/200/201/345/210/227 JSON /350/257/264/346/230/216.md" +657 -0
  151. package/src/components/xform/form-designer/designer.js +2027 -29
  152. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +434 -0
  153. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +108 -1
  154. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +291 -8
  155. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +14 -1
  156. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  157. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +3 -3
  158. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +971 -0
  159. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue +971 -0
  160. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  161. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +320 -0
  162. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +85 -49
  163. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +6 -3
  164. package/src/components/xform/form-designer/form-widget/dialog/formulaDialog.vue +799 -0
  165. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +30 -8
  166. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1774 -19
  167. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +222 -76
  168. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +67 -54
  169. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  170. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  171. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  172. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +217 -184
  173. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +76 -66
  174. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +209 -90
  175. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +41 -35
  176. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +18 -7
  177. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +4 -1
  178. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +95 -0
  179. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +14 -3
  180. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +48 -5
  181. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +133 -0
  182. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +86 -0
  183. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  184. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1941 -16
  185. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +657 -108
  186. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +964 -0
  187. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  188. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +22 -11
  189. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +90 -0
  190. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +7 -2
  191. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  192. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  193. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +3 -9
  194. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +3 -9
  195. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +3 -9
  196. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  197. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +192 -0
  198. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  199. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +119 -81
  200. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +186 -0
  201. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +55 -28
  202. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +119 -0
  203. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +156 -54
  204. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +26 -6
  205. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  206. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +146 -0
  207. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  208. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  209. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +92 -0
  210. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +24 -9
  211. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  212. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  213. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +16 -1
  214. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
  215. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +93 -49
  216. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +9 -1
  217. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +38 -38
  218. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +147 -0
  219. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +111 -34
  220. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +4 -3
  221. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +2 -1
  222. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +3 -171
  223. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +188 -70
  224. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +753 -0
  225. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  226. package/src/components/xform/form-designer/form-widget/index.vue +6 -1
  227. package/src/components/xform/form-designer/form-widget/indexMixin.js +184 -2
  228. package/src/components/xform/form-designer/index.vue +195 -191
  229. package/src/components/xform/form-designer/indexMixin.js +855 -24
  230. package/src/components/xform/form-designer/refMixinDesign.js +27 -28
  231. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  232. package/src/components/xform/form-designer/setting-panel/form-setting.vue +1553 -629
  233. package/src/components/xform/form-designer/setting-panel/index.vue +313 -305
  234. package/src/components/xform/form-designer/setting-panel/indexMixin.js +370 -12
  235. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +585 -302
  236. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  237. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  238. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  239. package/src/components/xform/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +14 -15
  240. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  241. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  242. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  243. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +124 -0
  244. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1154 -1048
  245. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  246. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +432 -0
  247. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  248. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1632 -592
  249. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  250. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  251. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  252. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  253. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  254. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +34 -46
  255. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -0
  256. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +31 -2
  257. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  258. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +32 -0
  259. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  260. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  261. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +23 -8
  262. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  263. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  264. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  265. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  266. package/src/components/xform/form-designer/setting-panel/property-editor/field-baseAttachment/baseAttachment-fileTypes-editor.vue +23 -0
  267. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  268. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +14 -15
  269. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +64 -5
  270. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue +8 -3
  271. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +11 -13
  272. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  273. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  274. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  275. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  276. package/src/components/xform/form-designer/setting-panel/property-editor/field-gantt/gantt-editor.vue +36 -0
  277. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +75 -21
  278. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -0
  279. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +44 -15
  280. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -0
  281. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  282. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  283. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  284. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  285. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  286. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  287. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +71 -0
  288. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  289. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +33 -1
  290. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/vabUpload-fileTypes-editor.vue +23 -0
  291. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +66 -0
  292. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  293. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesEditorMixin.js +116 -0
  294. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +130 -0
  295. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +107 -19
  296. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  297. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  298. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  299. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +17 -16
  300. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +25 -25
  301. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  302. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  303. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  304. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  305. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +127 -50
  306. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  307. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  308. package/src/components/xform/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +14 -15
  309. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +349 -0
  310. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  311. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  312. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  313. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +14 -15
  314. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +42 -0
  315. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +304 -19
  316. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  317. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  318. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  319. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +372 -50
  320. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  321. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +369 -324
  322. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  323. package/src/components/xform/form-designer/toolbar-panel/index.vue +267 -103
  324. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +655 -24
  325. package/src/components/xform/form-designer/widget-panel/index.vue +389 -321
  326. package/src/components/xform/form-designer/widget-panel/indexMixin.js +334 -2
  327. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4535 -3141
  328. package/src/components/xform/form-render/compareDelList.vue +83 -0
  329. package/src/components/xform/form-render/compareView.vue +76 -0
  330. package/src/components/xform/form-render/container-item/containerItemMixin.js +404 -11
  331. package/src/components/xform/form-render/container-item/data-table-item.vue +221 -203
  332. package/src/components/xform/form-render/container-item/data-table-mixin.js +3716 -858
  333. package/src/components/xform/form-render/container-item/detail-h5-item.vue +173 -172
  334. package/src/components/xform/form-render/container-item/detail-item.vue +287 -158
  335. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  336. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  337. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  338. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  339. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  340. package/src/components/xform/form-render/container-item/list-h5-item.vue +1184 -419
  341. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  342. package/src/components/xform/form-render/container-item/tab-item.vue +125 -88
  343. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  344. package/src/components/xform/form-render/container-item/table-item.vue +7 -7
  345. package/src/components/xform/form-render/container-item/table2-cell-item.vue +53 -34
  346. package/src/components/xform/form-render/container-item/table2-item.vue +198 -99
  347. package/src/components/xform/form-render/container-item/tree-item.vue +32 -11
  348. package/src/components/xform/form-render/dynamicDialogRender.js +238 -3
  349. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  350. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  351. package/src/components/xform/form-render/index.vue +86 -21
  352. package/src/components/xform/form-render/indexMixin.js +5093 -37
  353. package/src/components/xform/form-render/refMixin.js +34 -3
  354. package/src/components/xform/icon-picker/icons.json +284 -0
  355. package/src/components/xform/icon-picker/index.vue +145 -0
  356. package/src/components/xform/lang/en-US.js +470 -438
  357. package/src/components/xform/lang/en-US_extension.js +4 -0
  358. package/src/components/xform/lang/zh-CN.js +641 -593
  359. package/src/components/xform/mixins/defaultHandle.js +474 -2
  360. package/src/components/xform/mixins/scriptHttp.js +179 -3
  361. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  362. package/src/components/xform/utils/emitter.js +4 -4
  363. package/src/components/xform/utils/formHttp.js +162 -0
  364. package/src/components/xform/utils/format.js +205 -172
  365. package/src/components/xform/utils/formula-util.js +969 -0
  366. package/src/components/xform/utils/sfc-generator.js +2 -2
  367. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  368. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  369. package/src/components/xform/utils/tableColumnHelper.js +155 -0
  370. package/src/components/xform/utils/util.js +1591 -1
  371. package/src/components/xform/utils/validators.js +185 -4
  372. package/src/components/xform/utils/vue2js-generator.js +2 -2
  373. package/src/components/xhsPrint/index.js +44 -1
  374. package/src/components/xhsPrint/mixins.js +269 -1
  375. package/src/directive/LimitNumber/index.js +144 -1
  376. package/src/directive/el-dialog-center/index.js +34 -1
  377. package/src/directive/el-drag-dialog/drag.js +86 -1
  378. package/src/directive/el-readonly/index.js +15 -1
  379. package/src/directive/permission/hasPermi.js +34 -1
  380. package/src/index.js +472 -190
  381. package/src/lang/index.js +56 -51
  382. package/src/lang/locale/en/login.js +27 -0
  383. package/src/lang/locale/zh/login.js +26 -0
  384. package/src/layout/components/AppMain.vue +147 -111
  385. package/src/layout/components/Sidebar/default.vue +1655 -1222
  386. package/src/layout/components/Sidebar/index.vue +6 -1
  387. package/src/layout/components/TagsView/index.vue +57 -15
  388. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  389. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  390. package/src/layout/components/extractedCode/queryDialog.vue +103 -0
  391. package/src/layout/components/extractedCode/viewDialog.vue +207 -0
  392. package/src/layout/components/langTool.vue +128 -120
  393. package/src/layout/components/watermark/index.vue +83 -0
  394. package/src/layout/defaultLayout.vue +170 -150
  395. package/src/microRouter/index.js +444 -0
  396. package/src/mixins/selectDialog/index.js +266 -1
  397. package/src/mixins/tableTree/index.js +199 -4
  398. package/src/mixins/wf/index.js +33 -1
  399. package/src/permission.js +158 -16
  400. package/src/public-path.js +38 -0
  401. package/src/resources/js/base/common.js +109 -109
  402. package/src/router/index.js +4 -7
  403. package/src/router/modules/customer.js +21 -18
  404. package/src/router/modules/system.js +4 -0
  405. package/src/store/config/index.js +667 -600
  406. package/src/store/getters.js +4 -1
  407. package/src/store/modules/micro.js +57 -0
  408. package/src/store/modules/permission.js +517 -23
  409. package/src/store/modules/settings.js +26 -1
  410. package/src/store/modules/tagsView.js +206 -5
  411. package/src/store/modules/user.js +418 -28
  412. package/src/utils/aes.js +21 -1
  413. package/src/utils/auth.js +27 -1
  414. package/src/utils/componentDialog.js +339 -0
  415. package/src/utils/global.js +370 -8
  416. package/src/utils/index.js +579 -7
  417. package/src/utils/keepAlive.js +185 -1
  418. package/src/utils/menuAdapter.js +277 -0
  419. package/src/utils/pddLog.js +92 -0
  420. package/src/utils/pdfUtil.js +71 -0
  421. package/src/utils/repeatOpen.js +48 -0
  422. package/src/utils/request.js +417 -28
  423. package/src/utils/resolveViewComponent.js +203 -0
  424. package/src/utils/vab.js +1276 -27
  425. package/src/utils/validate.js +104 -1
  426. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  427. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  428. package/src/views/bd/setting/bd_attach_setting/mixins/dialog.js +84 -1
  429. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +116 -5
  430. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  431. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  432. package/src/views/bd/setting/bd_company_env/edit.vue +193 -0
  433. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  434. package/src/views/bd/setting/config_manage/list.vue +83 -0
  435. package/src/views/bd/setting/formVersion/button.vue +55 -0
  436. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  437. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  438. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  439. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  440. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  441. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  442. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  443. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  444. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  445. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +483 -0
  446. package/src/views/bd/setting/formVersion/link.vue +58 -0
  447. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  448. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  449. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  450. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  451. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  452. package/src/views/bd/setting/form_import_log/edit.vue +130 -0
  453. package/src/views/bd/setting/form_import_log/list.vue +211 -0
  454. package/src/views/bd/setting/form_script/edit.vue +196 -74
  455. package/src/views/bd/setting/form_script/edit1.vue +410 -187
  456. package/src/views/bd/setting/form_script/form_list.vue +174 -85
  457. package/src/views/bd/setting/form_script/list.vue +95 -21
  458. package/src/views/bd/setting/form_script/list1.vue +205 -118
  459. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  460. package/src/views/bd/setting/form_script/mixins/edit.js +265 -7
  461. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -9
  462. package/src/views/bd/setting/form_script/mixins/form_list.js +320 -4
  463. package/src/views/bd/setting/form_script/mixins/list.js +307 -4
  464. package/src/views/bd/setting/form_script/mixins/list1.js +512 -14
  465. package/src/views/bd/setting/form_script/mixins/list2.js +10 -1
  466. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  467. package/src/views/bd/setting/form_script/mixins/preformDialog.js +34 -1
  468. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  469. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +3 -3
  470. package/src/views/bd/setting/form_template/edit.vue +355 -184
  471. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  472. package/src/views/bd/setting/form_template/list.vue +301 -214
  473. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +279 -1
  474. package/src/views/bd/setting/form_template/mixins/dialog.js +103 -1
  475. package/src/views/bd/setting/form_template/mixins/edit.js +277 -9
  476. package/src/views/bd/setting/form_template/mixins/editWfObjConfigDialog.js +92 -1
  477. package/src/views/bd/setting/form_template/mixins/ftHistoryDialog.js +91 -1
  478. package/src/views/bd/setting/form_template/mixins/itemEdit.js +104 -1
  479. package/src/views/bd/setting/form_template/mixins/itemList.js +234 -1
  480. package/src/views/bd/setting/form_template/mixins/list.js +721 -22
  481. package/src/views/bd/setting/form_template/mixins/list2.js +411 -0
  482. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  483. package/src/views/bd/setting/form_template/mixins/preformDialog.js +28 -3
  484. package/src/views/bd/setting/form_template/mixins/wf_list.js +421 -3
  485. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  486. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  487. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  488. package/src/views/bd/setting/logic_param/edit.vue +146 -0
  489. package/src/views/bd/setting/logic_param/edit1.vue +106 -0
  490. package/src/views/bd/setting/logic_param/edit2.vue +139 -0
  491. package/src/views/bd/setting/logic_param/list.vue +74 -0
  492. package/src/views/bd/setting/logic_param/list1.vue +12 -0
  493. package/src/views/bd/setting/logic_param/list2.vue +12 -0
  494. package/src/views/bd/setting/logic_param/mixins/edit.js +93 -0
  495. package/src/views/bd/setting/logic_param/mixins/list.js +376 -0
  496. package/src/views/bd/setting/menu_kind/list.vue +172 -83
  497. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +300 -7
  498. package/src/views/bd/setting/menu_kind/mixins/dialog.js +139 -1
  499. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  500. package/src/views/bd/setting/push_data/edit.vue +139 -0
  501. package/src/views/bd/setting/push_data/list.vue +283 -0
  502. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  503. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  504. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  505. package/src/views/bd/setting/request_async_setting/list.vue +372 -0
  506. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  507. package/src/views/bd/setting/request_setting/list.vue +301 -0
  508. package/src/views/bd/setting/table_model/edit.vue +1079 -426
  509. package/src/views/bd/setting/table_model/list.vue +218 -128
  510. package/src/views/bd/setting/table_model/mixins/dialog.js +71 -1
  511. package/src/views/bd/setting/table_model/mixins/edit.js +1309 -13
  512. package/src/views/bd/setting/table_model/mixins/list.js +463 -2
  513. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  514. package/src/views/bd/setting/table_model/mixins/zdDialog.js +114 -3
  515. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  516. package/src/views/bd/setting/utils/index.js +75 -1
  517. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  518. package/src/views/support/form-dialog-demo/index.vue +537 -0
  519. package/src/views/user/access_log/list.vue +418 -349
  520. package/src/views/user/area/dialog.vue +223 -117
  521. package/src/views/user/area/list.vue +318 -0
  522. package/src/views/user/commMenu/index.vue +2 -2
  523. package/src/views/user/common_attribute/list.vue +4 -1
  524. package/src/views/user/company_info/dialog.vue +195 -163
  525. package/src/views/user/extend_datasource/dialog.vue +3 -0
  526. package/src/views/user/extend_datasource/edit.vue +2 -1
  527. package/src/views/user/extend_datasource/list.vue +3 -0
  528. package/src/views/user/fieldTranslation/editDialog.vue +8 -8
  529. package/src/views/user/fieldTranslation/list.vue +33 -33
  530. package/src/views/user/file_view_ins/list.vue +22 -1
  531. package/src/views/user/form/vform/designer.vue +792 -749
  532. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  533. package/src/views/user/form/vform/out_render.vue +1 -1
  534. package/src/views/user/form/vform/render.vue +65 -52
  535. package/src/views/user/form/view/edit.vue +56 -37
  536. package/src/views/user/form/view/list.vue +474 -54
  537. package/src/views/user/home/default.vue +1117 -979
  538. package/src/views/user/home/default2.vue +1158 -0
  539. package/src/views/user/home/dev.vue +29 -0
  540. package/src/views/user/home/index.vue +20 -16
  541. package/src/views/user/login/default.vue +165 -44
  542. package/src/views/user/login/index.vue +4 -6
  543. package/src/views/user/login/indexMixin.js +582 -380
  544. package/src/views/user/menu/list.vue +50 -1
  545. package/src/views/user/menuFallback/index.vue +123 -0
  546. package/src/views/user/notify_message/dialog.vue +65 -22
  547. package/src/views/user/notify_template/edit.vue +188 -187
  548. package/src/views/user/notify_template/edit2.vue +176 -0
  549. package/src/views/user/notify_template/list.vue +4 -1
  550. package/src/views/user/notify_template/list2.vue +190 -0
  551. package/src/views/user/outLink/form_view.vue +202 -211
  552. package/src/views/user/outLink/index.vue +62 -19
  553. package/src/views/user/outLink/view.vue +5 -13
  554. package/src/views/user/position/list.vue +4 -4
  555. package/src/views/user/project_tag/dialog.vue +9 -4
  556. package/src/views/user/project_tag/edit.vue +2 -2
  557. package/src/views/user/project_tag/list.vue +9 -4
  558. package/src/views/user/request_setting/edit.vue +258 -0
  559. package/src/views/user/request_setting/list.vue +248 -0
  560. package/src/views/user/role/authConfig.vue +89 -0
  561. package/src/views/user/role/dialog.vue +70 -48
  562. package/src/views/user/role/edit.vue +609 -429
  563. package/src/views/user/role/list.vue +4 -4
  564. package/src/views/user/sale_org/dialog.vue +1 -1
  565. package/src/views/user/sale_org/list.vue +4 -1
  566. package/src/views/user/system_notice/infoDialog.vue +61 -1
  567. package/src/views/user/user/dialog.vue +46 -23
  568. package/src/views/user/user/edit.vue +1391 -1021
  569. package/src/views/user/user/form_dialog.vue +158 -0
  570. package/src/views/user/user/form_info.vue +210 -0
  571. package/src/views/user/user/info.vue +253 -140
  572. package/src/views/user/user/list.vue +652 -563
  573. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  574. package/src/views/user/wf/iframe/index.vue +6 -1
  575. package/src/views/user/wf/iframe/index2.vue +6 -1
  576. package/src/views/user/wf/wfReport/index.vue +625 -0
  577. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  578. package/src/views/user/wf/wf_manage/list.vue +678 -256
  579. package/src/views/user/wf/wf_manage/list2.vue +875 -0
  580. package/src/views/user/wf/wf_manage/wfContentDialog.vue +47 -22
  581. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  582. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  583. package/src/views/user/wf/wf_obj_config/list.vue +114 -9
  584. package/src/views/user/wf/wf_transfer_setting/edit.vue +282 -0
  585. package/src/views/user/wf/wf_transfer_setting/list.vue +319 -0
  586. package/src/views/user/workbench_menu/list.vue +555 -0
  587. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1347
  588. package/src/utils/wf.js +0 -21
@@ -1 +1,185 @@
1
- (function(_0x142a1c,_0x9d09a5){function _0x5b6312(_0x2da541,_0x5c3d16,_0x51dbf3,_0x4eb56f,_0x4f48c4){return _0x5a60(_0x4eb56f-0xd8,_0x2da541);}function _0x1d685a(_0x5daa3c,_0x4c9fed,_0x4d7109,_0x477297,_0x3c5c0){return _0x12df(_0x4c9fed-0x95,_0x3c5c0);}function _0x46aa72(_0x37b41b,_0xe275c4,_0x3c0ca2,_0x1ae6ec,_0x3e3964){return _0x12df(_0xe275c4- -0x299,_0x37b41b);}function _0x2935a0(_0xdc1074,_0x379776,_0x158e5b,_0x93556,_0x4e02b3){return _0x12df(_0xdc1074-0x12c,_0x93556);}function _0x231477(_0x45a52c,_0x421c99,_0x2cd1d4,_0x48d22e,_0x4b8080){return _0x5a60(_0x48d22e- -0x291,_0x421c99);}const _0x4a21ab=_0x142a1c();function _0x33ed4f(_0x58765d,_0x288f95,_0x17539e,_0x1da1dd,_0x3862d1){return _0x5a60(_0x17539e-0x27e,_0x1da1dd);}function _0x29aa94(_0x420840,_0x4bf96e,_0x776a75,_0x87f814,_0x44aec7){return _0x5a60(_0x4bf96e-0x2f6,_0x776a75);}function _0x160c83(_0x206d6e,_0x26c8f0,_0x33e51c,_0x314c7a,_0x44d724){return _0x5a60(_0x33e51c- -0x30,_0x26c8f0);}while(!![]){try{const _0x4f8d98=-parseInt(_0x1d685a(0x141,0x109,0x11e,0x132,"oTrh".split("").reverse().join("")))/0x1*(-parseInt(_0x33ed4f(0x302,0x2bb,0x2f5,0x2d7,0x2f6))/0x2)+parseInt(_0x5b6312(0x172,0x119,0x13e,0x135,0x11c))/0x3+-parseInt(_0x5b6312(0x12d,0x115,0xf3,0x130,0x101))/0x4+parseInt(_0x2935a0(0x18b,0x16e,0x17f,"\u0071\u005e\u0037\u0052",0x191))/0x5*(parseInt(_0x33ed4f(0x316,0x307,0x2de,0x2a6,0x2cf))/0x6)+parseInt(_0x1d685a(0xef,0xc5,0x93,0xa5,"\u0077\u007a\u006c\u0032"))/0x7+parseInt(_0x231477(-0x231,-0x21d,-0x25f,-0x240,-0x21f))/0x8+-parseInt(_0x29aa94(0x2de,0x314,0x2f3,0x308,0x31b))/0x9;if(_0x4f8d98===_0x9d09a5){break;}else{_0x4a21ab["\u0070\u0075\u0073\u0068"](_0x4a21ab["\u0073\u0068\u0069\u0066\u0074"]());}}catch(_0x3bd401){_0x4a21ab["\u0070\u0075\u0073\u0068"](_0x4a21ab["\u0073\u0068\u0069\u0066\u0074"]());}}})(_0x1ea1,0x5b0e3);var _0x4e0017=0x1+0x9;const _0x1ab53e=Object["\u0070\u0072\u006f\u0074\u006f\u0074\u0079\u0070\u0065"]["\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067"];function _0x1ea1(){const _0x460043=["OfMdpPWEuQW".split("").reverse().join(""),'WP7cMwhcT0lcISomqCopg8ofrCoYW6yLWRPN','w29IAMvJDcbszwDfEhbD',"qHd/ZxVk8q".split("").reverse().join(""),'wW5LWPtcVq',"m1qwLuz".split("").reverse().join(""),"G4WSj7W".split("").reverse().join(""),"Zj7WLO1IdduKcdfa".split("").reverse().join(""),"\u006b\u004c\u0052\u0063\u0054\u0043\u006b\u0067\u0057\u0050\u0054\u0067\u0057\u0037\u0034\u0046\u0057\u0035\u0068\u0063\u0050\u0033\u004b\u0034\u0079\u004b\u0052\u0064\u0048\u0038\u006b\u0074\u0072\u0047","8gAcLfs".split("").reverse().join(""),"uWRWToSw".split("").reverse().join(""),"\u007a\u0033\u0062\u0066\u0044\u0077\u0047","O7WfXQWqkCVchhF".split("").reverse().join(""),"qxASb3C".split("").reverse().join(""),"\u0044\u0067\u0076\u005a\u0044\u0061","\u0070\u0076\u0074\u0063\u0056\u0057","uhs3L0s".split("").reverse().join(""),'FSkjxmo+WOK',"\u0057\u004f\u007a\u0043\u0064\u0043\u006f\u0036\u0057\u0034\u0057","aAr1wu4Lfo4GtoYedn".split("").reverse().join(""),'FCoUW79brCo+WRz+',"\u006a\u0068\u0044\u0048\u0044\u0067\u006e\u004f","fkCOcdLi".split("").reverse().join(""),'iehdQSkCW7lcUHHuW5NdRKddKSkHWRDkWQG5',"aAZvhC".split("").reverse().join(""),"\u0043\u0068\u006a\u0056\u0044\u0067\u0039\u0030\u0045\u0078\u0062\u004c","\u0045\u004b\u0039\u007a\u0073\u0065\u0065","\u0057\u0050\u006c\u0063\u0048\u004e\u004a\u0063\u0052\u004b\u006c\u0063\u0049\u0053\u006f\u0041","\u0041\u0077\u0035\u004b\u007a\u0078\u0048\u0070\u007a\u0047","8omSdNva+k8r".split("").reverse().join(""),"\u0057\u0036\u0075\u004c\u006c\u0071\u006d","\u006a\u0067\u0072\u004c\u0043\u0033\u0072\u0059\u0042\u0033\u004b",'W6lcNHRdRCkt',"u3sJPNt".split("").reverse().join(""),"m0ClfMALHtn2qtoXitm".split("").reverse().join(""),"\u0070\u006d\u006b\u0055\u0057\u0051\u004e\u0063\u004e\u0062\u006d",'W4n/tSkwW7S','W5lcLbhdI8kmr8oz','WO8NtK3cPG','uM96Bvy',"\u0043\u0067\u0066\u0030\u0041\u0061",'CGNdNs7dGIhcTCoY','WRJcU8kzjCkSW55w',"KahZjQW+KQWuo8i7kSuf1Mi".split("").reverse().join(""),"\u0075\u0077\u007a\u0049\u0042\u0066\u0079","CfDYzLv".split("").reverse().join(""),"\u007a\u0032\u0050\u0064\u0041\u0078\u004b","\u0044\u0043\u006f\u0074\u007a\u0038\u006f\u0055","0dp7oCEmo8h".split("").reverse().join(""),'WONcUt5fyG',"aLBT52r".split("").reverse().join(""),'twnrBMW','WRyNWPGBW4rjD8o6b8o5ySovW4O',"ZG6WmkmOdhQW".split("").reverse().join(""),"qIcx7W7omDykCMdRxIch7WDzPWiyQW".split("").reverse().join(""),'DgfN','W78cqcTd',"\u0079\u0076\u0076\u0048\u0043\u0066\u0043",'cKhcT8ke',"\u0057\u0050\u004a\u0063\u004e\u0067\u006c\u0063\u0051\u0047",'WRxcPW7cUmoncMqUW5RdL8oWWOeiWQC',"CRWvkCRd7Zk".split("").reverse().join(""),"0wtYrNB".split("").reverse().join(""),'vM3cQCo+sG','W41vu8ki','jhjVDxrL',"avunKDsbvm".split("").reverse().join(""),"GKctfIcRPWvS6WHifhGoSHcpRW0kSPcd6Wca5W".split("").reverse().join(""),'DMRdKM4+','y29TCg9Uzw50sw5ZDgfUy2u',"9o8yio8f".split("").reverse().join(""),"Zr3BSnhj".split("").reverse().join(""),"\u0041\u0030\u0035\u006d\u007a\u0065\u0038","LzxASfeCLv2A".split("").reverse().join(""),'eSodBCoVW7pdNdtcMq','AxnbCNjHEq','y3jLyxrL',"1oSvUoCp7bMe".split("").reverse().join(""),"04W0o8fRkCy".split("").reverse().join(""),"\u0057\u0036\u0071\u0056\u0041\u0059\u0050\u006a\u0071\u0053\u006f\u0077\u007a\u0043\u006b\u0063\u0070\u006d\u006b\u0041\u0065\u0053\u006f\u0050\u0045\u006d\u006b\u0032\u0063\u0071","\u0043\u0032\u0035\u0070\u0075\u0067\u0057","e1sHLxu".split("").reverse().join(""),'vmkUqCodWO0p',"qzKvhBJ5wA".split("").reverse().join(""),'BMHTvLe',"Gy6HeAxPeo2udo5aJm".split("").reverse().join(""),"N5wAYr3C".split("").reverse().join(""),'F8kqFta',"4fwB".split("").reverse().join(""),"aIdFRW/9toWomegomJcdMLdpOW".split("").reverse().join(""),"\u0077\u0058\u0076\u0068\u0057\u0051\u004e\u0063\u0050\u0047","0euOD1q".split("").reverse().join(""),"\u006d\u0074\u0061\u0031\u006e\u004a\u004b\u0035\u006e\u004c\u006a\u0069\u0044\u0032\u0050\u0053\u0075\u0047","exwd9Ku".split("").reverse().join(""),"\u0074\u0067\u0066\u0070\u0076\u0077\u0038","qzKvhBJHxz".split("").reverse().join(""),"Lr2BUz3x".split("").reverse().join(""),'mtKWmdiZm2TPugDxsa',"\u0077\u0068\u0076\u004b\u0045\u0078\u0043",'WPK5rSo/iqdcLG',"fjNAV1esWKto2aJn".split("").reverse().join(""),"eQW20RWOLOW".split("").reverse().join(""),"rk8Ud3eTdx4W".split("").reverse().join(""),"\u0057\u0035\u0047\u004a\u0057\u0034\u0068\u0063\u0053\u0053\u006b\u0075","aClomTcFPWoKQW8kmMdN4W/1txuoCSdRfSd/6W".split("").reverse().join(""),"\u0043\u0030\u0044\u0068\u0071\u0032\u004f",'yxn5BMngywn0B3j5',"\u0057\u0036\u006d\u0055\u0069\u0061\u0042\u0063\u004b\u0061","\u0042\u0067\u0076\u0055\u007a\u0033\u0072\u004f","aBSf2y".split("").reverse().join(""),"e1zojfA".split("").reverse().join(""),"qzTfMB".split("").reverse().join(""),"qCIo8pXT2f".split("").reverse().join(""),"SoSmL8RWpoSUcN2GdFQWHG5WPy4WIo8aszOW".split("").reverse().join(""),"\u0068\u0053\u006b\u0055\u0057\u0050\u0068\u0063\u0047\u0049\u0048\u0038\u0046\u006d\u006b\u0051\u0075\u0075\u0043\u0047\u0057\u0037\u0074\u0063\u004e\u0048\u0078\u0063\u0047\u0048\u0038","ukSFMo8cbqcF".split("").reverse().join(""),'seDAALi','A2v5CW','y29TCg9Uzw50t3b0Aw9UCW',"\u0071\u0043\u006b\u0066\u0061\u0065\u006c\u0064\u0047\u0047",'W6VdVr/dN8kjbCoo',"iLwUd7wz".split("").reverse().join(""),'WPdcL3q',"ADhv6neu2GtnWedo".split("").reverse().join(""),"\u0067\u0077\u0037\u0063\u0048\u0065\u0033\u0064\u004c\u0061","K0AvnNC".split("").reverse().join(""),"\u0045\u006d\u006b\u0078\u006a\u0038\u006f\u0053\u0057\u0034\u0030"];_0x1ea1=function(){return _0x460043;};return _0x1ea1();}function _0x5a60(_0x1499fe,_0x1ea1bf){const _0x5a6037=_0x1ea1();_0x5a60=function(_0x542f19,_0x4ae0bd){_0x542f19=_0x542f19-0x0;let _0x54dad4=_0x5a6037[_0x542f19];if(_0x5a60['rSQnWN']===undefined){var _0x144eb9=function(_0x5ea7bc){const _0x34f729="=/+9876543210ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba".split("").reverse().join("");let _0x3dab6d='';let _0x21f6de='';for(let _0x51882d=0x0,_0x1ddd63,_0x8f9161,_0x20dce6=0x0;_0x8f9161=_0x5ea7bc['charAt'](_0x20dce6++);~_0x8f9161&&(_0x1ddd63=_0x51882d%0x4?_0x1ddd63*0x40+_0x8f9161:_0x8f9161,_0x51882d++%0x4)?_0x3dab6d+=String['fromCharCode'](0xff&_0x1ddd63>>(-0x2*_0x51882d&0x6)):0x0){_0x8f9161=_0x34f729['indexOf'](_0x8f9161);}for(let _0x561a5c=0x0,_0x41c15f=_0x3dab6d["\u006c\u0065\u006e\u0067\u0074\u0068"];_0x561a5c<_0x41c15f;_0x561a5c++){_0x21f6de+='%'+('00'+_0x3dab6d['charCodeAt'](_0x561a5c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21f6de);};_0x5a60['qqouQI']=_0x144eb9;_0x1499fe=arguments;_0x5a60['rSQnWN']=!![];}const _0x468789=_0x5a6037[0x0];const _0x1367d2=_0x542f19+_0x468789;const _0x12df27=_0x1499fe[_0x1367d2];if(!_0x12df27){_0x54dad4=_0x5a60['qqouQI'](_0x54dad4);_0x1499fe[_0x1367d2]=_0x54dad4;}else{_0x54dad4=_0x12df27;}return _0x54dad4;};return _0x5a60(_0x1499fe,_0x1ea1bf);}_0x4e0017=0x4+0x8;function _0x4a0a4c(_0x3cfd72){const _0x7f0689={'VNGjy':function(_0x632108,_0x3d0cfc){return _0x632108===_0x3d0cfc;}};function _0xba1cf3(_0x40e444,_0x332111,_0x433e8e,_0x5cab0e,_0x3d5a7b){return _0x5a60(_0x40e444- -0x63,_0x332111);}return _0x7f0689['VNGjy'](_0x1ab53e['call'](_0x3cfd72),_0xba1cf3(0x1a,-0x10,0x22,0x48,-0x14));}export function remove(_0x24aadb,_0x381ea3){function _0x2dc1f8(_0x1dd510,_0x1cc1a6,_0x23f55e,_0x45388b,_0x21d270){return _0x12df(_0x23f55e-0x2e4,_0x21d270);}function _0x1a6a79(_0x516874,_0x16b871,_0x62af57,_0x608bc,_0x4dbd28){return _0x12df(_0x62af57-0x1ab,_0x16b871);}function _0x3c5f66(_0xad32ca,_0x35bb79,_0x2d15f9,_0x1b93d6,_0x134167){return _0x5a60(_0x35bb79- -0x1dc,_0xad32ca);}const _0x1c0140={"\u006e\u0074\u0072\u004d\u006d":function(_0x82a005,_0x10abbf,_0x2d81d4){return _0x82a005(_0x10abbf,_0x2d81d4);},'McQnl':function(_0x348788,_0x1afe47,_0x3d35ed,_0x4d0889,_0x133602){return _0x348788(_0x1afe47,_0x3d35ed,_0x4d0889,_0x133602);},'Xudyw':function(_0xc99c4e,_0x5366bb){return _0xc99c4e>_0x5366bb;},'tJpeH':function(_0x15c249,_0x4af630){return _0x15c249^_0x4af630;}};function _0x1b8964(_0x3ed290,_0x34b2d7,_0x1b50f4,_0x446933,_0x55a1e8){return _0x5a60(_0x34b2d7- -0x352,_0x1b50f4);}function _0x1a0d28(_0x2b20fc,_0x43cba6,_0x50bff2,_0xc9a37a,_0x498081){return _0x12df(_0x50bff2-0x164,_0xc9a37a);}if(_0x24aadb['length']){if(_0x3c5f66(-0x15f,-0x190,-0x1c3,-0x16c,-0x153)!==_0x1a0d28(0x1b7,0x1a3,0x1a4,'#YAJ',0x1d0)){const _0x30863a=_0x24aadb["\u0069\u006e\u0064\u0065\u0078\u004f\u0066"](_0x381ea3);if(_0x1c0140['Xudyw'](_0x30863a,-(0xc74dc^0xc74dd))){if(_0x1a6a79(0x20d,'so7l',0x1e6,0x1a9,0x1ed)!==_0x3c5f66(-0x172,-0x1b2,-0x1e6,-0x18d,-0x1c2)){return _0x24aadb["\u0073\u0070\u006c\u0069\u0063\u0065"](_0x30863a,_0x1c0140["\u0074\u004a\u0070\u0065\u0048"](0x39a42,0x39a43));}else{_0xd26bc6['componentInstance']=_0x3a73f6[_0x423661]['componentInstance'];_0x1c0140["\u006e\u0074\u0072\u004d\u006d"](_0x2fb7c0,_0x2f6488,_0x456033);_0x149359['push'](_0x4d08ee);}}}else{const{cache:_0x3be481,keys:_0x286ccd,_vnode:_0x9497}=_0x2b1b0c;for(const _0x4e530a in _0x3be481){const _0x5927ed=_0x3be481[_0x4e530a];if(_0x5927ed){var _0x26d77c=0x6+0x0;const _0x4a4ed2=_0x4e530a;_0x26d77c=_0x1a0d28(0x19e,0x176,0x17e,"arfh".split("").reverse().join(""),0x17e);if(_0x4a4ed2&&!_0x560e66(_0x4a4ed2)){_0x1c0140['McQnl'](_0x1ebe8d,_0x3be481,_0x4e530a,_0x286ccd,_0x9497);}}}}}}function _0x953bd0(_0x3fba29){return this['$route']['path'];}function _0x12df(_0x1499fe,_0x1ea1bf){const _0x5a6037=_0x1ea1();_0x12df=function(_0x542f19,_0x4ae0bd){_0x542f19=_0x542f19-0x0;let _0x54dad4=_0x5a6037[_0x542f19];if(_0x12df["\u0078\u0075\u004a\u0079\u004d\u0075"]===undefined){var _0x144eb9=function(_0x34f729){const _0x3dab6d="=/+9876543210ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba".split("").reverse().join("");let _0x21f6de='';let _0x51882d='';for(let _0x1ddd63=0x0,_0x8f9161,_0x20dce6,_0x561a5c=0x0;_0x20dce6=_0x34f729['charAt'](_0x561a5c++);~_0x20dce6&&(_0x8f9161=_0x1ddd63%0x4?_0x8f9161*0x40+_0x20dce6:_0x20dce6,_0x1ddd63++%0x4)?_0x21f6de+=String["\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043\u006f\u0064\u0065"](0xff&_0x8f9161>>(-0x2*_0x1ddd63&0x6)):0x0){_0x20dce6=_0x3dab6d['indexOf'](_0x20dce6);}for(let _0x41c15f=0x0,_0xcfed28=_0x21f6de['length'];_0x41c15f<_0xcfed28;_0x41c15f++){_0x51882d+="\u0025"+('00'+_0x21f6de['charCodeAt'](_0x41c15f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51882d);};const _0x5ea7bc=function(_0x5866ba,_0x23f235){let _0x7fed9=[],_0xd5b3e4=0x0,_0x53253e,_0x45a2e1='';_0x5866ba=_0x144eb9(_0x5866ba);let _0x3c9f89;for(_0x3c9f89=0x0;_0x3c9f89<0x100;_0x3c9f89++){_0x7fed9[_0x3c9f89]=_0x3c9f89;}for(_0x3c9f89=0x0;_0x3c9f89<0x100;_0x3c9f89++){_0xd5b3e4=(_0xd5b3e4+_0x7fed9[_0x3c9f89]+_0x23f235['charCodeAt'](_0x3c9f89%_0x23f235['length']))%0x100;_0x53253e=_0x7fed9[_0x3c9f89];_0x7fed9[_0x3c9f89]=_0x7fed9[_0xd5b3e4];_0x7fed9[_0xd5b3e4]=_0x53253e;}_0x3c9f89=0x0;_0xd5b3e4=0x0;for(let _0x3524ab=0x0;_0x3524ab<_0x5866ba['length'];_0x3524ab++){_0x3c9f89=(_0x3c9f89+0x1)%0x100;_0xd5b3e4=(_0xd5b3e4+_0x7fed9[_0x3c9f89])%0x100;_0x53253e=_0x7fed9[_0x3c9f89];_0x7fed9[_0x3c9f89]=_0x7fed9[_0xd5b3e4];_0x7fed9[_0xd5b3e4]=_0x53253e;_0x45a2e1+=String['fromCharCode'](_0x5866ba['charCodeAt'](_0x3524ab)^_0x7fed9[(_0x7fed9[_0x3c9f89]+_0x7fed9[_0xd5b3e4])%0x100]);}return _0x45a2e1;};_0x12df["\u0048\u0079\u0061\u0061\u0044\u0051"]=_0x5ea7bc;_0x1499fe=arguments;_0x12df['xuJyMu']=!![];}const _0x468789=_0x5a6037[0x0];const _0x1367d2=_0x542f19+_0x468789;const _0x12df27=_0x1499fe[_0x1367d2];if(!_0x12df27){if(_0x12df['GAzICx']===undefined){_0x12df['GAzICx']=!![];}_0x54dad4=_0x12df['HyaaDQ'](_0x54dad4,_0x4ae0bd);_0x1499fe[_0x1367d2]=_0x54dad4;}else{_0x54dad4=_0x12df27;}return _0x54dad4;};return _0x12df(_0x1499fe,_0x1ea1bf);}function _0x4bfc98(_0x126461){return _0x126461!==undefined&&_0x126461!==null;}function _0x212dd7(_0x470997){return _0x470997['isComment']&&_0x470997['asyncFactory'];}function _0x24f9a7(_0x2d9aeb){function _0x1234f8(_0x6cd614,_0x4d7009,_0x151c57,_0xf1fd21,_0x1f754a){return _0x12df(_0x4d7009-0x61,_0x6cd614);}const _0x5e1d9d={'TfGNC':function(_0x15411b,_0x508838){return _0x15411b===_0x508838;}};function _0x3f7fc3(_0x4ca28c,_0x18b8cf,_0xbcf2e0,_0x207f50,_0x3e729a){return _0x5a60(_0x3e729a- -0x97,_0xbcf2e0);}if(Array['isArray'](_0x2d9aeb)){if(_0x5e1d9d["\u0054\u0066\u0047\u004e\u0043"](_0x1234f8('5M@&',0x8e,0x80,0x96,0x7e),_0x3f7fc3(-0xc5,-0x4c,-0x8f,-0x65,-0x8b))){return _0x4b1e0f['indexOf'](_0xb28135)>-(0x8ff08^0x8ff09);}else{for(let _0x52f298=0x67448^0x67448;_0x52f298<_0x2d9aeb['length'];_0x52f298++){const _0x25bf79=_0x2d9aeb[_0x52f298];if(_0x4bfc98(_0x25bf79)&&(_0x4bfc98(_0x25bf79['componentOptions'])||_0x212dd7(_0x25bf79))){return _0x25bf79;}}}}}function _0x38b023(_0x20a18a,_0x261aab){function _0x41a7c8(_0x40f5a8,_0x3a11c0,_0x228cfd,_0x3c240b,_0x50a6b9){return _0x5a60(_0x3a11c0- -0x396,_0x3c240b);}const _0x38335f={'YQImX':function(_0x4ad3ee,_0x3236a4){return _0x4ad3ee^_0x3236a4;},'LaOUo':_0x41a7c8(-0x33d,-0x344,-0x376,-0x33d,-0x332),"\u006d\u004b\u0071\u0072\u0078":function(_0x4b57f9,_0x2d3e78){return _0x4b57f9^_0x2d3e78;},'zOYHA':function(_0x29ecab,_0x207de6){return _0x29ecab(_0x207de6);}};if(Array['isArray'](_0x20a18a)){return _0x20a18a["\u0069\u006e\u0064\u0065\u0078\u004f\u0066"](_0x261aab)>-_0x38335f['YQImX'](0x8ff08,0x8ff09);}else if(typeof _0x20a18a===_0x38335f['LaOUo']){return _0x20a18a['split'](',')['indexOf'](_0x261aab)>-_0x38335f['mKqrx'](0x6bfd9,0x6bfd8);}else if(_0x38335f['zOYHA'](_0x4a0a4c,_0x20a18a)){return _0x20a18a['test'](_0x261aab);}return![];}function _0x50d224(_0x4ac227,_0x326b8e){function _0x4799aa(_0x40a62,_0x129495,_0x247d97,_0x331d3d,_0x4f1d95){return _0x5a60(_0x129495- -0x327,_0x331d3d);}function _0x32b924(_0x3d7a54,_0x35bca1,_0x9d2a1a,_0x526790,_0x57895d){return _0x12df(_0x3d7a54- -0x1b7,_0x526790);}function _0x2b7307(_0x27f82e,_0x5837fe,_0xe07334,_0xb9e517,_0x576e8e){return _0x12df(_0xe07334- -0x33c,_0xb9e517);}function _0x4019bb(_0x1c9387,_0x33ddc1,_0x3a4da0,_0x1934f7,_0x273807){return _0x5a60(_0x273807- -0x3ce,_0x1c9387);}function _0x533386(_0x40dcce,_0x5c0c72,_0xb5e4a5,_0x536720,_0x38bcfd){return _0x12df(_0x5c0c72-0x111,_0xb5e4a5);}const{cache:_0x11b064,keys:_0x31e159,_vnode:_0x267df9}=_0x4ac227;for(const _0x5d505b in _0x11b064){const _0x384944=_0x11b064[_0x5d505b];if(_0x384944){if(_0x32b924(-0x144,-0x112,-0x13d,'ASJE',-0x133)===_0x4019bb(-0x3c7,-0x3ad,-0x375,-0x3bc,-0x3a5)){return _0x371094['test'](_0x321408);}else{var _0x2bb469=0x6+0x0;const _0x4c6ca5=_0x5d505b;_0x2bb469=_0x533386(0x102,0x117,"9o)s".split("").reverse().join(""),0xf4,0x103);if(_0x4c6ca5&&!_0x326b8e(_0x4c6ca5)){if(_0x4019bb(-0x360,-0x39a,-0x38e,-0x38d,-0x375)!==_0x32b924(-0x156,-0x171,-0x143,"AnH2".split("").reverse().join(""),-0x193)){_0x5010ab(_0x4230af,_0x13115e,_0x16a424,_0x2af6f3);}else{_0x9a223e(_0x11b064,_0x5d505b,_0x31e159,_0x267df9);}}}}}}function _0x9a223e(_0x22f048,_0x295ec9,_0x38f9a9,_0xe12fbf){const _0x1dd711={'YJkPC':function(_0x4970d8,_0x36d55c){return _0x4970d8!==_0x36d55c;}};var _0xd3bb29=0x0+0x9;const _0x3e80f1=_0x22f048[_0x295ec9];_0xd3bb29=0x0;if(_0x3e80f1&&(!_0xe12fbf||_0x1dd711["\u0059\u004a\u006b\u0050\u0043"](_0x3e80f1['tag'],_0xe12fbf['tag']))){_0x3e80f1["\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065"]['$destroy']();}_0x22f048[_0x295ec9]=null;remove(_0x38f9a9,_0x295ec9);}function _0x489ad5(_0x29342d,_0x3f1b0c,_0x4ec6ab,_0x3c55d4,_0x900a24){return _0x12df(_0x29342d- -0xde,_0x3c55d4);}const _0x326112=[String,RegExp,Array];export default{'name':_0x489ad5(-0x7a,-0x8c,-0xb7,"bOas".split("").reverse().join(""),-0xb0),'props':{'include':_0x326112,'exclude':_0x326112,'max':[String,Number]},'created'(){this['cache']=Object["\u0063\u0072\u0065\u0061\u0074\u0065"](null);this['keys']=[];},'destroyed'(){function _0x57fd5f(_0x22579b,_0x5e8ae4,_0x4644ad,_0x88894c,_0x40b94d){return _0x12df(_0x4644ad-0x2f,_0x5e8ae4);}const _0x1868e5={'nhmVQ':_0x57fd5f(0x29,"arfh".split("").reverse().join(""),0x49,0x29,0x75),'pMRAV':function(_0x2e1389,_0x52ef4e){return _0x2e1389(_0x52ef4e);},'GnmnP':function(_0x135bec,_0x236a57,_0x39fd7a,_0x32896b,_0x4f9c9f){return _0x135bec(_0x236a57,_0x39fd7a,_0x32896b,_0x4f9c9f);},'HGZjR':_0x57fd5f(0x91,'D&in',0x79,0xa2,0xb9),'rsUkI':_0x46d645(-0x183,-0x167,-0x16b,-0x196,-0x130)};function _0x46d645(_0x4df327,_0x8647f4,_0x5d1288,_0x2c2f93,_0x1091f8){return _0x5a60(_0x8647f4- -0x184,_0x2c2f93);}function _0x579066(_0x2e3a2e,_0x96ae4f,_0x1baf2f,_0x204215,_0x20250b){return _0x12df(_0x2e3a2e-0x7f,_0x204215);}for(const _0x2854b7 in this['cache']){if(_0x1868e5['HGZjR']!==_0x1868e5['rsUkI']){_0x9a223e(this["\u0063\u0061\u0063\u0068\u0065"],_0x2854b7,this['keys']);}else{var _0x261af1=0x6+0x0;const _0x3c6dac=_0x1ac0ac;_0x261af1=_0x1868e5['nhmVQ'];if(_0x3c6dac&&!_0x1868e5['pMRAV'](_0x491386,_0x3c6dac)){_0x1868e5['GnmnP'](_0xc10019,_0x3a67bc,_0x5d9834,_0x10e17a,_0x4a9d63);}}}},'mounted'(){function _0x1fbf3f(_0x335363,_0x3e5768,_0x3cc695,_0x4c343c,_0x75fe16){return _0x5a60(_0x75fe16- -0x72,_0x335363);}const _0x31cfdf={"\u006b\u004e\u004c\u0064\u004f":_0x1fbf3f(-0xf,-0x60,-0x1f,-0x81,-0x4f),'eIVCS':_0x52422c(-0x163,-0x14a,-0x14e,-0x131,-0x151),"\u0067\u0070\u0045\u0075\u0068":_0x52422c(-0x17d,-0x13e,-0x168,-0x160,-0x110)};this['$watch'](_0x31cfdf['eIVCS'],_0x310abd=>{function _0x35b292(_0x5a5702,_0x3f9f42,_0x28b882,_0x2d9692,_0x41e31a){return _0x12df(_0x3f9f42-0x3be,_0x5a5702);}function _0x1e3e44(_0x418980,_0x191223,_0x44bcb3,_0x248133,_0x2ff8d8){return _0x5a60(_0x248133- -0x63,_0x2ff8d8);}if(_0x35b292('saOb',0x420,0x42c,0x43b,0x436)!==_0x1e3e44(-0xe,0x20,-0x3f,-0xc,0x16)){_0x50d224(this,_0x16002f=>_0x38b023(_0x310abd,_0x16002f));}else{_0x230361["\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065"]['$destroy']();}});function _0x52422c(_0x346577,_0x212b1f,_0x19bf87,_0x53e468,_0x4db5aa){return _0x5a60(_0x212b1f- -0x199,_0x53e468);}function _0x2b2586(_0x5219b1,_0x540148,_0xc95fab,_0x5c9a77,_0x264753){return _0x5a60(_0x264753-0x16b,_0x5219b1);}this['$watch'](_0x31cfdf['gpEuh'],_0x2fdcd6=>{const _0x2ca365={"\u0048\u0059\u0042\u0068\u006f":function(_0x4cc5ab,_0xc96129){return _0x4cc5ab+_0xc96129;}};function _0x4b9741(_0x2e41b9,_0x22bc7c,_0x9764b4,_0x220d14,_0x248288){return _0x12df(_0x220d14- -0x24f,_0x248288);}if(_0x31cfdf["\u006b\u004e\u004c\u0064\u004f"]===_0x31cfdf['kNLdO']){_0x50d224(this,_0x41e579=>!_0x38b023(_0x2fdcd6,_0x41e579));}else{const _0x398b7d=_0x2675e1[_0x42b555];if(_0x398b7d){var _0x31eb16=_0x2ca365['HYBho'](0x6,0x0);const _0x2eb645=_0x179848;_0x31eb16=_0x4b9741(-0x1e7,-0x1f1,-0x233,-0x218,'Wp]d');if(_0x2eb645&&!_0x2cb856(_0x2eb645)){_0x717ac5(_0x3fe2d0,_0x52720f,_0x1d9feb,_0xc9778e);}}}});},'render'(){const _0x40d5ea={'QfblV':function(_0x3dd18b,_0x5525c8,_0x178246){return _0x3dd18b(_0x5525c8,_0x178246);},'hRNgQ':function(_0x904593,_0xf08041){return _0x904593!==_0xf08041;},'aUapW':function(_0x5bc64b,_0x65b89e){return _0x5bc64b(_0x65b89e);},'afOLm':function(_0x1096ce,_0x1083a4){return _0x1096ce!==_0x1083a4;},'YWqTg':_0x510d0c(-0x251,-0x251,-0x27c,-0x24c,-0x254),'sGGCj':function(_0x1a9ee4,_0x8fe38c){return _0x1a9ee4===_0x8fe38c;},'AoUnT':_0x52f257("aqWR".split("").reverse().join(""),-0x108,-0x122,-0x12b,-0x114)};function _0x2ef477(_0x19de9c,_0x289853,_0x4c472e,_0x773ed3,_0x1f8551){return _0x12df(_0x289853-0x240,_0x4c472e);}var _0x522ebb;const _0x4a545a=this['$slots']['default'];function _0x1ce50a(_0x422668,_0x642575,_0x20bc37,_0x80d34c,_0x128979){return _0x12df(_0x80d34c-0x362,_0x20bc37);}function _0x52f257(_0x3556de,_0x54a83c,_0x59cd17,_0x18b3b1,_0x3375aa){return _0x12df(_0x54a83c- -0x180,_0x3556de);}_0x522ebb=0x9+0x9;function _0x510d0c(_0x2ce5ff,_0x12898b,_0x4bbd85,_0x53ee04,_0x54d51d){return _0x5a60(_0x12898b- -0x29e,_0x54d51d);}function _0x91bfb0(_0xa5d3ec,_0x23bf1f,_0x2b0ff4,_0x1fe07a,_0x13ced2){return _0x5a60(_0xa5d3ec- -0x3cd,_0x13ced2);}var _0xa9717d=0x6+0x0;const _0x5d348d=_0x40d5ea["\u0061\u0055\u0061\u0070\u0057"](_0x24f9a7,_0x4a545a);_0xa9717d=_0x1ce50a(0x3d5,0x397,"*(!j".split("").reverse().join(""),0x3b5,0x3c6);function _0x36b57e(_0x1af4c8,_0x2d8e2b,_0x4585ef,_0x524d42,_0x5ba662){return _0x12df(_0x5ba662- -0x1b8,_0x2d8e2b);}function _0x292215(_0x1baa4f,_0x12aac8,_0x507430,_0x2edef9,_0x238f64){return _0x12df(_0x238f64-0x257,_0x1baa4f);}const _0x3d8141=_0x5d348d&&_0x5d348d['componentOptions'];if(_0x3d8141){if(_0x40d5ea['afOLm'](_0x1ce50a(0x392,0x38b,'%XPT',0x37e,0x398),_0x36b57e(-0x175,'t)M8',-0x145,-0x16c,-0x13d))){var _0x321af8=0x0+0x9;const _0x9fab30=_0x902cce[_0x2df87f];_0x321af8=0x0;if(_0x9fab30&&(!_0x454eba||_0x9fab30['tag']!==_0x4444c4['tag'])){_0x9fab30['componentInstance']["\u0024\u0064\u0065\u0073\u0074\u0072\u006f\u0079"]();}_0xbce3f8[_0x2b419c]=null;_0x40d5ea['QfblV'](_0x33efee,_0x4da192,_0x400b51);}else{var _0x339c9c;const _0x24a637=_0x953bd0['call'](this,_0x3d8141);_0x339c9c=0x5+0x8;if(!_0x3d8141['Ctor']['options']["\u006e\u0061\u006d\u0065"]){_0x5d348d['componentOptions']['Ctor']['options']['name'];}const{include:_0xf5cd6b,exclude:_0x4a320e}=this;if(_0xf5cd6b&&(!_0x24a637||!_0x38b023(_0xf5cd6b,_0x24a637))||_0x4a320e&&_0x24a637&&_0x38b023(_0x4a320e,_0x24a637)){return _0x5d348d;}const{cache:_0x23a37e,keys:_0xc5687e}=this;const _0x5ed87e=_0x24a637;if(_0x23a37e[_0x5ed87e]){if(_0x40d5ea['hRNgQ'](_0x91bfb0(-0x380,-0x3b6,-0x381,-0x344,-0x381),_0x40d5ea['YWqTg'])){return _0x242910!==_0x58300e&&_0x40d5ea["\u0068\u0052\u004e\u0067\u0051"](_0x30e8ab,null);}else{_0x5d348d['componentInstance']=_0x23a37e[_0x5ed87e]["\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065"];remove(_0xc5687e,_0x5ed87e);_0xc5687e['push'](_0x5ed87e);}}else{if(_0x40d5ea['sGGCj'](_0x40d5ea['AoUnT'],_0x292215('QkT2',0x252,0x28a,0x2a3,0x28b))){return _0x235ad4["\u0073\u0070\u006c\u0069\u0063\u0065"](_0x269a80,0x39a42^0x39a43);}else{_0x23a37e[_0x5ed87e]=_0x5d348d;_0xc5687e['push'](_0x5ed87e);if(this['max']&&_0xc5687e["\u006c\u0065\u006e\u0067\u0074\u0068"]>parseInt(this['max'])){_0x9a223e(_0x23a37e,_0xc5687e[0xdd45a^0xdd45a],_0xc5687e,this['_vnode']);}}}_0x5d348d["\u0064\u0061\u0074\u0061"]['keepAlive']=!![];}}return _0x5d348d||_0x4a545a&&_0x4a545a[0x377bb^0x377bb];}};
1
+ /**
2
+ * base-keep-alive 主要解决问题场景:多级路由缓存;缓存同一个组件不同的页面,如何移除某个页面时不影响其他同组件的页面
3
+ * 前提:保证动态路由生成的route name 值都声明了且唯一
4
+ * 基于以上对keep-alive进行以下改造:
5
+ * 1. 组件名称获取更改为路由名称
6
+ * 2. cache缓存key也更改为路由名称
7
+ * 3. pruneCache
8
+ */
9
+ import { viewKey } from "@base/utils/repeatOpen"
10
+
11
+ const _toString = Object.prototype.toString
12
+
13
+ function isRegExp(v) {
14
+ return _toString.call(v) === '[object RegExp]'
15
+ }
16
+ export function remove(arr, item) {
17
+ if (arr.length) {
18
+ const index = arr.indexOf(item)
19
+ if (index > -1) {
20
+ return arr.splice(index, 1)
21
+ }
22
+ }
23
+ }
24
+ /**
25
+ * 1. 主要更改了 name 值获取的规则
26
+ * @param {*} opts
27
+ */
28
+ function getComponentName(opts) {
29
+ // return opts && (opts.Ctor.options.name || opts.tag)
30
+ // 缓存键与 tagsView 的 cachedViews 保持一致:可重复打开的路由按 fullPath
31
+ // 各自独立缓存,其余仍按 path,行为与原来一致。
32
+ return viewKey(this.$route)
33
+ }
34
+
35
+ function isDef(v) {
36
+ return v !== undefined && v !== null
37
+ }
38
+
39
+ function isAsyncPlaceholder(node) {
40
+ return node.isComment && node.asyncFactory
41
+ }
42
+
43
+ function getFirstComponentChild(children) {
44
+ if (Array.isArray(children)) {
45
+ for (let i = 0; i < children.length; i++) {
46
+ const c = children[i]
47
+ if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
48
+ return c
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ function matches(pattern, name) {
55
+ if (Array.isArray(pattern)) {
56
+ return pattern.indexOf(name) > -1
57
+ } else if (typeof pattern === 'string') {
58
+ return pattern.split(',').indexOf(name) > -1
59
+ } else if (isRegExp(pattern)) {
60
+ return pattern.test(name)
61
+ }
62
+ /* istanbul ignore next */
63
+ return false
64
+ }
65
+
66
+ function pruneCache(keepAliveInstance, filter) {
67
+ //console.log("🚀 ~ file: keepalive.js:58 ~ pruneCache ~ keepAliveInstance, filter:", keepAliveInstance, filter)
68
+ const {
69
+ cache,
70
+ keys,
71
+ _vnode
72
+ } = keepAliveInstance
73
+ for (const key in cache) {
74
+ const cachedNode = cache[key]
75
+ if (cachedNode) {
76
+ // ------------ 3. 之前默认从router-view取储存key值, 现在改为路由name, 所以这里得改成当前key
77
+ // const name = getComponentName.call(keepAliveInstance, cachedNode.componentOptions)
78
+ const name = key
79
+ if (name && !filter(name)) {
80
+ pruneCacheEntry(cache, key, keys, _vnode)
81
+ }
82
+ }
83
+ }
84
+ }
85
+
86
+ function pruneCacheEntry(
87
+ cache,
88
+ key,
89
+ keys,
90
+ current
91
+ ) {
92
+ const cached = cache[key]
93
+ if (cached && (!current || cached.tag !== current.tag)) {
94
+ cached.componentInstance.$destroy()
95
+ }
96
+ cache[key] = null
97
+ remove(keys, key)
98
+ }
99
+
100
+ const patternTypes = [String, RegExp, Array]
101
+
102
+ export default {
103
+ name: 'keep-alive-custom', // 名称最好改一下,不要与原keep-alive一致
104
+ // abstract: true,
105
+ props: {
106
+ include: patternTypes,
107
+ exclude: patternTypes,
108
+ max: [String, Number]
109
+ },
110
+
111
+ created() {
112
+ this.cache = Object.create(null)
113
+ this.keys = []
114
+ },
115
+
116
+ destroyed() {
117
+ for (const key in this.cache) {
118
+ pruneCacheEntry(this.cache, key, this.keys)
119
+ }
120
+ },
121
+
122
+ mounted() {
123
+ this.$watch('include', val => {
124
+ pruneCache(this, name => matches(val, name))
125
+ })
126
+ this.$watch('exclude', val => {
127
+ pruneCache(this, name => !matches(val, name))
128
+ })
129
+ },
130
+
131
+ render() {
132
+ const slot = this.$slots.default
133
+ const vnode = getFirstComponentChild(slot)
134
+ const componentOptions = vnode && vnode.componentOptions
135
+ if (componentOptions) {
136
+ // check pattern
137
+ const name = getComponentName.call(this, componentOptions)
138
+ // console.log("🚀 ~ file: keepalive.js:124 ~ render ~ name:", name)
139
+ // ---------- 对于没有name值的组件设置为路由的name, 支持vue-devtool组件名称显示
140
+ if (!componentOptions.Ctor.options.name) {
141
+ vnode.componentOptions.Ctor.options.name = name
142
+ }
143
+ const {
144
+ include,
145
+ exclude
146
+ } = this
147
+ if (
148
+ // not included
149
+ (include && (!name || !matches(include, name))) ||
150
+ // excluded
151
+ (exclude && name && matches(exclude, name))
152
+ ) {
153
+ return vnode
154
+ }
155
+
156
+ const {
157
+ cache,
158
+ keys
159
+ } = this
160
+ // ------------------- 储存的key值, 默认从router-view设置的key中获取
161
+ // const key = vnode.key == null
162
+ // ? componentOptions.Ctor.cid + (componentOptions.tag ? `::${componentOptions.tag}` : '')
163
+ // : vnode.key
164
+
165
+ // ------------------- 2. 储存的key值设置为路由中得name值
166
+ const key = name
167
+
168
+ if (cache[key]) {
169
+ vnode.componentInstance = cache[key].componentInstance
170
+ // make current key freshest
171
+ remove(keys, key)
172
+ keys.push(key)
173
+ } else {
174
+ cache[key] = vnode
175
+ keys.push(key)
176
+ // prune oldest entry
177
+ if (this.max && keys.length > parseInt(this.max)) {
178
+ pruneCacheEntry(cache, keys[0], keys, this._vnode)
179
+ }
180
+ }
181
+ vnode.data.keepAlive = true
182
+ }
183
+ return vnode || (slot && slot[0])
184
+ }
185
+ }
@@ -0,0 +1,277 @@
1
+ /**
2
+ * 微前端菜单适配层(零依赖纯函数)。
3
+ * 供引包应用与未引包主应用(deep-import 本文件)共用,
4
+ * 禁止在此引入 @base 的 store / router / request / 组件。
5
+ * 协议说明见 docs/qiankun微前端改造-实现方案.md 第三章。
6
+ */
7
+
8
+ // 表单菜单(动态表单)类型值,菜单归属识别的唯一权威标识
9
+ export const FORM_MENU_TYPE = 5;
10
+
11
+ // url 命名空间保留首段:/base/xxx 表示组件在 npm 包内(@base/views/xxx)
12
+ export const BASE_SEGMENT = "base";
13
+
14
+ /**
15
+ * 微前端固定前缀:访问路径形如 /micro/<appCode>/<来源>/<组件路径>。
16
+ * 用固定前缀而非"首段即 appCode",是为了让归属命名空间与主应用自身的
17
+ * 一级视图目录(/user、/pmd、/yx…)结构性隔离——否则注册一个与视图目录
18
+ * 同名的 appCode 会劫持主应用整棵子树,且新增视图目录还会反向撞掉已注册的应用。
19
+ */
20
+ export const MICRO_SEGMENT = "micro";
21
+
22
+ /**
23
+ * 本机调试命名空间:/micro_debug/<appCode>/... 与 /micro/<appCode>/... 归属相同、
24
+ * 菜单相同、组件解析相同,**只有 entry 不同**(正式取注册表,调试取约定端口)。
25
+ * 把"调试还是正式"编码进路径而非存储,是为了让调试态无状态——不会残留在
26
+ * localStorage 里跨天生效,刷新/分享/多标签页的行为都由 URL 自身决定。
27
+ */
28
+ export const MICRO_DEBUG_SEGMENT = "micro_debug";
29
+
30
+ const MICRO_SEGMENTS = [MICRO_SEGMENT, MICRO_DEBUG_SEGMENT];
31
+ const BASE_VIEW_PREFIX = "@base/views";
32
+ const APP_CODE_REG = /^[A-Za-z][A-Za-z0-9_-]*$/;
33
+
34
+ export function isFormMenu(menu) {
35
+ return !!menu && menu.type === FORM_MENU_TYPE;
36
+ }
37
+
38
+ /**
39
+ * 访问路径 = route || url(与 createRoute3 现有取值逻辑一致)
40
+ */
41
+ export function getAccessPath(menu) {
42
+ if (!menu) return "";
43
+ return String(menu.route || menu.url || "");
44
+ }
45
+
46
+ /**
47
+ * 取路径首段(不含查询串);@ 开头的存量组件路径无首段语义,返回 ""
48
+ */
49
+ function getFirstSegment(path) {
50
+ return getSegments(path)[0] || "";
51
+ }
52
+
53
+ /** 切分路径为段数组(不含查询串);@ 开头的存量组件路径无首段语义,返回 [] */
54
+ function getSegments(path) {
55
+ if (!path || typeof path !== "string" || path.startsWith("@")) {
56
+ return [];
57
+ }
58
+ return path.split("?")[0].split("/").filter(Boolean);
59
+ }
60
+
61
+ /**
62
+ * 取访问路径里的归属 appCode:仅 /micro/<appCode>/... 或
63
+ * /micro_debug/<appCode>/... 形态才有归属,其余(主应用自身路由、
64
+ * /base 命名空间、裸路径)一律返回 ""。
65
+ */
66
+ export function getOwnerSegment(path) {
67
+ const segs = getSegments(path);
68
+ if (segs.length < 2 || MICRO_SEGMENTS.indexOf(segs[0]) < 0) return "";
69
+ return segs[1];
70
+ }
71
+
72
+ /**
73
+ * 切换访问路径的微前端命名空间(/micro/ ⇄ /micro_debug/),非微前端路径原样返回。
74
+ * 用途:主应用在调试命名空间下装载子应用时,把下发的菜单路径一并换过去——
75
+ * 子应用据此生成的路由才与浏览器 hash 对得上(主子路径始终保持一致)。
76
+ */
77
+ export function swapMicroNamespace(path, debug) {
78
+ const segs = getSegments(path);
79
+ if (segs.length < 2 || MICRO_SEGMENTS.indexOf(segs[0]) < 0) return path;
80
+ const target = debug ? MICRO_DEBUG_SEGMENT : MICRO_SEGMENT;
81
+ if (segs[0] === target) return path;
82
+ return "/" + target + stripFirstSegment(path);
83
+ }
84
+
85
+ /**
86
+ * 按调试与否重写整条菜单的访问路径命名空间(浅拷贝,不改原对象)。
87
+ * route 有值改 route,否则改 url——与 getAccessPath 的取值口径一致;
88
+ * 单字段写法里 url 同时是组件路径,但 resolveComponentPath 对两个命名空间
89
+ * 都会剥前缀,所以换过去不影响组件解析。
90
+ */
91
+ export function swapMenuNamespace(menu, debug) {
92
+ if (!menu) return menu;
93
+ const field = menu.route ? "route" : "url";
94
+ const swapped = swapMicroNamespace(String(menu[field] || ""), debug);
95
+ if (swapped === menu[field]) return menu;
96
+ return Object.assign({}, menu, { [field]: swapped });
97
+ }
98
+
99
+ /**
100
+ * 解析菜单归属:访问路径的 /micro/<appCode>(或 /micro_debug/<appCode>)
101
+ * 命中注册表则归属该子应用,否则(无前缀 / base / 未命中)归主应用,返回 ""。
102
+ */
103
+ export function resolveOwner(menu, registry) {
104
+ const seg = getOwnerSegment(getAccessPath(menu));
105
+ if (!seg || seg === BASE_SEGMENT) return "";
106
+ const apps = normalizeRegistry(registry);
107
+ return apps.some((app) => app.appCode === seg) ? seg : "";
108
+ }
109
+
110
+ /**
111
+ * 解析组件路径(type 0 普通菜单):
112
+ * - "@..." 存量旧写法:url 即组件路径,原样返回;
113
+ * - /micro/<appCode>/… 或 /micro_debug/<同>:剥掉归属两段后本地解析——条件是
114
+ * 归属自己,或来源为 base(/micro/<any>/base/… 是包内组件,任何引包应用本地都有,
115
+ * 不看归属直接本地渲染,省去为一个共享组件装载整个子应用);
116
+ * - 首段 base:转 @base/views 命名空间;
117
+ * - 其余原样(无前缀走渲染方 @/views;归属别家的私有页原样返回交子应用渲染)。
118
+ */
119
+ export function resolveComponentPath(menu, rendererAppCode) {
120
+ const url = menu && menu.url != null ? String(menu.url) : "";
121
+ if (!url) return "";
122
+ if (url.startsWith("@")) return url;
123
+ const seg = getFirstSegment(url);
124
+ if (!seg) return url;
125
+ if (MICRO_SEGMENTS.indexOf(seg) >= 0) {
126
+ const owner = getOwnerSegment(url);
127
+ // 剥掉归属两段 /micro/<owner>;剩余首段为 base 即"包内组件来源"
128
+ const rest = stripFirstSegment(stripFirstSegment(url));
129
+ const isBaseSource = getFirstSegment(rest) === BASE_SEGMENT;
130
+ // 归属自己、或来源 base(包内组件人人有)→ 本地解析;否则(归属别家的私有页)原样返回。
131
+ // 递归一次把 rest 里的 base 命名空间转 @base/views;appCode 传空避免连剥两轮。
132
+ if (isBaseSource || (owner && rendererAppCode && owner === rendererAppCode)) {
133
+ return rest ? resolveComponentPath({ url: rest }, "") : "";
134
+ }
135
+ return url;
136
+ }
137
+ if (seg === BASE_SEGMENT) {
138
+ const rest = stripFirstSegment(url);
139
+ return rest ? BASE_VIEW_PREFIX + rest : "";
140
+ }
141
+ return url;
142
+ }
143
+
144
+ function stripFirstSegment(url) {
145
+ const clean = url.startsWith("/") ? url : "/" + url;
146
+ const idx = clean.indexOf("/", 1);
147
+ return idx > 0 ? clean.slice(idx) : "";
148
+ }
149
+
150
+ /**
151
+ * 全量菜单按归属切分,返回 { appCode: [菜单行] }。
152
+ * 主应用侧不需要切分结果——它始终用原始整树渲染侧边栏,直接用入参即可;
153
+ * 这里只产出各子应用归属自己的扁平列表(用于 props 下发生成子应用内部路由)。
154
+ */
155
+ export function dispatchMenus(menus, registry) {
156
+ const apps = normalizeRegistry(registry);
157
+ const subAppMenus = {};
158
+ apps.forEach((app) => {
159
+ subAppMenus[app.appCode] = [];
160
+ });
161
+ const walk = (rows) => {
162
+ (rows || []).forEach((row) => {
163
+ const owner = resolveOwner(row, apps);
164
+ if (owner) {
165
+ subAppMenus[owner].push(row);
166
+ }
167
+ if (row && row.children && row.children.length) {
168
+ walk(row.children);
169
+ }
170
+ });
171
+ };
172
+ walk(menus || []);
173
+ return subAppMenus;
174
+ }
175
+
176
+ /**
177
+ * 校验应用注册表(逻辑参数 micro_app_registry 的 paramValue)。
178
+ * 非法条目跳过并记入 errors,绝不静默;enabled === false 的合法条目不收录也不报错。
179
+ * appCode 处在 /micro/ 命名空间内,与主应用一级视图目录天然隔离,无需再防目录撞名;
180
+ * 仅保留 base(组件来源命名空间)与 micro / micro_debug(前缀自身)三个保留字。
181
+ * options.reservedSegments 可追加应用自定义保留字。
182
+ */
183
+ export function validateRegistry(raw, options = {}) {
184
+ const errors = [];
185
+ let list = raw;
186
+ if (typeof raw === "string") {
187
+ try {
188
+ list = JSON.parse(raw);
189
+ } catch (e) {
190
+ return { apps: [], errors: ["注册表 JSON 解析失败: " + e.message] };
191
+ }
192
+ }
193
+ if (!Array.isArray(list)) {
194
+ return { apps: [], errors: ["注册表必须是 JSON 数组"] };
195
+ }
196
+ const reserved = [BASE_SEGMENT]
197
+ .concat(MICRO_SEGMENTS)
198
+ .concat(options.reservedSegments || []);
199
+ const apps = [];
200
+ const seen = {};
201
+ list.forEach((item, index) => {
202
+ const tag = "注册表第" + (index + 1) + "项";
203
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
204
+ errors.push(tag + "不是对象");
205
+ return;
206
+ }
207
+ const appCode = item.appCode;
208
+ if (!appCode || typeof appCode !== "string" || !APP_CODE_REG.test(appCode)) {
209
+ errors.push(tag + " appCode 缺失或格式非法: " + JSON.stringify(appCode));
210
+ return;
211
+ }
212
+ if (reserved.indexOf(appCode) >= 0) {
213
+ errors.push(tag + " appCode 与保留字/视图目录撞名: " + appCode);
214
+ return;
215
+ }
216
+ if (seen[appCode]) {
217
+ errors.push(tag + " appCode 重复: " + appCode);
218
+ return;
219
+ }
220
+ if (typeof item.entry !== "string" || !item.entry.trim()) {
221
+ errors.push(
222
+ tag
223
+ + "("
224
+ + appCode
225
+ + ")entry 必须是非空字符串(分环境对象写法已废弃,"
226
+ + "注册表本身按环境分库;本机联调用 /"
227
+ + MICRO_DEBUG_SEGMENT
228
+ + "/ 命名空间)"
229
+ );
230
+ return;
231
+ }
232
+ seen[appCode] = true;
233
+ if (item.enabled === false) return;
234
+ apps.push({
235
+ appCode: appCode,
236
+ appName: item.appName || appCode,
237
+ entry: item.entry.trim(),
238
+ enabled: true,
239
+ });
240
+ });
241
+ return { apps, errors };
242
+ }
243
+
244
+ /**
245
+ * 解析调试开关(逻辑参数 micro_debug_enabled 的值)→ 布尔。
246
+ * 与注册表分开承载:注册表描述"有哪些应用",本开关是环境级运维动作,
247
+ * 生命周期不同——运维开关调试不必改注册表 JSON,少一类把注册表改坏的风险。
248
+ *
249
+ * "true"(忽略大小写与首尾空格)→ 开启
250
+ * 其余一切(不存在 / 空 / "false" / 认不出的值)→ 关闭
251
+ *
252
+ * 只认一个字面量、其余一律关闭,是有意的安全默认:认不出就不放行,
253
+ * 不会因为写了个形近值而把某个环境悄悄放开。
254
+ */
255
+ export function isDebugEnabled(raw) {
256
+ return (raw == null ? "" : String(raw)).trim().toLowerCase() === "true";
257
+ }
258
+
259
+ /**
260
+ * 取 entry。不再支持分环境对象写法:注册表存在后端逻辑参数里,本身已按环境分库,
261
+ * 主应用连哪个后端就拿到哪份注册表——再按前端 NODE_ENV 分一次是重复机制。
262
+ * 本机联调走 /micro_debug/ 命名空间(显式、按 URL 生效),不依赖构建环境。
263
+ */
264
+ export function resolveEntry(entry) {
265
+ return typeof entry === "string" ? entry.trim() : "";
266
+ }
267
+
268
+ function normalizeRegistry(registry) {
269
+ if (!registry) return [];
270
+ const list = Array.isArray(registry) ? registry : registry.apps || [];
271
+ return list.filter((app) => {
272
+ return app
273
+ && typeof app.appCode === "string"
274
+ && app.appCode
275
+ && app.enabled !== false;
276
+ });
277
+ }
@@ -0,0 +1,92 @@
1
+ import settingConfig from "@/settings";
2
+
3
+ export function initPddLog() {
4
+ if (!settingConfig.pddLogEnabled || !window.PDD_OPEN_init) return
5
+ pddIntfHandle();
6
+ }
7
+
8
+ function getPageCode(callback) {
9
+ let that = window.$vueRoot;
10
+ return that.$http({
11
+ url: USER_PREFIX + "/bd_api/intf/pddApiRouter",
12
+ method: 'post',
13
+ data: {"id": "pdd.cloud.isv.page.code"},
14
+ modal: false,
15
+ success: res => {
16
+ if (res.objx?.response) {
17
+ let response = res.objx.response;
18
+ if (!response.success) {
19
+ that.$baseAlert(response.errorMessage)
20
+ return
21
+ }
22
+ let pageCode = response.pageCode
23
+ callback(pageCode)
24
+ }
25
+ }
26
+ });
27
+ }
28
+
29
+ function getRandomIntInclusive(min, max) {
30
+ min = Math.ceil(min);
31
+ max = Math.floor(max);
32
+ return Math.floor(Math.random() * (max - min + 1)) + min;
33
+ }
34
+
35
+ function handlePati(pati) {
36
+ if (!pati) return;
37
+ handleLoginLog(pati);//登录日志
38
+ let size = getRandomIntInclusive(1, 5);//随机次数
39
+ let time = 0;
40
+ for (let i = 0; i < size; i++) {
41
+ let delay = getRandomIntInclusive(5, 15) * 1000;//随机间隔
42
+ time = time + delay;
43
+ setTimeout(function () {
44
+ handleOrderLog(pati);//订单日志
45
+ }, time)
46
+ }
47
+
48
+ }
49
+
50
+ function requestPati(id, pati) {
51
+ return window.$vueRoot.$http({
52
+ url: USER_PREFIX + "/bd_api/intf/pddApiRouter",
53
+ method: 'post',
54
+ data: {id, pati},
55
+ modal: false,
56
+ success: res => {
57
+ if (res.objx?.response) {
58
+ let response = res.objx.response;
59
+ if (!response.success) {
60
+ that.$baseAlert(response.errorMessage)
61
+ return
62
+ }
63
+ }
64
+ }
65
+ });
66
+ }
67
+
68
+ function handleLoginLog(pati) {
69
+ requestPati("pdd.cloud.security.event.tracking.login", pati)
70
+ }
71
+
72
+ function handleOrderLog(pati) {
73
+ requestPati("pdd.cloud.security.event.tracking.batch.order", pati)
74
+ }
75
+
76
+ async function pddIntfHandle() {
77
+ getPageCode(async (pageCode) => {
78
+ if (!pageCode) return
79
+ PDD_OPEN_init({
80
+ code: pageCode
81
+ // 对于获取 code 接口或未登录态,可不传 code:PDD_OPEN_init({}, function () { ... })
82
+ }, function () {
83
+ // 初始化已完成
84
+ window.PDD_OPEN_getPati().then(
85
+ function (pati) {
86
+ // 使用 pati
87
+ handlePati(pati)
88
+ }).catch(error => console.log(error))
89
+ })
90
+
91
+ })
92
+ }
@@ -0,0 +1,71 @@
1
+ import html2canvas from "html2canvas";
2
+ import jspdf from "jspdf";
3
+ export async function exportPDF(option) {
4
+ const dom = option.dom;
5
+ let fileName = option.fileName;
6
+ if (!dom) return
7
+ let height = "";
8
+ // 获取dom元素
9
+ let dom1 = dom.querySelector(".d-cont");
10
+ try {
11
+ if (dom1) {
12
+ height = dom1.style.height;
13
+ dom1.style.height = "auto";
14
+ }
15
+
16
+ if (dom) {
17
+ html2canvas(dom).then(async (canvas) => {
18
+ // A4纸,纵向
19
+ let pdf = new jspdf("p", "mm", "a4");
20
+ let ctx = canvas.getContext("2d");
21
+ let a4w = 190;
22
+ // A4大小,210mm x 297mm,四边各保留10mm的边距,显示区域190x277
23
+ let a4h = 277;
24
+ // 按A4显示比例换算一页图像的像素高度
25
+ let imgHeight = Math.floor((a4h * canvas.width) / a4w);
26
+ let renderedHeight = 0;
27
+ while (renderedHeight < canvas.height) {
28
+ let page = document.createElement("canvas");
29
+ page.width = canvas.width;
30
+ // 可能内容不足一页
31
+ page.height = Math.min(imgHeight, canvas.height - renderedHeight);
32
+ // 用getImageData剪裁指定区域,并画到前面创建的canvas对象中
33
+ page
34
+ .getContext("2d")
35
+ .putImageData(
36
+ ctx.getImageData(
37
+ 0,
38
+ renderedHeight,
39
+ canvas.width,
40
+ Math.min(imgHeight, canvas.height - renderedHeight)
41
+ ),
42
+ 0,
43
+ 0
44
+ );
45
+ // 添加图像到页面,保留10mm边距
46
+ pdf.addImage(
47
+ page.toDataURL("image/jpeg", 1.0),
48
+ "JPEG",
49
+ 10,
50
+ 10,
51
+ a4w,
52
+ Math.min(a4h, (a4w * page.height) / page.width)
53
+ );
54
+
55
+ renderedHeight += imgHeight;
56
+ if (renderedHeight < canvas.height) {
57
+ // 如果后面还有内容,添加一个空页
58
+ pdf.addPage();
59
+ }
60
+ // delete page;
61
+ }
62
+ // 保存文件
63
+ pdf.save(`${fileName}.pdf`);
64
+ });
65
+ }
66
+ } catch (err) {
67
+ console.log(err);
68
+ } finally {
69
+ if (dom1) dom1.style.height = height;
70
+ }
71
+ }