cloud-web-corejs 1.0.258 → 1.0.259

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 (248) hide show
  1. package/package.json +32 -25
  2. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  3. package/src/components/VabUpload/index.js +22 -2
  4. package/src/components/VabUpload/index.vue +242 -231
  5. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  6. package/src/components/VabUpload/mixins.js +1971 -1829
  7. package/src/components/VabUpload/privateProfileDialog.vue +2 -2
  8. package/src/components/baseArea/index.vue +1628 -0
  9. package/src/components/baseInputExport/mixins.js +48 -31
  10. package/src/components/baseInputNumber/index.vue +9 -9
  11. package/src/components/baseTabs/index.vue +16 -8
  12. package/src/components/code-editor/async.js +29 -0
  13. package/src/components/code-editor/index.vue +93 -4
  14. package/src/components/errorMsg/index.js +10 -9
  15. package/src/components/errorMsg/mixins.js +25 -23
  16. package/src/components/excelExport/exportFieldDialog.vue +40 -18
  17. package/src/components/excelExport/index.js +62 -3
  18. package/src/components/excelExport/index.vue +2 -1
  19. package/src/components/excelExport/mixins.js +496 -340
  20. package/src/components/excelImport/index.js +69 -7
  21. package/src/components/excelImport/mixins.js +841 -9
  22. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  23. package/src/components/fileLibrary/fileHistoryDialog.vue +1 -1
  24. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -298
  25. package/src/components/fileLibrary/fileObjAuthEdit.vue +1 -1
  26. package/src/components/fileLibrary/filterDialog.vue +1 -1
  27. package/src/components/fileLibrary/index.vue +1109 -1110
  28. package/src/components/fileLibrary/mixins/indexMixins.js +10 -0
  29. package/src/components/fileLibrary/propertiesDialog.vue +190 -190
  30. package/src/components/fileLibrary/recycleBinDialog.vue +237 -236
  31. package/src/components/formOplog/mixins.js +85 -80
  32. package/src/components/hiprint/view/design/index.vue +7 -2
  33. package/src/components/jsonImport/exportUtil.js +106 -0
  34. package/src/components/jsonImport/index.js +75 -50
  35. package/src/components/jsonImport/mixins.js +350 -348
  36. package/src/components/langImport/mixins.js +502 -500
  37. package/src/components/micro-view-host/contract.js +66 -0
  38. package/src/components/micro-view-host/index.vue +148 -0
  39. package/src/components/mobile/file/index.vue +10 -0
  40. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +51 -47
  41. package/src/components/obsUpload/index.vue +234 -231
  42. package/src/components/obsUpload/mixins.js +1542 -1476
  43. package/src/components/onlineTalk/talkUserDialog.vue +1 -1
  44. package/src/components/table/CellSlot.vue +12 -10
  45. package/src/components/table/config.js +74 -1
  46. package/src/components/table/index.js +1208 -1
  47. package/src/components/table/tableFormMixin.js +285 -1
  48. package/src/components/table/util/index.js +38 -40
  49. package/src/components/table/vxeFilter/index.js +153 -2
  50. package/src/components/table/vxeFilter/mixin.js +305 -3
  51. package/src/components/tempStorage/tempStorageDialog.vue +1 -1
  52. package/src/components/vb-tabs/x-tabs.vue +10 -5
  53. package/src/components/wf/addTaskUserdialog.vue +1 -1
  54. package/src/components/wf/mixins/setCandidateDialog.js +217 -217
  55. package/src/components/wf/mixins/setCandidateDialog2.js +252 -252
  56. package/src/components/wf/wf.js +2224 -2203
  57. package/src/components/wf/wfUtil.js +2 -1
  58. package/src/components/xform/docs/2026-08 /345/210/227/350/241/250/345/257/274/345/207/272/350/204/261/346/225/217/345/210/227/345/211/224/351/231/244/350/220/275/345/234/260/346/226/207/346/241/243.md" +173 -0
  59. package/src/components/xform/form-designer/designer.js +1 -0
  60. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +110 -1
  61. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +282 -1
  62. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  63. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  64. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +14 -0
  65. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +18 -73
  66. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  67. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  68. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  69. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  70. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +149 -0
  71. package/src/components/xform/form-designer/form-widget/indexMixin.js +179 -1
  72. package/src/components/xform/form-designer/indexMixin.js +823 -1
  73. package/src/components/xform/form-designer/refMixinDesign.js +27 -1
  74. package/src/components/xform/form-designer/setting-panel/action-button-config-dialog.vue +241 -0
  75. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  76. package/src/components/xform/form-designer/setting-panel/form-setting.vue +6 -0
  77. package/src/components/xform/form-designer/setting-panel/index.vue +314 -309
  78. package/src/components/xform/form-designer/setting-panel/indexMixin.js +324 -1
  79. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +8 -7
  80. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +8 -7
  81. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -0
  82. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +2 -2
  83. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  84. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  85. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  86. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  87. package/src/components/xform/form-designer/setting-panel/property-editor/field-baseAttachment/baseAttachment-fileTypes-editor.vue +23 -0
  88. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  89. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  90. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  91. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/vabUpload-fileTypes-editor.vue +23 -0
  92. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesEditorMixin.js +116 -0
  93. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -0
  94. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +3 -3
  95. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  96. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  97. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +566 -1
  98. package/src/components/xform/form-designer/widget-panel/indexMixin.js +290 -1
  99. package/src/components/xform/form-render/compareDelList.vue +83 -0
  100. package/src/components/xform/form-render/compareView.vue +76 -0
  101. package/src/components/xform/form-render/container-item/containerItemMixin.js +378 -1
  102. package/src/components/xform/form-render/container-item/data-table-mixin.js +35 -0
  103. package/src/components/xform/form-render/container-item/detail-item.vue +41 -0
  104. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  105. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  106. package/src/components/xform/form-render/container-item/list-h5-item.vue +12 -0
  107. package/src/components/xform/form-render/dynamicDialogRender.js +195 -1
  108. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  109. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  110. package/src/components/xform/form-render/refMixin.js +29 -1
  111. package/src/components/xform/mixins/scriptHttp.js +172 -1
  112. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  113. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  114. package/src/components/xform/utils/textMaskUtil.js +179 -0
  115. package/src/components/xform/utils/treeTableUtil.js +1265 -0
  116. package/src/components/xform/utils/util.js +1 -0
  117. package/src/components/xform/utils/validators.js +133 -1
  118. package/src/directive/LimitNumber/index.js +143 -124
  119. package/src/microRouter/index.js +447 -0
  120. package/src/mixins/tableTree/index.js +77 -14
  121. package/src/permission.js +132 -107
  122. package/src/public-path.js +38 -0
  123. package/src/router/index.js +3 -3
  124. package/src/store/modules/micro.js +57 -0
  125. package/src/store/modules/permission.js +535 -371
  126. package/src/store/modules/tagsView.js +38 -21
  127. package/src/store/modules/user.js +409 -370
  128. package/src/utils/aes.js +9 -3
  129. package/src/utils/auth.js +1 -1
  130. package/src/utils/componentDialog.js +162 -40
  131. package/src/utils/global.js +35 -34
  132. package/src/utils/index.js +579 -579
  133. package/src/utils/keepAlive.js +8 -4
  134. package/src/utils/lazyPlugin.js +66 -0
  135. package/src/utils/menuAdapter.js +277 -0
  136. package/src/utils/repeatOpen.js +48 -0
  137. package/src/utils/request.js +417 -395
  138. package/src/utils/resolveViewComponent.js +203 -0
  139. package/src/utils/vab.js +14 -3
  140. package/src/utils/validate.js +104 -106
  141. package/src/views/bd/setting/bd_attach_setting/dialog.vue +1 -1
  142. package/src/views/bd/setting/bd_attach_setting/list.vue +1 -1
  143. package/src/views/bd/setting/bd_company_env/dialog.vue +1 -1
  144. package/src/views/bd/setting/bd_company_env/list.vue +1 -1
  145. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +488 -489
  146. package/src/views/bd/setting/form_import_log/list.vue +1 -1
  147. package/src/views/bd/setting/form_script/dialog.vue +1 -1
  148. package/src/views/bd/setting/form_script/form_list.vue +174 -166
  149. package/src/views/bd/setting/form_script/list.vue +1 -1
  150. package/src/views/bd/setting/form_script/list1.vue +1 -1
  151. package/src/views/bd/setting/form_script/mixins/form_list.js +330 -322
  152. package/src/views/bd/setting/form_template/dialog.vue +1 -1
  153. package/src/views/bd/setting/form_template/formDesignerDialog.vue +172 -171
  154. package/src/views/bd/setting/form_template/ftHistoryDialog.vue +1 -1
  155. package/src/views/bd/setting/form_template/itemList.vue +1 -1
  156. package/src/views/bd/setting/form_template/list.vue +3 -3
  157. package/src/views/bd/setting/form_template/mixins/edit.js +3 -3
  158. package/src/views/bd/setting/form_template/mixins/list.js +3 -3
  159. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  160. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -3
  161. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  162. package/src/views/bd/setting/form_template/wf_list.vue +3 -3
  163. package/src/views/bd/setting/logic_param/edit.vue +20 -20
  164. package/src/views/bd/setting/logic_param/list.vue +1 -1
  165. package/src/views/bd/setting/menu_kind/dialog.vue +1 -1
  166. package/src/views/bd/setting/menu_kind/list.vue +1 -1
  167. package/src/views/bd/setting/push_data/list.vue +1 -1
  168. package/src/views/bd/setting/push_data_h/list.vue +1 -1
  169. package/src/views/bd/setting/request_async_setting/list.vue +1 -1
  170. package/src/views/bd/setting/request_setting/list.vue +1 -1
  171. package/src/views/bd/setting/table_model/dialog.vue +1 -1
  172. package/src/views/bd/setting/table_model/list.vue +1 -1
  173. package/src/views/bd/setting/table_model/zdDialog.vue +1 -1
  174. package/src/views/user/access_log/list.vue +1 -1
  175. package/src/views/user/access_log/list2.vue +1 -1
  176. package/src/views/user/api_request/list.vue +1 -1
  177. package/src/views/user/area/dialog.vue +1 -1
  178. package/src/views/user/area/list.vue +1 -1
  179. package/src/views/user/bill_setting/list.vue +1 -1
  180. package/src/views/user/bill_setting/userDialog.vue +1 -1
  181. package/src/views/user/code_rules/list.vue +1 -1
  182. package/src/views/user/commMenu/index.vue +2 -2
  183. package/src/views/user/common_attribute/list.vue +2 -2
  184. package/src/views/user/common_script/list.vue +1 -1
  185. package/src/views/user/company_info/dialog.vue +1 -1
  186. package/src/views/user/country/dialog.vue +1 -1
  187. package/src/views/user/country/list.vue +1 -1
  188. package/src/views/user/data_type_setting/dialog.vue +1 -1
  189. package/src/views/user/extend_datasource/dialog.vue +4 -1
  190. package/src/views/user/extend_datasource/edit.vue +2 -1
  191. package/src/views/user/extend_datasource/list.vue +4 -1
  192. package/src/views/user/fieldTranslation/list.vue +1 -1
  193. package/src/views/user/field_values_invisible/list.vue +1 -1
  194. package/src/views/user/file_type/list.vue +1 -1
  195. package/src/views/user/file_view_area/list.vue +1 -1
  196. package/src/views/user/file_view_ins/list.vue +22 -1
  197. package/src/views/user/form/view/list.vue +64 -1
  198. package/src/views/user/groups/dialog.vue +1 -1
  199. package/src/views/user/groups/list.vue +1 -1
  200. package/src/views/user/home/default.vue +2 -2
  201. package/src/views/user/home/default2.vue +1158 -1148
  202. package/src/views/user/home/index.vue +3 -10
  203. package/src/views/user/lang_tag/dialog.vue +1 -1
  204. package/src/views/user/lang_tag/list.vue +1 -1
  205. package/src/views/user/language_setting/list.vue +1 -1
  206. package/src/views/user/login/default.vue +0 -8
  207. package/src/views/user/login/indexMixin.js +547 -556
  208. package/src/views/user/menu/list.vue +25 -2
  209. package/src/views/user/menuFallback/index.vue +123 -0
  210. package/src/views/user/mobile_menu/list.vue +1 -1
  211. package/src/views/user/notify_message/dialog.vue +22 -1
  212. package/src/views/user/notify_message/list.vue +1 -1
  213. package/src/views/user/notify_template/list.vue +1 -1
  214. package/src/views/user/notify_template/list2.vue +1 -1
  215. package/src/views/user/oplog/list.vue +1 -1
  216. package/src/views/user/outLink/form_view.vue +5 -14
  217. package/src/views/user/outLink/index.vue +6 -1
  218. package/src/views/user/outLink/view.vue +5 -13
  219. package/src/views/user/position/dialog.vue +1 -1
  220. package/src/views/user/position/list.vue +1 -1
  221. package/src/views/user/project_tag/dialog.vue +1 -1
  222. package/src/views/user/project_tag/list.vue +1 -1
  223. package/src/views/user/push_setting/list.vue +1 -1
  224. package/src/views/user/request_setting/list.vue +1 -1
  225. package/src/views/user/role/dialog.vue +1 -1
  226. package/src/views/user/role/list.vue +1 -1
  227. package/src/views/user/sale_org/dialog.vue +1 -1
  228. package/src/views/user/sale_org/list.vue +1 -1
  229. package/src/views/user/system_notice/list.vue +1 -1
  230. package/src/views/user/system_parameter/list.vue +1 -1
  231. package/src/views/user/user/dialog.vue +1 -1
  232. package/src/views/user/user/edit.vue +306 -159
  233. package/src/views/user/user/form_dialog.vue +1 -1
  234. package/src/views/user/user/form_list.vue +1 -1
  235. package/src/views/user/user/list.vue +2 -2
  236. package/src/views/user/user_log_classify/list.vue +1 -1
  237. package/src/views/user/wf/iframe/index.vue +6 -1
  238. package/src/views/user/wf/iframe/index2.vue +6 -1
  239. package/src/views/user/wf/wfReport/index.vue +12 -6
  240. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -2
  241. package/src/views/user/wf/wf_manage/list.vue +97 -24
  242. package/src/views/user/wf/wf_manage/list2.vue +875 -0
  243. package/src/views/user/wf/wf_manage/wfContentDialog.vue +23 -1
  244. package/src/views/user/wf/wf_obj_config/dialog.vue +1 -1
  245. package/src/views/user/wf/wf_obj_config/list.vue +1 -1
  246. package/src/views/user/wf/wf_obj_config/list_form.vue +1 -1
  247. package/src/views/user/wf/wf_transfer_setting/list.vue +1 -1
  248. package/src/views/user/workbench_menu/list.vue +1 -1
package/src/permission.js CHANGED
@@ -13,123 +13,148 @@ import settingConfig from "@/settings";
13
13
 
14
14
  import {
15
15
  saveAccessMenuLog
16
- } from "./api/user";
17
- import indexUtil from "./utils/index.js"
18
-
19
- NProgress.configure({
20
- showSpinner: false,
21
- }); // NProgress Configuration
22
-
16
+ } from "./api/user";
17
+ import indexUtil from "./utils/index.js"
18
+
19
+ NProgress.configure({
20
+ showSpinner: false,
21
+ }); // NProgress Configuration
22
+
23
23
  const whiteList = [
24
- "/login",
25
- "/auth-redirect",
26
- "/report/vform/out_render",
24
+ "/login",
25
+ "/auth-redirect",
26
+ "/report/vform/out_render",
27
27
  "/report/xform/out_render",
28
28
  ]; // no redirect whitelist
29
29
 
30
+ // qiankun 保活:子应用容器被隐藏期间暂停一切路由响应(配合包入口 update 生命周期)
31
+ router.beforeEach((to, from, next) => {
32
+ if (store.state.micro && store.state.micro.routerPaused) {
33
+ next(false);
34
+ return;
35
+ }
36
+ next();
37
+ });
38
+
30
39
  router.beforeEach((to, from, next) => {
31
40
  // start progress bar
32
41
  NProgress.start();
33
-
34
- store.dispatch("user/initLoginConfig").then(() => {
35
- const hasToken = getToken();
36
-
37
- if (hasToken) {
38
- if (to.path === "/login") {
39
- // if is logged in, redirect to the home page
40
- next({
41
- path: "/",
42
- });
43
- NProgress.done(); // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
44
- } else {
45
- // determine whether the user has obtained his permission roles through getInfo
46
- const hasRoles =
47
- store.getters.roles &&
48
- store.getters.roles.length > 0;
49
- if (to.meta.checkToken === false || hasRoles) {
50
- next();
51
- } else {
52
- try {
53
- store
54
- .dispatch("user/getInfo2")
55
- .then((res) => {
56
- if (res && res.type == "success") {
57
- store
58
- .dispatch("permission/generateRoutes2", res.objx)
59
- .then((accessRoutes) => {
60
- // 根据roles权限生成可访问的路由表
61
- // router.addRoutes(accessRoutes); // 动态添加可访问路由表
62
- next({
63
- ...to,
64
- replace: true,
65
- }); // hack方法 确保addRoutes已完成
66
- });
67
- } else {
68
- store.dispatch("user/resetToken").then(() => {
69
- next("/login");
70
- NProgress.done();
71
- });
72
- }
73
- })
74
- .catch((error) => {
75
- store.dispatch("user/resetToken").then(() => {
76
- next("/login");
77
- NProgress.done();
78
- });
79
- });
80
- } catch (error) {
81
- // remove token and go to login page to re-login
82
- //await store.dispatch('user/resetToken')
83
- Message.error(error || "Has Error");
84
- next("/login");
85
- NProgress.done();
86
- }
87
- }
88
- }
89
- } else {
90
- /* has no token*/
91
- if (to.meta.checkToken === false) {
92
- next();
93
- } else if (whiteList.indexOf(to.path) !== -1) {
94
- // in the free login whitelist, go directly
95
- next();
96
- } else {
97
- // other pages that do not have permission to access are redirected to the login page.
98
- next("/login");
99
- NProgress.done();
100
- }
101
- }
102
- })
103
-
42
+
43
+ store.dispatch("user/initLoginConfig").then(() => {
44
+ const hasToken = getToken();
45
+
46
+ if (hasToken) {
47
+ if (to.path === "/login") {
48
+ // if is logged in, redirect to the home page
49
+ next({
50
+ path: "/",
51
+ });
52
+ NProgress.done(); // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
53
+ } else {
54
+ // determine whether the user has obtained his permission roles through getInfo
55
+ const hasRoles
56
+ = store.getters.roles
57
+ && store.getters.roles.length > 0;
58
+ if (to.meta.checkToken === false || hasRoles) {
59
+ next();
60
+ } else {
61
+ try {
62
+ store
63
+ .dispatch("user/getInfo2")
64
+ .then((res) => {
65
+ if (res && res.type == "success") {
66
+ // qiankun 子应用模式:菜单由主应用 props 下发,不自拉;
67
+ // 自治嵌入模式(selfManaged,主应用未下发菜单)仍走自拉全量菜单
68
+ let microState = store.state.micro || {};
69
+ let generateAction = microState.isMicro && !microState.selfManaged
70
+ ? store.dispatch("permission/generateRoutesFromProps", microState.menus || [])
71
+ : store.dispatch("permission/generateRoutes2", res.objx);
72
+ generateAction
73
+ .then((accessRoutes) => {
74
+ // 根据roles权限生成可访问的路由表
75
+ // router.addRoutes(accessRoutes); // 动态添加可访问路由表
76
+ next({
77
+ ...to,
78
+ replace: true,
79
+ }); // hack方法 确保addRoutes已完成
80
+ });
81
+ } else {
82
+ store.dispatch("user/resetToken").then(() => {
83
+ next("/login");
84
+ NProgress.done();
85
+ });
86
+ }
87
+ })
88
+ .catch((error) => {
89
+ store.dispatch("user/resetToken").then(() => {
90
+ next("/login");
91
+ NProgress.done();
92
+ });
93
+ });
94
+ } catch (error) {
95
+ // remove token and go to login page to re-login
96
+ //await store.dispatch('user/resetToken')
97
+ Message.error(error || "Has Error");
98
+ next("/login");
99
+ NProgress.done();
100
+ }
101
+ }
102
+ }
103
+ } else {
104
+ /* has no token*/
105
+ if (to.meta.checkToken === false) {
106
+ next();
107
+ } else if (whiteList.indexOf(to.path) !== -1) {
108
+ // in the free login whitelist, go directly
109
+ next();
110
+ } else {
111
+ // other pages that do not have permission to access are redirected to the login page.
112
+ next("/login");
113
+ NProgress.done();
114
+ }
115
+ }
116
+ })
117
+
104
118
 
105
119
  });
106
120
 
107
121
  router.onError((error) => {
108
122
  // finish progress bar
109
123
  console.error(error);
110
- NProgress.done();
111
- });
112
-
113
- router.afterEach((to, from, next) => {
114
- if (settingConfig.i18nEnabled === true && to.path !== "/login" && to.meta.checkToken !== false) {
115
- indexUtil.initI18nMessage("business");
116
- }
117
- if (settingConfig.accessLogEnabled === true && to.meta.title && to.name !== 'home') {
118
- let visitedViews = store.getters.visitedViews;
119
- let item = visitedViews.find(visitedView => visitedView.fullPath == to.fullPath)
120
- if (!item) {
121
- let treePathName = to.meta.treePathName || "";
122
- let content = treePathName ?
123
- treePathName + to.meta.title + "," :
124
- to.meta.title;
125
- saveAccessMenuLog({
126
- data: {
127
- businessCode: content,
128
- content: content,
129
- path: to.path
130
- },
131
- });
132
- }
133
- }
134
- NProgress.done();
135
- });
124
+ NProgress.done();
125
+ });
126
+
127
+ router.afterEach((to, from, next) => {
128
+ // qiankun 子应用模式:页签壳被隐藏,没有 TagsView 组件维护 cachedViews,这里补 addView,
129
+ // 否则 BaseKeepAlive 的 include 恒为空,子应用内部页面切换全部重建(切页签必刷新)。
130
+ // 自治嵌入模式壳可见,TagsView 自己维护,无需补
131
+ if (
132
+ store.state.micro
133
+ && store.state.micro.isMicro
134
+ && !store.state.micro.selfManaged
135
+ && to.name
136
+ ) {
137
+ store.dispatch("tagsView/addView", to);
138
+ }
139
+ if (settingConfig.i18nEnabled === true && to.path !== "/login" && to.meta.checkToken !== false) {
140
+ indexUtil.initI18nMessage("business");
141
+ }
142
+ if (settingConfig.accessLogEnabled === true && to.meta.title && to.name !== 'home') {
143
+ let visitedViews = store.getters.visitedViews;
144
+ let item = visitedViews.find(visitedView => visitedView.fullPath == to.fullPath)
145
+ if (!item) {
146
+ let treePathName = to.meta.treePathName || "";
147
+ let content = treePathName
148
+ ? treePathName + to.meta.title + ","
149
+ : to.meta.title;
150
+ saveAccessMenuLog({
151
+ data: {
152
+ businessCode: content,
153
+ content: content,
154
+ path: to.path
155
+ },
156
+ });
157
+ }
158
+ }
159
+ NProgress.done();
160
+ });
@@ -0,0 +1,38 @@
1
+ /* eslint-disable camelcase, no-undef */
2
+ /**
3
+ * qiankun 子应用模式下修正 webpack 运行时 publicPath,
4
+ * 必须在入口文件的第一行 import,早于其余任何模块。
5
+ */
6
+ if (window.__POWERED_BY_QIANKUN__) {
7
+ __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
8
+ }
9
+
10
+ /**
11
+ * API base 运行时解析:解决"被外部域名的主应用嵌入时,相对 baseURL 会误打主应用域名"。
12
+ * 消费应用的 vue.config.js 经 DefinePlugin 把每个 process.env.VUE_APP_BASE_API 编译成
13
+ * window.__resolveApiBase__("<原值>") 的调用,于是 request.js 及一切读该值的模块运行时按下述规则求值:
14
+ * 独立运行 → 原值(相对地址命中自身域名,行为不变)
15
+ * 子应用挂载:
16
+ * 原值是域名(绝对) → 原值(含协议相对 //host)
17
+ * 原值不是域名 → 子应用自身 origin + 原值("" → origin;"/gapi" → origin+"/gapi")
18
+ * 前提:API 与子应用静态资源同源部署(origin 即后端所在域名,路径前缀由原值补齐)。
19
+ * 该 helper 只接受调用点传入的原值作参数、绝不引用 process.env.VUE_APP_BASE_API,
20
+ * 以免被 DefinePlugin 递归改写成自我调用。
21
+ */
22
+ if (!window.__resolveApiBase__) {
23
+ window.__resolveApiBase__ = function (raw) {
24
+ raw = raw || "";
25
+ if (!window.__POWERED_BY_QIANKUN__) return raw;
26
+ // http:// https:// 以及协议相对 //host 都算"是域名",原样返回
27
+ if (/^(https?:)?\/\//.test(raw)) return raw;
28
+ try {
29
+ var origin = new URL(
30
+ window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__,
31
+ window.location.href
32
+ ).origin;
33
+ return origin + raw;
34
+ } catch (e) {
35
+ return raw;
36
+ }
37
+ };
38
+ }
@@ -3,8 +3,8 @@ import Router from "vue-router";
3
3
 
4
4
  Vue.use(Router);
5
5
 
6
- import {constantRoutes as route1s} from "@base/router/modules/system";
7
- import {constantRoutes as route2s} from "@/router/modules/customer";
6
+ import { constantRoutes as route1s } from "@base/router/modules/system";
7
+ import { constantRoutes as route2s } from "@/router/modules/customer";
8
8
 
9
9
  export const constantRoutes = [...route1s, ...route2s];
10
10
 
@@ -14,7 +14,7 @@ const createRouter = () =>
14
14
  scrollBehavior: () => ({
15
15
  y: 0,
16
16
  }),
17
- routes: constantRoutes
17
+ routes: constantRoutes,
18
18
  });
19
19
 
20
20
  const router = createRouter();
@@ -0,0 +1,57 @@
1
+ /**
2
+ * qiankun 微前端运行态。
3
+ * 子应用模式下(window.__POWERED_BY_QIANKUN__)由主应用经 props 注入,
4
+ * 见 src/index.js 的 mount 生命周期;独立运行时保持初始值。
5
+ */
6
+ const state = {
7
+ isMicro: false,
8
+ appCode: "",
9
+ // 主应用下发的菜单快照。首次挂载时权限守卫会在用户信息加载完成后读取该值生成路由,
10
+ // 因此不能只用它计算 selfManaged 而不持久化
11
+ menus: null,
12
+ // 主应用回调(openTab / closeTab / navigate):包内不消费,供子应用业务代码
13
+ // (表单脚本跳主应用路由)读取,不得直接摸主应用 router
14
+ mainAdapter: null,
15
+ // 自治嵌入模式:主应用未下发菜单(props.menus 非数组)时置 true,
16
+ // 子应用自拉菜单、保留自身侧边栏/页签壳,整站运行在容器内(含登录页)
17
+ selfManaged: false,
18
+ // 保活隐藏期间置 true:路由守卫直接 next(false),防止隐藏的子应用响应主应用的 URL 变化
19
+ routerPaused: false,
20
+ // 主应用经本地调试覆盖装载本应用时为 true:启用"URL 直达未配菜单页面"的兜底路由。
21
+ // 正式注册表装载时为 false——菜单即权限边界,不能让任意路径都能打开组件
22
+ debug: false,
23
+ // 主应用页签"刷新"下发 update({microRefresh}) 时自增,AppMain 据此原地重建当前页组件
24
+ reloadSeq: 0,
25
+ };
26
+
27
+ const mutations = {
28
+ SET_MICRO_CONTEXT: (state, payload = {}) => {
29
+ state.isMicro = true;
30
+ state.appCode = payload.appCode || state.appCode;
31
+ state.menus = Array.isArray(payload.menus) ? payload.menus : null;
32
+ state.selfManaged = !Array.isArray(payload.menus);
33
+ state.mainAdapter = payload.mainAdapter || null;
34
+ state.debug = !!payload.debug;
35
+ },
36
+ BUMP_RELOAD_SEQ: (state) => {
37
+ state.reloadSeq = state.reloadSeq + 1;
38
+ },
39
+ SET_ROUTER_PAUSED: (state, paused) => {
40
+ state.routerPaused = !!paused;
41
+ },
42
+ CLEAR_MICRO_CONTEXT: (state) => {
43
+ state.isMicro = false;
44
+ state.appCode = "";
45
+ state.menus = null;
46
+ state.mainAdapter = null;
47
+ state.selfManaged = false;
48
+ state.routerPaused = false;
49
+ state.debug = false;
50
+ },
51
+ };
52
+
53
+ export default {
54
+ namespaced: true,
55
+ state,
56
+ mutations,
57
+ };