@maketribe/ms-app 3.0.15 → 3.0.17
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/dist/cjs/components/json-editor/index.js +6 -2
- package/dist/cjs/components/json-editor/index.js.map +1 -1
- package/dist/cjs/components/json-editor/json-editor.js +2 -2
- package/dist/cjs/components/material-select/material-select-type.d.ts +6 -5
- package/dist/cjs/components/new-upload-file/MaterialUploadContext.d.ts +4 -0
- package/dist/cjs/components/new-upload-file/MaterialUploadContext.js +18 -0
- package/dist/cjs/components/new-upload-file/MaterialUploadContext.js.map +1 -0
- package/dist/cjs/components/new-upload-file/UploadContext.d.ts +8 -0
- package/dist/cjs/components/new-upload-file/UploadContext.js +10 -0
- package/dist/cjs/components/new-upload-file/UploadContext.js.map +1 -0
- package/dist/cjs/components/new-upload-file/WebFileUploadContext.d.ts +10 -0
- package/dist/cjs/components/new-upload-file/WebFileUploadContext.js +50 -0
- package/dist/cjs/components/new-upload-file/WebFileUploadContext.js.map +1 -0
- package/dist/cjs/components/new-upload-file/upload-file-options.d.ts +17 -0
- package/dist/cjs/components/new-upload-file/upload-file-options.js +23 -0
- package/dist/cjs/components/new-upload-file/upload-file-options.js.map +1 -0
- package/dist/cjs/components/new-upload-file/upload-file.d.ts +40 -0
- package/dist/cjs/components/new-upload-file/upload-file.js +49 -0
- package/dist/cjs/components/new-upload-file/upload-file.js.map +1 -0
- package/dist/cjs/components/upload-file/upload-file.js +7 -1
- package/dist/cjs/components/upload-file/upload-file.js.map +1 -1
- package/dist/cjs/core/MSAppClient.js +3 -0
- package/dist/cjs/core/MSAppClient.js.map +1 -1
- package/dist/cjs/core/PageManager.js +14 -8
- package/dist/cjs/core/PageManager.js.map +1 -1
- package/dist/cjs/core/Router.js +7 -7
- package/dist/cjs/core/Router.js.map +1 -1
- package/dist/cjs/dataview/route/RouteForm.d.ts +2 -2
- package/dist/cjs/dataview/route/RouteForm.js +2 -2
- package/dist/cjs/dataview/route/RouteForm.js.map +1 -1
- package/dist/cjs/dataview/route/RouteTable.js +1 -1
- package/dist/cjs/dataview/route/RouteTable.js.map +1 -1
- package/dist/cjs/init-application.js +1 -1
- package/dist/cjs/init-application.js.map +1 -1
- package/dist/cjs/router-middleware/auth.js +1 -1
- package/dist/cjs/router-middleware/auth.js.map +1 -1
- package/dist/esm/components/json-editor/index.js +4 -2
- package/dist/esm/components/json-editor/index.js.map +1 -1
- package/dist/esm/components/json-editor/json-editor.js +2 -2
- package/dist/esm/components/material-select/material-select-type.d.ts +6 -5
- package/dist/esm/components/new-upload-file/MaterialUploadContext.d.ts +4 -0
- package/dist/esm/components/new-upload-file/MaterialUploadContext.js +16 -0
- package/dist/esm/components/new-upload-file/MaterialUploadContext.js.map +1 -0
- package/dist/esm/components/new-upload-file/UploadContext.d.ts +8 -0
- package/dist/esm/components/new-upload-file/UploadContext.js +8 -0
- package/dist/esm/components/new-upload-file/UploadContext.js.map +1 -0
- package/dist/esm/components/new-upload-file/WebFileUploadContext.d.ts +10 -0
- package/dist/esm/components/new-upload-file/WebFileUploadContext.js +48 -0
- package/dist/esm/components/new-upload-file/WebFileUploadContext.js.map +1 -0
- package/dist/esm/components/new-upload-file/upload-file-options.d.ts +17 -0
- package/dist/esm/components/new-upload-file/upload-file-options.js +20 -0
- package/dist/esm/components/new-upload-file/upload-file-options.js.map +1 -0
- package/dist/esm/components/new-upload-file/upload-file.d.ts +40 -0
- package/dist/esm/components/new-upload-file/upload-file.js +47 -0
- package/dist/esm/components/new-upload-file/upload-file.js.map +1 -0
- package/dist/esm/components/upload-file/upload-file.js +7 -1
- package/dist/esm/components/upload-file/upload-file.js.map +1 -1
- package/dist/esm/core/MSAppClient.js +4 -1
- package/dist/esm/core/MSAppClient.js.map +1 -1
- package/dist/esm/core/PageManager.js +14 -8
- package/dist/esm/core/PageManager.js.map +1 -1
- package/dist/esm/core/Router.js +7 -7
- package/dist/esm/core/Router.js.map +1 -1
- package/dist/esm/dataview/route/RouteForm.d.ts +2 -2
- package/dist/esm/dataview/route/RouteForm.js +2 -2
- package/dist/esm/dataview/route/RouteForm.js.map +1 -1
- package/dist/esm/dataview/route/RouteTable.js +1 -1
- package/dist/esm/dataview/route/RouteTable.js.map +1 -1
- package/dist/esm/init-application.js +1 -1
- package/dist/esm/init-application.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_language@6.9.3/node_modules/@codemirror/language/dist/index.js +2 -2
- package/dist/esm/router-middleware/auth.js +1 -1
- package/dist/esm/router-middleware/auth.js.map +1 -1
- package/package.json +4 -4
- package/src/components/json-editor/index.ts +4 -2
- package/src/components/material-select/material-select-type.ts +10 -5
- package/src/components/new-upload-file/MaterialUploadContext.ts +14 -0
- package/src/components/new-upload-file/UploadContext.ts +11 -0
- package/src/components/new-upload-file/WebFileUploadContext.ts +58 -0
- package/src/components/new-upload-file/upload-file-options.ts +23 -0
- package/src/components/new-upload-file/upload-file.tsx +61 -0
- package/src/components/upload-file/upload-file.tsx +4 -1
- package/src/core/MSAppClient.ts +10 -1
- package/src/core/PageManager.ts +18 -9
- package/src/core/Router.ts +7 -7
- package/src/dataview/route/RouteForm.ts +4 -4
- package/src/dataview/route/RouteTable.ts +1 -1
- package/src/init-application.ts +1 -1
- package/src/router-middleware/auth.ts +1 -2
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { computed, defineComponent, unref } from "vue";
|
|
2
|
+
import { uploadFileEmits, uploadFileProps } from "./upload-file-options";
|
|
3
|
+
import { ElMessage } from "element-plus";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 文件上传
|
|
7
|
+
*
|
|
8
|
+
* 文件上传在本后台中有两大分类
|
|
9
|
+
* 1.直接上传文件
|
|
10
|
+
* 2.使用素材库文件
|
|
11
|
+
*
|
|
12
|
+
* 文件上传的界面交互又会分为几种情况
|
|
13
|
+
* 1.单文件上传(单文件上传,可能会根据。文件情况的不同,界面显示方式不一样)
|
|
14
|
+
* 2.多文件上传(多文件上传基于单文件的逻辑,不过是会变成多个文件)
|
|
15
|
+
*
|
|
16
|
+
* 希望文件交互组件不需要用了解是直接上传文件或使用素材库。
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export default defineComponent({
|
|
21
|
+
name: "MKUploadFile",
|
|
22
|
+
props: uploadFileProps,
|
|
23
|
+
emits: uploadFileEmits,
|
|
24
|
+
setup(props, { emit }) {
|
|
25
|
+
const value = computed({
|
|
26
|
+
get: () => props.modelValue,
|
|
27
|
+
set: (v: string) => emit("upload:modelValue", v),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const uploadContext = computed(() => props.uploadContext);
|
|
31
|
+
|
|
32
|
+
const handleUpload = async () => {
|
|
33
|
+
try {
|
|
34
|
+
const uploadResult = await unref(uploadContext).selectFile();
|
|
35
|
+
|
|
36
|
+
if (uploadResult.success) {
|
|
37
|
+
value.value = uploadResult.path;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
ElMessage.error(uploadResult.msg);
|
|
42
|
+
} catch (e) {
|
|
43
|
+
console.error(e);
|
|
44
|
+
ElMessage.error("网络异常");
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
handleUpload,
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
render() {
|
|
53
|
+
const { handleUpload, $slots } = this;
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<div class="mk-upload-file" onClick={handleUpload}>
|
|
57
|
+
{$slots.default?.()}
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
@@ -2,13 +2,16 @@ import { computed, defineComponent, unref } from "vue";
|
|
|
2
2
|
import { ElMessage, ElUpload, UploadFile, UploadFiles } from "element-plus";
|
|
3
3
|
import { UploadError, WebFileUpload } from "@maketribe/request";
|
|
4
4
|
import { uploadFileProps, uploadFileEmits } from "./upload-file-options";
|
|
5
|
+
import { MSAppClient } from "../../core";
|
|
5
6
|
|
|
6
7
|
export default defineComponent({
|
|
7
8
|
name: "MKUploadFile",
|
|
8
9
|
props: uploadFileProps,
|
|
9
10
|
emits: uploadFileEmits,
|
|
10
11
|
setup(props, { slots, emit }) {
|
|
11
|
-
const upload =
|
|
12
|
+
const upload =
|
|
13
|
+
props.upload ??
|
|
14
|
+
new WebFileUpload({ httpRequest: MSAppClient.instance!.httpRequest });
|
|
12
15
|
|
|
13
16
|
const fileList = computed({
|
|
14
17
|
get: () => props.fileList,
|
package/src/core/MSAppClient.ts
CHANGED
|
@@ -3,7 +3,13 @@ import {
|
|
|
3
3
|
createWebHashHistory,
|
|
4
4
|
Router as VueRouter,
|
|
5
5
|
} from "vue-router";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
DataViewRequest,
|
|
8
|
+
DVQueryable,
|
|
9
|
+
HttpRequest,
|
|
10
|
+
R,
|
|
11
|
+
WebHttpRequest,
|
|
12
|
+
} from "@maketribe/request";
|
|
7
13
|
import { IComponents, DataModel, Components } from "@maketribe/dm";
|
|
8
14
|
import { I18n } from "@maketribe/locale";
|
|
9
15
|
|
|
@@ -106,6 +112,9 @@ export class MSAppClient {
|
|
|
106
112
|
this.httpRequest = this._options.httpRequest;
|
|
107
113
|
|
|
108
114
|
DataModel.setHttpRequest(this.httpRequest);
|
|
115
|
+
DVQueryable.setDefaultDataViewRequest(
|
|
116
|
+
new DataViewRequest({ httpRequest: this.httpRequest })
|
|
117
|
+
);
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
setUserSession(userSession: UserSession | null) {
|
package/src/core/PageManager.ts
CHANGED
|
@@ -120,28 +120,37 @@ export class PageManager {
|
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
const
|
|
123
|
+
const router = userSession.router;
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
this.addExtendsPage({
|
|
127
|
-
name: "notFound",
|
|
128
|
-
// path: ":pathMatch(.*)*",
|
|
129
|
-
path: "",
|
|
130
|
-
component: () => import("../page/index/404.vue"),
|
|
131
|
-
});
|
|
132
|
-
}
|
|
125
|
+
const addedExtendsPageNames: string[] = [];
|
|
133
126
|
|
|
134
127
|
for (const extendsPage of this.extendsPages) {
|
|
128
|
+
const routeInfo = router.getRouteByName(extendsPage.name as string);
|
|
129
|
+
|
|
130
|
+
if (!routeInfo) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
|
|
135
134
|
const vueRoute = vueRoutes.find(
|
|
136
135
|
(vueRoute) => vueRoute.name === extendsPage.name
|
|
137
136
|
);
|
|
138
137
|
|
|
139
138
|
if (!vueRoute) {
|
|
139
|
+
extendsPage.path = routeInfo.route || extendsPage.path;
|
|
140
140
|
addedExtendsPageNames.push(extendsPage.name as string);
|
|
141
141
|
vueRouter.addRoute("mk-ms-layout", extendsPage);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
if (!this.extendsPages.find((page) => page.name === "notFound")) {
|
|
146
|
+
this.addExtendsPage({
|
|
147
|
+
name: "notFound",
|
|
148
|
+
// path: ":pathMatch(.*)*",
|
|
149
|
+
path: "",
|
|
150
|
+
component: () => import("../page/index/404.vue"),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
145
154
|
userSession.register(
|
|
146
155
|
createDisposable(() => {
|
|
147
156
|
for (const addedExtendsPageName of addedExtendsPageNames) {
|
package/src/core/Router.ts
CHANGED
|
@@ -45,7 +45,7 @@ export class Router extends Disposable {
|
|
|
45
45
|
case "normal":
|
|
46
46
|
vueRouter.addRoute("mk-ms-layout", {
|
|
47
47
|
name: defaultPageRoute.name,
|
|
48
|
-
path: `/dv/${name}`,
|
|
48
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
49
49
|
component: () =>
|
|
50
50
|
import(
|
|
51
51
|
"../page/index/dv/default/single/list/normal.vue"
|
|
@@ -56,7 +56,7 @@ export class Router extends Disposable {
|
|
|
56
56
|
case "dialog":
|
|
57
57
|
vueRouter.addRoute("mk-ms-layout", {
|
|
58
58
|
name: defaultPageRoute.name,
|
|
59
|
-
path: `/dv/${name}`,
|
|
59
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
60
60
|
component: () =>
|
|
61
61
|
import(
|
|
62
62
|
"../page/index/dv/default/single/list/dialog.vue"
|
|
@@ -72,7 +72,7 @@ export class Router extends Disposable {
|
|
|
72
72
|
case "dialog":
|
|
73
73
|
vueRouter.addRoute("mk-ms-layout", {
|
|
74
74
|
name: defaultPageRoute.name,
|
|
75
|
-
path: `/dv/${name}`,
|
|
75
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
76
76
|
component: () =>
|
|
77
77
|
import(
|
|
78
78
|
"../page/index/dv/default/single/tree/dialog.vue"
|
|
@@ -87,7 +87,7 @@ export class Router extends Disposable {
|
|
|
87
87
|
case "dialog":
|
|
88
88
|
vueRouter.addRoute("mk-ms-layout", {
|
|
89
89
|
name: defaultPageRoute.name,
|
|
90
|
-
path: `/dv/${name}`,
|
|
90
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
91
91
|
component: () =>
|
|
92
92
|
import(
|
|
93
93
|
"../page/index/dv/default/single/table-tree/dialog.vue"
|
|
@@ -102,7 +102,7 @@ export class Router extends Disposable {
|
|
|
102
102
|
case "list":
|
|
103
103
|
vueRouter.addRoute("mk-ms-layout", {
|
|
104
104
|
name: defaultPageRoute.name,
|
|
105
|
-
path: `/dv/${name}`,
|
|
105
|
+
path: defaultPageRoute.route || `/dv/${name}`,
|
|
106
106
|
component: () => import("../page/index/dv/default/table.vue"),
|
|
107
107
|
meta: { name },
|
|
108
108
|
});
|
|
@@ -110,7 +110,7 @@ export class Router extends Disposable {
|
|
|
110
110
|
case "edit":
|
|
111
111
|
vueRouter.addRoute("mk-ms-layout", {
|
|
112
112
|
name: defaultPageRoute.name,
|
|
113
|
-
path: `/dv/${name}/:id`,
|
|
113
|
+
path: defaultPageRoute.route || `/dv/${name}/:id`,
|
|
114
114
|
component: () => import("../page/index/dv/default/edit.vue"),
|
|
115
115
|
meta: { name },
|
|
116
116
|
});
|
|
@@ -118,7 +118,7 @@ export class Router extends Disposable {
|
|
|
118
118
|
case "add":
|
|
119
119
|
vueRouter.addRoute("mk-ms-layout", {
|
|
120
120
|
name: defaultPageRoute.name,
|
|
121
|
-
path: `/dv/${name}/add`,
|
|
121
|
+
path: defaultPageRoute.route || `/dv/${name}/add`,
|
|
122
122
|
component: () => import("../page/index/dv/default/add.vue"),
|
|
123
123
|
meta: { name },
|
|
124
124
|
});
|
|
@@ -10,7 +10,7 @@ export type RouteResult = {
|
|
|
10
10
|
type: number;
|
|
11
11
|
menuId: string;
|
|
12
12
|
iconName: string;
|
|
13
|
-
|
|
13
|
+
route?: string;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export type Route = {
|
|
@@ -20,7 +20,7 @@ export type Route = {
|
|
|
20
20
|
type: RouteType;
|
|
21
21
|
menuId: string;
|
|
22
22
|
iconName: string;
|
|
23
|
-
|
|
23
|
+
route: string;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export class RouteForm extends DataForm<RouteResult, Route> {
|
|
@@ -50,7 +50,7 @@ export class RouteForm extends DataForm<RouteResult, Route> {
|
|
|
50
50
|
label: "图标",
|
|
51
51
|
componentInfo: "MKFormIconSelect",
|
|
52
52
|
}),
|
|
53
|
-
new FormColumn({ name: "
|
|
53
|
+
new FormColumn({ name: "route", label: "路径" }),
|
|
54
54
|
new FormColumn({
|
|
55
55
|
name: "type",
|
|
56
56
|
label: "路由类型",
|
|
@@ -86,7 +86,7 @@ export class RouteForm extends DataForm<RouteResult, Route> {
|
|
|
86
86
|
`${item.type}` === RouteType.ROUTE ? RouteType.ROUTE : RouteType.LINK,
|
|
87
87
|
menuId: item.menuId,
|
|
88
88
|
iconName: item.iconName || "",
|
|
89
|
-
|
|
89
|
+
route: item.route || "",
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
}
|
package/src/init-application.ts
CHANGED
|
@@ -68,7 +68,7 @@ export const initApplication = async (options: InitMsApplicationOptions) => {
|
|
|
68
68
|
);
|
|
69
69
|
|
|
70
70
|
for (const route of routes) {
|
|
71
|
-
if (route.key.startsWith("index
|
|
71
|
+
if (route.key.startsWith("index")) {
|
|
72
72
|
msAppClient.pageManager.addExtendsPage(route);
|
|
73
73
|
} else {
|
|
74
74
|
msAppClient.pageManager.addNormalPage(route);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RouteLocationNormalized, RouteLocationRaw } from "vue-router";
|
|
2
|
-
import { isSameRoute } from "@maketribe/utils";
|
|
3
2
|
import type { MSAppClient } from "../core";
|
|
4
3
|
|
|
5
4
|
export const authBeforeEach = async (
|
|
@@ -24,7 +23,7 @@ export const authBeforeEach = async (
|
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
// 因为登陆成功会添加用户可以访问的路由,这里给到vue-router去重新resolve
|
|
27
|
-
return {
|
|
26
|
+
return { path: to.fullPath };
|
|
28
27
|
} catch (e) {
|
|
29
28
|
return { name: "login" };
|
|
30
29
|
}
|