cloud-web-corejs 1.0.54-dev.768 → 1.0.54-dev.770
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.
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloud-web-corejs",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.54-dev.
|
|
4
|
+
"version": "1.0.54-dev.770",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vue-cli-service serve",
|
|
7
7
|
"lint": "eslint --ext .js,.vue src",
|
|
@@ -170,6 +170,7 @@
|
|
|
170
170
|
"src/components/langTag",
|
|
171
171
|
"src/components/formDialog",
|
|
172
172
|
"src/api",
|
|
173
|
+
"src/bootstrap",
|
|
173
174
|
"src/views/bd",
|
|
174
175
|
"src/views/support",
|
|
175
176
|
"src/views/user",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
let installPromise = null;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 登录页只安装认证所需的最小能力。表格、Excel、上传和业务弹框等全局能力
|
|
5
|
+
* 在第一次进入业务路由前按需安装,避免进入 /login 时下载整套后台模块。
|
|
6
|
+
*/
|
|
7
|
+
export function ensureBusinessFeatures() {
|
|
8
|
+
if (!installPromise) {
|
|
9
|
+
installPromise = import(
|
|
10
|
+
/* webpackChunkName: "business-core" */ "./businessFeatures"
|
|
11
|
+
).catch((error) => {
|
|
12
|
+
// 网络抖动或发布切换导致 chunk 失败时,允许下一次导航重新尝试
|
|
13
|
+
installPromise = null;
|
|
14
|
+
throw error;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return installPromise;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 提前触发业务模块下载和安装,但不阻塞当前交互。
|
|
22
|
+
* 登录提交后会与认证、用户信息和菜单请求并行;真正进入业务路由时
|
|
23
|
+
* ensureBusinessFeatures 会复用同一个 Promise,失败时仍由路由守卫统一提示。
|
|
24
|
+
*/
|
|
25
|
+
export function preloadBusinessFeatures() {
|
|
26
|
+
const promise = ensureBusinessFeatures();
|
|
27
|
+
promise.catch((error) => {
|
|
28
|
+
console.warn("[bootstrap] 业务模块预加载失败,将在导航时重试", error);
|
|
29
|
+
});
|
|
30
|
+
return promise;
|
|
31
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import Vue from "vue";
|
|
2
|
+
import Cookies from "js-cookie";
|
|
3
|
+
import Element from "element-ui";
|
|
4
|
+
|
|
5
|
+
import BaseKeepAlive from "@base/utils/keepAlive.js";
|
|
6
|
+
import VXETable from "vxe-table";
|
|
7
|
+
import "vxe-table/lib/style.css";
|
|
8
|
+
import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js";
|
|
9
|
+
import "@base/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css";
|
|
10
|
+
import "@base/components/table/index.js";
|
|
11
|
+
import Vab from "@base/utils/vab";
|
|
12
|
+
import drag from "@base/directive/el-drag-dialog/index.js";
|
|
13
|
+
import elDialogCenter from "@base/directive/el-dialog-center/index.js";
|
|
14
|
+
import ErroreBox from "@base/components/errorMsg/index.js";
|
|
15
|
+
import ExcelExport from "@base/components/excelExport/index.js";
|
|
16
|
+
import ExcelImport from "@base/components/excelImport/index.js";
|
|
17
|
+
import ConfirmDialog from "@base/components/confirmDialog/index.js";
|
|
18
|
+
import baseAlert from "@base/components/baseAlert/index.js";
|
|
19
|
+
import FormDialog from "@base/components/formDialog/index.js";
|
|
20
|
+
import permission from "@base/directive/permission";
|
|
21
|
+
import VabUpload from "@base/components/VabUpload/index.js";
|
|
22
|
+
import baseAttachment from "@base/components/baseAttachment/install";
|
|
23
|
+
import vxeFilter from "@base/components/table/vxeFilter/index.js";
|
|
24
|
+
import baseTableExport from "@base/components/excelExport/button.vue";
|
|
25
|
+
import LimitNumber from "@base/directive/LimitNumber/index.js";
|
|
26
|
+
import baseInputNumber from "@base/components/baseInputNumber/index.vue";
|
|
27
|
+
import elReadonly from "@base/directive/el-readonly/index.js";
|
|
28
|
+
import oplogTable from "@base/components/oplogTable/index.vue";
|
|
29
|
+
import baseInputBatch from "@base/components/baseInputBatch/index.vue";
|
|
30
|
+
import baseArea from "@base/components/baseArea/index.vue";
|
|
31
|
+
import baseTabs from "@base/components/baseTabs/index.vue";
|
|
32
|
+
import baseTabPane from "@base/components/baseTabs/baseTabPane.vue";
|
|
33
|
+
import vbTabs from "@base/components/vb-tabs/index.vue";
|
|
34
|
+
import vbTabPane from "@base/components/vb-tabs/tab-pane.vue";
|
|
35
|
+
import xTabs from "@base/components/vb-tabs/x-tabs.vue";
|
|
36
|
+
import baseTextarea from "@base/components/base-textarea/index.vue";
|
|
37
|
+
import jsonImport from "@base/components/jsonImport/index.js";
|
|
38
|
+
import langImport from "@base/components/langImport/index.js";
|
|
39
|
+
import * as filters from "@base/filters";
|
|
40
|
+
import {
|
|
41
|
+
getPublicAssetUrl,
|
|
42
|
+
loadStyle,
|
|
43
|
+
} from "@base/utils/externalAssets";
|
|
44
|
+
|
|
45
|
+
Vue.component("BaseKeepAlive", BaseKeepAlive);
|
|
46
|
+
Vue.use(Element, { size: Cookies.get("size") || "medium" });
|
|
47
|
+
Vue.use(Vab);
|
|
48
|
+
Vue.use(VXETable);
|
|
49
|
+
Vue.use(drag.install);
|
|
50
|
+
Vue.use(elDialogCenter.install);
|
|
51
|
+
Vue.use(ErroreBox);
|
|
52
|
+
Vue.use(ExcelExport);
|
|
53
|
+
Vue.use(ExcelImport);
|
|
54
|
+
Vue.use(ConfirmDialog);
|
|
55
|
+
Vue.use(baseAlert);
|
|
56
|
+
Vue.use(FormDialog);
|
|
57
|
+
Vue.use(permission);
|
|
58
|
+
Vue.use(VabUpload);
|
|
59
|
+
Vue.use(baseAttachment);
|
|
60
|
+
Vue.use(vxeFilter);
|
|
61
|
+
Vue.use(LimitNumber);
|
|
62
|
+
Vue.use(elReadonly);
|
|
63
|
+
Vue.use(jsonImport);
|
|
64
|
+
Vue.use(langImport);
|
|
65
|
+
|
|
66
|
+
Vue.component("baseUpload", () =>
|
|
67
|
+
import("@base/components/VabUpload/view.vue")
|
|
68
|
+
);
|
|
69
|
+
Vue.component("attachmentShowList", () =>
|
|
70
|
+
import("@base/components/baseAttachment/showList")
|
|
71
|
+
);
|
|
72
|
+
Vue.component(baseTableExport.name, baseTableExport);
|
|
73
|
+
Vue.component(baseInputNumber.name, baseInputNumber);
|
|
74
|
+
Vue.component(oplogTable.name, oplogTable);
|
|
75
|
+
Vue.component(baseInputBatch.name, baseInputBatch);
|
|
76
|
+
Vue.component(baseArea.name, baseArea);
|
|
77
|
+
Vue.component("baseInputExport", () =>
|
|
78
|
+
import("@base/components/baseInputExport/index.vue")
|
|
79
|
+
);
|
|
80
|
+
Vue.component("advancedSearchDialog", () =>
|
|
81
|
+
import("@base/components/advancedSearchDialog/index.vue")
|
|
82
|
+
);
|
|
83
|
+
Vue.component(baseTabs.name, baseTabs);
|
|
84
|
+
Vue.component(baseTabPane.name, baseTabPane);
|
|
85
|
+
Vue.component(vbTabs.name, vbTabs);
|
|
86
|
+
Vue.component(vbTabPane.name, vbTabPane);
|
|
87
|
+
Vue.component(xTabs.name, xTabs);
|
|
88
|
+
Vue.component("status-tag", () =>
|
|
89
|
+
import("@base/components/statusTag/index.vue")
|
|
90
|
+
);
|
|
91
|
+
Vue.component("CodeEditor", () =>
|
|
92
|
+
import("@base/components/code-editor/index.vue")
|
|
93
|
+
);
|
|
94
|
+
Vue.component("scriptDescriptionButton", () =>
|
|
95
|
+
import("@base/components/scriptDescription/button")
|
|
96
|
+
);
|
|
97
|
+
Vue.component("scriptTestButton", () =>
|
|
98
|
+
import("@base/components/scriptTest/button")
|
|
99
|
+
);
|
|
100
|
+
Vue.component(baseTextarea.name, baseTextarea);
|
|
101
|
+
|
|
102
|
+
Object.keys(filters).forEach((key) => {
|
|
103
|
+
Vue.filter(key, filters[key]);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
loadStyle(getPublicAssetUrl("css/print-lock.css"), { media: "print" }).catch(
|
|
107
|
+
(error) => console.warn("[bootstrap] 打印样式加载失败", error)
|
|
108
|
+
);
|