diff --git a/src/constants/result.ts b/src/constants/result.ts index 4f43081..8488d2b 100644 --- a/src/constants/result.ts +++ b/src/constants/result.ts @@ -1,19 +1,30 @@ +type ResultCode = 0 | -1 | -2 | 10003 + +interface ResultData { + message: string + data: Record +} + export class Result { static codes = { - Success: 0, - Fail: -1, - NotMore: -2, - PaySuccessful: 10003 + Success: 0 as const, + Fail: -1 as const, + NotMore: -2 as const, + PaySuccessful: 10003 as const } - static resultsMap = new Map([ + static resultsMap = new Map([ [Result.codes.Success, { message: '成功', data: {} }], [Result.codes.Fail, { message: '网络加载失败', data: {} }], [Result.codes.NotMore, { message: '没有更多', data: {} }], [Result.codes.PaySuccessful, { message: '支付成功', data: {} }] ]) - constructor(code, data, message) { + code: ResultCode + message: string + data: Record + + constructor(code: ResultCode, data?: Record, message?: string) { const result = Result.resultsMap.get(code) if (result) { this.code = code @@ -27,22 +38,22 @@ export class Result { } // 成功 - static get Success() { + static get Success(): Result { return new Result(Result.codes.Success) } // 失败(默认错误) - static get Fail() { + static get Fail(): Result { return new Result(Result.codes.Fail) } // 没有更多 - static get NotMore() { + static get NotMore(): Result { return new Result(Result.codes.NotMore) } // 支付成功 - static get PaySuccessful() { + static get PaySuccessful(): Result { return new Result(Result.codes.PaySuccessful) } } diff --git a/src/interceptors/route.ts b/src/interceptors/route.ts index 4fae647..991e5d8 100644 --- a/src/interceptors/route.ts +++ b/src/interceptors/route.ts @@ -6,24 +6,19 @@ import { useUserStore } from '@/store' import { getNeedLoginPages, needLoginPages as _needLoginPages } from '@/utils' -// TODO Check -const loginRoute = '/pages/login/index' +const loginRoute = '/pages/login/login' -const isLogined = () => { +const loginStatus = () => { const userStore = useUserStore() - return userStore.isLogined + return userStore.loginStatus } const isDev = import.meta.env.DEV -// 黑名单登录拦截器 - (适用于大部分页面不需要登录,少部分页面需要登录) const navigateToInterceptor = { - // 注意,这里的url是 '/' 开头的,如 '/pages/index/index',跟 'pages.json' 里面的 path 不同 invoke({ url }: { url: string }) { - // console.log(url) // /pages/route-interceptor/index?name=feige&age=30 const path = url.split('?')[0] let needLoginPages: string[] = [] - // 为了防止开发时出现BUG,这里每次都获取一下。生产环境可以移到函数外,性能更好 if (isDev) { needLoginPages = getNeedLoginPages() } else { @@ -33,12 +28,11 @@ const navigateToInterceptor = { if (!isNeedLogin) { return true } - const hasLogin = isLogined() + const hasLogin = loginStatus() if (hasLogin) { return true } - const redirectRoute = `${loginRoute}?redirect=${encodeURIComponent(url)}` - uni.navigateTo({ url: redirectRoute }) + uni.navigateTo({ url: loginRoute }) return false } } diff --git a/src/pages.json b/src/pages.json index 830b295..9497f3c 100644 --- a/src/pages.json +++ b/src/pages.json @@ -68,7 +68,8 @@ "style": { "navigationStyle": "custom", "disableScroll": true - } + }, + "needLogin": false }, { "path": "pages/get-code/get-code", @@ -76,7 +77,8 @@ "style": { "navigationStyle": "custom", "disableScroll": true - } + }, + "needLogin": false }, { "path": "pages/login/login", @@ -84,7 +86,8 @@ "style": { "navigationStyle": "custom", "disableScroll": true - } + }, + "needLogin": false }, { "path": "pages/mine/mine", @@ -100,7 +103,8 @@ "style": { "navigationStyle": "custom", "disableScroll": true - } + }, + "needLogin": false }, { "path": "pages/workbench/workbench", diff --git a/src/pages/code/code.vue b/src/pages/code/code.vue index 1022d91..1b37f71 100644 --- a/src/pages/code/code.vue +++ b/src/pages/code/code.vue @@ -3,7 +3,8 @@ style: { navigationStyle: 'custom', disableScroll: true - } + }, + needLogin: false }