diff --git a/public/assets/bg-2.jpeg b/public/assets/bg-2.jpeg new file mode 100644 index 0000000..5ea2d42 Binary files /dev/null and b/public/assets/bg-2.jpeg differ diff --git a/src/api/booking/field/index.ts b/src/api/booking/field/index.ts new file mode 100644 index 0000000..6819173 --- /dev/null +++ b/src/api/booking/field/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Field, FieldParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询场馆场地 + */ +export async function pageField(params: FieldParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/field/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询场馆场地列表 + */ +export async function listField(params?: FieldParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/field', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加场馆场地 + */ +export async function addField(data: Field) { + const res = await request.post>( + MODULES_API_URL + '/booking/field', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改场馆场地 + */ +export async function updateField(data: Field) { + const res = await request.put>( + MODULES_API_URL + '/booking/field', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除场馆场地 + */ +export async function removeField(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/field/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除场馆场地 + */ +export async function removeBatchField(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/field/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询场馆场地 + */ +export async function getField(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/field/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/field/model/index.ts b/src/api/booking/field/model/index.ts new file mode 100644 index 0000000..ce6cb4d --- /dev/null +++ b/src/api/booking/field/model/index.ts @@ -0,0 +1,59 @@ +import type { PageParam } from '@/api'; + +/** + * 场馆场地 + */ +export interface Field { + // ID + fieldId?: number; + // 场地名称 + fieldName?: string; + // 图标 + image?: string; + // 分类ID + categoryId?: number; + // 关联用户 + userId?: number; + // 老师ID + teacherId?: number; + // 是否支持半场 + isHalf?: number; + // 可重复订阅数 + isRepeat?: number; + // 是否厕所 + isToilet?: number; + // 是否支持儿童价 + isChildren?: number; + // 显示在第几行 + row?: number; + num?: number; + // 商户ID + merchantId?: number; + // 上课时间 + startTime?: string; + // 报名人数上限 + maxNumber?: number; + // 上课地点 + address?: string; + // 备注 + comments?: string; + // 场地状态 + isStatus?: number; + // 状态 + status?: number; + // 排序号 + sortNumber?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; +} + +/** + * 场馆场地搜索条件 + */ +export interface FieldParam extends PageParam { + fieldId?: number; + fieldName?: string; + keywords?: string; +} diff --git a/src/api/booking/integral/index.ts b/src/api/booking/integral/index.ts new file mode 100644 index 0000000..a210249 --- /dev/null +++ b/src/api/booking/integral/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Integral, IntegralParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询签到积分 + */ +export async function pageIntegral(params: IntegralParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/integral/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询签到积分列表 + */ +export async function listIntegral(params?: IntegralParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/integral', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加签到积分 + */ +export async function addIntegral(data: Integral) { + const res = await request.post>( + MODULES_API_URL + '/booking/integral', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改签到积分 + */ +export async function updateIntegral(data: Integral) { + const res = await request.put>( + MODULES_API_URL + '/booking/integral', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除签到积分 + */ +export async function removeIntegral(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/integral/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除签到积分 + */ +export async function removeBatchIntegral(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/integral/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询签到积分 + */ +export async function getIntegral(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/integral/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/integral/model/index.ts b/src/api/booking/integral/model/index.ts new file mode 100644 index 0000000..4348c5f --- /dev/null +++ b/src/api/booking/integral/model/index.ts @@ -0,0 +1,33 @@ +import type { PageParam } from '@/api'; + +/** + * 签到积分 + */ +export interface Integral { + // + id?: number; + // 用户id + userId?: number; + // 微信昵称 + username?: string; + // 手机号码 + phone?: string; + // 获得积分 + integral?: string; + // 日期 + dateTime?: string; + // 天 + day?: string; + // 租户id + tenantId?: number; + // 签到时间 + createTime?: number; +} + +/** + * 签到积分搜索条件 + */ +export interface IntegralParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/booking/integralLog/index.ts b/src/api/booking/integralLog/index.ts new file mode 100644 index 0000000..18006ec --- /dev/null +++ b/src/api/booking/integralLog/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { IntegralLog, IntegralLogParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询积分明细 + */ +export async function pageIntegralLog(params: IntegralLogParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/integral-log/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询积分明细列表 + */ +export async function listIntegralLog(params?: IntegralLogParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/integral-log', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加积分明细 + */ +export async function addIntegralLog(data: IntegralLog) { + const res = await request.post>( + MODULES_API_URL + '/booking/integral-log', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改积分明细 + */ +export async function updateIntegralLog(data: IntegralLog) { + const res = await request.put>( + MODULES_API_URL + '/booking/integral-log', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除积分明细 + */ +export async function removeIntegralLog(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/integral-log/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除积分明细 + */ +export async function removeBatchIntegralLog(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/integral-log/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询积分明细 + */ +export async function getIntegralLog(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/integral-log/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/integralLog/model/index.ts b/src/api/booking/integralLog/model/index.ts new file mode 100644 index 0000000..0904a64 --- /dev/null +++ b/src/api/booking/integralLog/model/index.ts @@ -0,0 +1,39 @@ +import type { PageParam } from '@/api'; + +/** + * 积分明细 + */ +export interface IntegralLog { + // + id?: number; + // 场馆订单号 + orderNum?: string; + // 订单id + oid?: number; + // 场馆名称 + siteName?: string; + // 微信昵称 + username?: string; + // 手机号码 + phone?: string; + // 获得积分 + integral?: string; + // 变化前积分 + oldMoney?: string; + // 变化后积分 + newMoney?: string; + // 描述 + info?: string; + // 租户id + tenantId?: number; + // 记录时间 + createTime?: number; +} + +/** + * 积分明细搜索条件 + */ +export interface IntegralLogParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/booking/order/index.ts b/src/api/booking/order/index.ts new file mode 100644 index 0000000..9d82c94 --- /dev/null +++ b/src/api/booking/order/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Order, OrderParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询预约订单 + */ +export async function pageOrder(params: OrderParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/order/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询预约订单列表 + */ +export async function listOrder(params?: OrderParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/order', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加预约订单 + */ +export async function addOrder(data: Order) { + const res = await request.post>( + MODULES_API_URL + '/booking/order', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改预约订单 + */ +export async function updateOrder(data: Order) { + const res = await request.put>( + MODULES_API_URL + '/booking/order', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除预约订单 + */ +export async function removeOrder(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/order/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除预约订单 + */ +export async function removeBatchOrder(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/order/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询预约订单 + */ +export async function getOrder(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/order/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/order/model/index.ts b/src/api/booking/order/model/index.ts new file mode 100644 index 0000000..63dbab5 --- /dev/null +++ b/src/api/booking/order/model/index.ts @@ -0,0 +1,95 @@ +import type { PageParam } from '@/api'; + +/** + * 预约订单 + */ +export interface Order { + // 订单号 + orderId?: number; + // 订单编号 + orderNo?: string; + // 微信支付订单号 + wechatOrder?: string; + // 微信退款订单号 + refundOrder?: string; + // 场馆id用于权限判断 + merchantId?: number; + // 用户id + userId?: number; + // 使用的优惠券id + couponId?: number; + // 使用的会员卡id + cardId?: number; + // 关联管理员id + aid?: number; + // 核销管理员id + adminId?: number; + // IC卡号 + code?: string; + // 真实姓名 + name?: string; + // 手机号码 + phone?: string; + // 订单总额 + totalPrice?: string; + // 减少的金额,使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格 + reducePrice?: string; + // 实际付款 + payPrice?: string; + // 用于统计 + price?: string; + // 价钱,用于积分赠送 + money?: string; + // 退款金额 + refundMoney?: string; + // 教练价格 + coachPrice?: string; + // 教练id + coachId?: number; + // 1微信支付,2积分,3支付宝,4现金,5POS机,6VIP月卡,7VIP年卡,8VIP次卡,9IC月卡,10IC年卡,11IC次卡,12免费,13VIP充值卡,14IC充值卡,15积分支付,16VIP季卡,17IC季卡 + payType?: string; + // 1已付款,2未付款 + payStatus?: string; + // 1已完成,2未使用,3已取消,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 + orderStatus?: string; + // 优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡 + type?: string; + // 二维码地址,保存订单号,支付成功后才生成 + qrcode?: string; + // 优惠说明 + desc?: string; + // vip月卡年卡、ic月卡年卡回退次数 + returnNum?: number; + // vip充值回退金额 + returnMoney?: string; + // 预约详情开始时间数组 + startTime?: string; + // 是否已开具发票:1已开发票,2未开发票,3不能开具发票 + isInvoice?: string; + // 下单时间 + createTime?: number; + // + updateTime?: number; + // 付款时间 + payTime?: number; + // 退款时间 + refundTime?: number; + // 申请退款时间 + refundApplyTime?: number; + // 对账情况:1=已对账;2=未对账;3=已对账,金额对不上;4=未查询到该订单 + checkBill?: number; + // 备注 + comments?: string; + // 是否删除, 0否, 1是 + deleted?: number; + // 租户id + tenantId?: number; +} + +/** + * 预约订单搜索条件 + */ +export interface OrderParam extends PageParam { + orderId?: number; + keywords?: string; +} diff --git a/src/api/booking/period/index.ts b/src/api/booking/period/index.ts new file mode 100644 index 0000000..059aa3d --- /dev/null +++ b/src/api/booking/period/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Period, PeriodParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询场地时段 + */ +export async function pagePeriod(params: PeriodParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/period/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询场地时段列表 + */ +export async function listPeriod(params?: PeriodParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/period', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加场地时段 + */ +export async function addPeriod(data: Period) { + const res = await request.post>( + MODULES_API_URL + '/booking/period', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改场地时段 + */ +export async function updatePeriod(data: Period) { + const res = await request.put>( + MODULES_API_URL + '/booking/period', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除场地时段 + */ +export async function removePeriod(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/period/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除场地时段 + */ +export async function removeBatchPeriod(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/period/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询场地时段 + */ +export async function getPeriod(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/period/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/period/model/index.ts b/src/api/booking/period/model/index.ts new file mode 100644 index 0000000..1dd14c3 --- /dev/null +++ b/src/api/booking/period/model/index.ts @@ -0,0 +1,51 @@ +import type { PageParam } from '@/api'; + +/** + * 场地时段 + */ +export interface Period { + // + periodId?: number; + // 时段 + timePeriod?: string; + timePeriod1?: string; + timePeriod2?: string; + // 价格 + price?: number; + // 每日不同价格 + prices?: string; + // 半场价格 + halfPrice?: number; + // 每日不同半场价格 + halfPrices?: string; + // 儿童价 + childrenPrice?: number; + // 星期选择 + week?: string; + // 排序 + sortNumber?: number; + // 关联id + merchantId?: number; + // 是否关闭,1开启,2关闭 + isStatus?: number; + // 是否免费:1免费,2收费 + isFree?: number; + // 开始时间 + startTime?: string; + // 备注 + comments?: string; + // 状态 + status?: number; + // 租户id + tenantId?: number; + // 创建时间 + createTime?: string; +} + +/** + * 场地时段搜索条件 + */ +export interface PeriodParam extends PageParam { + periodId?: number; + keywords?: string; +} diff --git a/src/api/booking/users/index.ts b/src/api/booking/users/index.ts new file mode 100644 index 0000000..6f17283 --- /dev/null +++ b/src/api/booking/users/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { Users, UsersParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询用户 + */ +export async function pageUsers(params: UsersParam) { + const res = await request.get>>( + MODULES_API_URL + '/booking/users/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询用户列表 + */ +export async function listUsers(params?: UsersParam) { + const res = await request.get>( + MODULES_API_URL + '/booking/users', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加用户 + */ +export async function addUsers(data: Users) { + const res = await request.post>( + MODULES_API_URL + '/booking/users', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改用户 + */ +export async function updateUsers(data: Users) { + const res = await request.put>( + MODULES_API_URL + '/booking/users', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除用户 + */ +export async function removeUsers(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/booking/users/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除用户 + */ +export async function removeBatchUsers(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/booking/users/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询用户 + */ +export async function getUsers(id: number) { + const res = await request.get>( + MODULES_API_URL + '/booking/users/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/booking/users/model/index.ts b/src/api/booking/users/model/index.ts new file mode 100644 index 0000000..8d9467f --- /dev/null +++ b/src/api/booking/users/model/index.ts @@ -0,0 +1,73 @@ +import type { PageParam } from '@/api'; + +/** + * 用户 + */ +export interface Users { + // + userId?: number; + // 用户唯一小程序id + openid?: string; + // 小程序用户秘钥 + sessionKey?: string; + // 用户名 + username?: string; + // 头像地址 + avatarUrl?: string; + // 1男,2女 + sex?: string; + // 国家 + country?: string; + // 省份 + province?: string; + // 城市 + city?: string; + // 所在辖区 + region?: string; + // 经度 + longitude?: string; + // 纬度 + latitude?: string; + // 手机号码 + phone?: string; + // 邮箱 + email?: string; + // 邮箱是否验证, 0否, 1是 + emailVerified?: number; + // 积分 + points?: string; + // 余额 + balance?: string; + // 注册时间 + addTime?: number; + // 身份证号码 + idCard?: string; + // 真实姓名 + realName?: string; + // 是否管理员:1是;2否 + isAdmin?: string; + // 客户端ID + clientId?: string; + // 注册来源客户端 (APP、H5、小程序等) + platform?: string; + // 排序 + sortNumber?: number; + // 备注 + comments?: string; + // 状态 + status?: number; + // 是否删除, 0否, 1是 + deleted?: number; + // 租户id + tenantId?: number; + // 注册时间 + createTime?: string; +} + +/** + * 用户搜索条件 + */ +export interface UsersParam extends PageParam { + userId?: number; + keywords?: string; +} diff --git a/src/api/cms/website/field/model/index.ts b/src/api/cms/website/field/model/index.ts index 157263b..16708eb 100644 --- a/src/api/cms/website/field/model/index.ts +++ b/src/api/cms/website/field/model/index.ts @@ -20,6 +20,7 @@ export interface WebsiteField { */ export interface WebsiteFieldParam extends PageParam { id?: number; + name?: string; userId?: number; websiteId?: number; } diff --git a/src/api/shop/merchant/model/index.ts b/src/api/shop/merchant/model/index.ts index ebb896d..cd10150 100644 --- a/src/api/shop/merchant/model/index.ts +++ b/src/api/shop/merchant/model/index.ts @@ -55,6 +55,10 @@ export interface Merchant { // 默认商户管理角色ID roleId?: number; roleName?: string; + key?: number; + value?: number; + title?: string; + disabled?: boolean; } /** diff --git a/src/api/shop/order/index.ts b/src/api/shop/order/index.ts index 417059d..dbf996f 100644 --- a/src/api/shop/order/index.ts +++ b/src/api/shop/order/index.ts @@ -4,7 +4,7 @@ import type { Order, OrderParam } from './model'; import { MODULES_API_URL } from '@/config/setting'; /** - * 分页查询订单 + * 分页查询预约订单 */ export async function pageOrder(params: OrderParam) { const res = await request.get>>( @@ -20,7 +20,7 @@ export async function pageOrder(params: OrderParam) { } /** - * 查询订单列表 + * 查询预约订单列表 */ export async function listOrder(params?: OrderParam) { const res = await request.get>( @@ -36,7 +36,7 @@ export async function listOrder(params?: OrderParam) { } /** - * 添加订单 + * 添加预约订单 */ export async function addOrder(data: Order) { const res = await request.post>( @@ -50,7 +50,7 @@ export async function addOrder(data: Order) { } /** - * 修改订单 + * 修改预约订单 */ export async function updateOrder(data: Order) { const res = await request.put>( @@ -64,7 +64,7 @@ export async function updateOrder(data: Order) { } /** - * 删除订单 + * 删除预约订单 */ export async function removeOrder(id?: number) { const res = await request.delete>( @@ -77,7 +77,7 @@ export async function removeOrder(id?: number) { } /** - * 批量删除订单 + * 批量删除预约订单 */ export async function removeBatchOrder(data: (number | undefined)[]) { const res = await request.delete>( @@ -93,7 +93,7 @@ export async function removeBatchOrder(data: (number | undefined)[]) { } /** - * 根据id查询订单 + * 根据id查询预约订单 */ export async function getOrder(id: number) { const res = await request.get>( diff --git a/src/api/shop/order/model/index.ts b/src/api/shop/order/model/index.ts index 2d465e8..63dbab5 100644 --- a/src/api/shop/order/model/index.ts +++ b/src/api/shop/order/model/index.ts @@ -1,77 +1,93 @@ import type { PageParam } from '@/api'; /** - * 订单 + * 预约订单 */ export interface Order { - // ID - orderId?: number; // 订单号 + orderId?: number; + // 订单编号 orderNo?: string; - // 类型 - type?: number; - // 订单金额 - money?: string; - // 实际付款金额(包含运费) - payPrice?: string; - // 套餐ID - planId?: number; - // 卡ID - priceId?: number; - // 获得的会员等级 - gradeId?: number; - // 卡名称 - priceName?: string; - // 用户ID + // 微信支付订单号 + wechatOrder?: string; + // 微信退款订单号 + refundOrder?: string; + // 场馆id用于权限判断 + merchantId?: number; + // 用户id userId?: number; - // 持有者ID - memberId?: number; + // 使用的优惠券id + couponId?: number; + // 使用的会员卡id + cardId?: number; + // 关联管理员id + aid?: number; + // 核销管理员id + adminId?: number; + // IC卡号 + code?: string; // 真实姓名 - realName?: string; - // 联系电话 + name?: string; + // 手机号码 phone?: string; + // 订单总额 + totalPrice?: string; + // 减少的金额,使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格 + reducePrice?: string; + // 实际付款 + payPrice?: string; + // 用于统计 + price?: string; + // 价钱,用于积分赠送 + money?: string; + // 退款金额 + refundMoney?: string; + // 教练价格 + coachPrice?: string; + // 教练id + coachId?: number; + // 1微信支付,2积分,3支付宝,4现金,5POS机,6VIP月卡,7VIP年卡,8VIP次卡,9IC月卡,10IC年卡,11IC次卡,12免费,13VIP充值卡,14IC充值卡,15积分支付,16VIP季卡,17IC季卡 + payType?: string; + // 1已付款,2未付款 + payStatus?: string; + // 1已完成,2未使用,3已取消,4退款申请中,5退款被拒绝,6退款成功,7客户端申请退款 + orderStatus?: string; + // 优惠类型:0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡,5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡 + type?: string; + // 二维码地址,保存订单号,支付成功后才生成 + qrcode?: string; + // 优惠说明 + desc?: string; + // vip月卡年卡、ic月卡年卡回退次数 + returnNum?: number; + // vip充值回退金额 + returnMoney?: string; + // 预约详情开始时间数组 + startTime?: string; + // 是否已开具发票:1已开发票,2未开发票,3不能开具发票 + isInvoice?: string; + // 下单时间 + createTime?: number; + // + updateTime?: number; // 付款时间 - payTime?: string; - // 支付流水号 - transactionId?: string; - // 付款状态(10未付款 20已付款) - payStatus?: number; - // 到期时间 - expirationTime?: string; - // 所在省份 - province?: string; - // 所在城市 - city?: string; - // 所在辖区 - region?: string; - // 所在地区 - area?: string; - // 街道地址 - address?: string; - // 退款凭证 - refundImage?: string; - // 退款理由 - refundContent?: string; - // 订单是否已结算(0未结算 1已结算) - isSettled?: number; - // 排序(数字越小越靠前) - sortNumber?: number; + payTime?: number; + // 退款时间 + refundTime?: number; + // 申请退款时间 + refundApplyTime?: number; + // 对账情况:1=已对账;2=未对账;3=已对账,金额对不上;4=未查询到该订单 + checkBill?: number; // 备注 comments?: string; - // 状态, 0正常, 1冻结 - status?: number; // 是否删除, 0否, 1是 deleted?: number; // 租户id tenantId?: number; - // 创建时间 - createTime?: string; - // 修改时间 - updateTime?: string; } /** - * 订单搜索条件 + * 预约订单搜索条件 */ export interface OrderParam extends PageParam { orderId?: number; diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 2ac2612..c4c7f87 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -1,14 +1,14 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; import type { User, UserParam } from './model'; -import { SERVER_API_URL } from '@/config/setting'; +import { MODULES_API_URL, SERVER_API_URL } from '@/config/setting'; /** * 分页查询用户 */ export async function pageUsers(params: UserParam) { const res = await request.get>>( - SERVER_API_URL + '/system/user/page', + MODULES_API_URL + '/system/user/page', { params } ); if (res.data.code === 0) { diff --git a/src/api/system/user/model/index.ts b/src/api/system/user/model/index.ts index 3fa8426..2bf0182 100644 --- a/src/api/system/user/model/index.ts +++ b/src/api/system/user/model/index.ts @@ -18,6 +18,8 @@ export interface User { password2?: string; // 昵称 nickname?: string; + openId?: string; + sessionKey?: string; // 别名 alias?: string; // 头像 @@ -84,6 +86,30 @@ export interface User { comments?: string; recommend?: number; system?: any; + // 头像地址 + avatarUrl?: string; + // 1男,2女 + gender?: string; + // 国家 + country?: string; + // 邮箱是否验证, 0否, 1是 + emailVerified?: number; + // 注册时间 + addTime?: number; + // + idcard?: string; + // + truename?: string; + // 是否管理员:1是;2否 + isAdmin?: string; + // 客户端ID + clientId?: string; + // 注册来源客户端 (APP、H5、小程序等) + platform?: string; + // 排序 + sortNumber?: number; + + deleted?: number; } /** diff --git a/src/components/SelectRole/components/select-data.vue b/src/components/SelectRole/components/select-data.vue index 6a4df98..b46972c 100644 --- a/src/components/SelectRole/components/select-data.vue +++ b/src/components/SelectRole/components/select-data.vue @@ -56,7 +56,7 @@ import { EleProTable } from 'ele-admin-pro'; import { Role, RoleParam } from '@/api/system/role/model'; - const props = defineProps<{ + const props = defineProps<{ // 弹窗是否打开 visible: boolean; // 标题 @@ -121,13 +121,14 @@ ...orders, page, limit - }).then(res => { + }).then((res) => { if (props.type == 'merchant') { - return res?.list.filter(d => (d.roleCode == 'merchantClerk')) - }else { + return res?.list.filter( + (d) => d.roleCode == 'merchantClerk' || d.roleCode == 'merchant' + ); + } else { return res; } - }); }; diff --git a/src/views/booking/account/components/merchantAccountEdit.vue b/src/views/booking/account/components/merchantAccountEdit.vue index 50d6c50..68e1d6c 100644 --- a/src/views/booking/account/components/merchantAccountEdit.vue +++ b/src/views/booking/account/components/merchantAccountEdit.vue @@ -75,16 +75,19 @@ import { ref, reactive, watch } from 'vue'; import { Form, message } from 'ant-design-vue'; import { assignObject, uuid } from 'ele-admin-pro'; - import { addMerchantAccount, updateMerchantAccount } from '@/api/shop/merchantAccount'; + import { + addMerchantAccount, + updateMerchantAccount + } from '@/api/shop/merchantAccount'; import { MerchantAccount } from '@/api/shop/merchantAccount/model'; import { useThemeStore } from '@/store/modules/theme'; import { storeToRefs } from 'pinia'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; import { FormInstance } from 'ant-design-vue/es/form'; import { FileRecord } from '@/api/system/file/model'; - import {DictData} from "@/api/system/dict-data/model"; - import {Merchant} from "@/api/shop/merchant/model"; - import {Role} from "@/api/system/role/model"; + import { DictData } from '@/api/system/dict-data/model'; + import { Merchant } from '@/api/shop/merchant/model'; + import { Role } from '@/api/system/role/model'; // 是否是修改 const isUpdate = ref(false); @@ -196,7 +199,7 @@ const chooseRoleId = (item: Role) => { form.roleId = item.roleId; form.roleName = item.roleName; - } + }; const { resetFields } = useForm(form, rules); @@ -212,7 +215,9 @@ const formData = { ...form }; - const saveOrUpdate = isUpdate.value ? updateMerchantAccount : addMerchantAccount; + const saveOrUpdate = isUpdate.value + ? updateMerchantAccount + : addMerchantAccount; saveOrUpdate(formData) .then((msg) => { loading.value = false; diff --git a/src/views/booking/card/components/search.vue b/src/views/booking/card/components/search.vue index f3d0d3b..da1b796 100644 --- a/src/views/booking/card/components/search.vue +++ b/src/views/booking/card/components/search.vue @@ -8,7 +8,6 @@ 添加 - 全部 月/年卡 次卡 充值卡 @@ -44,7 +43,7 @@ // 表单数据 const { where } = useSearch({ - cardCode: '' + cardCode: '月/年卡' }); const handleSearch = () => { diff --git a/src/views/booking/field/components/category-edit.vue b/src/views/booking/field/components/category-edit.vue new file mode 100644 index 0000000..b8fd417 --- /dev/null +++ b/src/views/booking/field/components/category-edit.vue @@ -0,0 +1,289 @@ + + + + diff --git a/src/views/booking/teacher3/components/org-select.vue b/src/views/booking/field/components/category-select.vue similarity index 74% rename from src/views/booking/teacher3/components/org-select.vue rename to src/views/booking/field/components/category-select.vue index 587424f..97b4940 100644 --- a/src/views/booking/teacher3/components/org-select.vue +++ b/src/views/booking/field/components/category-select.vue @@ -1,4 +1,4 @@ - +