feat:"完成页面接口的对接"

This commit is contained in:
2026-01-29 17:58:19 +08:00
parent 2774a539bf
commit 2b69da3c15
98 changed files with 9504 additions and 592 deletions

View File

@@ -19,7 +19,7 @@ type RequestOptions = {
type ResponseData = {
code : number
message : string
data : any
data : any | null
}
/**
@@ -42,16 +42,31 @@ const requestInterceptor = (options : RequestOptions) : RequestOptions => {
*/
const responseInterceptor = (response : UTSJSONObject) : ResponseData => {
const statusCode = response['statusCode'] as number
const data = response['data'] as UTSJSONObject
const data = response['data'] as UTSJSONObject | null
console.log('响应拦截器 - statusCode:', statusCode)
console.log('响应拦截器 - data:', data)
// 处理空响应
if (data == null) {
return {
code: statusCode,
message: '响应数据为空',
data: null
} as ResponseData
}
if (statusCode == 200) {
const code = (data['code'] ?? 0) as number
console.log('响应拦截器 - 解析的 code:', code)
if (code == 0 || code == 200) {
return {
const result = {
code: 0,
message: 'success',
data: data['data']
message: (data['message'] ?? 'success') as string,
data: data['data'] ?? null
} as ResponseData
console.log('响应拦截器 - 返回成功结果:', result)
return result
} else if (code == 401) {
// token过期,跳转登录
uni.removeStorageSync(STORAGE_KEYS.TOKEN)
@@ -68,7 +83,7 @@ const responseInterceptor = (response : UTSJSONObject) : ResponseData => {
return {
code: code,
message: (data['message'] ?? '请求失败') as string,
data: null
data: data['data'] ?? null
} as ResponseData
}
} else {
@@ -111,8 +126,18 @@ export const request = (options : RequestOptions) : Promise<ResponseData> => {
}
const config = getEnvConfig()
const BASE_URL = 'http://192.168.1.43:3000/api'
const baseUrl = config['baseUrl'] as string
// 清理 data 中的 undefined 字段,避免被序列化为 'undefined'
if (finalOptions.data && typeof finalOptions.data === 'object') {
for (const key in finalOptions.data) {
if (finalOptions.data[key] === undefined) {
delete finalOptions.data[key]
}
}
}
uni.request({
url: baseUrl + finalOptions.url,
method: finalOptions.method ?? 'GET',
@@ -122,10 +147,15 @@ export const request = (options : RequestOptions) : Promise<ResponseData> => {
if (finalOptions.showLoading == true) {
uni.hideLoading()
}
console.log('请求成功原始响应:', res)
const result = responseInterceptor(res as UTSJSONObject)
console.log('拦截器处理后结果:', result)
console.log('result.code 类型:', typeof result.code, '值:', result.code)
if (result.code == 0) {
console.log('判断为成功resolve')
resolve(result)
} else {
console.log('判断为失败,显示 toast 并 reject')
uni.showToast({
title: result.message,
icon: 'none'