@@ -34,56 +34,26 @@ export const currRoute = () => {
34
34
const currRoute = ( pages . at ( - 1 ) as any ) . $page
35
35
// console.log(currRoute)
36
36
const { fullPath } = currRoute as { fullPath : string }
37
- console . log ( fullPath ) // eg: /pages/login/index?redirect=/pages/demo/base/route-interceptor (H5)
37
+ // console.log(fullPath) // eg: /pages/login/index?redirect=/pages/demo/base/route-interceptor (H5)
38
38
// /pages/login/index?redirect=%2Fpages%2Fdemo%2Fbase%2Froute-interceptor (小程序)
39
39
const [ path , query ] = fullPath . split ( '?' )
40
- console . log ( path , query ) // /pages/login/index redirect=/pages/demo/base/route-interceptor
40
+ // console.log(path, query) // /pages/login/index redirect=/pages/demo/base/route-interceptor
41
41
// /pages/login/index redirect=%2Fpages%2Fdemo%2Fbase%2Froute-interceptor
42
42
// TODO: 根据业务,可能需要调整代码逻辑
43
43
const redirectPath = query . split ( 'redirect=' ) [ 1 ] // /pages/demo/base/route-interceptor
44
44
return { path, redirectPath : decodeURIComponent ( redirectPath ) } // 这里需要统一 decodeURIComponent 一下,可以兼容h5和微信
45
45
}
46
46
47
- /**
48
- * 得到所有的pages,包括主包和分包的
49
- * path 统一加 '/' 前缀
50
- */
51
- export const getAllPages = ( ) => {
52
- // 这里处理主包
53
- const pages = [
54
- ...pagesJson . pages . map ( ( page ) => ( {
55
- ...page ,
56
- path : `/${ page . path } ` ,
57
- } ) ) ,
58
- ]
59
- // 这里处理分包
60
- const subPages = [ ]
61
- pagesJson . subPackages . forEach ( ( subPageObj ) => {
62
- console . log ( subPageObj )
63
- const { root } = subPageObj
64
- console . log ( 'root' , root )
65
-
66
- subPageObj . pages . forEach ( ( page ) => {
67
- subPages . push ( {
68
- ...page ,
69
- path : `/${ root } /${ page . path } ` ,
70
- } )
71
- } )
72
- } )
73
- const result = [ ...pages , ...subPages ]
74
- console . log ( 'all pages: ' , result )
75
- return result
76
- }
77
47
/**
78
48
* 得到所有的需要登录的pages,包括主包和分包的
79
49
* 这里设计得通用一点,可以传递key作为判断依据,默认是 needLogin, 与 route-block 配对使用
80
- * PS: 这里为啥多写一个函数,主要是性能问题,这个函数性能好很多
50
+ * 如果没有传 key,则表示所有的pages,如果传递了 key, 则表示通过 key 过滤
81
51
*/
82
- export const getAllPagesByKey = ( key = 'needLogin' ) => {
52
+ export const getAllPages = ( key = 'needLogin' ) => {
83
53
// 这里处理主包
84
54
const pages = [
85
55
...pagesJson . pages
86
- . filter ( ( page ) => page [ key ] )
56
+ . filter ( ( page ) => ! key || page [ key ] )
87
57
. map ( ( page ) => ( {
88
58
...page ,
89
59
path : `/${ page . path } ` ,
@@ -92,11 +62,11 @@ export const getAllPagesByKey = (key = 'needLogin') => {
92
62
// 这里处理分包
93
63
const subPages = [ ]
94
64
pagesJson . subPackages . forEach ( ( subPageObj ) => {
95
- console . log ( subPageObj )
65
+ // console.log(subPageObj)
96
66
const { root } = subPageObj
97
67
98
68
subPageObj . pages
99
- . filter ( ( page ) => page [ key ] )
69
+ . filter ( ( page ) => ! key || page [ key ] )
100
70
. forEach ( ( page ) => {
101
71
subPages . push ( {
102
72
...page ,
@@ -105,19 +75,33 @@ export const getAllPagesByKey = (key = 'needLogin') => {
105
75
} )
106
76
} )
107
77
const result = [ ...pages , ...subPages ]
108
- console . log ( 'needLogin pages : ' , result )
78
+ console . log ( 'getAllPages result : ' , result )
109
79
return result
110
80
}
111
81
112
82
/**
113
83
* 得到所有的需要登录的pages,包括主包和分包的
114
84
* 只得到 path 数组
115
85
*/
116
- export const getAllNeedLoginPages = ( ) : string [ ] =>
117
- getAllPagesByKey ( 'needLogin' ) . map ( ( page ) => page . path )
86
+ export const getNeedLoginPages = ( ) : string [ ] => getAllPages ( 'needLogin' ) . map ( ( page ) => page . path )
118
87
119
88
/**
120
89
* 得到所有的需要登录的pages,包括主包和分包的
121
90
* 只得到 path 数组
122
91
*/
123
- export const allNeedLoginPages : string [ ] = getAllPagesByKey ( 'needLogin' ) . map ( ( page ) => page . path )
92
+ export const needLoginPages : string [ ] = getAllPages ( 'needLogin' ) . map ( ( page ) => page . path )
93
+ /**
94
+ * 是否是开发环境
95
+ */
96
+ export const isDev = ( ) => {
97
+ let isDev = false
98
+ console . log ( 'wx ==> miniProgram.envVersion:' , uni . getAccountInfoSync ( ) . miniProgram . envVersion )
99
+ console . log ( '非wx ==> process.env.NODE_ENV:' , process . env . NODE_ENV )
100
+ // #ifdef MP-WEIXIN
101
+ isDev = uni . getAccountInfoSync ( ) . miniProgram . envVersion === 'develop'
102
+ // #endif
103
+ // #ifndef MP-WEIXIN
104
+ isDev = process . env . NODE_ENV === 'development'
105
+ // #endif
106
+ return isDev
107
+ }
0 commit comments