@fairys/taro-tools-react 1.0.31 → 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.
@@ -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;
@@ -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(url);
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 (url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(url);
15
+ if (_url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(_url);
14
16
  if (false === isAuthTo) {
15
17
  taro.showToast({
16
- title: `${url} \u{65E0}\u{6743}\u{8BBF}\u{95EE}`,
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)=>{
@@ -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;
@@ -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(url);
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 (url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(url);
54
+ if (_url && 'function' == typeof isAuthFunction && !isIgnoreAuthRoutes && isEnableAuth) isAuthTo = await isAuthFunction(_url);
53
55
  if (false === isAuthTo) {
54
56
  taro_default().showToast({
55
- title: `${url} \u{65E0}\u{6743}\u{8BBF}\u{95EE}`,
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.31",
6
+ "version": "1.0.32",
7
7
  "main": "esm/index.js",
8
8
  "types": "esm/index.d.ts",
9
9
  "module": "esm/index.js",
@@ -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(url);
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
- if (url && typeof isAuthFunction === 'function' && !isIgnoreAuthRoutes && isEnableAuth) {
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: `${url} 无权访问`, icon: 'none' });
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