From d99647a0e05e58fb9a38cf86c9527f4e2d609bc9 Mon Sep 17 00:00:00 2001 From: ltx <19304474232@163.com> Date: Wed, 11 Mar 2026 00:09:41 +0800 Subject: [PATCH] =?UTF-8?q?update:=E8=AF=81=E4=B9=A6&=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8&=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/match/order.js | 178 +++++++++++++++++++++++++++++++ src/views/match/book/index.vue | 124 +++++++++++++-------- src/views/match/coupon/index.vue | 7 +- src/views/match/order/index.vue | 61 +++++------ 4 files changed, 291 insertions(+), 79 deletions(-) create mode 100644 src/api/match/order.js diff --git a/src/api/match/order.js b/src/api/match/order.js new file mode 100644 index 0000000..5d8b518 --- /dev/null +++ b/src/api/match/order.js @@ -0,0 +1,178 @@ +import { BaseApi } from '../baseApi'; +import { http } from '../../utils/request'; + +// ==================== 订单管理 ==================== + +/** + * 创建订单 + * @param {Object} data - 订单信息 + * @param {number} data.eventId - 赛事ID + * @param {number} data.registrationMode - 报名模式 (1:个人报名, 2:团队报名) + * @param {string} [data.teamName] - 团队名称(团队报名时必填) + * @param {string} data.contactName - 联系人姓名 + * @param {string} data.contactPhone - 联系人电话 + * @param {Array} data.items - 报名项目列表 + * @param {number} data.items[].projectId - 项目ID + * @param {string} data.items[].projectName - 项目名称 + * @param {string} data.items[].projectTypeName - 项目类型名称 + * @param {string} data.items[].groupName - 组别名称 + * @param {number} data.items[].unitPrice - 单价 + * @param {number} data.items[].personCount - 人数 + * @param {Array} data.persons - 参赛人员列表 + * @param {string} data.persons[].name - 姓名 + * @param {string} data.persons[].idCard - 身份证号 + * @param {string} data.persons[].phone - 联系电话 + * @param {string} data.persons[].gender - 性别 (Male=男, Female=女) + * @returns {Promise} - 返回订单号 + */ +export const orderCreatePost = (data) => { + return http.post('/order/create', data); +}; + +/** + * 订单分页查询 + * @param {Object} params - 查询参数 + * @param {number} [params.pageNo] - 当前页码 + * @param {number} [params.pageSize] - 每页条数 + * @param {string} [params.orderNo] - 订单号 + * @param {string} [params.contactName] - 联系人姓名 + * @param {string} [params.contactPhone] - 联系人电话 + * @param {number} [params.eventId] - 赛事ID + * @param {number} [params.status] - 订单状态 (0:待支付, 1:已支付, 2:已取消, 3:已退款, 4:已完成) + * @param {string} [params.startTime] - 开始时间 + * @param {string} [params.endTime] - 结束时间 + */ +export const orderPageGet = (params) => { + return http.get('/order/page', { params }); +}; + +/** + * 获取订单详情 + * @param {Object} params - 查询参数 + * @param {string} params.orderNo - 订单号 + * @returns {Promise<{ + * orderNo: string, + * eventId: number, + * eventName: string, + * registrationMode: number, + * teamName: string, + * contactName: string, + * contactPhone: string, + * totalAmount: number, + * discountAmount: number, + * payableAmount: number, + * status: number, + * createdTime: string, + * paidTime: string, + * items: Array<{ + * projectId: number, + * projectName: string, + * projectTypeName: string, + * groupName: string, + * unitPrice: number, + * personCount: number, + * subtotal: number + * }>, + * persons: Array<{ + * name: string, + * idCard: string, + * phone: string, + * gender: string, + * birthDate: string, + * age: number + * }> + * }>} + */ +export const orderDetailGet = (params) => { + return http.get('/order/detail', { params }); +}; + +/** + * 更新订单状态 + * @param {Object} data - 状态信息 + * @param {string} data.orderNo - 订单号 + * @param {number} data.status - 订单状态 (0:待支付, 1:已支付, 2:已取消, 3:已退款, 4:已完成) + * @param {string} [data.remark] - 备注说明 + */ +export const orderStatusPut = (data) => { + return http.put('/order/status', data); +}; + +/** + * 获取建议退款金额 + * @param {Object} params - 查询参数 + * @param {string} params.orderNo - 订单号 + * @param {Array} [params.itemIds] - 退款项目ID列表(部分退款时传) + * @returns {Promise<{ + * totalRefundAmount: number, + * refundableAmount: number, + * refundItems: Array<{ + * itemId: number, + * projectName: string, + * unitPrice: number, + * personCount: number, + * subtotal: number, + * refundableAmount: number + * }> + * }>} + */ +export const orderRefundAmountGet = (params) => { + return http.get('/order/refund-amount', { params }); +}; + +/** + * 订单退款 + * @param {Object} data - 退款信息 + * @param {string} data.orderNo - 订单号 + * @param {number} data.refundAmount - 退款金额 + * @param {Array} [data.itemIds] - 退款项目ID列表(部分退款时传) + * @param {string} data.reason - 退款原因 + * @param {string} [data.remark] - 备注说明 + */ +export const orderRefundPost = (data) => { + return http.post('/order/refund', data); +}; + +/** + * 批量删除订单 + * @param {Array} data - 订单号数组 + */ +export const orderDeletePost = (data) => { + return http.post('/order/delete', data); +}; + +/** + * 删除单个订单 + * @param {Object} data - 删除参数 + * @param {string} data.id - 订单ID + */ +export const orderDeleteDelete = (data) => { + return http.delete('/order/delete', { data }); +}; + +/** + * 导出订单 + * @param {Object} params - 导出参数 + * @param {number} [params.eventId] - 赛事ID + * @param {number} [params.status] - 订单状态 + * @param {string} [params.startTime] - 开始时间 + * @param {string} [params.endTime] - 结束时间 + * @param {string} [params.fileType] - 文件类型 (excel, csv) + * @returns {Promise} - 返回文件流 + */ +export const orderExportGet = (params) => { + return http.get('/order/export', { + params, + responseType: 'blob' + }); +}; + +/** + * 修改订单状态(通用状态修改) + * @param {Object} data - 状态参数 + * @param {number} data.id - 订单ID + * @param {string} data.status - 状态 (Enable=启用, Disable=禁用) + */ +export const orderSetstatusPatch = (data) => { + return http.patch('/order/setstatus', data); +}; \ No newline at end of file diff --git a/src/views/match/book/index.vue b/src/views/match/book/index.vue index f3041f3..8c15262 100644 --- a/src/views/match/book/index.vue +++ b/src/views/match/book/index.vue @@ -1,16 +1,19 @@