diff --git a/src/pages.json b/src/pages.json index 1fe326b..3c4f228 100644 --- a/src/pages.json +++ b/src/pages.json @@ -59,6 +59,14 @@ "style": { "navigationBarTitleText": "关于" } + }, + { + "path": "pages/about/alova", + "type": "page", + "layout": "default", + "style": { + "navigationBarTitleText": "Alova 请求演示" + } } ], "subPackages": [] diff --git a/src/pages/about/about.vue b/src/pages/about/about.vue index 71ca5fe..396e273 100644 --- a/src/pages/about/about.vue +++ b/src/pages/about/about.vue @@ -20,6 +20,12 @@ const { safeAreaInsets } = uni.getSystemInfoSync() // } // testOxlint('oxlint') console.log('about') + +function gotoAlova() { + uni.navigateTo({ + url: '/pages/about/alova', + }) +} diff --git a/src/pages/about/alova.vue b/src/pages/about/alova.vue new file mode 100644 index 0000000..fada4e6 --- /dev/null +++ b/src/pages/about/alova.vue @@ -0,0 +1,60 @@ + +{ + layout: 'default', + style: { + navigationBarTitleText: 'Alova 请求演示', + }, +} + + + + + + + diff --git a/src/utils/request/alova.ts b/src/utils/request/alova.ts index a0cbdde..77584d3 100644 --- a/src/utils/request/alova.ts +++ b/src/utils/request/alova.ts @@ -1,7 +1,35 @@ import AdapterUniapp from '@alova/adapter-uniapp' import { createAlova } from 'alova' -const http = createAlova({ - baseURL: import.meta.env.VITE_APP_PROXY_PREFIX, +const baseURL = JSON.parse(__VITE_APP_PROXY__) + ? import.meta.env.VITE_APP_PROXY_PREFIX + : import.meta.env.VITE_SERVER_BASEURL + +export const http = createAlova({ + baseURL, ...AdapterUniapp(), + async responded(res: UniApp.RequestSuccessCallbackResult, method) { + console.log('responded:', method, res) + // 请求成功的拦截器 + // 状态码 2xx,参考 axios 的设计 + const resData = res.data as IResData + if (res.statusCode >= 200 && res.statusCode < 300) { + // 2.1 提取核心数据 res.data + return resData.data + } + else if (res.statusCode === 401) { + // 401错误 -> 清理用户信息,跳转到登录页 + // userStore.clearUserInfo() + // uni.navigateTo({ url: '/pages/login/login' }) + console.log(res) + throw new Error(resData.msg || '401错误') + } + else { + uni.showToast({ + icon: 'none', + title: (resData).msg || '请求错误', + }) + throw new Error(resData.msg || '请求错误') + } + }, })