feat(user): 新增收货地址管理及售后申请页面
- 新增地址类型定义,增强前端地址数据结构 - 新增地址编辑页面,支持地址智能识别和定位选点功能 - 地址编辑支持省市区选择及默认地址设置 - 新增地址列表页面,支持地址展示、删除、编辑和选择功能 - 实现售后申请页面,支持选择售后类型和退款原因 - 售后申请支持商品选择、退款金额计算和凭证上传 - 新增售后详情页面,支持售后状态展示及申请取消 - 优化页面加载和用户交互体验,增加错误提示和权限处理
This commit is contained in:
121
src_bak/api/shop/shopBooking/index.ts
Normal file
121
src_bak/api/shop/shopBooking/index.ts
Normal file
@@ -0,0 +1,121 @@
|
||||
import request from '@/utils/request'
|
||||
import type { ApiResult, PageResult } from '@/api'
|
||||
import type {
|
||||
ShopBooking,
|
||||
ShopBookingParam,
|
||||
ShopBookingParams,
|
||||
BookingStats,
|
||||
} from './model'
|
||||
|
||||
/**
|
||||
* 分页查询预约订单
|
||||
*/
|
||||
export async function pageShopBooking(params: ShopBookingParam) {
|
||||
const res = await request.get<ApiResult<PageResult<ShopBooking>>>(
|
||||
'/shop/shop-booking/page',
|
||||
params
|
||||
)
|
||||
if (res.code === 0) {
|
||||
return res.data
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询预约订单列表
|
||||
*/
|
||||
export async function listShopBooking(params?: ShopBookingParam) {
|
||||
const res = await request.get<ApiResult<ShopBooking[]>>(
|
||||
'/shop/shop-booking',
|
||||
params
|
||||
)
|
||||
if (res.code === 0 && res.data) {
|
||||
return res.data
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询预约订单
|
||||
*/
|
||||
export async function getShopBooking(id: string) {
|
||||
const res = await request.get<ApiResult<ShopBooking>>(
|
||||
'/shop/shop-booking/' + id
|
||||
)
|
||||
if (res.code === 0 && res.data) {
|
||||
return res.data
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建预约订单
|
||||
*/
|
||||
export async function createShopBooking(data: ShopBookingParams) {
|
||||
const res = await request.post<ApiResult<unknown>>(
|
||||
'/shop/shop-booking',
|
||||
data
|
||||
)
|
||||
if (res.code === 0) {
|
||||
return res.message
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改预约订单
|
||||
*/
|
||||
export async function updateShopBooking(data: ShopBookingParams) {
|
||||
const res = await request.put<ApiResult<unknown>>(
|
||||
'/shop/shop-booking',
|
||||
data
|
||||
)
|
||||
if (res.code === 0) {
|
||||
return res.message
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消预约订单
|
||||
*/
|
||||
export async function cancelShopBooking(id?: string) {
|
||||
const res = await request.del<ApiResult<unknown>>(
|
||||
'/shop/shop-booking/' + id
|
||||
)
|
||||
if (res.code === 0) {
|
||||
return res.message
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 改签预约订单
|
||||
*/
|
||||
export async function rescheduleShopBooking(data: {
|
||||
bookingId: string
|
||||
newDate: string
|
||||
newTime: string
|
||||
}) {
|
||||
const res = await request.post<ApiResult<unknown>>(
|
||||
'/shop/shop-booking/reschedule',
|
||||
data
|
||||
)
|
||||
if (res.code === 0) {
|
||||
return res.message
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取预约统计
|
||||
*/
|
||||
export async function getBookingStats() {
|
||||
const res = await request.get<ApiResult<BookingStats>>(
|
||||
'/shop/shop-booking/stats'
|
||||
)
|
||||
if (res.code === 0 && res.data) {
|
||||
return res.data
|
||||
}
|
||||
return Promise.reject(new Error(res.message))
|
||||
}
|
||||
53
src_bak/api/shop/shopBooking/model/index.ts
Normal file
53
src_bak/api/shop/shopBooking/model/index.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* 预约订单模型
|
||||
*/
|
||||
|
||||
// 预约状态
|
||||
export type BookingStatus = 'pending' | 'confirmed' | 'in_progress' | 'completed' | 'cancelled' | 'rescheduled'
|
||||
|
||||
// 预约订单数据
|
||||
export interface ShopBooking {
|
||||
id: number | string
|
||||
bookingNo: string // 预约编号
|
||||
storeId: number // 店铺ID
|
||||
storeName: string // 店铺名称
|
||||
storePhone?: string // 门店服务电话
|
||||
serviceId: number // 服务ID
|
||||
serviceName: string // 服务名称
|
||||
bookingDate: string // 预约日期
|
||||
bookingTime: string // 预约时间段
|
||||
status: BookingStatus // 预约状态
|
||||
price: number // 价格
|
||||
createTime: string // 创建时间
|
||||
updateTime?: string // 更新时间
|
||||
remark?: string // 备注
|
||||
contactName?: string // 联系人
|
||||
contactPhone?: string // 联系电话
|
||||
address?: string // 地址
|
||||
}
|
||||
|
||||
// 预约查询参数
|
||||
export interface ShopBookingParam {
|
||||
page?: number
|
||||
limit?: number
|
||||
status?: BookingStatus // 按状态筛选
|
||||
storeId?: number // 按店铺筛选
|
||||
startDate?: string // 预约日期范围-起始
|
||||
endDate?: string // 预约日期范围-结束
|
||||
keywords?: string // 关键词搜索
|
||||
sortBy?: string // 排序方式(createTime, bookingDate)
|
||||
}
|
||||
|
||||
// 创建/更新预约参数
|
||||
export interface ShopBookingParams extends ShopBooking {}
|
||||
|
||||
// 预约统计
|
||||
export interface BookingStats {
|
||||
total: number // 总预约数
|
||||
pending: number // 待服务
|
||||
confirmed: number // 已确认
|
||||
inProgress: number // 进行中
|
||||
completed: number // 已完成
|
||||
cancelled: number // 已取消
|
||||
rescheduled: number // 已改签
|
||||
}
|
||||
Reference in New Issue
Block a user