@deppon/deppon-router 2.2.1 → 2.2.3
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/LICENSE +22 -22
- package/es/composable.js +40 -40
- package/es/guards.d.ts +8 -8
- package/es/guards.js +6 -6
- package/es/types.d.ts +4 -4
- package/es/utils.d.ts +142 -142
- package/es/vue.d.ts +16 -16
- package/es/vue.js +10 -10
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Deppon
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Deppon
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/es/composable.js
CHANGED
|
@@ -36,24 +36,24 @@ function createRouteProxy(routeRef, router) {
|
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
/**
|
|
40
|
-
* Composition API: useRouter
|
|
41
|
-
* 在 Vue 3 Composition API 中使用 router
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* import { useRouter } from '@deppon/deppon-router'
|
|
45
|
-
*
|
|
46
|
-
* export default {
|
|
47
|
-
* setup() {
|
|
48
|
-
* const router = useRouter()
|
|
49
|
-
*
|
|
50
|
-
* const handleClick = () => {
|
|
51
|
-
* router.push('/home')
|
|
52
|
-
* }
|
|
53
|
-
*
|
|
54
|
-
* return { handleClick }
|
|
55
|
-
* }
|
|
56
|
-
* }
|
|
39
|
+
/**
|
|
40
|
+
* Composition API: useRouter
|
|
41
|
+
* 在 Vue 3 Composition API 中使用 router
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* import { useRouter } from '@deppon/deppon-router'
|
|
45
|
+
*
|
|
46
|
+
* export default {
|
|
47
|
+
* setup() {
|
|
48
|
+
* const router = useRouter()
|
|
49
|
+
*
|
|
50
|
+
* const handleClick = () => {
|
|
51
|
+
* router.push('/home')
|
|
52
|
+
* }
|
|
53
|
+
*
|
|
54
|
+
* return { handleClick }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
57
|
*/
|
|
58
58
|
function useRouter() {
|
|
59
59
|
// 优先从 provide 获取增强的 router
|
|
@@ -78,28 +78,28 @@ function useRouter() {
|
|
|
78
78
|
return routerFromProvide;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
/**
|
|
82
|
-
* Composition API: useRoute
|
|
83
|
-
* 在 Vue 3 Composition API 中使用当前路由
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* import { useRoute } from '@deppon/deppon-router'
|
|
87
|
-
*
|
|
88
|
-
* export default {
|
|
89
|
-
* setup() {
|
|
90
|
-
* const route = useRoute()
|
|
91
|
-
*
|
|
92
|
-
* console.log(route.path)
|
|
93
|
-
* console.log(route.params)
|
|
94
|
-
* console.log(route.query)
|
|
95
|
-
*
|
|
96
|
-
* // 使用 getQueryByRoute 获取参数(自动适配 iframe 环境)
|
|
97
|
-
* const allParams = route.getQueryByRoute();
|
|
98
|
-
* const sourceType = route.getQueryByRoute('sourceType');
|
|
99
|
-
*
|
|
100
|
-
* return {}
|
|
101
|
-
* }
|
|
102
|
-
* }
|
|
81
|
+
/**
|
|
82
|
+
* Composition API: useRoute
|
|
83
|
+
* 在 Vue 3 Composition API 中使用当前路由
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* import { useRoute } from '@deppon/deppon-router'
|
|
87
|
+
*
|
|
88
|
+
* export default {
|
|
89
|
+
* setup() {
|
|
90
|
+
* const route = useRoute()
|
|
91
|
+
*
|
|
92
|
+
* console.log(route.path)
|
|
93
|
+
* console.log(route.params)
|
|
94
|
+
* console.log(route.query)
|
|
95
|
+
*
|
|
96
|
+
* // 使用 getQueryByRoute 获取参数(自动适配 iframe 环境)
|
|
97
|
+
* const allParams = route.getQueryByRoute();
|
|
98
|
+
* const sourceType = route.getQueryByRoute('sourceType');
|
|
99
|
+
*
|
|
100
|
+
* return {}
|
|
101
|
+
* }
|
|
102
|
+
* }
|
|
103
103
|
*/
|
|
104
104
|
function useRoute() {
|
|
105
105
|
try {
|
package/es/guards.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 设置路由守卫
|
|
3
|
-
* @param {Object} router - Vue Router 实例
|
|
4
|
-
* @param {Object} guards - 守卫配置
|
|
5
|
-
* @param {Object} log - 日志实例
|
|
6
|
-
* @param {Function} onRouteChange - 路由变化回调
|
|
7
|
-
*/
|
|
8
|
-
export function setupGuards(router: Object, guards: Object | undefined, log: Object, onRouteChange: Function): void;
|
|
1
|
+
/**
|
|
2
|
+
* 设置路由守卫
|
|
3
|
+
* @param {Object} router - Vue Router 实例
|
|
4
|
+
* @param {Object} guards - 守卫配置
|
|
5
|
+
* @param {Object} log - 日志实例
|
|
6
|
+
* @param {Function} onRouteChange - 路由变化回调
|
|
7
|
+
*/
|
|
8
|
+
export function setupGuards(router: Object, guards: Object | undefined, log: Object, onRouteChange: Function): void;
|
package/es/guards.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import './_virtual/_rollup-plugin-inject-process-env.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* 设置路由守卫
|
|
5
|
-
* @param {Object} router - Vue Router 实例
|
|
6
|
-
* @param {Object} guards - 守卫配置
|
|
7
|
-
* @param {Object} log - 日志实例
|
|
8
|
-
* @param {Function} onRouteChange - 路由变化回调
|
|
3
|
+
/**
|
|
4
|
+
* 设置路由守卫
|
|
5
|
+
* @param {Object} router - Vue Router 实例
|
|
6
|
+
* @param {Object} guards - 守卫配置
|
|
7
|
+
* @param {Object} log - 日志实例
|
|
8
|
+
* @param {Function} onRouteChange - 路由变化回调
|
|
9
9
|
*/
|
|
10
10
|
function setupGuards(router) {
|
|
11
11
|
var guards = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
package/es/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 重新导出 vue-router 的类型(供其他包使用)
|
|
3
|
-
*/
|
|
4
|
-
export type { RouterView, Router, RouteRecordRaw, NavigationGuardNext, RouteLocationNormalized } from 'vue-router';
|
|
1
|
+
/**
|
|
2
|
+
* 重新导出 vue-router 的类型(供其他包使用)
|
|
3
|
+
*/
|
|
4
|
+
export type { RouterView, Router, RouteRecordRaw, NavigationGuardNext, RouteLocationNormalized } from 'vue-router';
|
package/es/utils.d.ts
CHANGED
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
export function createRouterUtils(router: any, defaultViewTab?: null): {
|
|
2
|
-
/**
|
|
3
|
-
* 包装后的 push 方法,自动应用默认的 _viewTab 配置
|
|
4
|
-
* @param {Object|String} location - 路由位置
|
|
5
|
-
* @param {Function} onComplete - 成功回调
|
|
6
|
-
* @param {Function} onAbort - 失败回调
|
|
7
|
-
*/
|
|
8
|
-
push(location: Object | string, onComplete: Function, onAbort: Function): Promise<any>;
|
|
9
|
-
/**
|
|
10
|
-
* 安全的路由跳转(带错误处理)
|
|
11
|
-
* @param {Object|String} location - 路由位置
|
|
12
|
-
* @param {Function} onComplete - 成功回调
|
|
13
|
-
* @param {Function} onAbort - 失败回调
|
|
14
|
-
*/
|
|
15
|
-
safePush(location: Object | string, onComplete: Function, onAbort: Function): any;
|
|
16
|
-
/**
|
|
17
|
-
* 安全的路由替换(带错误处理)
|
|
18
|
-
* @param {Object|String} location - 路由位置
|
|
19
|
-
* @param {Function} onComplete - 成功回调
|
|
20
|
-
* @param {Function} onAbort - 失败回调
|
|
21
|
-
*/
|
|
22
|
-
safeReplace(location: Object | string, onComplete: Function, onAbort: Function): any;
|
|
23
|
-
/**
|
|
24
|
-
* 根据路由名称跳转
|
|
25
|
-
* @param {String} name - 路由名称
|
|
26
|
-
* @param {Object} params - 路由参数
|
|
27
|
-
* @param {Object} query - 查询参数
|
|
28
|
-
*/
|
|
29
|
-
pushByName(name: string, params?: Object, query?: Object): any;
|
|
30
|
-
/**
|
|
31
|
-
* 根据路由路径跳转
|
|
32
|
-
* @param {String} path - 路由路径
|
|
33
|
-
* @param {Object} query - 查询参数
|
|
34
|
-
*/
|
|
35
|
-
pushByPath(path: string, query?: Object): any;
|
|
36
|
-
/**
|
|
37
|
-
* 返回上一页
|
|
38
|
-
* @param {Number} delta - 返回的步数,默认为 1
|
|
39
|
-
*/
|
|
40
|
-
goBack(delta?: number): void;
|
|
41
|
-
/**
|
|
42
|
-
* 关闭当前标签页
|
|
43
|
-
* @param {string} [url] - 标签页 URL(默认使用当前页面的 location.href)
|
|
44
|
-
* @param {string} [type='IFRAME'] - 标签页类型(默认:'IFRAME')
|
|
45
|
-
*/
|
|
46
|
-
closeCurrentTab(url?: string | undefined, type?: string | undefined): void;
|
|
47
|
-
/**
|
|
48
|
-
* 检查路由是否存在(包括动态添加的路由)
|
|
49
|
-
* @param {String} name - 路由名称
|
|
50
|
-
* @returns {Boolean}
|
|
51
|
-
*/
|
|
52
|
-
hasRoute(name: string): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* 获取路由配置(包括动态添加的路由)
|
|
55
|
-
* @param {String} name - 路由名称
|
|
56
|
-
* @returns {Object|null}
|
|
57
|
-
*/
|
|
58
|
-
getRouteConfig(name: string): Object | null;
|
|
59
|
-
/**
|
|
60
|
-
* 智能获取路由参数:在 iframe 环境中优先从父级获取,否则从当前路由 query 获取
|
|
61
|
-
* 与 depponPush 的参数获取逻辑保持一致
|
|
62
|
-
* @param {String} [key] - 参数键名,如果不提供则返回所有参数对象
|
|
63
|
-
* @returns {any} 参数值(如果提供了 key)或参数对象(如果未提供 key)
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* // 获取所有参数
|
|
67
|
-
* const params = router.getQueryByRoute();
|
|
68
|
-
*
|
|
69
|
-
* // 获取指定参数
|
|
70
|
-
* const sourceType = router.getQueryByRoute('sourceType');
|
|
71
|
-
*/
|
|
72
|
-
getQueryByRoute(key?: string | undefined): any;
|
|
73
|
-
/**
|
|
74
|
-
* 智能路由跳转:在 iframe 环境中自动使用 viewTab,否则使用 router.push
|
|
75
|
-
* 参数传递方式与 router.push 完全一致,在 iframe 环境中会自动适配 viewTab
|
|
76
|
-
* @param {Object|String} location - 路由位置(与 router.push 一致)
|
|
77
|
-
* - 如果是字符串:路径字符串,如 '/home' 或 '/home?id=1'
|
|
78
|
-
* - 如果是对象,可以包含以下属性:
|
|
79
|
-
* - path: 路径
|
|
80
|
-
* - name: 路由名称
|
|
81
|
-
* - params: 路由参数(在 iframe 环境中会传递给 viewTab 的 params)
|
|
82
|
-
* - query: 查询参数(会转换为 URL 的 query string)
|
|
83
|
-
* - _viewTab: viewTab 选项对象(可选,仅在 iframe 环境中生效)
|
|
84
|
-
* - title: 标签页标题(默认使用路由 meta.title 或 '新页面')
|
|
85
|
-
* - uumsFunction: UUMS 功能配置
|
|
86
|
-
* - functionCode: 功能代码
|
|
87
|
-
* - sourceSystem: 来源系统
|
|
88
|
-
* - closeCurrentTab: 是否关闭当前标签页(默认 false)
|
|
89
|
-
* @param {Function} [onComplete] - 成功回调(与 router.push 一致)
|
|
90
|
-
* @param {Function} [onAbort] - 失败回调(与 router.push 一致)
|
|
91
|
-
* @returns {Promise} 跳转 Promise
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* // 基本用法(与 router.push 完全一致,在 iframe 环境中自动使用 viewTab)
|
|
95
|
-
* router.depponPush('/home');
|
|
96
|
-
* router.depponPush({ path: '/home', query: { id: 1 } });
|
|
97
|
-
* router.depponPush({ name: 'Home', params: { id: 1 } });
|
|
98
|
-
*
|
|
99
|
-
* // 在 iframe 环境中自定义 viewTab 选项
|
|
100
|
-
* router.depponPush({
|
|
101
|
-
* path: '/preferInfo',
|
|
102
|
-
* query: { sourceType: 'insert' },
|
|
103
|
-
* params: { custNumber: '701265308', preferId: '1312' },
|
|
104
|
-
* _viewTab: {
|
|
105
|
-
* title: 'CMC-产品折扣新增',
|
|
106
|
-
* uumsFunction: {
|
|
107
|
-
* functionCode: 'CMC_FUNCTION_00002',
|
|
108
|
-
* sourceSystem: 'CMC',
|
|
109
|
-
* },
|
|
110
|
-
* closeCurrentTab: true,
|
|
111
|
-
* },
|
|
112
|
-
* });
|
|
113
|
-
*
|
|
114
|
-
* // 替换原有代码示例:
|
|
115
|
-
* // 原代码:
|
|
116
|
-
* // if (top.viewTab) {
|
|
117
|
-
* // let params = { sourceType: 'insert' };
|
|
118
|
-
* // let url = location.origin + '/#/preferInfo?sourceType=insert';
|
|
119
|
-
* // let tabUrl = top.Ext.urlAppend(url, 'isUap=true');
|
|
120
|
-
* // top.closeTab(tabUrl, 'IFRAME');
|
|
121
|
-
* // top.viewTab('CMC-产品折扣新增', url, 'iframe', params, { ... });
|
|
122
|
-
* // } else {
|
|
123
|
-
* // this.$router.push({ path: '/preferInfo', query: { sourceType: 'insert' } });
|
|
124
|
-
* // }
|
|
125
|
-
* //
|
|
126
|
-
* // 新代码(自动适配):
|
|
127
|
-
* router.depponPush({
|
|
128
|
-
* path: '/preferInfo',
|
|
129
|
-
* query: { sourceType: 'insert' },
|
|
130
|
-
* params: { sourceType: 'insert' },
|
|
131
|
-
* _viewTab: {
|
|
132
|
-
* title: 'CMC-产品折扣新增',
|
|
133
|
-
* uumsFunction: {
|
|
134
|
-
* functionCode: 'CMC_FUNCTION_00002',
|
|
135
|
-
* sourceSystem: 'CMC',
|
|
136
|
-
* },
|
|
137
|
-
* closeCurrentTab: true,
|
|
138
|
-
* },
|
|
139
|
-
* });
|
|
140
|
-
*/
|
|
141
|
-
depponPush(location: Object | string, onComplete?: Function | undefined, onAbort?: Function | undefined): Promise<any>;
|
|
142
|
-
};
|
|
1
|
+
export function createRouterUtils(router: any, defaultViewTab?: null): {
|
|
2
|
+
/**
|
|
3
|
+
* 包装后的 push 方法,自动应用默认的 _viewTab 配置
|
|
4
|
+
* @param {Object|String} location - 路由位置
|
|
5
|
+
* @param {Function} onComplete - 成功回调
|
|
6
|
+
* @param {Function} onAbort - 失败回调
|
|
7
|
+
*/
|
|
8
|
+
push(location: Object | string, onComplete: Function, onAbort: Function): Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* 安全的路由跳转(带错误处理)
|
|
11
|
+
* @param {Object|String} location - 路由位置
|
|
12
|
+
* @param {Function} onComplete - 成功回调
|
|
13
|
+
* @param {Function} onAbort - 失败回调
|
|
14
|
+
*/
|
|
15
|
+
safePush(location: Object | string, onComplete: Function, onAbort: Function): any;
|
|
16
|
+
/**
|
|
17
|
+
* 安全的路由替换(带错误处理)
|
|
18
|
+
* @param {Object|String} location - 路由位置
|
|
19
|
+
* @param {Function} onComplete - 成功回调
|
|
20
|
+
* @param {Function} onAbort - 失败回调
|
|
21
|
+
*/
|
|
22
|
+
safeReplace(location: Object | string, onComplete: Function, onAbort: Function): any;
|
|
23
|
+
/**
|
|
24
|
+
* 根据路由名称跳转
|
|
25
|
+
* @param {String} name - 路由名称
|
|
26
|
+
* @param {Object} params - 路由参数
|
|
27
|
+
* @param {Object} query - 查询参数
|
|
28
|
+
*/
|
|
29
|
+
pushByName(name: string, params?: Object, query?: Object): any;
|
|
30
|
+
/**
|
|
31
|
+
* 根据路由路径跳转
|
|
32
|
+
* @param {String} path - 路由路径
|
|
33
|
+
* @param {Object} query - 查询参数
|
|
34
|
+
*/
|
|
35
|
+
pushByPath(path: string, query?: Object): any;
|
|
36
|
+
/**
|
|
37
|
+
* 返回上一页
|
|
38
|
+
* @param {Number} delta - 返回的步数,默认为 1
|
|
39
|
+
*/
|
|
40
|
+
goBack(delta?: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* 关闭当前标签页
|
|
43
|
+
* @param {string} [url] - 标签页 URL(默认使用当前页面的 location.href)
|
|
44
|
+
* @param {string} [type='IFRAME'] - 标签页类型(默认:'IFRAME')
|
|
45
|
+
*/
|
|
46
|
+
closeCurrentTab(url?: string | undefined, type?: string | undefined): void;
|
|
47
|
+
/**
|
|
48
|
+
* 检查路由是否存在(包括动态添加的路由)
|
|
49
|
+
* @param {String} name - 路由名称
|
|
50
|
+
* @returns {Boolean}
|
|
51
|
+
*/
|
|
52
|
+
hasRoute(name: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 获取路由配置(包括动态添加的路由)
|
|
55
|
+
* @param {String} name - 路由名称
|
|
56
|
+
* @returns {Object|null}
|
|
57
|
+
*/
|
|
58
|
+
getRouteConfig(name: string): Object | null;
|
|
59
|
+
/**
|
|
60
|
+
* 智能获取路由参数:在 iframe 环境中优先从父级获取,否则从当前路由 query 获取
|
|
61
|
+
* 与 depponPush 的参数获取逻辑保持一致
|
|
62
|
+
* @param {String} [key] - 参数键名,如果不提供则返回所有参数对象
|
|
63
|
+
* @returns {any} 参数值(如果提供了 key)或参数对象(如果未提供 key)
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* // 获取所有参数
|
|
67
|
+
* const params = router.getQueryByRoute();
|
|
68
|
+
*
|
|
69
|
+
* // 获取指定参数
|
|
70
|
+
* const sourceType = router.getQueryByRoute('sourceType');
|
|
71
|
+
*/
|
|
72
|
+
getQueryByRoute(key?: string | undefined): any;
|
|
73
|
+
/**
|
|
74
|
+
* 智能路由跳转:在 iframe 环境中自动使用 viewTab,否则使用 router.push
|
|
75
|
+
* 参数传递方式与 router.push 完全一致,在 iframe 环境中会自动适配 viewTab
|
|
76
|
+
* @param {Object|String} location - 路由位置(与 router.push 一致)
|
|
77
|
+
* - 如果是字符串:路径字符串,如 '/home' 或 '/home?id=1'
|
|
78
|
+
* - 如果是对象,可以包含以下属性:
|
|
79
|
+
* - path: 路径
|
|
80
|
+
* - name: 路由名称
|
|
81
|
+
* - params: 路由参数(在 iframe 环境中会传递给 viewTab 的 params)
|
|
82
|
+
* - query: 查询参数(会转换为 URL 的 query string)
|
|
83
|
+
* - _viewTab: viewTab 选项对象(可选,仅在 iframe 环境中生效)
|
|
84
|
+
* - title: 标签页标题(默认使用路由 meta.title 或 '新页面')
|
|
85
|
+
* - uumsFunction: UUMS 功能配置
|
|
86
|
+
* - functionCode: 功能代码
|
|
87
|
+
* - sourceSystem: 来源系统
|
|
88
|
+
* - closeCurrentTab: 是否关闭当前标签页(默认 false)
|
|
89
|
+
* @param {Function} [onComplete] - 成功回调(与 router.push 一致)
|
|
90
|
+
* @param {Function} [onAbort] - 失败回调(与 router.push 一致)
|
|
91
|
+
* @returns {Promise} 跳转 Promise
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* // 基本用法(与 router.push 完全一致,在 iframe 环境中自动使用 viewTab)
|
|
95
|
+
* router.depponPush('/home');
|
|
96
|
+
* router.depponPush({ path: '/home', query: { id: 1 } });
|
|
97
|
+
* router.depponPush({ name: 'Home', params: { id: 1 } });
|
|
98
|
+
*
|
|
99
|
+
* // 在 iframe 环境中自定义 viewTab 选项
|
|
100
|
+
* router.depponPush({
|
|
101
|
+
* path: '/preferInfo',
|
|
102
|
+
* query: { sourceType: 'insert' },
|
|
103
|
+
* params: { custNumber: '701265308', preferId: '1312' },
|
|
104
|
+
* _viewTab: {
|
|
105
|
+
* title: 'CMC-产品折扣新增',
|
|
106
|
+
* uumsFunction: {
|
|
107
|
+
* functionCode: 'CMC_FUNCTION_00002',
|
|
108
|
+
* sourceSystem: 'CMC',
|
|
109
|
+
* },
|
|
110
|
+
* closeCurrentTab: true,
|
|
111
|
+
* },
|
|
112
|
+
* });
|
|
113
|
+
*
|
|
114
|
+
* // 替换原有代码示例:
|
|
115
|
+
* // 原代码:
|
|
116
|
+
* // if (top.viewTab) {
|
|
117
|
+
* // let params = { sourceType: 'insert' };
|
|
118
|
+
* // let url = location.origin + '/#/preferInfo?sourceType=insert';
|
|
119
|
+
* // let tabUrl = top.Ext.urlAppend(url, 'isUap=true');
|
|
120
|
+
* // top.closeTab(tabUrl, 'IFRAME');
|
|
121
|
+
* // top.viewTab('CMC-产品折扣新增', url, 'iframe', params, { ... });
|
|
122
|
+
* // } else {
|
|
123
|
+
* // this.$router.push({ path: '/preferInfo', query: { sourceType: 'insert' } });
|
|
124
|
+
* // }
|
|
125
|
+
* //
|
|
126
|
+
* // 新代码(自动适配):
|
|
127
|
+
* router.depponPush({
|
|
128
|
+
* path: '/preferInfo',
|
|
129
|
+
* query: { sourceType: 'insert' },
|
|
130
|
+
* params: { sourceType: 'insert' },
|
|
131
|
+
* _viewTab: {
|
|
132
|
+
* title: 'CMC-产品折扣新增',
|
|
133
|
+
* uumsFunction: {
|
|
134
|
+
* functionCode: 'CMC_FUNCTION_00002',
|
|
135
|
+
* sourceSystem: 'CMC',
|
|
136
|
+
* },
|
|
137
|
+
* closeCurrentTab: true,
|
|
138
|
+
* },
|
|
139
|
+
* });
|
|
140
|
+
*/
|
|
141
|
+
depponPush(location: Object | string, onComplete?: Function | undefined, onAbort?: Function | undefined): Promise<any>;
|
|
142
|
+
};
|
package/es/vue.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export { install };
|
|
3
|
-
}
|
|
4
|
-
export default _default;
|
|
5
|
-
/**
|
|
6
|
-
* Vue 插件安装函数
|
|
7
|
-
* @param {Object} app - Vue 应用实例
|
|
8
|
-
* @param {Object|Array} options - 配置选项或路由配置数组
|
|
9
|
-
* @param {Object} options.router - 已创建的 router 实例(如果提供,将直接使用)
|
|
10
|
-
* @param {Array} options.routes - 路由配置数组
|
|
11
|
-
* @param {Object} options.routerOptions - Vue Router 原始配置选项
|
|
12
|
-
* @param {Object} options.guards - 路由守卫配置
|
|
13
|
-
* @param {Object} options.log - 日志实例(可选,用于路由追踪)
|
|
14
|
-
* @param {Function} options.onRouteChange - 路由变化回调(可选)
|
|
15
|
-
*/
|
|
16
|
-
declare function install(app: Object, options?: Object | any[]): void;
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
export { install };
|
|
3
|
+
}
|
|
4
|
+
export default _default;
|
|
5
|
+
/**
|
|
6
|
+
* Vue 插件安装函数
|
|
7
|
+
* @param {Object} app - Vue 应用实例
|
|
8
|
+
* @param {Object|Array} options - 配置选项或路由配置数组
|
|
9
|
+
* @param {Object} options.router - 已创建的 router 实例(如果提供,将直接使用)
|
|
10
|
+
* @param {Array} options.routes - 路由配置数组
|
|
11
|
+
* @param {Object} options.routerOptions - Vue Router 原始配置选项
|
|
12
|
+
* @param {Object} options.guards - 路由守卫配置
|
|
13
|
+
* @param {Object} options.log - 日志实例(可选,用于路由追踪)
|
|
14
|
+
* @param {Function} options.onRouteChange - 路由变化回调(可选)
|
|
15
|
+
*/
|
|
16
|
+
declare function install(app: Object, options?: Object | any[]): void;
|
package/es/vue.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import './_virtual/_rollup-plugin-inject-process-env.js';
|
|
2
2
|
import { createDepponRouter } from './index.js';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Vue 插件安装函数
|
|
6
|
-
* @param {Object} app - Vue 应用实例
|
|
7
|
-
* @param {Object|Array} options - 配置选项或路由配置数组
|
|
8
|
-
* @param {Object} options.router - 已创建的 router 实例(如果提供,将直接使用)
|
|
9
|
-
* @param {Array} options.routes - 路由配置数组
|
|
10
|
-
* @param {Object} options.routerOptions - Vue Router 原始配置选项
|
|
11
|
-
* @param {Object} options.guards - 路由守卫配置
|
|
12
|
-
* @param {Object} options.log - 日志实例(可选,用于路由追踪)
|
|
13
|
-
* @param {Function} options.onRouteChange - 路由变化回调(可选)
|
|
4
|
+
/**
|
|
5
|
+
* Vue 插件安装函数
|
|
6
|
+
* @param {Object} app - Vue 应用实例
|
|
7
|
+
* @param {Object|Array} options - 配置选项或路由配置数组
|
|
8
|
+
* @param {Object} options.router - 已创建的 router 实例(如果提供,将直接使用)
|
|
9
|
+
* @param {Array} options.routes - 路由配置数组
|
|
10
|
+
* @param {Object} options.routerOptions - Vue Router 原始配置选项
|
|
11
|
+
* @param {Object} options.guards - 路由守卫配置
|
|
12
|
+
* @param {Object} options.log - 日志实例(可选,用于路由追踪)
|
|
13
|
+
* @param {Function} options.onRouteChange - 路由变化回调(可选)
|
|
14
14
|
*/
|
|
15
15
|
function install(app) {
|
|
16
16
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|