@fairys/taro-tools-react 1.0.30 → 1.0.32
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/esm/context/global.message.data.instance.js +2 -3
- package/esm/utils/navigate.d.ts +2 -0
- package/esm/utils/navigate.js +7 -5
- package/lib/context/global.message.data.instance.js +2 -3
- package/lib/context/index.js +2 -2
- package/lib/utils/navigate.d.ts +2 -0
- package/lib/utils/navigate.js +7 -5
- package/package.json +1 -1
- package/src/context/global.message.data.instance.ts +1 -4
- package/src/utils/navigate.ts +13 -7
|
@@ -58,13 +58,12 @@ class GlobalMessageDataInstance extends ProxyInstanceObjectBase {
|
|
|
58
58
|
const f = this.onBeforetToLoginPage();
|
|
59
59
|
if (false === f) return;
|
|
60
60
|
}
|
|
61
|
-
const currentPath = taro.getCurrentInstance().router?.path || '';
|
|
62
61
|
const loginPageRoute = globalSettingDataInstance.store.loginPageRoute || '';
|
|
63
62
|
const isLoginPage = utils_navigate.isCurrentPage(loginPageRoute || '');
|
|
64
63
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
65
64
|
if (isLoginPage) return;
|
|
66
|
-
|
|
67
|
-
url: `/${_loginPageRoute}
|
|
65
|
+
taro.navigateTo({
|
|
66
|
+
url: `/${_loginPageRoute}`
|
|
68
67
|
});
|
|
69
68
|
};
|
|
70
69
|
}
|
package/esm/utils/navigate.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Taro from '@tarojs/taro';
|
|
2
2
|
declare class NavigateInstance {
|
|
3
|
+
/**格式化路由,去掉查询参数*/
|
|
4
|
+
formateUrl: (url?: string) => string;
|
|
3
5
|
/**判断是否已登录(方法需要在项目入口文件中进行挂载,如果不挂载,默认使用 authDataInstance.hasMenuPermission 判断是否有菜单权限)*/
|
|
4
6
|
isAuth: (url: string) => Promise<boolean> | boolean;
|
|
5
7
|
private _isAuth;
|
package/esm/utils/navigate.js
CHANGED
|
@@ -2,18 +2,20 @@ import taro from "@tarojs/taro";
|
|
|
2
2
|
import { globalSettingDataInstance } from "../context/global.setting.data.instance.js";
|
|
3
3
|
import { authDataInstance } from "../context/auth.data.instance.js";
|
|
4
4
|
class NavigateInstance {
|
|
5
|
+
formateUrl = (url)=>`${url}`.split('?')?.[0] || '';
|
|
5
6
|
isAuth;
|
|
6
7
|
_isAuth = async (url)=>{
|
|
8
|
+
const _url = this.formateUrl(url);
|
|
7
9
|
let isAuthTo = true;
|
|
8
|
-
const isIgnoreAuthRoutes = globalSettingDataInstance.isIgnoreAuthRoutes(
|
|
10
|
+
const isIgnoreAuthRoutes = globalSettingDataInstance.isIgnoreAuthRoutes(_url);
|
|
9
11
|
const useAuthHasMenuPermission = globalSettingDataInstance.store.useAuthHasMenuPermission;
|
|
10
12
|
const isEnableAuth = globalSettingDataInstance.store.isEnableAuth;
|
|
11
13
|
let isAuthFunction = this.isAuth;
|
|
12
14
|
if (useAuthHasMenuPermission && 'function' != typeof isAuthFunction && isEnableAuth) isAuthFunction = authDataInstance.hasMenuPermission;
|
|
13
|
-
if (
|
|
15
|
+
if (_url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(_url);
|
|
14
16
|
if (false === isAuthTo) {
|
|
15
17
|
taro.showToast({
|
|
16
|
-
title: `${
|
|
18
|
+
title: `${_url} \u{65E0}\u{6743}\u{8BBF}\u{95EE}`,
|
|
17
19
|
icon: 'none'
|
|
18
20
|
});
|
|
19
21
|
return false;
|
|
@@ -21,8 +23,8 @@ class NavigateInstance {
|
|
|
21
23
|
return true;
|
|
22
24
|
};
|
|
23
25
|
isCurrentPage = (route)=>{
|
|
24
|
-
const _route = route.replace(/^\//, '');
|
|
25
|
-
const currentPath = (taro.getCurrentInstance().router?.path || '').replace(/^\//, '');
|
|
26
|
+
const _route = this.formateUrl(route.replace(/^\//, ''));
|
|
27
|
+
const currentPath = this.formateUrl((taro.getCurrentInstance().router?.path || '').replace(/^\//, ''));
|
|
26
28
|
return currentPath === _route;
|
|
27
29
|
};
|
|
28
30
|
switchTab = async (options)=>{
|
|
@@ -99,13 +99,12 @@ class GlobalMessageDataInstance extends instance_js_namespaceObject.ProxyInstanc
|
|
|
99
99
|
const f = this.onBeforetToLoginPage();
|
|
100
100
|
if (false === f) return;
|
|
101
101
|
}
|
|
102
|
-
const currentPath = taro_default().getCurrentInstance().router?.path || '';
|
|
103
102
|
const loginPageRoute = external_global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.store.loginPageRoute || '';
|
|
104
103
|
const isLoginPage = navigate_js_default().isCurrentPage(loginPageRoute || '');
|
|
105
104
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
106
105
|
if (isLoginPage) return;
|
|
107
|
-
|
|
108
|
-
url: `/${_loginPageRoute}
|
|
106
|
+
taro_default().navigateTo({
|
|
107
|
+
url: `/${_loginPageRoute}`
|
|
109
108
|
});
|
|
110
109
|
};
|
|
111
110
|
}
|
package/lib/context/index.js
CHANGED
|
@@ -6,7 +6,7 @@ var __webpack_modules__ = {
|
|
|
6
6
|
"./global.message.data.instance": function(module) {
|
|
7
7
|
module.exports = require("./global.message.data.instance.js");
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"./global.setting.data.instance": function(module) {
|
|
10
10
|
module.exports = require("./global.setting.data.instance.js");
|
|
11
11
|
},
|
|
12
12
|
"./page.data.instance": function(module) {
|
|
@@ -83,7 +83,7 @@ var __webpack_exports__ = {};
|
|
|
83
83
|
return _auth_data_instance__WEBPACK_IMPORTED_MODULE_3__[key];
|
|
84
84
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
85
85
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
86
|
-
var _global_setting_data_instance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("
|
|
86
|
+
var _global_setting_data_instance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./global.setting.data.instance");
|
|
87
87
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
88
88
|
for(var __WEBPACK_IMPORT_KEY__ in _global_setting_data_instance__WEBPACK_IMPORTED_MODULE_4__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
89
89
|
return _global_setting_data_instance__WEBPACK_IMPORTED_MODULE_4__[key];
|
package/lib/utils/navigate.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Taro from '@tarojs/taro';
|
|
2
2
|
declare class NavigateInstance {
|
|
3
|
+
/**格式化路由,去掉查询参数*/
|
|
4
|
+
formateUrl: (url?: string) => string;
|
|
3
5
|
/**判断是否已登录(方法需要在项目入口文件中进行挂载,如果不挂载,默认使用 authDataInstance.hasMenuPermission 判断是否有菜单权限)*/
|
|
4
6
|
isAuth: (url: string) => Promise<boolean> | boolean;
|
|
5
7
|
private _isAuth;
|
package/lib/utils/navigate.js
CHANGED
|
@@ -41,18 +41,20 @@ var taro_default = /*#__PURE__*/ __webpack_require__.n(taro_namespaceObject);
|
|
|
41
41
|
const global_setting_data_instance_js_namespaceObject = require("../context/global.setting.data.instance.js");
|
|
42
42
|
const auth_data_instance_js_namespaceObject = require("../context/auth.data.instance.js");
|
|
43
43
|
class NavigateInstance {
|
|
44
|
+
formateUrl = (url)=>`${url}`.split('?')?.[0] || '';
|
|
44
45
|
isAuth;
|
|
45
46
|
_isAuth = async (url)=>{
|
|
47
|
+
const _url = this.formateUrl(url);
|
|
46
48
|
let isAuthTo = true;
|
|
47
|
-
const isIgnoreAuthRoutes = global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.isIgnoreAuthRoutes(
|
|
49
|
+
const isIgnoreAuthRoutes = global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.isIgnoreAuthRoutes(_url);
|
|
48
50
|
const useAuthHasMenuPermission = global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.store.useAuthHasMenuPermission;
|
|
49
51
|
const isEnableAuth = global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.store.isEnableAuth;
|
|
50
52
|
let isAuthFunction = this.isAuth;
|
|
51
53
|
if (useAuthHasMenuPermission && 'function' != typeof isAuthFunction && isEnableAuth) isAuthFunction = auth_data_instance_js_namespaceObject.authDataInstance.hasMenuPermission;
|
|
52
|
-
if (
|
|
54
|
+
if (_url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(_url);
|
|
53
55
|
if (false === isAuthTo) {
|
|
54
56
|
taro_default().showToast({
|
|
55
|
-
title: `${
|
|
57
|
+
title: `${_url} \u{65E0}\u{6743}\u{8BBF}\u{95EE}`,
|
|
56
58
|
icon: 'none'
|
|
57
59
|
});
|
|
58
60
|
return false;
|
|
@@ -60,8 +62,8 @@ class NavigateInstance {
|
|
|
60
62
|
return true;
|
|
61
63
|
};
|
|
62
64
|
isCurrentPage = (route)=>{
|
|
63
|
-
const _route = route.replace(/^\//, '');
|
|
64
|
-
const currentPath = (taro_default().getCurrentInstance().router?.path || '').replace(/^\//, '');
|
|
65
|
+
const _route = this.formateUrl(route.replace(/^\//, ''));
|
|
66
|
+
const currentPath = this.formateUrl((taro_default().getCurrentInstance().router?.path || '').replace(/^\//, ''));
|
|
65
67
|
return currentPath === _route;
|
|
66
68
|
};
|
|
67
69
|
switchTab = async (options)=>{
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "SunLxy <1011771396@qq.com>",
|
|
4
4
|
"description": "框架组件库",
|
|
5
5
|
"homepage": "https://github.com/autumn-fairy-tales/fairys-taro-react",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.32",
|
|
7
7
|
"main": "esm/index.js",
|
|
8
8
|
"types": "esm/index.d.ts",
|
|
9
9
|
"module": "esm/index.js",
|
|
@@ -101,9 +101,6 @@ export class GlobalMessageDataInstance extends ProxyInstanceObjectBase<GlobalMes
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
// 当前路由
|
|
105
|
-
const currentPath = Taro.getCurrentInstance().router?.path || '';
|
|
106
|
-
|
|
107
104
|
const loginPageRoute = globalSettingDataInstance.store.loginPageRoute || '';
|
|
108
105
|
const isLoginPage = navigate.isCurrentPage(loginPageRoute || '');
|
|
109
106
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
@@ -112,7 +109,7 @@ export class GlobalMessageDataInstance extends ProxyInstanceObjectBase<GlobalMes
|
|
|
112
109
|
return;
|
|
113
110
|
}
|
|
114
111
|
// 跳转登录页面
|
|
115
|
-
|
|
112
|
+
Taro.navigateTo({ url: `/${_loginPageRoute}` });
|
|
116
113
|
};
|
|
117
114
|
}
|
|
118
115
|
/**
|
package/src/utils/navigate.ts
CHANGED
|
@@ -3,12 +3,19 @@ import { globalSettingDataInstance } from 'context/global.setting.data.instance'
|
|
|
3
3
|
import { authDataInstance } from 'context/auth.data.instance';
|
|
4
4
|
|
|
5
5
|
class NavigateInstance {
|
|
6
|
+
/**格式化路由,去掉查询参数*/
|
|
7
|
+
formateUrl = (url?: string) => {
|
|
8
|
+
return `${url}`.split('?')?.[0] || '';
|
|
9
|
+
};
|
|
10
|
+
|
|
6
11
|
/**判断是否已登录(方法需要在项目入口文件中进行挂载,如果不挂载,默认使用 authDataInstance.hasMenuPermission 判断是否有菜单权限)*/
|
|
7
12
|
public isAuth: (url: string) => Promise<boolean> | boolean;
|
|
13
|
+
|
|
8
14
|
private _isAuth = async (url?: string) => {
|
|
15
|
+
const _url = this.formateUrl(url);
|
|
9
16
|
let isAuthTo = true;
|
|
10
17
|
// 判断是否跳转忽略权限校验的路由
|
|
11
|
-
const isIgnoreAuthRoutes = globalSettingDataInstance.isIgnoreAuthRoutes(
|
|
18
|
+
const isIgnoreAuthRoutes = globalSettingDataInstance.isIgnoreAuthRoutes(_url);
|
|
12
19
|
// 判断是否使用 authDataInstance中的hasMenuPermission 判断是否有菜单权限
|
|
13
20
|
const useAuthHasMenuPermission = globalSettingDataInstance.store.useAuthHasMenuPermission;
|
|
14
21
|
// 判断是否开启权限校验
|
|
@@ -17,13 +24,12 @@ class NavigateInstance {
|
|
|
17
24
|
if (useAuthHasMenuPermission && typeof isAuthFunction !== 'function' && isEnableAuth) {
|
|
18
25
|
isAuthFunction = authDataInstance.hasMenuPermission;
|
|
19
26
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
isAuthTo = await isAuthFunction(url);
|
|
27
|
+
if (_url && typeof isAuthFunction === 'function' && !isIgnoreAuthRoutes && isEnableAuth) {
|
|
28
|
+
isAuthTo = await isAuthFunction(_url);
|
|
23
29
|
}
|
|
24
30
|
if (isAuthTo === false) {
|
|
25
31
|
// 无权访问页面
|
|
26
|
-
Taro.showToast({ title: `${
|
|
32
|
+
Taro.showToast({ title: `${_url} 无权访问`, icon: 'none' });
|
|
27
33
|
return false;
|
|
28
34
|
}
|
|
29
35
|
return true;
|
|
@@ -34,8 +40,8 @@ class NavigateInstance {
|
|
|
34
40
|
*/
|
|
35
41
|
isCurrentPage = (route: string) => {
|
|
36
42
|
/**处理路由前缀*/
|
|
37
|
-
const _route = route.replace(/^\//, '');
|
|
38
|
-
const currentPath = (Taro.getCurrentInstance().router?.path || '').replace(/^\//, '');
|
|
43
|
+
const _route = this.formateUrl(route.replace(/^\//, ''));
|
|
44
|
+
const currentPath = this.formateUrl((Taro.getCurrentInstance().router?.path || '').replace(/^\//, ''));
|
|
39
45
|
return currentPath === _route;
|
|
40
46
|
};
|
|
41
47
|
|