const Tips = (title) => {
uni.showToast({
title
})
}
const baseURL = "http://192.168.31.86:9081";
// 普通请求
export default async function request(params) {
return new Promise((reslove, reject) => {
if (params.loading) uni.showLoading();
uni.request({
url: baseURL + params.url,
method: params.method,
header: params.header || {},
data: params.data,
complete: () => {
if (params.loading) uni.hideLoading();
},
success: (res) => {
if (res.statusCode == 200) {
if (res.data.code == 200) {
reslove(res.data);
} else if (res.data.code == 401) {
return Tips('登录过期,请重新登录');
} else {
return Tips(res.data.msg);
}
} else {
return Tips('网络异常,请稍后再试!');
}
},
fail: (err) => {
console.log(err);
return Tips('连接失败,请稍后再试!');
}
})
})
}
// 上传请求
export function uploadFile(params) {
return new Promise((resolve, reject) => {
if (params.loading) uni.showLoading({
title: '上传中...'
});
uni.uploadFile({
url: baseURL + params.url,
filePath: params.filePath,
name: params.name || 'file',
formData: params.formData || {},
header: params.header || {},
complete: () => {
if (params.loading) uni.hideLoading();
},
success: (uploadFileRes) => {
// uploadFile 的响应通常是字符串,需要解析为 JSON
let res;
try {
res = JSON.parse(uploadFileRes.data);
} catch (e) {
return Tips('解析响应失败');
}
if (uploadFileRes.statusCode == 200) {
if (res.code == 200) {
resolve(res);
} else if (res.code == 401) {
Tips('登录过期,请重新登录');
reject(res);
} else {
Tips(res.msg || '上传失败');
reject(res);
}
} else {
Tips('网络异常,请稍后再试!');
reject(uploadFileRes);
}
},
fail: (err) => {
console.error(err);
Tips('连接失败,请稍后再试!');
reject(err);
}
});
});
}
具体使用:
// 引入 request 文件
import request from '@/utils/request.js'
import uploadFile from '@/utils/request.js'
// 分页查询学习列表
export const pageStudyInfo = (params) => {
return request({
url: '/upload',
method: 'post',
data: params,
header: {} // 自定义
})
}
// 文件上传
export const upload = async (filePath) => {
try {
const result = await uploadFile({
url: '/api/upload',
filePath: filePath,
name: 'image',
formData: {
'file': 'file'
},
loading: true,
loadingText: '上传中...'
});
console.log('上传成功:', result);
return result; // 返回上传结果
} catch (error) {
console.error('上传失败:', error);
throw error; // 抛出错误,让调用者可以进行错误处理
}
};