petstore-frontend/utils/api.js
2026-04-12 22:57:48 +08:00

125 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// utils/api.js - uniapp API 封装
const BASE_URL = 'http://localhost:8080/api'
// 统一请求封装
const request = (options) => {
return new Promise((resolve, reject) => {
uni.request({
url: BASE_URL + options.url,
method: options.method || 'GET',
data: options.data || {},
header: options.header || {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
resolve(res.data)
} else {
reject(res)
}
},
fail: (err) => {
reject(err)
}
})
})
}
const get = (url, params = {}) => {
return request({ url, method: 'GET', data: params })
}
const post = (url, data = {}) => {
return request({ url, method: 'POST', data })
}
const put = (url, data = {}) => {
return request({ url, method: 'PUT', data })
}
const del = (url) => {
return request({ url, method: 'DELETE' })
}
// 图片完整URL
export const imgUrl = (path) => {
if (!path) return ''
if (path.startsWith('http')) return path
return `http://localhost:8080${path}`
}
// 发送验证码
export const sendSms = (phone) => post('/sms/send', { phone })
// 登录
export const login = (phone, code) => post('/user/login', { phone, code })
// 注册老板
export const registerBoss = (data) => post('/user/register-boss', data)
// 注册员工
export const registerStaff = (data) => post('/user/register-staff', data)
// 预约列表
export const getAppointmentList = (userId) => get('/appointment/list', { userId })
// 创建预约
export const createAppointment = (data) => post('/appointment/create', data)
// 开始服务
export const startAppointment = (appointmentId, staffUserId) =>
post('/appointment/start', { appointmentId, staffUserId })
// 取消预约
export const cancelAppointment = (id) => put(`/appointment/status?id=${id}&status=cancel`)
// 提交报告
export const createReport = (data) => post('/report/create', data)
// 获取报告通过token
export const getReportByToken = (token) => get('/report/get', { token })
// 报告列表
export const getReportList = (params) => get('/report/list', params)
// 服务类型列表
export const getServiceTypeList = (storeId) => get('/service-type/list', { storeId })
// 创建服务类型
export const createServiceType = (storeId, name) => post('/service-type/create', { storeId, name })
// 删除服务类型
export const deleteServiceType = (id) => del(`/service-type/delete?id=${id}`)
// 员工列表
export const getStaffList = (storeId) => get('/user/staff-list', { storeId })
// 添加员工
export const createStaff = (data) => post('/user/create-staff', data)
// 删除员工
export const deleteStaff = (staffId) => del(`/user/staff?staffId=${staffId}`)
// 更新店铺
export const updateStore = (data) => put('/store/update', data)
// 上传图片uniapp版
export const uploadImage = (filePath) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: BASE_URL + '/upload/image',
filePath: filePath,
name: 'file',
success: (res) => {
try {
const data = JSON.parse(res.data)
resolve(data)
} catch (e) {
reject(e)
}
},
fail: (err) => reject(err)
})
})
}