From 47ed9526b7506072990e592e6de5caac575fbbf0 Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Wed, 1 Apr 2026 15:16:01 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E9=80=80=E6=AC=BE&banner&?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- src/api/match/banner.js | 138 +++++++ src/api/match/refund.js | 99 +++++ src/router/route.ts | 46 +++ src/views/marchant/order/index.vue | 161 ++++++++ src/views/match/banner/index.vue | 627 +++++++++++++++++++++++++++++ src/views/match/order/index.vue | 37 +- src/views/match/refund/index.vue | 200 +++++++++ 8 files changed, 1295 insertions(+), 15 deletions(-) create mode 100644 src/api/match/banner.js create mode 100644 src/api/match/refund.js create mode 100644 src/views/marchant/order/index.vue create mode 100644 src/views/match/banner/index.vue create mode 100644 src/views/match/refund/index.vue diff --git a/.env b/.env index 3e24a7d..d4c765d 100644 --- a/.env +++ b/.env @@ -8,4 +8,4 @@ VITE_OPEN = true VITE_OPEN_CDN = false # public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 -VITE_PUBLIC_PATH = 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/event_web/202603261000/' \ No newline at end of file +VITE_PUBLIC_PATH = 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/event_web/202604011515/' \ No newline at end of file diff --git a/src/api/match/banner.js b/src/api/match/banner.js new file mode 100644 index 0000000..762dd05 --- /dev/null +++ b/src/api/match/banner.js @@ -0,0 +1,138 @@ +import { BaseApi } from '../baseApi'; +import { http } from '../../utils/request'; + +// ==================== 轮播图服务 ==================== + +/** + * 获取轮播图配置模式 + * @returns {Promise<{ +* mode: number +* }>} +*/ +export const bannerConfigGet = () => { + return http.get('/banner/config'); +}; + +/** +* 更新轮播图配置模式 +* @param {Object} data - 配置参数 +* @param {number} data.mode - 配置模式 (0: 默认模式, 1: 自定义模式等) +*/ +export const bannerConfigPut = (data) => { + return http.put('/banner/config', data); +}; + +/** +* 获取轮播图列表(前台展示用) +* @returns {Promise>} +*/ +export const bannerListGet = () => { + return http.get('/banner/list'); +}; + +/** +* 分页查询(后台管理用) +* @param {Object} data - 查询参数 +* @param {number} [data.pageNo] - 当前页码 +* @param {number} [data.pageSize] - 每页条数 +* @param {string} [data.title] - 标题 (模糊查询) +* @returns {Promise<{ +* pageNo: number, +* pageSize: number, +* pages: number, +* total: number, +* rows: Array<{ +* id: number, +* title: string, +* imageUrl: string, +* linkType: string, +* linkUrl: string, +* eventId: number, +* sort: number, +* status: string, +* remark: string, +* createdTime: string +* }> +* }>} +*/ +export const bannerPagePost = (data) => { + return http.post('/banner/page', data); +}; + +/** +* 添加轮播图 +* @param {Object} data - 轮播图信息 +* @param {string} data.title - 标题 +* @param {string} data.imageUrl - 图片URL +* @param {string} data.linkType - 链接类型 (Event=赛事链接, Url=外部链接) +* @param {string} [data.linkUrl] - 跳转链接 (linkType为Url时必填) +* @param {number} data.eventId - 关联赛事ID,字段名 eventId (linkType 为 Event 时必传) +* @param {number} [data.sort] - 排序号 +* @param {string} [data.remark] - 备注 +*/ +export const bannerAddPost = (data) => { + return http.post('/banner', data); +}; + +/** +* 更新轮播图 +* @param {Object} data - 轮播图信息 +* @param {number} data.id - 轮播图ID +* @param {string} data.title - 标题 +* @param {string} data.imageUrl - 图片URL +* @param {string} data.linkType - 链接类型 +* @param {string} [data.linkUrl] - 跳转链接 +* @param {number} data.eventId - 关联赛事ID,字段名 eventId (linkType 为 Event 时必传) +* @param {number} [data.sort] - 排序号 +* @param {string} [data.remark] - 备注 +* @param {string} [data.status] - 状态 (Enable, Disable) +*/ +export const bannerEditPut = (data) => { + return http.put('/banner', data); +}; + +/** +* 批量删除轮播图 +* @param {Array} data - 轮播图ID数组 +*/ +export const bannerDelete = (data) => { + return http.delete('/banner', { data }); +}; + +/** +* 排序 +* @param {Array} data - 轮播图ID数组 (按顺序排列) +*/ +export const bannerSortPost = (data) => { + return http.post('/banner/sort', data); +}; + +/** +* 删除单个轮播图 +* @param {Object} data - 删除参数 +* @param {number} data.id - 轮播图ID +*/ +export const bannerDeleteDelete = (data) => { + return http.delete('/banner/delete', { data }); +}; + +/** +* 修改轮播图状态 +* @param {Object} data - 状态参数 +* @param {number} data.id - 轮播图ID +* @param {string} data.status - 状态 (Enable=启用, Disable=禁用) +*/ +export const bannerSetstatusPatch = (data) => { + return http.patch('/banner/setstatus', data); +}; \ No newline at end of file diff --git a/src/api/match/refund.js b/src/api/match/refund.js new file mode 100644 index 0000000..a97ac85 --- /dev/null +++ b/src/api/match/refund.js @@ -0,0 +1,99 @@ +import { BaseApi } from '../baseApi'; +import { http } from '../../utils/request'; + +// ==================== 退款配置服务 ==================== + +/** + * 获取所有退款配置 + * @returns {Promise>} +*/ +export const refundconfigListGet = () => { + return http.get('/refundconfig/list'); +}; + +/** +* 分页查询退款配置 +* @param {Object} params - 查询参数 +* @param {string} [params.Status] - 状态 (Enable=启用, Disable=禁用) +* @param {number} [params.PageNo] - 当前页码 +* @param {number} [params.PageSize] - 每页条数 +* @returns {Promise<{ +* pageNo: number, +* pageSize: number, +* pages: number, +* total: number, +* rows: Array<{ +* id: number, +* dayStart: number, +* dayEnd: number, +* deductPercentage: number, +* remark: string, +* status: string +* }> +* }>} +*/ +export const refundconfigPageGet = (params) => { + return http.get('/refundconfig/page', { params }); +}; + +/** +* 添加退款配置 +* @param {Object} data - 退款配置信息 +* @param {number} [data.id] - 配置ID (添加时可不传) +* @param {number} data.dayStart - 开始天数 (如比赛开始前多少天) +* @param {number} data.dayEnd - 结束天数 +* @param {number} data.deductPercentage - 扣除百分比 (如20表示扣除20%) +* @param {string} [data.remark] - 备注 +* @param {string} [data.status] - 状态 (Enable=启用, Disable=禁用,默认Enable) +*/ +export const refundconfigAddPost = (data) => { + return http.post('/refundconfig/add', data); +}; + +/** +* 更新退款配置 +* @param {Object} data - 退款配置信息 +* @param {number} data.id - 配置ID +* @param {number} data.dayStart - 开始天数 +* @param {number} data.dayEnd - 结束天数 +* @param {number} data.deductPercentage - 扣除百分比 +* @param {string} [data.remark] - 备注 +* @param {string} [data.status] - 状态 (Enable, Disable) +*/ +export const refundconfigUpdatePut = (data) => { + return http.put('/refundconfig/update', data); +}; + +/** +* 批量删除退款配置 +* @param {Array} data - 配置ID数组 +*/ +export const refundconfigDeletePost = (data) => { + return http.post('/refundconfig/delete', data); +}; + +/** +* 删除单个退款配置 +* @param {Object} data - 删除参数 +* @param {number} data.id - 配置ID +*/ +export const refundconfigDeleteDelete = (data) => { + return http.delete('/refundconfig/delete', { data }); +}; + +/** +* 修改退款配置状态 +* @param {Object} data - 状态参数 +* @param {number} data.id - 配置ID +* @param {string} data.status - 状态 (Enable=启用, Disable=禁用) +*/ +export const refundconfigSetstatusPatch = (data) => { + return http.patch('/refundconfig/setstatus', data); +}; \ No newline at end of file diff --git a/src/router/route.ts b/src/router/route.ts index dfcc20d..82cb51d 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -416,6 +416,52 @@ export const dynamicRoutes: Array = [ icon: 'iconfont icon-shouye', }, }, + //订单管理 + { + path: '/user/order', + name: 'userorder', + component: () => import('/@/views/marchant/order/index.vue'), + meta: { + title: '订单管理', + isLink: '', + isHide: false, + isKeepAlive: false, + isAffix: false, + isIframe: false, + roles: ['admin', 'common'], + icon: 'iconfont icon-shouye', + }, + }, + { + path: '/banner', + name: 'banner', + component: () => import('/@/views/match/banner/index.vue'), + meta: { + title: '轮播图管理', + isLink: '', + isHide: false, + isKeepAlive: false, + isAffix: false, + isIframe: false, + roles: ['admin', 'common'], + icon: 'iconfont icon-shouye', + }, + }, + { + path: '/refund', + name: 'refund', + component: () => import('/@/views/match/refund/index.vue'), + meta: { + title: '退款配置', + isLink: '', + isHide: false, + isKeepAlive: false, + isAffix: false, + isIframe: false, + roles: ['admin', 'common'], + icon: 'iconfont icon-shouye', + }, + }, //人员管理 { path: '/user/personnel', diff --git a/src/views/marchant/order/index.vue b/src/views/marchant/order/index.vue new file mode 100644 index 0000000..8e4705b --- /dev/null +++ b/src/views/marchant/order/index.vue @@ -0,0 +1,161 @@ + + + + \ No newline at end of file diff --git a/src/views/match/banner/index.vue b/src/views/match/banner/index.vue new file mode 100644 index 0000000..abc1c7f --- /dev/null +++ b/src/views/match/banner/index.vue @@ -0,0 +1,627 @@ + + + + + diff --git a/src/views/match/order/index.vue b/src/views/match/order/index.vue index 5df823f..e4f6763 100644 --- a/src/views/match/order/index.vue +++ b/src/views/match/order/index.vue @@ -8,6 +8,15 @@ + + +