cloud-web-corejs 1.0.54-dev.76 → 1.0.54-dev.760

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 (576) hide show
  1. package/package.json +196 -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 +9 -1
  10. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  11. package/src/components/VabUpload/mixins.js +1881 -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 +239 -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/mobile/file/index.vue +10 -0
  94. package/src/components/obsUpload/index.js +34 -0
  95. package/src/components/obsUpload/index.vue +231 -0
  96. package/src/components/obsUpload/mixins.js +1476 -0
  97. package/src/components/onlineTalk/index.vue +1 -1
  98. package/src/components/onlineTalk/mixins.js +852 -1
  99. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  100. package/src/components/oplogTable/mixins.js +83 -4
  101. package/src/components/pddPrint/index.js +44 -1
  102. package/src/components/pddPrint/mixins.js +252 -1
  103. package/src/components/projectTag/mixins/addButton.js +52 -1
  104. package/src/components/projectTag/mixins/deleteButton.js +52 -1
  105. package/src/components/projectTag/mixins/view.js +43 -1
  106. package/src/components/scriptDescription/button.vue +12 -4
  107. package/src/components/scriptDescription/mixins.js +30 -1
  108. package/src/components/scriptTest/mixins.js +90 -1
  109. package/src/components/statusTag/mixins.js +66 -1
  110. package/src/components/table/CellSlot.vue +12 -9
  111. package/src/components/table/config.js +74 -1
  112. package/src/components/table/index.js +1215 -11
  113. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js +11028 -0
  114. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css +200 -0
  115. package/src/components/table/tableForm.vue +99 -63
  116. package/src/components/table/tableFormMixin.js +285 -1
  117. package/src/components/table/util/index.js +337 -0
  118. package/src/components/table/vxeFilter/index.js +153 -1
  119. package/src/components/table/vxeFilter/mixin.js +310 -6
  120. package/src/components/tempStorage/index.vue +76 -55
  121. package/src/components/tempStorage/tempStorageDialog.vue +179 -54
  122. package/src/components/vb-tabs/x-tabs.vue +57 -30
  123. package/src/components/vipPrint/index.js +44 -1
  124. package/src/components/vipPrint/mixins.js +268 -1
  125. package/src/components/wf/addOpinionButton.vue +57 -0
  126. package/src/components/wf/content.vue +834 -362
  127. package/src/components/wf/mixins/addOpinionButton.js +53 -0
  128. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  129. package/src/components/wf/mixins/setCandidateDialog.js +217 -5
  130. package/src/components/wf/mixins/setCandidateDialog2.js +252 -0
  131. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -0
  132. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +69 -0
  133. package/src/components/wf/setCandidateButton.vue +40 -0
  134. package/src/components/wf/setCandidateDialog.vue +10 -0
  135. package/src/components/wf/setCandidateDialog2.vue +105 -0
  136. package/src/components/wf/wf.js +2221 -30
  137. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  138. package/src/components/wf/wfStartDialog.vue +66 -42
  139. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  140. package/src/components/wf/wfUtil.js +280 -1
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. package/src/components/xform/form-designer/designer.js +2027 -29
  149. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +434 -0
  150. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +108 -1
  151. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +291 -8
  152. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +14 -1
  153. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  154. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +3 -3
  155. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +971 -0
  156. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue +971 -0
  157. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  158. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +300 -0
  159. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +85 -49
  160. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +6 -3
  161. package/src/components/xform/form-designer/form-widget/dialog/formulaDialog.vue +799 -0
  162. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +30 -8
  163. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1774 -19
  164. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +222 -76
  165. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +67 -54
  166. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  167. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  168. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  169. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +216 -184
  170. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +76 -66
  171. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +209 -90
  172. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +41 -35
  173. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +18 -7
  174. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +4 -1
  175. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +95 -0
  176. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +14 -3
  177. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +48 -5
  178. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +133 -0
  179. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +86 -0
  180. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  181. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1939 -16
  182. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +657 -108
  183. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +964 -0
  184. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  185. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +22 -11
  186. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +90 -0
  187. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +7 -2
  188. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  189. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  190. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +3 -9
  191. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +3 -9
  192. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +3 -9
  193. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  194. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +192 -0
  195. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  196. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +117 -81
  197. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +186 -0
  198. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +55 -28
  199. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +119 -0
  200. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +156 -54
  201. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +26 -6
  202. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  203. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +146 -0
  204. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  205. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  206. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +92 -0
  207. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +24 -9
  208. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  209. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  210. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +16 -1
  211. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
  212. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +93 -49
  213. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +9 -1
  214. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +38 -38
  215. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +147 -0
  216. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +111 -34
  217. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +4 -3
  218. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +2 -1
  219. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +3 -171
  220. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +187 -70
  221. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +753 -0
  222. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  223. package/src/components/xform/form-designer/form-widget/index.vue +6 -1
  224. package/src/components/xform/form-designer/form-widget/indexMixin.js +184 -2
  225. package/src/components/xform/form-designer/index.vue +195 -191
  226. package/src/components/xform/form-designer/indexMixin.js +855 -24
  227. package/src/components/xform/form-designer/refMixinDesign.js +27 -28
  228. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  229. package/src/components/xform/form-designer/setting-panel/form-setting.vue +1553 -629
  230. package/src/components/xform/form-designer/setting-panel/index.vue +313 -305
  231. package/src/components/xform/form-designer/setting-panel/indexMixin.js +370 -12
  232. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +585 -302
  233. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  234. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  235. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  236. package/src/components/xform/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +14 -15
  237. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  238. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  239. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  240. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +124 -0
  241. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1154 -1048
  242. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  243. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +432 -0
  244. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  245. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1632 -592
  246. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  247. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  248. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  249. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  250. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  251. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +34 -46
  252. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -0
  253. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +31 -2
  254. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  255. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +32 -0
  256. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  257. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  258. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +23 -8
  259. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  260. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  261. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  262. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  263. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  264. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +14 -15
  265. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +64 -5
  266. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue +8 -3
  267. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +11 -13
  268. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  269. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  270. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  271. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  272. package/src/components/xform/form-designer/setting-panel/property-editor/field-gantt/gantt-editor.vue +36 -0
  273. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +75 -21
  274. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -0
  275. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +44 -15
  276. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -0
  277. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  278. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  279. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  280. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  281. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  282. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  283. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +71 -0
  284. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  285. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +33 -1
  286. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +66 -0
  287. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  288. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +107 -19
  289. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  290. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  291. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  292. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +17 -16
  293. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +25 -25
  294. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  295. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  296. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  297. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  298. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +127 -50
  299. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  300. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  301. package/src/components/xform/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +14 -15
  302. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +349 -0
  303. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  304. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  305. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  306. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +14 -15
  307. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +42 -0
  308. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +304 -19
  309. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  310. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  311. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  312. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +372 -50
  313. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  314. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +369 -324
  315. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  316. package/src/components/xform/form-designer/toolbar-panel/index.vue +267 -103
  317. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +655 -24
  318. package/src/components/xform/form-designer/widget-panel/index.vue +389 -321
  319. package/src/components/xform/form-designer/widget-panel/indexMixin.js +334 -2
  320. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4531 -3141
  321. package/src/components/xform/form-render/compareDelList.vue +83 -0
  322. package/src/components/xform/form-render/compareView.vue +76 -0
  323. package/src/components/xform/form-render/container-item/containerItemMixin.js +404 -11
  324. package/src/components/xform/form-render/container-item/data-table-item.vue +221 -203
  325. package/src/components/xform/form-render/container-item/data-table-mixin.js +3716 -858
  326. package/src/components/xform/form-render/container-item/detail-h5-item.vue +173 -172
  327. package/src/components/xform/form-render/container-item/detail-item.vue +287 -158
  328. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  329. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  330. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  331. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  332. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  333. package/src/components/xform/form-render/container-item/list-h5-item.vue +1184 -419
  334. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  335. package/src/components/xform/form-render/container-item/tab-item.vue +125 -88
  336. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  337. package/src/components/xform/form-render/container-item/table-item.vue +7 -7
  338. package/src/components/xform/form-render/container-item/table2-cell-item.vue +53 -34
  339. package/src/components/xform/form-render/container-item/table2-item.vue +198 -99
  340. package/src/components/xform/form-render/container-item/tree-item.vue +32 -11
  341. package/src/components/xform/form-render/dynamicDialogRender.js +238 -3
  342. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  343. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  344. package/src/components/xform/form-render/index.vue +86 -21
  345. package/src/components/xform/form-render/indexMixin.js +5070 -37
  346. package/src/components/xform/form-render/refMixin.js +34 -3
  347. package/src/components/xform/icon-picker/icons.json +284 -0
  348. package/src/components/xform/icon-picker/index.vue +145 -0
  349. package/src/components/xform/lang/en-US.js +457 -438
  350. package/src/components/xform/lang/en-US_extension.js +4 -0
  351. package/src/components/xform/lang/zh-CN.js +628 -593
  352. package/src/components/xform/mixins/defaultHandle.js +474 -2
  353. package/src/components/xform/mixins/scriptHttp.js +179 -3
  354. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  355. package/src/components/xform/utils/emitter.js +4 -4
  356. package/src/components/xform/utils/formHttp.js +162 -0
  357. package/src/components/xform/utils/format.js +205 -172
  358. package/src/components/xform/utils/formula-util.js +969 -0
  359. package/src/components/xform/utils/sfc-generator.js +2 -2
  360. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  361. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  362. package/src/components/xform/utils/tableColumnHelper.js +155 -0
  363. package/src/components/xform/utils/util.js +1591 -1
  364. package/src/components/xform/utils/validators.js +185 -4
  365. package/src/components/xform/utils/vue2js-generator.js +2 -2
  366. package/src/components/xhsPrint/index.js +44 -1
  367. package/src/components/xhsPrint/mixins.js +269 -1
  368. package/src/directive/LimitNumber/index.js +131 -1
  369. package/src/directive/el-dialog-center/index.js +34 -1
  370. package/src/directive/el-drag-dialog/drag.js +86 -1
  371. package/src/directive/el-readonly/index.js +15 -1
  372. package/src/directive/permission/hasPermi.js +34 -1
  373. package/src/index.js +240 -63
  374. package/src/lang/index.js +56 -51
  375. package/src/lang/locale/en/login.js +27 -0
  376. package/src/lang/locale/zh/login.js +26 -0
  377. package/src/layout/components/AppMain.vue +148 -111
  378. package/src/layout/components/Sidebar/default.vue +1655 -1223
  379. package/src/layout/components/Sidebar/index.vue +6 -1
  380. package/src/layout/components/TagsView/index.vue +57 -15
  381. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  382. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  383. package/src/layout/components/extractedCode/queryDialog.vue +103 -0
  384. package/src/layout/components/extractedCode/viewDialog.vue +207 -0
  385. package/src/layout/components/langTool.vue +128 -120
  386. package/src/layout/components/watermark/index.vue +83 -0
  387. package/src/layout/defaultLayout.vue +170 -150
  388. package/src/microRouter/index.js +521 -0
  389. package/src/mixins/selectDialog/index.js +266 -1
  390. package/src/mixins/tableTree/index.js +199 -4
  391. package/src/mixins/wf/index.js +33 -1
  392. package/src/permission.js +168 -1
  393. package/src/public-path.js +8 -0
  394. package/src/resources/js/base/common.js +109 -109
  395. package/src/router/index.js +4 -7
  396. package/src/router/modules/customer.js +21 -18
  397. package/src/router/modules/system.js +4 -0
  398. package/src/store/config/index.js +667 -600
  399. package/src/store/getters.js +4 -1
  400. package/src/store/modules/micro.js +56 -0
  401. package/src/store/modules/permission.js +495 -23
  402. package/src/store/modules/settings.js +26 -1
  403. package/src/store/modules/tagsView.js +206 -5
  404. package/src/store/modules/user.js +419 -29
  405. package/src/utils/aes.js +21 -1
  406. package/src/utils/auth.js +27 -1
  407. package/src/utils/componentDialog.js +322 -0
  408. package/src/utils/global.js +370 -8
  409. package/src/utils/index.js +579 -7
  410. package/src/utils/keepAlive.js +189 -1
  411. package/src/utils/menuAdapter.js +183 -0
  412. package/src/utils/pddLog.js +92 -0
  413. package/src/utils/pdfUtil.js +71 -0
  414. package/src/utils/repeatOpen.js +48 -0
  415. package/src/utils/request.js +417 -28
  416. package/src/utils/vab.js +1275 -27
  417. package/src/utils/validate.js +104 -1
  418. package/src/utils/wf.js +4 -4
  419. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  420. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  421. package/src/views/bd/setting/bd_attach_setting/mixins/dialog.js +84 -1
  422. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +116 -5
  423. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  424. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  425. package/src/views/bd/setting/bd_company_env/edit.vue +193 -0
  426. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  427. package/src/views/bd/setting/config_manage/list.vue +83 -0
  428. package/src/views/bd/setting/formVersion/button.vue +55 -0
  429. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  430. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  431. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  432. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  433. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  434. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  435. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  436. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  437. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  438. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +483 -0
  439. package/src/views/bd/setting/formVersion/link.vue +58 -0
  440. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  441. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  442. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  443. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  444. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  445. package/src/views/bd/setting/form_import_log/edit.vue +130 -0
  446. package/src/views/bd/setting/form_import_log/list.vue +211 -0
  447. package/src/views/bd/setting/form_script/edit.vue +196 -74
  448. package/src/views/bd/setting/form_script/edit1.vue +410 -187
  449. package/src/views/bd/setting/form_script/form_list.vue +174 -85
  450. package/src/views/bd/setting/form_script/list.vue +95 -21
  451. package/src/views/bd/setting/form_script/list1.vue +205 -118
  452. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  453. package/src/views/bd/setting/form_script/mixins/edit.js +265 -7
  454. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -9
  455. package/src/views/bd/setting/form_script/mixins/form_list.js +320 -4
  456. package/src/views/bd/setting/form_script/mixins/list.js +307 -4
  457. package/src/views/bd/setting/form_script/mixins/list1.js +512 -14
  458. package/src/views/bd/setting/form_script/mixins/list2.js +10 -1
  459. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  460. package/src/views/bd/setting/form_script/mixins/preformDialog.js +34 -1
  461. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  462. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +3 -3
  463. package/src/views/bd/setting/form_template/edit.vue +355 -184
  464. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  465. package/src/views/bd/setting/form_template/list.vue +301 -214
  466. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +279 -1
  467. package/src/views/bd/setting/form_template/mixins/dialog.js +103 -1
  468. package/src/views/bd/setting/form_template/mixins/edit.js +277 -9
  469. package/src/views/bd/setting/form_template/mixins/editWfObjConfigDialog.js +92 -1
  470. package/src/views/bd/setting/form_template/mixins/ftHistoryDialog.js +91 -1
  471. package/src/views/bd/setting/form_template/mixins/itemEdit.js +104 -1
  472. package/src/views/bd/setting/form_template/mixins/itemList.js +234 -1
  473. package/src/views/bd/setting/form_template/mixins/list.js +721 -22
  474. package/src/views/bd/setting/form_template/mixins/list2.js +411 -0
  475. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  476. package/src/views/bd/setting/form_template/mixins/preformDialog.js +28 -3
  477. package/src/views/bd/setting/form_template/mixins/wf_list.js +421 -3
  478. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  479. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  480. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  481. package/src/views/bd/setting/logic_param/edit.vue +146 -0
  482. package/src/views/bd/setting/logic_param/edit1.vue +106 -0
  483. package/src/views/bd/setting/logic_param/edit2.vue +139 -0
  484. package/src/views/bd/setting/logic_param/list.vue +74 -0
  485. package/src/views/bd/setting/logic_param/list1.vue +12 -0
  486. package/src/views/bd/setting/logic_param/list2.vue +12 -0
  487. package/src/views/bd/setting/logic_param/mixins/edit.js +93 -0
  488. package/src/views/bd/setting/logic_param/mixins/list.js +376 -0
  489. package/src/views/bd/setting/menu_kind/list.vue +172 -83
  490. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +300 -7
  491. package/src/views/bd/setting/menu_kind/mixins/dialog.js +139 -1
  492. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  493. package/src/views/bd/setting/push_data/edit.vue +139 -0
  494. package/src/views/bd/setting/push_data/list.vue +283 -0
  495. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  496. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  497. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  498. package/src/views/bd/setting/request_async_setting/list.vue +372 -0
  499. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  500. package/src/views/bd/setting/request_setting/list.vue +301 -0
  501. package/src/views/bd/setting/table_model/edit.vue +1079 -426
  502. package/src/views/bd/setting/table_model/list.vue +218 -128
  503. package/src/views/bd/setting/table_model/mixins/dialog.js +71 -1
  504. package/src/views/bd/setting/table_model/mixins/edit.js +1309 -13
  505. package/src/views/bd/setting/table_model/mixins/list.js +463 -2
  506. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  507. package/src/views/bd/setting/table_model/mixins/zdDialog.js +114 -3
  508. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  509. package/src/views/bd/setting/utils/index.js +75 -1
  510. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  511. package/src/views/support/form-dialog-demo/index.vue +537 -0
  512. package/src/views/user/access_log/list.vue +418 -349
  513. package/src/views/user/area/dialog.vue +223 -117
  514. package/src/views/user/area/list.vue +318 -0
  515. package/src/views/user/commMenu/index.vue +2 -2
  516. package/src/views/user/common_attribute/list.vue +4 -1
  517. package/src/views/user/company_info/dialog.vue +195 -163
  518. package/src/views/user/extend_datasource/dialog.vue +3 -0
  519. package/src/views/user/extend_datasource/edit.vue +2 -1
  520. package/src/views/user/extend_datasource/list.vue +3 -0
  521. package/src/views/user/fieldTranslation/editDialog.vue +8 -8
  522. package/src/views/user/fieldTranslation/list.vue +33 -33
  523. package/src/views/user/form/vform/designer.vue +792 -749
  524. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  525. package/src/views/user/form/vform/out_render.vue +1 -1
  526. package/src/views/user/form/vform/render.vue +65 -52
  527. package/src/views/user/form/view/edit.vue +56 -37
  528. package/src/views/user/form/view/list.vue +474 -54
  529. package/src/views/user/home/default.vue +1117 -979
  530. package/src/views/user/home/default2.vue +1158 -0
  531. package/src/views/user/home/dev.vue +29 -0
  532. package/src/views/user/home/index.vue +18 -7
  533. package/src/views/user/login/default.vue +165 -44
  534. package/src/views/user/login/index.vue +4 -6
  535. package/src/views/user/login/indexMixin.js +661 -425
  536. package/src/views/user/menu/list.vue +50 -1
  537. package/src/views/user/menuFallback/index.vue +123 -0
  538. package/src/views/user/notify_message/dialog.vue +44 -22
  539. package/src/views/user/notify_template/edit.vue +188 -187
  540. package/src/views/user/notify_template/edit2.vue +176 -0
  541. package/src/views/user/notify_template/list.vue +4 -1
  542. package/src/views/user/notify_template/list2.vue +190 -0
  543. package/src/views/user/outLink/form_view.vue +211 -211
  544. package/src/views/user/outLink/index.vue +64 -15
  545. package/src/views/user/position/list.vue +4 -4
  546. package/src/views/user/project_tag/dialog.vue +9 -4
  547. package/src/views/user/project_tag/edit.vue +2 -2
  548. package/src/views/user/project_tag/list.vue +9 -4
  549. package/src/views/user/request_setting/edit.vue +258 -0
  550. package/src/views/user/request_setting/list.vue +248 -0
  551. package/src/views/user/role/authConfig.vue +89 -0
  552. package/src/views/user/role/dialog.vue +70 -48
  553. package/src/views/user/role/edit.vue +609 -429
  554. package/src/views/user/role/list.vue +4 -4
  555. package/src/views/user/sale_org/dialog.vue +1 -1
  556. package/src/views/user/sale_org/list.vue +4 -1
  557. package/src/views/user/system_notice/infoDialog.vue +61 -1
  558. package/src/views/user/user/dialog.vue +46 -23
  559. package/src/views/user/user/edit.vue +1391 -1021
  560. package/src/views/user/user/form_dialog.vue +158 -0
  561. package/src/views/user/user/form_info.vue +210 -0
  562. package/src/views/user/user/info.vue +253 -140
  563. package/src/views/user/user/list.vue +652 -563
  564. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  565. package/src/views/user/wf/wfReport/index.vue +625 -0
  566. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  567. package/src/views/user/wf/wf_manage/list.vue +640 -256
  568. package/src/views/user/wf/wf_manage/list2.vue +854 -0
  569. package/src/views/user/wf/wf_manage/wfContentDialog.vue +25 -22
  570. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  571. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  572. package/src/views/user/wf/wf_obj_config/list.vue +114 -9
  573. package/src/views/user/wf/wf_transfer_setting/edit.vue +282 -0
  574. package/src/views/user/wf/wf_transfer_setting/list.vue +319 -0
  575. package/src/views/user/workbench_menu/list.vue +555 -0
  576. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1347
@@ -1 +1,189 @@
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
+ // 临时打点:菜单切换卡顿定位(定位后移除)
170
+ console.log("[nav-perf] keep-alive HIT: " + key)
171
+ vnode.componentInstance = cache[key].componentInstance
172
+ // make current key freshest
173
+ remove(keys, key)
174
+ keys.push(key)
175
+ } else {
176
+ // 临时打点:菜单切换卡顿定位(定位后移除)
177
+ console.log("[nav-perf] keep-alive MISS: " + key)
178
+ cache[key] = vnode
179
+ keys.push(key)
180
+ // prune oldest entry
181
+ if (this.max && keys.length > parseInt(this.max)) {
182
+ pruneCacheEntry(cache, keys[0], keys, this._vnode)
183
+ }
184
+ }
185
+ vnode.data.keepAlive = true
186
+ }
187
+ return vnode || (slot && slot[0])
188
+ }
189
+ }
@@ -0,0 +1,183 @@
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
+ const BASE_VIEW_PREFIX = "@base/views";
15
+ const APP_CODE_REG = /^[A-Za-z][A-Za-z0-9_-]*$/;
16
+
17
+ export function isFormMenu(menu) {
18
+ return !!menu && menu.type === FORM_MENU_TYPE;
19
+ }
20
+
21
+ /**
22
+ * 访问路径 = route || url(与 createRoute3 现有取值逻辑一致)
23
+ */
24
+ export function getAccessPath(menu) {
25
+ if (!menu) return "";
26
+ return String(menu.route || menu.url || "");
27
+ }
28
+
29
+ /**
30
+ * 取路径首段(不含查询串);@ 开头的存量组件路径无首段语义,返回 ""
31
+ */
32
+ export function getFirstSegment(path) {
33
+ if (!path || typeof path !== "string" || path.startsWith("@")) {
34
+ return "";
35
+ }
36
+ return path.split("?")[0].split("/").filter(Boolean)[0] || "";
37
+ }
38
+
39
+ /**
40
+ * 解析菜单归属:访问路径首段命中注册表 appCode 则归属该子应用,
41
+ * 否则(空 / base / 未命中)归主应用,返回 ""。
42
+ */
43
+ export function resolveOwner(menu, registry) {
44
+ const seg = getFirstSegment(getAccessPath(menu));
45
+ if (!seg || seg === BASE_SEGMENT) return "";
46
+ const apps = normalizeRegistry(registry);
47
+ return apps.some((app) => app.appCode === seg) ? seg : "";
48
+ }
49
+
50
+ /**
51
+ * 解析组件路径(type 0 普通菜单):
52
+ * - "@..." 存量旧写法:url 即组件路径,原样返回;
53
+ * - 首段 base:转 @base/views 命名空间;
54
+ * - 首段等于渲染方 appCode:剥掉首段(渲染方只渲染归属自己的菜单);
55
+ * - 其余原样(无前缀走渲染方 @/views;别家前缀加载失败落兜底组件)。
56
+ */
57
+ export function resolveComponentPath(menu, rendererAppCode) {
58
+ const url = menu && menu.url != null ? String(menu.url) : "";
59
+ if (!url) return "";
60
+ if (url.startsWith("@")) return url;
61
+ const seg = getFirstSegment(url);
62
+ if (!seg) return url;
63
+ if (seg === BASE_SEGMENT) {
64
+ const rest = stripFirstSegment(url);
65
+ return rest ? BASE_VIEW_PREFIX + rest : "";
66
+ }
67
+ if (rendererAppCode && seg === rendererAppCode) {
68
+ const rest = stripFirstSegment(url);
69
+ if (!rest) return "";
70
+ // 单字段写法 /appA/base/xx:剥掉归属前缀后可能仍带 base 命名空间,递归解析一次
71
+ // (appCode 传空,只剥一层归属前缀,不会把 /appA/appA/xx 连剥两层)
72
+ return resolveComponentPath({ url: rest }, "");
73
+ }
74
+ return url;
75
+ }
76
+
77
+ function stripFirstSegment(url) {
78
+ const clean = url.startsWith("/") ? url : "/" + url;
79
+ const idx = clean.indexOf("/", 1);
80
+ return idx > 0 ? clean.slice(idx) : "";
81
+ }
82
+
83
+ /**
84
+ * 全量菜单按归属切分:主应用保留完整树(侧边栏整树展示),
85
+ * 各子应用得到归属自己的菜单行的扁平列表(用于 props 下发生成子应用内部路由)。
86
+ */
87
+ export function dispatchMenus(menus, registry) {
88
+ const apps = normalizeRegistry(registry);
89
+ const subAppMenus = {};
90
+ apps.forEach((app) => {
91
+ subAppMenus[app.appCode] = [];
92
+ });
93
+ const walk = (rows) => {
94
+ (rows || []).forEach((row) => {
95
+ const owner = resolveOwner(row, apps);
96
+ if (owner) {
97
+ subAppMenus[owner].push(row);
98
+ }
99
+ if (row && row.children && row.children.length) {
100
+ walk(row.children);
101
+ }
102
+ });
103
+ };
104
+ walk(menus || []);
105
+ return { mainMenus: menus || [], subAppMenus };
106
+ }
107
+
108
+ /**
109
+ * 校验应用注册表(逻辑参数 micro_app_registry 的 paramValue)。
110
+ * 非法条目跳过并记入 errors,绝不静默;enabled === false 的合法条目不收录也不报错。
111
+ * options.reservedSegments 传各应用 @/views 一级目录名,防 appCode 撞名。
112
+ */
113
+ export function validateRegistry(raw, options = {}) {
114
+ const errors = [];
115
+ let list = raw;
116
+ if (typeof raw === "string") {
117
+ try {
118
+ list = JSON.parse(raw);
119
+ } catch (e) {
120
+ return { apps: [], errors: ["注册表 JSON 解析失败: " + e.message] };
121
+ }
122
+ }
123
+ if (!Array.isArray(list)) {
124
+ return { apps: [], errors: ["注册表必须是 JSON 数组"] };
125
+ }
126
+ const reserved = [BASE_SEGMENT].concat(options.reservedSegments || []);
127
+ const apps = [];
128
+ const seen = {};
129
+ list.forEach((item, index) => {
130
+ const tag = "注册表第" + (index + 1) + "项";
131
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
132
+ errors.push(tag + "不是对象");
133
+ return;
134
+ }
135
+ const appCode = item.appCode;
136
+ if (!appCode || typeof appCode !== "string" || !APP_CODE_REG.test(appCode)) {
137
+ errors.push(tag + " appCode 缺失或格式非法: " + JSON.stringify(appCode));
138
+ return;
139
+ }
140
+ if (reserved.indexOf(appCode) >= 0) {
141
+ errors.push(tag + " appCode 与保留字/视图目录撞名: " + appCode);
142
+ return;
143
+ }
144
+ if (seen[appCode]) {
145
+ errors.push(tag + " appCode 重复: " + appCode);
146
+ return;
147
+ }
148
+ if (item.entry == null || (typeof item.entry !== "string" && typeof item.entry !== "object")) {
149
+ errors.push(tag + "(" + appCode + ")entry 缺失或格式非法");
150
+ return;
151
+ }
152
+ seen[appCode] = true;
153
+ if (item.enabled === false) return;
154
+ apps.push({
155
+ appCode: appCode,
156
+ appName: item.appName || appCode,
157
+ entry: item.entry,
158
+ hasCorejs: !!item.hasCorejs,
159
+ enabled: true,
160
+ });
161
+ });
162
+ return { apps, errors };
163
+ }
164
+
165
+ /**
166
+ * 取分环境 entry:entry 为字符串直接用;为对象按 env 取,缺省回落 production。
167
+ */
168
+ export function resolveEntry(entry, env) {
169
+ if (!entry) return "";
170
+ if (typeof entry === "string") return entry;
171
+ return entry[env] || entry.production || "";
172
+ }
173
+
174
+ function normalizeRegistry(registry) {
175
+ if (!registry) return [];
176
+ const list = Array.isArray(registry) ? registry : registry.apps || [];
177
+ return list.filter((app) => {
178
+ return app
179
+ && typeof app.appCode === "string"
180
+ && app.appCode
181
+ && app.enabled !== false;
182
+ });
183
+ }
@@ -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
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * 同一菜单是否允许重复打开为独立标签页。
3
+ * 仅当该菜单维护了「是否可重复打开」(meta.repeatOpen 为真)时才可重复打开。
4
+ * affix 固定标签与 outLink(iframe 按 path 挂载)始终不参与重复打开。
5
+ */
6
+ export function isRepeatable(view) {
7
+ if (!view) return false;
8
+ const meta = view.meta || {};
9
+ if (meta.affix) return false;
10
+ if (view.name === "outLink") return false;
11
+ return !!meta.repeatOpen;
12
+ }
13
+
14
+ /**
15
+ * 标签页/缓存体系统一使用的唯一键。
16
+ * 可重复的视图按 fullPath 区分(每次打开附带唯一 query 使其唯一),
17
+ * 其余保持按 path,等价于原有行为。
18
+ */
19
+ export function viewKey(view) {
20
+ if (!view) return "";
21
+ if (isRepeatable(view)) return view.fullPath || view.path;
22
+ return view.path;
23
+ }
24
+
25
+ /**
26
+ * 给路由目标附加一个唯一标识,使其 fullPath 唯一,从而以独立标签打开。
27
+ * @param {string|Object} location 路径字符串或 vue-router location 对象
28
+ * @returns {Object} 归一化后的 location(带唯一 _rk)
29
+ */
30
+ export function withRepeatKey(location) {
31
+ const loc =
32
+ typeof location === "string" ? { path: location } : { ...location };
33
+ loc.query = { ...(loc.query || {}), _rk: Date.now() };
34
+ return loc;
35
+ }
36
+
37
+ /**
38
+ * 通用打开菜单/路由方法:菜单维护了可重复时以独立标签重复打开,否则按原逻辑跳转。
39
+ * 任意位置均可调用,替代直接 this.$router.push。
40
+ * @param {VueRouter} router this.$router
41
+ * @param {string|Object} location 路径字符串或 vue-router location 对象
42
+ * @param {Object} [route] 用于判定是否可重复(含 meta.repeatOpen/name);缺省时按不可重复处理
43
+ */
44
+ export function openView(router, location, route) {
45
+ // 仅当传入 route 且其维护了 meta.repeatOpen 时才以独立标签重复打开
46
+ const repeatable = isRepeatable(route);
47
+ return router.push(repeatable ? withRepeatKey(location) : location);
48
+ }