cloud-web-corejs 1.0.54-dev.745 → 1.0.54-dev.747

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 (52) hide show
  1. package/package.json +194 -192
  2. package/src/App.vue +73 -71
  3. package/src/components/baseArea/index.vue +1628 -1628
  4. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  5. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -297
  6. package/src/components/fileLibrary/index.vue +1109 -1109
  7. package/src/components/fileLibrary/propertiesDialog.vue +190 -190
  8. package/src/components/fileLibrary/recycleBinDialog.vue +237 -237
  9. package/src/components/wf/mixins/setCandidateDialog.js +217 -217
  10. package/src/components/wf/mixins/setCandidateDialog2.js +252 -252
  11. 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 -986
  12. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -272
  13. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +216 -216
  14. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +928 -928
  15. package/src/components/xform/form-designer/index.vue +195 -195
  16. package/src/components/xform/form-designer/indexMixin.js +848 -848
  17. package/src/components/xform/form-designer/setting-panel/index.vue +313 -313
  18. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +124 -124
  19. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +369 -369
  20. package/src/components/xform/form-designer/widget-panel/index.vue +389 -389
  21. package/src/components/xform/form-designer/widget-panel/indexMixin.js +343 -343
  22. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4531 -4531
  23. package/src/components/xform/form-render/container-item/data-table-mixin.js +4748 -4576
  24. package/src/components/xform/form-render/container-item/tab-item.vue +125 -125
  25. package/src/components/xform/form-render/indexMixin.js +5061 -5078
  26. package/src/components/xform/lang/en-US.js +457 -457
  27. package/src/components/xform/lang/zh-CN.js +628 -628
  28. package/src/components/xform/utils/util.js +1585 -1554
  29. package/src/index.js +347 -230
  30. package/src/layout/components/AppMain.vue +122 -125
  31. package/src/layout/components/extractedCode/viewDialog.vue +207 -207
  32. package/src/layout/components/langTool.vue +128 -123
  33. package/src/layout/defaultLayout.vue +164 -158
  34. package/src/microRouter/index.js +389 -0
  35. package/src/permission.js +185 -135
  36. package/src/public-path.js +8 -0
  37. package/src/store/config/index.js +667 -669
  38. package/src/store/modules/micro.js +46 -0
  39. package/src/store/modules/permission.js +468 -373
  40. package/src/store/modules/user.js +419 -415
  41. package/src/utils/auth.js +27 -1
  42. package/src/utils/index.js +579 -6
  43. package/src/utils/keepAlive.js +4 -0
  44. package/src/utils/menuAdapter.js +183 -0
  45. package/src/utils/request.js +417 -28
  46. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +483 -483
  47. package/src/views/bd/setting/form_script/form_list.vue +174 -174
  48. package/src/views/bd/setting/form_script/mixins/form_list.js +330 -330
  49. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -171
  50. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -253
  51. package/src/views/user/menuFallback/index.vue +123 -0
  52. package/src/views/user/wf/wfReport/index.vue +625 -625
package/src/index.js CHANGED
@@ -1,230 +1,347 @@
1
- /**version-1.0*/
2
- import Vue from "vue";
3
- import Cookies from "js-cookie";
4
- import "normalize.css/normalize.css"; // a modern alternative to CSS resets
5
- import Element from "element-ui";
6
- import "@/styles/element-variables.scss";
7
- import "@/styles/index.scss"; // global css
8
-
9
- import App from "@base/App";
10
- import store from "@base/store";
11
- import router from "@base/router";
12
-
13
- import "@/icons"; // icon
14
- import "@base/permission"; // permission control
15
-
16
- import * as filters from "@base/filters"; // global filters
17
-
18
- // main.js 文件添加以下代码
19
-
20
- import BaseKeepAlive from "@base/utils/keepAlive.js";
21
-
22
- Vue.component("BaseKeepAlive", BaseKeepAlive);
23
-
24
- import VXETable from "vxe-table";
25
- import "vxe-table/lib/style.css";
26
-
27
- // 引入扩展插件
28
- import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js";
29
- import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css";
30
-
31
- /* // 设置授权信息
32
- VXETable.setup({
33
- // showAuthLog: true, // 是否在控制台显示授权信息,专业版支持关闭
34
- // authId: 'gbeumewkoyt2rhf9', // 获取授权后在官网登录后进入“用户中心”查看
35
- authId: 'gbeumewkoyt2rhft', // 获取授权后在官网登录后进入“用户中心”查看
36
- // onAuth (e) {
37
- // // 打印授权状态
38
- // console.log(e)
39
- // }
40
- }) */
41
-
42
- import Vab from "@base/utils/vab";
43
-
44
- Vue.use(Vab);
45
-
46
- Vue.use(VXETable);
47
-
48
- /* import tablePluns from "@/mixins/table/index.js"
49
- VXETable.use(tablePluns) */
50
-
51
- import "@base/components/table/index.js";
52
-
53
- import drag from "@base/directive/el-drag-dialog/index.js";
54
-
55
- Vue.use(drag.install);
56
-
57
- import elDialogCenter from "@base/directive/el-dialog-center/index.js";
58
-
59
- Vue.use(elDialogCenter.install);
60
-
61
- import ErroreBox from "@base/components/errorMsg/index.js";
62
-
63
- Vue.use(ErroreBox);
64
-
65
- import ExcelExport from "@base/components/excelExport/index.js";
66
-
67
- Vue.use(ExcelExport);
68
-
69
- import ExcelImport from "@base/components/excelImport/index.js";
70
-
71
- Vue.use(ExcelImport);
72
-
73
- import ConfirmDialog from "@base/components/confirmDialog/index.js";
74
-
75
- Vue.use(ConfirmDialog);
76
-
77
- import baseAlert from "@base/components/baseAlert/index.js";
78
-
79
- Vue.use(baseAlert);
80
-
81
- import permission from "@base/directive/permission";
82
-
83
- Vue.use(permission);
84
-
85
- import VabUpload from "@base/components/VabUpload/index.js";
86
-
87
- Vue.use(VabUpload);
88
-
89
- Vue.component("baseUpload", () =>
90
- import("@base/components/VabUpload/view.vue")
91
- );
92
-
93
- import baseAttachment from "@base/components/baseAttachment/install";
94
-
95
- Vue.use(baseAttachment);
96
- Vue.component("attachmentShowList", () =>
97
- import("@base/components/baseAttachment/showList")
98
- );
99
-
100
- import "@base/resources/js/base/common.js";
101
-
102
- import vxeFilter from "@base/components/table/vxeFilter/index.js";
103
-
104
- Vue.use(vxeFilter);
105
-
106
- import baseTableExport from "@base/components/excelExport/button.vue";
107
-
108
- Vue.component(baseTableExport.name, baseTableExport);
109
-
110
- /* Vue.component('extendedProperties', () => import('@base/components/extendedProperties/view.vue')); */
111
-
112
- import LimitNumber from "@base/directive/LimitNumber/index.js";
113
-
114
- Vue.use(LimitNumber);
115
-
116
- import baseInputNumber from "@base/components/baseInputNumber/index.vue";
117
-
118
- Vue.component(baseInputNumber.name, baseInputNumber);
119
-
120
- import elReadonly from "@base/directive/el-readonly/index.js";
121
-
122
- Vue.use(elReadonly);
123
-
124
- /*import cnPrint from "@base/components/cnPrint/index.js"
125
-
126
- Vue.use(cnPrint);*/
127
-
128
- /* Vue.component('oplogTable', () => import('@base/components/oplogTable/index.vue')); */
129
- import oplogTable from "@base/components/oplogTable/index.vue";
130
-
131
- Vue.component(oplogTable.name, oplogTable);
132
-
133
- import baseInputBatch from "@base/components/baseInputBatch/index.vue";
134
-
135
- Vue.component(baseInputBatch.name, baseInputBatch);
136
-
137
- import baseArea from "@base/components/baseArea/index.vue";
138
-
139
- Vue.component(baseArea.name, baseArea);
140
-
141
- Vue.component("baseInputExport", () =>
142
- import("@base/components/baseInputExport/index.vue")
143
- );
144
-
145
- Vue.component("advancedSearchDialog", () =>
146
- import("@base/components/advancedSearchDialog/index.vue")
147
- );
148
-
149
- import baseTabs from "@base/components/baseTabs/index.vue";
150
-
151
- Vue.component(baseTabs.name, baseTabs);
152
-
153
- import baseTabPane from "@base/components/baseTabs/baseTabPane.vue";
154
-
155
- Vue.component(baseTabPane.name, baseTabPane);
156
-
157
- import vb_tabs from "@base/components/vb-tabs/index.vue";
158
- import vb_tab_pane from "@base/components/vb-tabs/tab-pane.vue";
159
- import xTabs from "@base/components/vb-tabs/x-tabs.vue";
160
-
161
- Vue.component(vb_tabs.name, vb_tabs);
162
- Vue.component(vb_tab_pane.name, vb_tab_pane);
163
- Vue.component(xTabs.name, xTabs);
164
-
165
- Vue.component("status-tag", () =>
166
- import("@base/components/statusTag/index.vue")
167
- );
168
-
169
- Vue.component("CodeEditor", () =>
170
- import("@base/components/code-editor/index.vue")
171
- );
172
-
173
- Vue.component("scriptDescriptionButton", () =>
174
- import("@base/components/scriptDescription/button")
175
- );
176
-
177
- Vue.component("scriptTestButton", () =>
178
- import("@base/components/scriptTest/button")
179
- );
180
-
181
- import baseTextarea from "@base/components/base-textarea/index.vue";
182
-
183
- Vue.component(baseTextarea.name, baseTextarea);
184
-
185
- import jsonImport from "@base/components/jsonImport/index.js";
186
-
187
- Vue.use(jsonImport);
188
-
189
- import langImport from "@base/components/langImport/index.js";
190
-
191
- Vue.use(langImport);
192
-
193
- //vform
194
- // import '@base/components/xform/utils/directive'
195
-
196
- import i18n from "@base/lang/index.js";
197
-
198
- /**
199
- * If you don't want to use mock-server
200
- * you want to use MockJs for mock api
201
- * you can execute: mockXHR()
202
- *
203
- * Currently MockJs will be used in the production environment,
204
- * please remove it before going online ! ! !
205
- */
206
- if (process.env.NODE_ENV === "production") {
207
- /* const { mockXHR } = require('../mock')
208
- mockXHR() */
209
- }
210
-
211
- Vue.use(Element, {
212
- size: Cookies.get("size") || "medium", // set element-ui default size
213
- // locale: enLang // 如果使用中文,无需设置,请删除
214
- });
215
-
216
- // register global utility filters
217
- Object.keys(filters).forEach((key) => {
218
- Vue.filter(key, filters[key]);
219
- });
220
-
221
- Vue.config.productionTip = false;
222
-
223
- let vue = new Vue({
224
- el: "#app",
225
- router,
226
- store,
227
- i18n,
228
- render: (h) => h(App),
229
- });
230
- window.$vueRoot = vue;
1
+ /**version-1.0*/
2
+ import "./public-path"; // qiankun publicPath 修正,必须保持第一行
3
+ import Vue from "vue";
4
+ import Cookies from "js-cookie";
5
+ import "normalize.css/normalize.css"; // a modern alternative to CSS resets
6
+ import Element from "element-ui";
7
+ import "@/styles/element-variables.scss";
8
+ import "@/styles/index.scss"; // global css
9
+
10
+ import App from "@base/App";
11
+ import store from "@base/store";
12
+ import router, { resetRouter } from "@base/router";
13
+ import settings from "@/settings";
14
+ import { setToken as setAuthToken } from "@base/utils/auth";
15
+
16
+ import "@/icons"; // icon
17
+ import "@base/permission"; // permission control
18
+
19
+ import * as filters from "@base/filters"; // global filters
20
+
21
+ // main.js 文件添加以下代码
22
+
23
+ import BaseKeepAlive from "@base/utils/keepAlive.js";
24
+
25
+ Vue.component("BaseKeepAlive", BaseKeepAlive);
26
+
27
+ import VXETable from "vxe-table";
28
+ import "vxe-table/lib/style.css";
29
+
30
+ // 引入扩展插件
31
+ import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js";
32
+ import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css";
33
+
34
+ /* // 设置授权信息
35
+ VXETable.setup({
36
+ // showAuthLog: true, // 是否在控制台显示授权信息,专业版支持关闭
37
+ // authId: 'gbeumewkoyt2rhf9', // 获取授权后在官网登录后进入“用户中心”查看
38
+ authId: 'gbeumewkoyt2rhft', // 获取授权后在官网登录后进入“用户中心”查看
39
+ // onAuth (e) {
40
+ // // 打印授权状态
41
+ // console.log(e)
42
+ // }
43
+ }) */
44
+
45
+ import Vab from "@base/utils/vab";
46
+
47
+ Vue.use(Vab);
48
+
49
+ Vue.use(VXETable);
50
+
51
+ /* import tablePluns from "@/mixins/table/index.js"
52
+ VXETable.use(tablePluns) */
53
+
54
+ import "@base/components/table/index.js";
55
+
56
+ import drag from "@base/directive/el-drag-dialog/index.js";
57
+
58
+ Vue.use(drag.install);
59
+
60
+ import elDialogCenter from "@base/directive/el-dialog-center/index.js";
61
+
62
+ Vue.use(elDialogCenter.install);
63
+
64
+ import ErroreBox from "@base/components/errorMsg/index.js";
65
+
66
+ Vue.use(ErroreBox);
67
+
68
+ import ExcelExport from "@base/components/excelExport/index.js";
69
+
70
+ Vue.use(ExcelExport);
71
+
72
+ import ExcelImport from "@base/components/excelImport/index.js";
73
+
74
+ Vue.use(ExcelImport);
75
+
76
+ import ConfirmDialog from "@base/components/confirmDialog/index.js";
77
+
78
+ Vue.use(ConfirmDialog);
79
+
80
+ import baseAlert from "@base/components/baseAlert/index.js";
81
+
82
+ Vue.use(baseAlert);
83
+
84
+ import permission from "@base/directive/permission";
85
+
86
+ Vue.use(permission);
87
+
88
+ import VabUpload from "@base/components/VabUpload/index.js";
89
+
90
+ Vue.use(VabUpload);
91
+
92
+ Vue.component("baseUpload", () =>
93
+ import("@base/components/VabUpload/view.vue")
94
+ );
95
+
96
+ import baseAttachment from "@base/components/baseAttachment/install";
97
+
98
+ Vue.use(baseAttachment);
99
+ Vue.component("attachmentShowList", () =>
100
+ import("@base/components/baseAttachment/showList")
101
+ );
102
+
103
+ import "@base/resources/js/base/common.js";
104
+
105
+ import vxeFilter from "@base/components/table/vxeFilter/index.js";
106
+
107
+ Vue.use(vxeFilter);
108
+
109
+ import baseTableExport from "@base/components/excelExport/button.vue";
110
+
111
+ Vue.component(baseTableExport.name, baseTableExport);
112
+
113
+ /* Vue.component('extendedProperties', () => import('@base/components/extendedProperties/view.vue')); */
114
+
115
+ import LimitNumber from "@base/directive/LimitNumber/index.js";
116
+
117
+ Vue.use(LimitNumber);
118
+
119
+ import baseInputNumber from "@base/components/baseInputNumber/index.vue";
120
+
121
+ Vue.component(baseInputNumber.name, baseInputNumber);
122
+
123
+ import elReadonly from "@base/directive/el-readonly/index.js";
124
+
125
+ Vue.use(elReadonly);
126
+
127
+ /*import cnPrint from "@base/components/cnPrint/index.js"
128
+
129
+ Vue.use(cnPrint);*/
130
+
131
+ /* Vue.component('oplogTable', () => import('@base/components/oplogTable/index.vue')); */
132
+ import oplogTable from "@base/components/oplogTable/index.vue";
133
+
134
+ Vue.component(oplogTable.name, oplogTable);
135
+
136
+ import baseInputBatch from "@base/components/baseInputBatch/index.vue";
137
+
138
+ Vue.component(baseInputBatch.name, baseInputBatch);
139
+
140
+ import baseArea from "@base/components/baseArea/index.vue";
141
+
142
+ Vue.component(baseArea.name, baseArea);
143
+
144
+ Vue.component("baseInputExport", () =>
145
+ import("@base/components/baseInputExport/index.vue")
146
+ );
147
+
148
+ Vue.component("advancedSearchDialog", () =>
149
+ import("@base/components/advancedSearchDialog/index.vue")
150
+ );
151
+
152
+ import baseTabs from "@base/components/baseTabs/index.vue";
153
+
154
+ Vue.component(baseTabs.name, baseTabs);
155
+
156
+ import baseTabPane from "@base/components/baseTabs/baseTabPane.vue";
157
+
158
+ Vue.component(baseTabPane.name, baseTabPane);
159
+
160
+ import vb_tabs from "@base/components/vb-tabs/index.vue";
161
+ import vb_tab_pane from "@base/components/vb-tabs/tab-pane.vue";
162
+ import xTabs from "@base/components/vb-tabs/x-tabs.vue";
163
+
164
+ Vue.component(vb_tabs.name, vb_tabs);
165
+ Vue.component(vb_tab_pane.name, vb_tab_pane);
166
+ Vue.component(xTabs.name, xTabs);
167
+
168
+ Vue.component("status-tag", () =>
169
+ import("@base/components/statusTag/index.vue")
170
+ );
171
+
172
+ Vue.component("CodeEditor", () =>
173
+ import("@base/components/code-editor/index.vue")
174
+ );
175
+
176
+ Vue.component("scriptDescriptionButton", () =>
177
+ import("@base/components/scriptDescription/button")
178
+ );
179
+
180
+ Vue.component("scriptTestButton", () =>
181
+ import("@base/components/scriptTest/button")
182
+ );
183
+
184
+ import baseTextarea from "@base/components/base-textarea/index.vue";
185
+
186
+ Vue.component(baseTextarea.name, baseTextarea);
187
+
188
+ import jsonImport from "@base/components/jsonImport/index.js";
189
+
190
+ Vue.use(jsonImport);
191
+
192
+ import langImport from "@base/components/langImport/index.js";
193
+
194
+ Vue.use(langImport);
195
+
196
+ //vform
197
+ // import '@base/components/xform/utils/directive'
198
+
199
+ import i18n from "@base/lang/index.js";
200
+
201
+ /**
202
+ * If you don't want to use mock-server
203
+ * you want to use MockJs for mock api
204
+ * you can execute: mockXHR()
205
+ *
206
+ * Currently MockJs will be used in the production environment,
207
+ * please remove it before going online ! ! !
208
+ */
209
+ if (process.env.NODE_ENV === "production") {
210
+ /* const { mockXHR } = require('../mock')
211
+ mockXHR() */
212
+ }
213
+
214
+ Vue.use(Element, {
215
+ size: Cookies.get("size") || "medium", // set element-ui default size
216
+ // locale: enLang // 如果使用中文,无需设置,请删除
217
+ });
218
+
219
+ // register global utility filters
220
+ Object.keys(filters).forEach((key) => {
221
+ Vue.filter(key, filters[key]);
222
+ });
223
+
224
+ Vue.config.productionTip = false;
225
+
226
+ let instance = null;
227
+
228
+ function render(props = {}) {
229
+ const { container } = props;
230
+ instance = new Vue({
231
+ router,
232
+ store,
233
+ i18n,
234
+ render: (h) => h(App),
235
+ }).$mount(container ? container.querySelector("#app") : "#app");
236
+ window.$vueRoot = instance;
237
+ }
238
+
239
+ if (!window.__POWERED_BY_QIANKUN__) {
240
+ // 独立运行 / 主应用形态:行为与拆分前一致
241
+ render();
242
+ }
243
+
244
+ /**
245
+ * qiankun 子应用生命周期。
246
+ * 引包子应用入口 re-export 即可:export * from "cloud-web-corejs/src/index";
247
+ * 主子通信协议见 docs/qiankun微前端改造-实现方案.md 3.3。
248
+ */
249
+ export async function bootstrap() {}
250
+
251
+ export async function mount(props = {}) {
252
+ if (props.appCode) {
253
+ // 主应用可经 props 覆盖,子应用也可在自身 settings.js 里声明
254
+ settings.appCode = props.appCode;
255
+ }
256
+ if (props.token) {
257
+ // token 存 sessionStorage,按 origin 隔离——跨域/跨端口主应用的登录态子应用天然拿不到,
258
+ // 主应用显式下发 token 即可免登(写入自身登录态后守卫按已登录走 getInfo2)
259
+ setAuthToken(props.token);
260
+ store.commit("user/SET_TOKEN", props.token);
261
+ }
262
+ store.commit("micro/SET_MICRO_CONTEXT", {
263
+ appCode: props.appCode || settings.appCode,
264
+ // 非数组(null/未传)= 自治嵌入模式:子应用自拉菜单、保留自身壳(micro store 据此置 selfManaged)
265
+ menus: Array.isArray(props.menus) ? props.menus : null,
266
+ mainAdapter: props.mainAdapter || null,
267
+ lang: props.lang || "",
268
+ });
269
+ // 再次挂载时 unmount 已重置路由,而 roles 仍在会使守卫跳过路由生成,这里主动补一次
270
+ if (store.getters.roles && store.getters.roles.length > 0) {
271
+ if (store.state.micro.selfManaged) {
272
+ await store.dispatch("permission/generateRoutes2", {
273
+ flag: store.state.user.userFlag,
274
+ });
275
+ } else {
276
+ await store.dispatch(
277
+ "permission/generateRoutesFromProps",
278
+ props.menus || []
279
+ );
280
+ }
281
+ }
282
+ render(props);
283
+ }
284
+
285
+ /**
286
+ * 保活协议(主应用 loadMicroApp 模式):
287
+ * update({ microActive: false }) —— 容器被隐藏:暂停路由监听(守卫 next(false) +
288
+ * ensureURL 置空,防止对主应用的 URL 变化做出反应、回写 URL 互相打架);
289
+ * update({ microActive: true }) —— 容器重新显示:恢复监听并把当前 hash 同步进路由
290
+ * (含主应用在隐藏期间切到本应用另一菜单的深导航场景)。
291
+ */
292
+ let pausedEnsureURL = null;
293
+
294
+ function pauseSubRouter() {
295
+ if (store.state.micro.routerPaused) return;
296
+ store.commit("micro/SET_ROUTER_PAUSED", true);
297
+ const history = router.history;
298
+ if (history && typeof history.ensureURL === "function") {
299
+ pausedEnsureURL = history.ensureURL;
300
+ history.ensureURL = function () {};
301
+ }
302
+ }
303
+
304
+ function resumeSubRouter() {
305
+ if (store.state.micro.routerPaused) {
306
+ store.commit("micro/SET_ROUTER_PAUSED", false);
307
+ if (pausedEnsureURL) {
308
+ router.history.ensureURL = pausedEnsureURL;
309
+ pausedEnsureURL = null;
310
+ }
311
+ }
312
+ syncSubRouter();
313
+ }
314
+
315
+ function syncSubRouter() {
316
+ const current = window.location.hash.replace(/^#/, "") || "/";
317
+ if (router.currentRoute.fullPath !== current) {
318
+ router.push(current).catch(() => {});
319
+ }
320
+ }
321
+
322
+ export async function update(props = {}) {
323
+ if (props.microActive === false) {
324
+ pauseSubRouter();
325
+ } else if (props.microActive === true) {
326
+ resumeSubRouter();
327
+ }
328
+ }
329
+
330
+ export async function unmount() {
331
+ if (store.state.micro.routerPaused && pausedEnsureURL) {
332
+ router.history.ensureURL = pausedEnsureURL;
333
+ pausedEnsureURL = null;
334
+ }
335
+ if (instance) {
336
+ instance.$destroy();
337
+ if (instance.$el) {
338
+ instance.$el.innerHTML = "";
339
+ }
340
+ instance = null;
341
+ }
342
+ if (window.$vueRoot) {
343
+ window.$vueRoot = null;
344
+ }
345
+ store.commit("micro/CLEAR_MICRO_CONTEXT");
346
+ resetRouter();
347
+ }