This commit is contained in:
parent
befb1dd8f9
commit
6678bce527
|
|
@ -1,249 +0,0 @@
|
||||||
// HTTP API使用示例
|
|
||||||
// 注意:鉴权配置已简化,只需要在 http/config/config.js 中配置不需要鉴权的接口即可
|
|
||||||
|
|
||||||
// 导入API模块
|
|
||||||
import { petsApi, assistantApi, adoptionApi, profileApi, commonApi, addNoAuthApis, setEnvironment } from '@/http/index.js'
|
|
||||||
|
|
||||||
// 或者导入所有API
|
|
||||||
// import api from '@/http/index.js'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
petsList: [],
|
|
||||||
userInfo: {},
|
|
||||||
loading: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
// 示例1:获取宠物列表(自动鉴权)
|
|
||||||
async loadPets() {
|
|
||||||
try {
|
|
||||||
// 使用默认配置,自动根据接口判断是否需要鉴权
|
|
||||||
const pets = await petsApi.getPetsList()
|
|
||||||
this.petsList = pets
|
|
||||||
} catch (error) {
|
|
||||||
console.error('获取宠物列表失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例2:添加不需要鉴权的接口
|
|
||||||
addCustomNoAuthApis() {
|
|
||||||
// 如果有自定义的接口不需要鉴权,可以这样添加
|
|
||||||
addNoAuthApis([
|
|
||||||
'/custom/public-api',
|
|
||||||
'/special/no-auth-endpoint'
|
|
||||||
])
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例3:切换环境
|
|
||||||
switchEnvironment() {
|
|
||||||
// 根据需要切换环境
|
|
||||||
// #ifdef H5
|
|
||||||
setEnvironment('development') // H5开发环境
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
setEnvironment('production') // 小程序生产环境
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// 或者根据条件动态切换
|
|
||||||
const isDev = process.env.NODE_ENV === 'development'
|
|
||||||
setEnvironment(isDev ? 'development' : 'production')
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例2:添加宠物
|
|
||||||
async addNewPet() {
|
|
||||||
try {
|
|
||||||
const petData = {
|
|
||||||
name: '小白',
|
|
||||||
breed: '金毛',
|
|
||||||
age: 2,
|
|
||||||
gender: '公'
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = await petsApi.addPet(petData, {
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
loading: true,
|
|
||||||
toast: true // 显示成功/失败提示
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
uni.showToast({
|
|
||||||
title: '添加成功',
|
|
||||||
icon: 'success'
|
|
||||||
})
|
|
||||||
|
|
||||||
// 重新加载列表
|
|
||||||
this.loadPets()
|
|
||||||
} catch (error) {
|
|
||||||
// 错误已在拦截器中处理,这里可以做额外处理
|
|
||||||
console.error('添加宠物失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例3:AI助手对话
|
|
||||||
async sendMessageToAI() {
|
|
||||||
try {
|
|
||||||
const messageData = {
|
|
||||||
message: '我的猫咪最近不爱吃饭,怎么办?',
|
|
||||||
petId: 123
|
|
||||||
}
|
|
||||||
|
|
||||||
const response = await assistantApi.sendMessage(messageData, {
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
loading: true,
|
|
||||||
loadingText: 'AI正在思考中...'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log('AI回复:', response.reply)
|
|
||||||
} catch (error) {
|
|
||||||
console.error('AI对话失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例4:用户登录
|
|
||||||
async userLogin() {
|
|
||||||
try {
|
|
||||||
const loginData = {
|
|
||||||
username: 'user@example.com',
|
|
||||||
password: '123456'
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = await profileApi.userLogin(loginData, {
|
|
||||||
custom: {
|
|
||||||
auth: false, // 登录接口不需要token
|
|
||||||
loading: true,
|
|
||||||
loadingText: '正在登录...'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// 保存token和用户信息
|
|
||||||
uni.setStorageSync('token', result.token)
|
|
||||||
uni.setStorageSync('userInfo', result.userInfo)
|
|
||||||
|
|
||||||
uni.showToast({
|
|
||||||
title: '登录成功',
|
|
||||||
icon: 'success'
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.error('登录失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例5:上传图片
|
|
||||||
async uploadPetImage() {
|
|
||||||
try {
|
|
||||||
// 选择图片
|
|
||||||
const chooseResult = await uni.chooseImage({
|
|
||||||
count: 1,
|
|
||||||
sizeType: ['compressed'],
|
|
||||||
sourceType: ['album', 'camera']
|
|
||||||
})
|
|
||||||
|
|
||||||
const imageData = {
|
|
||||||
filePath: chooseResult.tempFilePaths[0],
|
|
||||||
name: 'petImage',
|
|
||||||
formData: {
|
|
||||||
type: 'pet',
|
|
||||||
petId: 123
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const uploadResult = await commonApi.uploadImage(imageData, {
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
loading: true,
|
|
||||||
loadingText: '正在上传图片...'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log('上传成功:', uploadResult.url)
|
|
||||||
|
|
||||||
uni.showToast({
|
|
||||||
title: '上传成功',
|
|
||||||
icon: 'success'
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.error('上传失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例6:搜索领养宠物
|
|
||||||
async searchAdoptionPets() {
|
|
||||||
try {
|
|
||||||
const searchParams = {
|
|
||||||
keyword: '金毛',
|
|
||||||
type: 'dog',
|
|
||||||
age: '1-3',
|
|
||||||
location: '北京'
|
|
||||||
}
|
|
||||||
|
|
||||||
const pets = await adoptionApi.searchPets(searchParams, {
|
|
||||||
custom: {
|
|
||||||
auth: false, // 搜索不需要登录
|
|
||||||
loading: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log('搜索结果:', pets)
|
|
||||||
} catch (error) {
|
|
||||||
console.error('搜索失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例7:批量操作
|
|
||||||
async batchOperations() {
|
|
||||||
try {
|
|
||||||
// 并发执行多个请求
|
|
||||||
const [pets, userInfo, adoptionPets] = await Promise.all([
|
|
||||||
petsApi.getPetsList(),
|
|
||||||
profileApi.getUserInfo(),
|
|
||||||
adoptionApi.getAdoptionPets()
|
|
||||||
])
|
|
||||||
|
|
||||||
console.log('批量获取数据成功:', { pets, userInfo, adoptionPets })
|
|
||||||
} catch (error) {
|
|
||||||
console.error('批量操作失败:', error)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 示例8:自定义错误处理
|
|
||||||
async customErrorHandling() {
|
|
||||||
try {
|
|
||||||
const result = await petsApi.getPetsList({}, {
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
loading: true,
|
|
||||||
toast: false, // 不显示默认错误提示
|
|
||||||
catch: true // 允许catch捕获错误
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
// 自定义错误处理
|
|
||||||
if (error.code === 401) {
|
|
||||||
uni.showModal({
|
|
||||||
title: '提示',
|
|
||||||
content: '登录已过期,请重新登录',
|
|
||||||
success: (res) => {
|
|
||||||
if (res.confirm) {
|
|
||||||
uni.reLaunch({
|
|
||||||
url: '/pages/login/login'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: error.message || '操作失败',
|
|
||||||
icon: 'none'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue