@maketribe/ms-app 3.0.16 → 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/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/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 +2 -2
- 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/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
|
@@ -28,7 +28,7 @@ class RouteForm extends DataForm {
|
|
|
28
28
|
label: "\u56FE\u6807",
|
|
29
29
|
componentInfo: "MKFormIconSelect"
|
|
30
30
|
}),
|
|
31
|
-
new FormColumn({ name: "
|
|
31
|
+
new FormColumn({ name: "route", label: "\u8DEF\u5F84" }),
|
|
32
32
|
new FormColumn({
|
|
33
33
|
name: "type",
|
|
34
34
|
label: "\u8DEF\u7531\u7C7B\u578B",
|
|
@@ -60,7 +60,7 @@ class RouteForm extends DataForm {
|
|
|
60
60
|
type: `${item.type}` === RouteType.ROUTE ? RouteType.ROUTE : RouteType.LINK,
|
|
61
61
|
menuId: item.menuId,
|
|
62
62
|
iconName: item.iconName || "",
|
|
63
|
-
|
|
63
|
+
route: item.route || ""
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteForm.js","sources":["../../../../src/dataview/route/RouteForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\nimport { defineDataForm } from \"../../define-data-form\";\nimport { RouteType } from \"../../constants\";\nimport { MenuTable } from \"../menu/MenuTable\";\n\nexport type RouteResult = {\n id: string;\n name: string;\n title: string;\n type: number;\n menuId: string;\n iconName: string;\n
|
|
1
|
+
{"version":3,"file":"RouteForm.js","sources":["../../../../src/dataview/route/RouteForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\nimport { defineDataForm } from \"../../define-data-form\";\nimport { RouteType } from \"../../constants\";\nimport { MenuTable } from \"../menu/MenuTable\";\n\nexport type RouteResult = {\n id: string;\n name: string;\n title: string;\n type: number;\n menuId: string;\n iconName: string;\n route?: string;\n};\n\nexport type Route = {\n id: string;\n name: string;\n title: string;\n type: RouteType;\n menuId: string;\n iconName: string;\n route: string;\n};\n\nexport class RouteForm extends DataForm<RouteResult, Route> {\n constructor(options: DataFormOptions = {}) {\n super({ name: \"ms-route\", ...options });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.setColumns([\n new FormColumn({ name: \"id\", label: \"编号\" }),\n new FormColumn({ name: \"name\", label: \"路由名\", required: true }),\n new FormColumn({ name: \"title\", label: \"路由描述\", required: true }),\n new FormColumn({\n name: \"menuId\",\n label: \"所属菜单\",\n componentInfo: \"MKFormDataTableSelect\",\n required: true,\n componentProps: {\n labelFieldName: \"title\",\n dataTable: new MenuTable({ pageSize: 10 }),\n },\n }),\n new FormColumn({\n name: \"iconName\",\n label: \"图标\",\n componentInfo: \"MKFormIconSelect\",\n }),\n new FormColumn({ name: \"route\", label: \"路径\" }),\n new FormColumn({\n name: \"type\",\n label: \"路由类型\",\n defaultValue: RouteType.ROUTE,\n componentInfo: \"MKFormDataSelect\",\n required: true,\n componentProps: {\n options: [\n { value: RouteType.ROUTE, label: \"站内路由\" },\n { value: RouteType.LINK, label: \"站外链接\" },\n ],\n },\n }),\n ]);\n }\n\n formatSubmitData(data: any) {\n const type = Number.parseInt(data.type);\n\n return {\n ...data,\n iconName: data.iconName || null,\n type: Number.isNaN(type) ? RouteType.ROUTE : type,\n };\n }\n\n formatItem(item: RouteResult): Route {\n return {\n id: item.id,\n name: item.name || \"\",\n title: item.title || \"\",\n type:\n `${item.type}` === RouteType.ROUTE ? RouteType.ROUTE : RouteType.LINK,\n menuId: item.menuId,\n iconName: item.iconName || \"\",\n route: item.route || \"\",\n };\n }\n}\n\ndefineDataForm(RouteForm);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteTable.js","sources":["../../../../src/dataview/route/RouteTable.ts"],"sourcesContent":["import {\n DataTable,\n DataTableOptions,\n TableColumn,\n FilterColumn,\n TableActionColumn,\n} from \"@maketribe/dm\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport { Route, RouteResult } from \"./RouteForm\";\nimport { RouteType } from \"../../constants\";\n\nexport class RouteTable extends DataTable<RouteResult, Route> {\n constructor(options: DataTableOptions = {}) {\n super({ name: \"ms-route\", ...options });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.dataFilter.setColumns([\n new FilterColumn({\n name: \"name\",\n label: \"路由名\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"title\",\n label: \"路由描述\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"type\",\n label: \"路由类型\",\n componentInfo: \"MKConditionSelect\",\n componentProps: {\n options: [\n { value: 0, label: \"站内路由\" },\n { value: 1, label: \"站外链接\" },\n ],\n },\n }),\n ]);\n\n this.setColumns([\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\n new TableColumn({ name: \"name\", label: \"路由名\" }),\n new TableColumn({ name: \"title\", label: \"路由描述\" }),\n new TableColumn({\n name: \"type\",\n label: \"路由类型\",\n componentInfo: \"MKColumnObjectMappingText\",\n componentProps: {\n mapping: { 0: \"站内路由\", 1: \"站外链接\" },\n },\n }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: RouteResult): Route {\n return {\n id: item.id,\n name: item.name || \"\",\n title: item.title || \"\",\n type: item.type === 0 ? RouteType.ROUTE : RouteType.LINK,\n menuId: item.menuId,\n iconName: item.iconName || \"\",\n
|
|
1
|
+
{"version":3,"file":"RouteTable.js","sources":["../../../../src/dataview/route/RouteTable.ts"],"sourcesContent":["import {\n DataTable,\n DataTableOptions,\n TableColumn,\n FilterColumn,\n TableActionColumn,\n} from \"@maketribe/dm\";\nimport { defineDataTable } from \"../../define-data-table\";\nimport { Route, RouteResult } from \"./RouteForm\";\nimport { RouteType } from \"../../constants\";\n\nexport class RouteTable extends DataTable<RouteResult, Route> {\n constructor(options: DataTableOptions = {}) {\n super({ name: \"ms-route\", ...options });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.dataFilter.setColumns([\n new FilterColumn({\n name: \"name\",\n label: \"路由名\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"title\",\n label: \"路由描述\",\n componentInfo: \"MKConditionInput\",\n }),\n new FilterColumn({\n name: \"type\",\n label: \"路由类型\",\n componentInfo: \"MKConditionSelect\",\n componentProps: {\n options: [\n { value: 0, label: \"站内路由\" },\n { value: 1, label: \"站外链接\" },\n ],\n },\n }),\n ]);\n\n this.setColumns([\n new TableColumn({ name: \"id\", label: \"编号\", visible: false }),\n new TableColumn({ name: \"name\", label: \"路由名\" }),\n new TableColumn({ name: \"title\", label: \"路由描述\" }),\n new TableColumn({\n name: \"type\",\n label: \"路由类型\",\n componentInfo: \"MKColumnObjectMappingText\",\n componentProps: {\n mapping: { 0: \"站内路由\", 1: \"站外链接\" },\n },\n }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: RouteResult): Route {\n return {\n id: item.id,\n name: item.name || \"\",\n title: item.title || \"\",\n type: item.type === 0 ? RouteType.ROUTE : RouteType.LINK,\n menuId: item.menuId,\n iconName: item.iconName || \"\",\n route: item.route || \"\",\n };\n }\n}\n\ndefineDataTable(RouteTable);\n"],"names":[],"mappings":";;;;AAWO,MAAM,mBAAmB,SAA8B,CAAA;AAAA,EAC5D,WAAA,CAAY,OAA4B,GAAA,EAAI,EAAA;AAC1C,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,UAAY,EAAA,GAAG,SAAS,CAAA,CAAA;AAAA,GACxC;AAAA,EAEA,MAAgB,UAAa,GAAA;AAC3B,IAAA,MAAM,MAAM,UAAW,EAAA,CAAA;AAEvB,IAAA,IAAA,CAAK,WAAW,UAAW,CAAA;AAAA,MACzB,IAAI,YAAa,CAAA;AAAA,QACf,IAAM,EAAA,MAAA;AAAA,QACN,KAAO,EAAA,oBAAA;AAAA,QACP,aAAe,EAAA,kBAAA;AAAA,OAChB,CAAA;AAAA,MACD,IAAI,YAAa,CAAA;AAAA,QACf,IAAM,EAAA,OAAA;AAAA,QACN,KAAO,EAAA,0BAAA;AAAA,QACP,aAAe,EAAA,kBAAA;AAAA,OAChB,CAAA;AAAA,MACD,IAAI,YAAa,CAAA;AAAA,QACf,IAAM,EAAA,MAAA;AAAA,QACN,KAAO,EAAA,0BAAA;AAAA,QACP,aAAe,EAAA,mBAAA;AAAA,QACf,cAAgB,EAAA;AAAA,UACd,OAAS,EAAA;AAAA,YACP,EAAE,KAAA,EAAO,CAAG,EAAA,KAAA,EAAO,0BAAO,EAAA;AAAA,YAC1B,EAAE,KAAA,EAAO,CAAG,EAAA,KAAA,EAAO,0BAAO,EAAA;AAAA,WAC5B;AAAA,SACF;AAAA,OACD,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,UAAW,CAAA;AAAA,MACd,IAAI,YAAY,EAAE,IAAA,EAAM,MAAM,KAAO,EAAA,cAAA,EAAM,OAAS,EAAA,KAAA,EAAO,CAAA;AAAA,MAC3D,IAAI,WAAY,CAAA,EAAE,MAAM,MAAQ,EAAA,KAAA,EAAO,sBAAO,CAAA;AAAA,MAC9C,IAAI,WAAY,CAAA,EAAE,MAAM,OAAS,EAAA,KAAA,EAAO,4BAAQ,CAAA;AAAA,MAChD,IAAI,WAAY,CAAA;AAAA,QACd,IAAM,EAAA,MAAA;AAAA,QACN,KAAO,EAAA,0BAAA;AAAA,QACP,aAAe,EAAA,2BAAA;AAAA,QACf,cAAgB,EAAA;AAAA,UACd,OAAS,EAAA,EAAE,CAAG,EAAA,0BAAA,EAAQ,GAAG,0BAAO,EAAA;AAAA,SAClC;AAAA,OACD,CAAA;AAAA,MACD,IAAI,iBAAkB,EAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,WAAW,IAA0B,EAAA;AACnC,IAAO,OAAA;AAAA,MACL,IAAI,IAAK,CAAA,EAAA;AAAA,MACT,IAAA,EAAM,KAAK,IAAQ,IAAA,EAAA;AAAA,MACnB,KAAA,EAAO,KAAK,KAAS,IAAA,EAAA;AAAA,MACrB,MAAM,IAAK,CAAA,IAAA,KAAS,CAAI,GAAA,SAAA,CAAU,QAAQ,SAAU,CAAA,IAAA;AAAA,MACpD,QAAQ,IAAK,CAAA,MAAA;AAAA,MACb,QAAA,EAAU,KAAK,QAAY,IAAA,EAAA;AAAA,MAC3B,KAAA,EAAO,KAAK,KAAS,IAAA,EAAA;AAAA,KACvB,CAAA;AAAA,GACF;AACF,CAAA;AAEA,eAAA,CAAgB,UAAU,CAAA;;;;"}
|
|
@@ -45,7 +45,7 @@ const initApplication = async (options) => {
|
|
|
45
45
|
})
|
|
46
46
|
);
|
|
47
47
|
for (const route of routes) {
|
|
48
|
-
if (route.key.startsWith("index
|
|
48
|
+
if (route.key.startsWith("index")) {
|
|
49
49
|
msAppClient.pageManager.addExtendsPage(route);
|
|
50
50
|
} else {
|
|
51
51
|
msAppClient.pageManager.addNormalPage(route);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-application.js","sources":["../../src/init-application.ts"],"sourcesContent":["import { App, reactive } from \"vue\";\nimport {\n createRouter,\n createWebHashHistory,\n Router as VueRouter,\n} from \"vue-router\";\nimport { MSAppClient } from \"./core\";\nimport { HttpRequest, WebHttpRequest } from \"@maketribe/request\";\nimport { MSAPPCLIENT_CONTEXT_KEY } from \"./tokens\";\n\nimport { generateRoutesFromFiles } from \"./utils\";\nimport {\n DataFilterComponents,\n DataFormComponents,\n DataTableComponents,\n} from \"./core\";\n\nexport type InitMsApplicationOptions = {\n routes: any;\n vueRouter?: VueRouter;\n app: App;\n appID: string;\n logo?: string;\n projectName: string;\n locale?: string;\n httpRequest?: HttpRequest;\n};\n\nexport const initApplication = async (options: InitMsApplicationOptions) => {\n const app = options.app;\n\n const vueRouter =\n options.vueRouter ??\n createRouter({\n history: createWebHashHistory(),\n routes: [],\n });\n\n const msAppClient = reactive(\n new MSAppClient({\n appID: options!.appID,\n logo: options!.logo ?? \"\",\n projectName: options!.projectName,\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\n origin: location.origin,\n locale: options!.locale,\n vueRouter,\n dataTableComponents: new DataTableComponents(),\n dataFormComponents: new DataFormComponents(),\n dataFilterComponents: new DataFilterComponents(),\n whereFilterComponents: new DataFilterComponents(),\n })\n ) as unknown as MSAppClient;\n\n app.provide(MSAPPCLIENT_CONTEXT_KEY, { msAppClient });\n\n MSAppClient.instance = msAppClient;\n\n (window as any).msAppClient = msAppClient;\n\n const routes = generateRoutesFromFiles(\n Object.keys(options.routes).map((key) => {\n return {\n path: key.replace(/^\\.\\/pages\\/(.+)\\.vue$/, (_, g) => g),\n module: options.routes[key]?.default || options.routes[key],\n };\n })\n );\n\n for (const route of routes) {\n if (route.key.startsWith(\"index
|
|
1
|
+
{"version":3,"file":"init-application.js","sources":["../../src/init-application.ts"],"sourcesContent":["import { App, reactive } from \"vue\";\nimport {\n createRouter,\n createWebHashHistory,\n Router as VueRouter,\n} from \"vue-router\";\nimport { MSAppClient } from \"./core\";\nimport { HttpRequest, WebHttpRequest } from \"@maketribe/request\";\nimport { MSAPPCLIENT_CONTEXT_KEY } from \"./tokens\";\n\nimport { generateRoutesFromFiles } from \"./utils\";\nimport {\n DataFilterComponents,\n DataFormComponents,\n DataTableComponents,\n} from \"./core\";\n\nexport type InitMsApplicationOptions = {\n routes: any;\n vueRouter?: VueRouter;\n app: App;\n appID: string;\n logo?: string;\n projectName: string;\n locale?: string;\n httpRequest?: HttpRequest;\n};\n\nexport const initApplication = async (options: InitMsApplicationOptions) => {\n const app = options.app;\n\n const vueRouter =\n options.vueRouter ??\n createRouter({\n history: createWebHashHistory(),\n routes: [],\n });\n\n const msAppClient = reactive(\n new MSAppClient({\n appID: options!.appID,\n logo: options!.logo ?? \"\",\n projectName: options!.projectName,\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\n origin: location.origin,\n locale: options!.locale,\n vueRouter,\n dataTableComponents: new DataTableComponents(),\n dataFormComponents: new DataFormComponents(),\n dataFilterComponents: new DataFilterComponents(),\n whereFilterComponents: new DataFilterComponents(),\n })\n ) as unknown as MSAppClient;\n\n app.provide(MSAPPCLIENT_CONTEXT_KEY, { msAppClient });\n\n MSAppClient.instance = msAppClient;\n\n (window as any).msAppClient = msAppClient;\n\n const routes = generateRoutesFromFiles(\n Object.keys(options.routes).map((key) => {\n return {\n path: key.replace(/^\\.\\/pages\\/(.+)\\.vue$/, (_, g) => g),\n module: options.routes[key]?.default || options.routes[key],\n };\n })\n );\n\n for (const route of routes) {\n if (route.key.startsWith(\"index\")) {\n msAppClient.pageManager.addExtendsPage(route);\n } else {\n msAppClient.pageManager.addNormalPage(route);\n }\n }\n\n await msAppClient.init();\n\n app.use(msAppClient.vueRouter);\n\n return msAppClient;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA4Ba,MAAA,eAAA,GAAkB,OAAO,OAAsC,KAAA;AAC1E,EAAA,MAAM,MAAM,OAAQ,CAAA,GAAA,CAAA;AAEpB,EAAM,MAAA,SAAA,GACJ,OAAQ,CAAA,SAAA,IACR,YAAa,CAAA;AAAA,IACX,SAAS,oBAAqB,EAAA;AAAA,IAC9B,QAAQ,EAAC;AAAA,GACV,CAAA,CAAA;AAEH,EAAA,MAAM,WAAc,GAAA,QAAA;AAAA,IAClB,IAAI,WAAY,CAAA;AAAA,MACd,OAAO,OAAS,CAAA,KAAA;AAAA,MAChB,IAAA,EAAM,QAAS,IAAQ,IAAA,EAAA;AAAA,MACvB,aAAa,OAAS,CAAA,WAAA;AAAA,MACtB,WAAa,EAAA,OAAA,CAAQ,WAAe,IAAA,IAAI,cAAe,EAAA;AAAA,MACvD,QAAQ,QAAS,CAAA,MAAA;AAAA,MACjB,QAAQ,OAAS,CAAA,MAAA;AAAA,MACjB,SAAA;AAAA,MACA,mBAAA,EAAqB,IAAI,mBAAoB,EAAA;AAAA,MAC7C,kBAAA,EAAoB,IAAI,kBAAmB,EAAA;AAAA,MAC3C,oBAAA,EAAsB,IAAI,oBAAqB,EAAA;AAAA,MAC/C,qBAAA,EAAuB,IAAI,oBAAqB,EAAA;AAAA,KACjD,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,GAAA,CAAI,OAAQ,CAAA,uBAAA,EAAyB,EAAE,WAAA,EAAa,CAAA,CAAA;AAEpD,EAAA,WAAA,CAAY,QAAW,GAAA,WAAA,CAAA;AAEvB,EAAC,OAAe,WAAc,GAAA,WAAA,CAAA;AAE9B,EAAA,MAAM,MAAS,GAAA,uBAAA;AAAA,IACb,OAAO,IAAK,CAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACvC,MAAO,OAAA;AAAA,QACL,MAAM,GAAI,CAAA,OAAA,CAAQ,0BAA0B,CAAC,CAAA,EAAG,MAAM,CAAC,CAAA;AAAA,QACvD,MAAA,EAAQ,QAAQ,MAAO,CAAA,GAAG,GAAG,OAAW,IAAA,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,OAC5D,CAAA;AAAA,KACD,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,IAAA,IAAI,KAAM,CAAA,GAAA,CAAI,UAAW,CAAA,OAAO,CAAG,EAAA;AACjC,MAAY,WAAA,CAAA,WAAA,CAAY,eAAe,KAAK,CAAA,CAAA;AAAA,KACvC,MAAA;AACL,MAAY,WAAA,CAAA,WAAA,CAAY,cAAc,KAAK,CAAA,CAAA;AAAA,KAC7C;AAAA,GACF;AAEA,EAAA,MAAM,YAAY,IAAK,EAAA,CAAA;AAEvB,EAAI,GAAA,CAAA,GAAA,CAAI,YAAY,SAAS,CAAA,CAAA;AAE7B,EAAO,OAAA,WAAA,CAAA;AACT;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NodeType, NodeProp, IterMode, Tree, TreeFragment, Parser } from '../../../../../@lezer_common@1.1.1/node_modules/@lezer/common/dist/index.js';
|
|
2
|
-
import { Facet, StateField, EditorState,
|
|
3
|
-
import { EditorView, ViewPlugin,
|
|
2
|
+
import { Facet, StateField, EditorState, StateEffect, RangeSet, countColumn, combineConfig, RangeSetBuilder, Prec } from '../../../../../@codemirror_state@6.3.2/node_modules/@codemirror/state/dist/index.js';
|
|
3
|
+
import { EditorView, ViewPlugin, logException, gutter, Decoration, WidgetType, GutterMarker } from '../../../../../@codemirror_view@6.22.1/node_modules/@codemirror/view/dist/index.js';
|
|
4
4
|
import { tags, styleTags, tagHighlighter, highlightTree } from '../../../../../@lezer_highlight@1.2.0/node_modules/@lezer/highlight/dist/index.js';
|
|
5
5
|
import { StyleModule } from '../../../../../style-mod@4.1.0/node_modules/style-mod/src/style-mod.js';
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sources":["../../../src/router-middleware/auth.ts"],"sourcesContent":["import { RouteLocationNormalized, RouteLocationRaw } from \"vue-router\";\nimport
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../src/router-middleware/auth.ts"],"sourcesContent":["import { RouteLocationNormalized, RouteLocationRaw } from \"vue-router\";\nimport type { MSAppClient } from \"../core\";\n\nexport const authBeforeEach = async (\n msAppClient: MSAppClient,\n to: RouteLocationNormalized,\n from: RouteLocationNormalized\n): Promise<RouteLocationRaw | void> => {\n if (to.meta.isAuthorization === false) {\n return;\n }\n\n let userSession = msAppClient.userSession;\n\n if (!userSession) {\n try {\n await msAppClient.loadCurrentUserSession();\n\n userSession = msAppClient.userSession;\n\n if (!userSession) {\n return { name: \"login\" };\n }\n\n // 因为登陆成功会添加用户可以访问的路由,这里给到vue-router去重新resolve\n return { path: to.fullPath };\n } catch (e) {\n return { name: \"login\" };\n }\n }\n};\n"],"names":[],"mappings":"AAGO,MAAM,cAAiB,GAAA,OAC5B,WACA,EAAA,EAAA,EACA,IACqC,KAAA;AACrC,EAAI,IAAA,EAAA,CAAG,IAAK,CAAA,eAAA,KAAoB,KAAO,EAAA;AACrC,IAAA,OAAA;AAAA,GACF;AAEA,EAAA,IAAI,cAAc,WAAY,CAAA,WAAA,CAAA;AAE9B,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAI,IAAA;AACF,MAAA,MAAM,YAAY,sBAAuB,EAAA,CAAA;AAEzC,MAAA,WAAA,GAAc,WAAY,CAAA,WAAA,CAAA;AAE1B,MAAA,IAAI,CAAC,WAAa,EAAA;AAChB,QAAO,OAAA,EAAE,MAAM,OAAQ,EAAA,CAAA;AAAA,OACzB;AAGA,MAAO,OAAA,EAAE,IAAM,EAAA,EAAA,CAAG,QAAS,EAAA,CAAA;AAAA,aACpB,CAAG,EAAA;AACV,MAAO,OAAA,EAAE,MAAM,OAAQ,EAAA,CAAA;AAAA,KACzB;AAAA,GACF;AACF;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maketribe/ms-app",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.17",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"files": [
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"vue-codemirror": "^6.1.1",
|
|
22
22
|
"vue-router": "^4.2.4",
|
|
23
23
|
"@maketribe/dm": "^3.0.9",
|
|
24
|
-
"@maketribe/locale": "^1.0.5",
|
|
25
24
|
"@maketribe/request": "^1.1.11",
|
|
25
|
+
"@maketribe/locale": "^1.0.5",
|
|
26
26
|
"@maketribe/utils": "^1.1.4"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { defineAsyncComponent } from "vue";
|
|
1
2
|
import { withInstall } from "@maketribe/utils";
|
|
2
|
-
import JsonEditor from "./json-editor";
|
|
3
3
|
|
|
4
|
-
export const MKJsonEditor = withInstall(
|
|
4
|
+
export const MKJsonEditor = withInstall(
|
|
5
|
+
defineAsyncComponent(() => import("./json-editor"))
|
|
6
|
+
);
|
|
5
7
|
|
|
6
8
|
export default MKJsonEditor;
|
|
@@ -6,11 +6,16 @@ export interface MKMaterialSelectOptions {
|
|
|
6
6
|
allowMaterialTypeValues: MaterialType["value"][];
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export type MaterialSelectResult = {
|
|
10
|
+
success: boolean;
|
|
11
|
+
data: Material | null;
|
|
12
|
+
path: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
9
15
|
export interface IMKMaterialSelect {
|
|
10
|
-
(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}>;
|
|
16
|
+
(
|
|
17
|
+
options?: MKMaterialSelectOptions,
|
|
18
|
+
appContext?: AppContext
|
|
19
|
+
): Promise<MaterialSelectResult>;
|
|
15
20
|
_context: AppContext | null;
|
|
16
21
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MKMaterialSelect, MaterialSelectResult } from "../material-select";
|
|
2
|
+
import { UploadContext, UploadResult } from "./UploadContext";
|
|
3
|
+
|
|
4
|
+
export class MaterialUploadContext extends UploadContext {
|
|
5
|
+
async selectFile(): Promise<UploadResult> {
|
|
6
|
+
const materialSelectResult = await MKMaterialSelect();
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
success: materialSelectResult.success,
|
|
10
|
+
path: materialSelectResult.path,
|
|
11
|
+
msg: "",
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { WebFileUpload } from "@maketribe/request";
|
|
2
|
+
import { UploadContext, UploadResult } from "./UploadContext";
|
|
3
|
+
import { MSAppClient } from "../../core";
|
|
4
|
+
|
|
5
|
+
export type WebFileUploadContextOptions = {
|
|
6
|
+
webFileUpload?: WebFileUpload;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export class WebFileUploadContext extends UploadContext {
|
|
10
|
+
webFileUpload: WebFileUpload;
|
|
11
|
+
|
|
12
|
+
constructor(options: WebFileUploadContextOptions = {}) {
|
|
13
|
+
super();
|
|
14
|
+
|
|
15
|
+
this.webFileUpload =
|
|
16
|
+
options.webFileUpload ??
|
|
17
|
+
new WebFileUpload({
|
|
18
|
+
httpRequest: MSAppClient.instance!.httpRequest,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async selectFile(): Promise<UploadResult> {
|
|
23
|
+
const input = document.createElement("input");
|
|
24
|
+
|
|
25
|
+
input.type = "file";
|
|
26
|
+
Object.assign(input.style, {
|
|
27
|
+
width: "1px",
|
|
28
|
+
height: "1px",
|
|
29
|
+
display: "none",
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const file: File | null = await new Promise((resolve) => {
|
|
33
|
+
const handleFileChange = (event: Event) => {
|
|
34
|
+
const files = input.files;
|
|
35
|
+
|
|
36
|
+
input.parentElement?.removeChild(input);
|
|
37
|
+
|
|
38
|
+
resolve(files?.length ? files[0] : null);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
input.addEventListener("change", handleFileChange);
|
|
42
|
+
|
|
43
|
+
document.body.append(input);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (!file) {
|
|
47
|
+
return { success: true, path: "", msg: "" };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const response = await this.webFileUpload.upload(file);
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
success: response.data.code === 200,
|
|
54
|
+
path: response.data.data.path,
|
|
55
|
+
msg: response.data.msg,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ExtractPropTypes } from "vue";
|
|
2
|
+
import { buildProps } from "@maketribe/utils";
|
|
3
|
+
import { UploadContext } from "./UploadContext";
|
|
4
|
+
import { MaterialUploadContext } from "./MaterialUploadContext";
|
|
5
|
+
|
|
6
|
+
export const uploadFileProps = buildProps({
|
|
7
|
+
modelValue: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: true,
|
|
10
|
+
},
|
|
11
|
+
uploadContext: {
|
|
12
|
+
type: UploadContext,
|
|
13
|
+
default: () => new MaterialUploadContext(),
|
|
14
|
+
},
|
|
15
|
+
} as const);
|
|
16
|
+
|
|
17
|
+
export type UploadFileProps = ExtractPropTypes<typeof uploadFileProps>;
|
|
18
|
+
|
|
19
|
+
export const uploadFileEmits = {
|
|
20
|
+
"upload:modelValue": (path: string) => true,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export type UploadFileEmits = typeof uploadFileEmits;
|
|
@@ -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
|
+
});
|
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
|
}
|