cloud-web-corejs 1.0.280 → 1.1.0-dev.10
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 +6 -2
- package/src/components/VabUpload/image-viewer.vue +442 -442
- package/src/components/VabUpload/index.vue +45 -3
- package/src/components/VabUpload/mixins.js +174 -34
- package/src/components/VabUpload/previewGroup.js +128 -0
- package/src/components/VabUpload/view.vue +248 -209
- package/src/components/baseTabs/mixins.js +181 -181
- package/src/components/bizTab/BizBillActions.vue +129 -0
- package/src/components/bizTab/BizTabListPage.vue +391 -0
- package/src/components/bizTab/README.md +378 -0
- package/src/components/bizTab/billTableUtil.js +48 -0
- package/src/components/bizTab/billValidators.js +136 -0
- package/src/components/bizTab/bizBillDetailMixin.js +705 -0
- package/src/components/bizTab/index.js +24 -0
- package/src/components/excelExport/exportFieldDialog.vue +23 -12
- package/src/components/excelExport/exportItemConfigUtil.js +30 -0
- package/src/components/excelExport/mixins.js +3 -3
- package/src/components/excelImport/index.vue +156 -156
- package/src/components/jsonImport/index.vue +1 -1
- package/src/components/langImport/index.vue +1 -1
- package/src/components/mobile/statusTag/mixins.js +1 -61
- package/src/components/mobile/wf/addTaskUserdialog.vue +23 -3
- package/src/components/mobile/wf/content.vue +1705 -1556
- package/src/components/mobile/wf/deleteTaskUserDialog.vue +22 -3
- package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
- package/src/components/mobile/wf/selectUserDialog.vue +122 -0
- package/src/components/mobile/wf/setCandidateDialog.vue +25 -4
- package/src/components/mobile/wf/urgingDialog.vue +26 -3
- package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
- package/src/components/obsUpload/index.vue +1 -1
- package/src/components/table/config.js +78 -78
- package/src/components/table/index.js +1276 -1276
- package/src/components/table/plugins/cell-area/index.js +1055 -0
- package/src/components/table/plugins/cell-area/index.scss +77 -0
- package/src/components/table/plugins/cell-area/util.js +224 -0
- package/src/components/table/tableForm.vue +330 -330
- package/src/components/table/tableFormMixin.js +318 -318
- package/src/components/table/vxeFilter/index.js +163 -163
- package/src/components/table/vxeFilter/mixin.js +316 -316
- package/src/components/wf/content.vue +1188 -1188
- package/src/components/wf/wf.js +40 -20
- package/src/components/wf/wfActionDropdown.vue +1 -1
- package/src/components/wf/wfActionItems.js +1 -1
- package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
- package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
- package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
- package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
- package/src/components/xform/form-designer/designer.js +51 -52
- package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
- package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +18 -2
- package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
- package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
- package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +23 -2
- package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +30 -1
- package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
- package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
- package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +185 -185
- package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
- package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
- package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
- package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
- package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
- package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +47 -1
- package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
- package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
- package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -0
- package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
- package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
- package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
- package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -2
- package/src/components/xform/form-designer/indexMixin.js +35 -1
- package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +10 -10
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -432
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
- package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
- package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +833 -846
- package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
- package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
- package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
- package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
- package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
- package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
- package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
- package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
- package/src/components/xform/form-designer/setting-panel/propertyRegister.js +12 -0
- package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
- package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +14 -0
- package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
- package/src/components/xform/form-designer/widget-panel/indexMixin.js +30 -6
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +112 -4
- package/src/components/xform/form-render/container-item/data-table-mixin.js +151 -93
- package/src/components/xform/form-render/container-item/detail-h5-item.vue +204 -34
- package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
- package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
- package/src/components/xform/form-render/container-item/list-h5-item.vue +1913 -1699
- package/src/components/xform/form-render/index.vue +153 -147
- package/src/components/xform/form-render/indexMixin.js +35 -3
- package/src/components/xform/lang/en-US.js +14 -0
- package/src/components/xform/lang/zh-CN.js +17 -0
- package/src/components/xform/mixins/defaultHandle.js +707 -707
- package/src/components/xform/styles/h5.scss +2238 -0
- package/src/components/xform/utils/textMaskUtil.js +182 -179
- package/src/components/xform/utils/treeTableUtil.js +1292 -1265
- package/src/components/xform/utils/util.js +56 -11
- package/src/directive/append-to-body/index.js +48 -0
- package/src/index.js +13 -4
- package/src/layout/components/Sidebar/default.vue +1655 -1655
- package/src/layout/components/extractedCode/viewDialog.vue +7 -7
- package/src/router/index.js +48 -27
- package/src/router/modules/customer.js +71 -14
- package/src/store/modules/permission.js +17 -18
- package/src/utils/assetUrl.js +19 -0
- package/src/utils/pdfUtil.js +429 -429
- package/src/utils/resolveViewComponent.js +142 -16
- package/src/utils/vab.js +1283 -1279
- package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
- package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
- package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
- package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
- package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
- package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
- package/src/views/bd/project/branch/form_script/list.vue +31 -0
- package/src/views/bd/project/branch/form_template/list.vue +30 -0
- package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
- package/src/views/bd/project/common/form_script/list.vue +16 -0
- package/src/views/bd/project/common/form_template/list.vue +15 -0
- package/src/views/bd/project/common/menu_kind/list.vue +15 -0
- package/src/views/bd/project/core/branchContext.js +100 -0
- package/src/views/bd/project/core/branchPage.js +78 -0
- package/src/views/bd/project/core/branchPageWrap.vue +225 -0
- package/src/views/bd/project/core/branchScope.js +44 -0
- package/src/views/bd/project/core/branchSearchPage.js +285 -0
- package/src/views/bd/project/core/branchSelect.vue +85 -0
- package/src/views/bd/project/core/branchTreeBar.vue +81 -0
- package/src/views/bd/project/core/httpBranchPatch.js +58 -0
- package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
- package/src/views/bd/project/datatable/table_model/list.vue +15 -0
- package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
- package/src/views/bd/setting/form_template/edit.vue +378 -356
- package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
- package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
- package/src/views/bd/setting/form_template/list.vue +304 -303
- package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
- package/src/views/bd/setting/form_template/mixins/list.js +748 -721
- package/src/views/bd/setting/table_model/edit.vue +1066 -1066
- package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
- package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
- package/src/views/demo/bizTab/bill/billConfig.js +41 -0
- package/src/views/demo/bizTab/bill/detail.vue +436 -0
- package/src/views/demo/bizTab/bill/list.vue +288 -0
- package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
- package/src/views/demo/bizTab/simple/billApi.js +123 -0
- package/src/views/demo/bizTab/simple/detail.vue +407 -0
- package/src/views/demo/bizTab/simple/list.vue +217 -0
- package/src/views/demo/bizTab/standalone/index.vue +121 -0
- package/src/views/demo/bizTab/wf/billConfig.js +44 -0
- package/src/views/demo/bizTab/wf/detail.vue +661 -0
- package/src/views/demo/bizTab/wf/list.vue +242 -0
- package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
- package/src/views/support/form-dialog-demo/index.vue +537 -0
- package/src/views/user/file_view_ins/list.vue +970 -970
- package/src/views/user/form/vform/designer.vue +823 -821
- package/src/views/user/home/default.vue +1117 -1117
- package/src/views/user/home/default2.vue +1 -1
- package/src/views/user/home/index.vue +103 -101
- package/src/views/user/home/wjl/content.vue +1569 -0
- package/src/views/user/notify_message/dialog.vue +139 -137
- package/src/views/user/outLink/cc_form_view.vue +188 -0
- package/src/views/user/outLink/form_view.vue +202 -202
- package/src/views/user/outLink/index.vue +110 -110
- package/src/views/user/outLink/view.vue +3 -3
- package/src/views/user/role/edit.vue +632 -632
- package/src/views/user/role/list.vue +260 -260
- package/src/views/user/wf/iframe/index.vue +51 -51
- package/src/views/user/wf/iframe/index2.vue +64 -64
- package/src/views/user/wf/wf_manage/list.vue +1112 -1116
- package/src/views/user/wf/wf_manage/list2.vue +871 -875
- package/src/views/user/wf/wf_manage/wfContentDialog.vue +134 -131
- package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +0 -106
- package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +0 -99
- package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
- package/src/utils/wf.js +0 -766
|
@@ -100,7 +100,7 @@ export default {
|
|
|
100
100
|
this.$emit("update:visible", false);
|
|
101
101
|
this.$emit("close");
|
|
102
102
|
},
|
|
103
|
-
openWfDialog() {
|
|
103
|
+
async openWfDialog() {
|
|
104
104
|
let obj = this.extractedRow?.obj;
|
|
105
105
|
if (!obj) return;
|
|
106
106
|
let objType = this.extractedRow.objType;
|
|
@@ -110,27 +110,27 @@ export default {
|
|
|
110
110
|
readonly: true,
|
|
111
111
|
};
|
|
112
112
|
|
|
113
|
-
let
|
|
113
|
+
let loadView;
|
|
114
114
|
if (objType == "FormTemplate") {
|
|
115
|
-
|
|
115
|
+
loadView = () => import("@base/views/bd/setting/form_template/edit.vue");
|
|
116
116
|
wfDataId = obj.formCode;
|
|
117
117
|
this.title = this.$t1("查看表单模板");
|
|
118
118
|
} else if (objType == "FormScript") {
|
|
119
119
|
if (obj.scriptType == 1) {
|
|
120
|
-
|
|
120
|
+
loadView = () => import("@base/views/bd/setting/form_script/edit1.vue");
|
|
121
121
|
} else {
|
|
122
|
-
|
|
122
|
+
loadView = () => import("@base/views/bd/setting/form_script/edit.vue");
|
|
123
123
|
}
|
|
124
124
|
this.title = this.$t1("查看表单脚本");
|
|
125
125
|
} else if (objType == "TableTemplate") {
|
|
126
|
-
|
|
126
|
+
loadView = () => import("@base/views/bd/setting/table_model/edit.vue");
|
|
127
127
|
this.title = this.$t1("查看数据表定义模板");
|
|
128
128
|
}
|
|
129
129
|
this.param = Object.assign(param, {
|
|
130
130
|
_dataId: wfDataId,
|
|
131
131
|
extractedObj: obj,
|
|
132
132
|
});
|
|
133
|
-
this.wfContent =
|
|
133
|
+
this.wfContent = loadView ? (await loadView()).default : null;
|
|
134
134
|
|
|
135
135
|
this.showWfContent = true;
|
|
136
136
|
},
|
package/src/router/index.js
CHANGED
|
@@ -1,27 +1,48 @@
|
|
|
1
|
-
import Vue from "vue";
|
|
2
|
-
import Router from "vue-router";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { constantRoutes as
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
import Vue from "vue";
|
|
2
|
+
import Router from "vue-router";
|
|
3
|
+
import { Message } from "element-ui";
|
|
4
|
+
|
|
5
|
+
Vue.use(Router);
|
|
6
|
+
|
|
7
|
+
import { constantRoutes as route1s } from "@base/router/modules/system";
|
|
8
|
+
import { constantRoutes as route2s } from "@/router/modules/customer";
|
|
9
|
+
|
|
10
|
+
export const constantRoutes = [...route1s, ...route2s];
|
|
11
|
+
|
|
12
|
+
const createRouter = () =>
|
|
13
|
+
new Router({
|
|
14
|
+
// mode: 'history', // require service support
|
|
15
|
+
scrollBehavior: () => ({
|
|
16
|
+
y: 0,
|
|
17
|
+
}),
|
|
18
|
+
routes: constantRoutes,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const router = createRouter();
|
|
22
|
+
|
|
23
|
+
// 视图改按需加载后,路由跳转会真的去网络拉 chunk,于是多出一类以前不可能发生的失败:
|
|
24
|
+
// 发版后旧标签页持有的 chunk 哈希已失效(404)、网络超时、或被网关截断(截断表现为
|
|
25
|
+
// chunk 内 SyntaxError,不是网络错误)。vue-router 对这类失败是静默的——点了没反应。
|
|
26
|
+
//
|
|
27
|
+
// 菜单驱动的视图不走这里:store/modules/permission.js 的 loadView 自己 catch 后渲染
|
|
28
|
+
// MenuFallback。这里兜的是 constantRoutes 里那批 () => import(...) 的静态路由。
|
|
29
|
+
//
|
|
30
|
+
// 只提示、不自动 reload:本系统表单页多,自动刷新会吞掉用户未保存的录入;而且一旦
|
|
31
|
+
// 某个 chunk 持续拉不到(例如网关截断),自动刷新会退化成"用户每点一次就刷一次"的循环。
|
|
32
|
+
router.onError((error) => {
|
|
33
|
+
const msg = (error && error.message) || "";
|
|
34
|
+
if (!/Loading (CSS )?chunk .* failed|ChunkLoadError/i.test(msg)) return;
|
|
35
|
+
console.error("[router] 页面资源加载失败:", error);
|
|
36
|
+
try {
|
|
37
|
+
Message.error("页面资源加载失败,请刷新页面后重试");
|
|
38
|
+
} catch (e) {
|
|
39
|
+
// Message 尚未可用时静默,至少 console 里留了痕迹
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export function resetRouter() {
|
|
44
|
+
const newRouter = createRouter();
|
|
45
|
+
router.matcher = newRouter.matcher; // reset router
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default router;
|
|
@@ -1,19 +1,76 @@
|
|
|
1
1
|
export const constantRoutes = [
|
|
2
|
+
/*{
|
|
3
|
+
// 呼叫中心(CC)专用入口:只带 appid/appkey/account/callNo,
|
|
4
|
+
// 先换取 tp 再 replace 到 /form_outLinkView
|
|
5
|
+
path: "/cc_form_outLinkView",
|
|
6
|
+
component: () => import("@base/views/user/outLink/cc_form_view"),
|
|
7
|
+
meta: {
|
|
8
|
+
checkToken: false,
|
|
9
|
+
},
|
|
10
|
+
hidden: true,
|
|
11
|
+
},
|
|
2
12
|
{
|
|
3
13
|
path: "",
|
|
4
14
|
component: () => import("@/layout/index"),
|
|
5
|
-
children: [
|
|
6
|
-
{
|
|
7
|
-
path:
|
|
8
|
-
component: () => import(
|
|
9
|
-
name:
|
|
10
|
-
meta: {
|
|
11
|
-
title:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
children: [
|
|
16
|
+
{
|
|
17
|
+
path: "/basic/wf/wf_manage/list2",
|
|
18
|
+
component: () => import("@base/views/user/wf/wf_manage/list2"),
|
|
19
|
+
name: "wf_manage:list2",
|
|
20
|
+
meta: {
|
|
21
|
+
title: "流程待办",
|
|
22
|
+
icon: "dashboard",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
// bizTab 示例 A:手写接口版(前端 mock,无流程,不吃后台前置条件)
|
|
27
|
+
path: "/demo/bizTab/simple",
|
|
28
|
+
component: () => import("@base/views/demo/bizTab/simple/list"),
|
|
29
|
+
name: "demoBizTabSimple",
|
|
30
|
+
meta: {
|
|
31
|
+
title: "bizTab 示例(手写接口)",
|
|
32
|
+
icon: "dashboard",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
// bizTab 示例 B:formCode + 通用 bd_api(照 stdxx 的产品变更申请页)
|
|
37
|
+
path: "/demo/bizTab/bill",
|
|
38
|
+
component: () => import("@base/views/demo/bizTab/bill/list"),
|
|
39
|
+
name: "demoBizTabBill",
|
|
40
|
+
meta: {
|
|
41
|
+
title: "bizTab 示例(formCode+流程)",
|
|
42
|
+
icon: "dashboard",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
// bizTab 示例 C:自定义控制器 + 流程(照 std / 本仓库 pmd/price/ladderPrice 页)
|
|
47
|
+
path: "/demo/bizTab/wf",
|
|
48
|
+
component: () => import("@base/views/demo/bizTab/wf/list"),
|
|
49
|
+
name: "demoBizTabWf",
|
|
50
|
+
meta: {
|
|
51
|
+
title: "bizTab 示例(自定义接口+流程)",
|
|
52
|
+
icon: "dashboard",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
// bizTab 示例 D:独立模式(不在页签里,待办直开走的路径),复用示例 C 的详情
|
|
57
|
+
path: "/demo/bizTab/standalone",
|
|
58
|
+
component: () => import("@base/views/demo/bizTab/standalone/index.vue"),
|
|
59
|
+
name: "demoBizTabStandalone",
|
|
60
|
+
meta: {
|
|
61
|
+
title: "bizTab 示例(独立模式)",
|
|
62
|
+
icon: "dashboard",
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
path: "/support/form-dialog-demo",
|
|
67
|
+
component: () => import("@/views/support/form-dialog-demo/index.vue"),
|
|
68
|
+
name: "formDialogDemo",
|
|
69
|
+
meta: {
|
|
70
|
+
title: "formDialog 示例",
|
|
71
|
+
icon: "dashboard",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},*/
|
|
18
76
|
];
|
|
19
|
-
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
registerSubApps,
|
|
16
16
|
buildSubAppRoutes,
|
|
17
17
|
} from "@base/microRouter";
|
|
18
|
+
import { loadViewComponentAsync } from "@base/utils/resolveViewComponent";
|
|
18
19
|
import MenuFallback from "@base/views/user/menuFallback/index.vue";
|
|
19
20
|
|
|
20
21
|
// qiankun 宿主态(仅 settings.microMainEnabled 的主应用登录后填充)
|
|
@@ -87,7 +88,7 @@ function buildUserInfoSnapshot(userState = {}) {
|
|
|
87
88
|
|
|
88
89
|
let modules = {};
|
|
89
90
|
|
|
90
|
-
// loadView 失败兜底:独立运行点到别家应用的菜单 /
|
|
91
|
+
// loadView 失败兜底:独立运行点到别家应用的菜单 / 菜单配置错误 / 视图 chunk 加载失败时展示提示页
|
|
91
92
|
function createFallbackComponent(view, error) {
|
|
92
93
|
return {
|
|
93
94
|
name: "menuLoadFallback",
|
|
@@ -108,25 +109,23 @@ let configUtl = {
|
|
|
108
109
|
sidebarRoutes,
|
|
109
110
|
Layout,
|
|
110
111
|
getRouters,
|
|
112
|
+
// 委托 resolveViewComponent(全仓唯一的视图 import 落地点)。
|
|
113
|
+
//
|
|
114
|
+
// 这里原来写的是 AMD 异步形式 require([...], resolve, fail),看着是懒加载,实则不是:
|
|
115
|
+
// webpack 的 AMDRequireDependenciesBlockParserPlugin 调 ContextDependencyHelpers.create
|
|
116
|
+
// 时不传 mode,默认落 mode:"sync",且 root/regExp 与 resolveViewComponent 那条完全一致
|
|
117
|
+
// (ContextIdentifier 相同 = 同一个 ContextModule),于是整棵 views 照样焊进入口 chunk。
|
|
118
|
+
// 必须一并改掉,否则只改 resolveViewComponent 的结果是:app.js 变小,但首次点菜单时
|
|
119
|
+
// 下载一个十几 MB 的异步 chunk。
|
|
120
|
+
//
|
|
121
|
+
// 顺带干掉本文件这份重复的 @base/views 前缀嗅探——归属判断统一由 resolveViewPath 负责。
|
|
111
122
|
loadView: function (view) {
|
|
112
123
|
return (resolve) => {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (view.startsWith(t)) {
|
|
119
|
-
let path = view.substr(t.length);
|
|
120
|
-
return require(["../../views" + path], resolve, fail);
|
|
121
|
-
} /* else if (view.startsWith(t2)) {
|
|
122
|
-
let path = view.substr(t2.length);
|
|
123
|
-
return require(['@/components' + path], resolve, fail);
|
|
124
|
-
} */
|
|
125
|
-
}
|
|
126
|
-
return require(["@/views" + view], resolve, fail);
|
|
127
|
-
} catch (e) {
|
|
128
|
-
fail(e);
|
|
129
|
-
}
|
|
124
|
+
loadViewComponentAsync(view)
|
|
125
|
+
.then((res) =>
|
|
126
|
+
resolve(res.component || createFallbackComponent(view, res.error))
|
|
127
|
+
)
|
|
128
|
+
.catch((e) => resolve(createFallbackComponent(view, e)));
|
|
130
129
|
};
|
|
131
130
|
},
|
|
132
131
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 取出 require(图片) 的真实 URL。
|
|
3
|
+
*
|
|
4
|
+
* webpack4(url-loader,vue-cli 设了 esModule:false) 下 require 直接返回 URL 字符串;
|
|
5
|
+
* webpack5(vue-cli5 的 asset modules) 下返回的是 ES Module 命名空间对象,且该对象
|
|
6
|
+
* 由 Object.create(null) 生成——没有原型链就没有 toString,直接绑到 :src 上时
|
|
7
|
+
* setAttribute 会抛 "Cannot convert object to primitive value" 整棵子树渲染失败
|
|
8
|
+
* (webpack5 的 asset modules 没有 esModule 开关,只能在取值处兜底)。
|
|
9
|
+
*
|
|
10
|
+
* 消费应用的构建配置不受本库控制,凡是把 require 结果往 DOM 属性上放的地方都要过这里。
|
|
11
|
+
*/
|
|
12
|
+
export function assetUrl(mod) {
|
|
13
|
+
if (mod && typeof mod === "object") {
|
|
14
|
+
return mod.default || "";
|
|
15
|
+
}
|
|
16
|
+
return mod || "";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default assetUrl;
|