diff --git a/apps/web-antd/src/api/member/address/index.ts b/apps/web-antd/src/api/member/address/index.ts new file mode 100644 index 000000000..2c44c2ff2 --- /dev/null +++ b/apps/web-antd/src/api/member/address/index.ts @@ -0,0 +1,25 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberAddressApi { + /** 收件地址信息 */ + export interface Address { + id?: number; + name: string; + mobile: string; + areaId: number; + detailAddress: string; + defaultStatus: boolean; + } +} + +/** 查询用户收件地址列表 */ +export function getAddressList(params: PageParam) { + return requestClient.get>( + '/member/address/list', + { + params, + }, + ); +} diff --git a/apps/web-antd/src/api/member/experience-record/index.ts b/apps/web-antd/src/api/member/experience-record/index.ts new file mode 100644 index 000000000..f36297f1e --- /dev/null +++ b/apps/web-antd/src/api/member/experience-record/index.ts @@ -0,0 +1,33 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberExperienceRecordApi { + /** 会员经验记录信息 */ + export interface ExperienceRecord { + id?: number; + userId: number; + bizId: string; + bizType: number; + title: string; + description: string; + experience: number; + totalExperience: number; + } +} + +/** 查询会员经验记录列表 */ +export function getExperienceRecordPage(params: PageParam) { + return requestClient.get< + PageResult + >('/member/experience-record/page', { + params, + }); +} + +/** 查询会员经验记录详情 */ +export function getExperienceRecord(id: number) { + return requestClient.get( + `/member/experience-record/get?id=${id}`, + ); +} diff --git a/apps/web-antd/src/api/member/group/index.ts b/apps/web-antd/src/api/member/group/index.ts new file mode 100644 index 000000000..93c2ca3e9 --- /dev/null +++ b/apps/web-antd/src/api/member/group/index.ts @@ -0,0 +1,50 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberGroupApi { + /** 用户分组信息 */ + export interface Group { + id?: number; + name: string; + remark: string; + status: number; + } +} + +/** 查询用户分组列表 */ +export function getGroupPage(params: PageParam) { + return requestClient.get>( + '/member/group/page', + { + params, + }, + ); +} + +/** 查询用户分组详情 */ +export function getGroup(id: number) { + return requestClient.get(`/member/group/get?id=${id}`); +} + +/** 新增用户分组 */ +export function createGroup(data: MemberGroupApi.Group) { + return requestClient.post('/member/group/create', data); +} + +/** 查询用户分组 - 精简信息列表 */ +export function getSimpleGroupList() { + return requestClient.get( + '/member/group/list-all-simple', + ); +} + +/** 修改用户分组 */ +export function updateGroup(data: MemberGroupApi.Group) { + return requestClient.put('/member/group/update', data); +} + +/** 删除用户分组 */ +export function deleteGroup(id: number) { + return requestClient.delete(`/member/group/delete?id=${id}`); +} diff --git a/apps/web-antd/src/api/member/point/record/index.ts b/apps/web-antd/src/api/member/point/record/index.ts new file mode 100644 index 000000000..7f6797e8a --- /dev/null +++ b/apps/web-antd/src/api/member/point/record/index.ts @@ -0,0 +1,28 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberPointRecordApi { + /** 用户积分记录信息 */ + export interface Record { + id?: number; + bizId: string; + bizType: string; + title: string; + description: string; + point: number; + totalPoint: number; + userId: number; + createDate: Date; + } +} + +/** 查询用户积分记录列表 */ +export function getRecordPage(params: PageParam) { + return requestClient.get>( + '/member/point/record/page', + { + params, + }, + ); +} diff --git a/apps/web-antd/src/api/member/signin/config/index.ts b/apps/web-antd/src/api/member/signin/config/index.ts new file mode 100644 index 000000000..cf113b781 --- /dev/null +++ b/apps/web-antd/src/api/member/signin/config/index.ts @@ -0,0 +1,41 @@ +import { requestClient } from '#/api/request'; + +export namespace MemberSignInConfigApi { + /** 积分签到规则信息 */ + export interface SignInConfig { + id?: number; + day?: number; + point?: number; + experience?: number; + status?: number; + } +} + +/** 查询积分签到规则列表 */ +export function getSignInConfigList() { + return requestClient.get( + '/member/sign-in/config/list', + ); +} + +/** 查询积分签到规则详情 */ +export function getSignInConfig(id: number) { + return requestClient.get( + `/member/sign-in/config/get?id=${id}`, + ); +} + +/** 新增积分签到规则 */ +export function createSignInConfig(data: MemberSignInConfigApi.SignInConfig) { + return requestClient.post('/member/sign-in/config/create', data); +} + +/** 修改积分签到规则 */ +export function updateSignInConfig(data: MemberSignInConfigApi.SignInConfig) { + return requestClient.put('/member/sign-in/config/update', data); +} + +/** 删除积分签到规则 */ +export function deleteSignInConfig(id: number) { + return requestClient.delete(`/member/sign-in/config/delete?id=${id}`); +} diff --git a/apps/web-antd/src/api/member/signin/record/index.ts b/apps/web-antd/src/api/member/signin/record/index.ts new file mode 100644 index 000000000..7d5766d66 --- /dev/null +++ b/apps/web-antd/src/api/member/signin/record/index.ts @@ -0,0 +1,23 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberSignInRecordApi { + /** 用户签到积分信息 */ + export interface SignInRecord { + id?: number; + userId: number; + day: number; + point: number; + } +} + +/** 查询用户签到积分列表 */ +export function getSignInRecordPage(params: PageParam) { + return requestClient.get>( + '/member/sign-in/record/page', + { + params, + }, + ); +} diff --git a/apps/web-antd/src/api/member/user/index.ts b/apps/web-antd/src/api/member/user/index.ts new file mode 100644 index 000000000..e8a5a35b7 --- /dev/null +++ b/apps/web-antd/src/api/member/user/index.ts @@ -0,0 +1,70 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberUserApi { + /** 会员用户信息 */ + export interface User { + id?: number; + avatar?: string; + birthday?: number; + createTime?: number; + loginDate?: number; + loginIp: string; + mark: string; + mobile: string; + name?: string; + nickname?: string; + registerIp: string; + sex: number; + status: number; + areaId?: number; + areaName?: string; + levelName: null | string; + point?: null | number; + totalPoint?: null | number; + experience?: null | number; + } + + /** 会员用户等级更新信息 */ + export interface UserLevelUpdate { + id: number; + levelId: number; + } + + /** 会员用户积分更新信息 */ + export interface UserPointUpdate { + id: number; + point: number; + } +} + +/** 查询会员用户列表 */ +export function getUserPage(params: PageParam) { + return requestClient.get>( + '/member/user/page', + { + params, + }, + ); +} + +/** 查询会员用户详情 */ +export function getUser(id: number) { + return requestClient.get(`/member/user/get?id=${id}`); +} + +/** 修改会员用户 */ +export function updateUser(data: MemberUserApi.User) { + return requestClient.put('/member/user/update', data); +} + +/** 修改会员用户等级 */ +export function updateUserLevel(data: MemberUserApi.UserLevelUpdate) { + return requestClient.put('/member/user/update-level', data); +} + +/** 修改会员用户积分 */ +export function updateUserPoint(data: MemberUserApi.UserPointUpdate) { + return requestClient.put('/member/user/update-point', data); +} diff --git a/apps/web-antd/src/views/member/point/record/data.ts b/apps/web-antd/src/views/member/point/record/data.ts new file mode 100644 index 000000000..7363c3ba4 --- /dev/null +++ b/apps/web-antd/src/views/member/point/record/data.ts @@ -0,0 +1,87 @@ +import type { VbenFormSchema } from '#/adapter/form'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; + +import { DICT_TYPE, getDictOptions } from '#/utils'; + +/** 列表的搜索表单 */ +export function useGridFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'nickname', + label: '用户', + component: 'Input', + }, + { + fieldName: 'bizType', + label: '业务类型', + component: 'Select', + componentProps: { + allowClear: true, + options: getDictOptions(DICT_TYPE.MEMBER_POINT_BIZ_TYPE, 'number'), + }, + }, + { + fieldName: 'title', + label: '积分标题', + component: 'Input', + }, + { + fieldName: 'createDate', + label: '获得时间', + component: 'DatePicker', + componentProps: { + type: 'daterange', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')], + }, + }, + ]; +} + +/** 列表的字段 */ +export function useGridColumns(): VxeTableGridOptions['columns'] { + return [ + { + field: 'id', + title: '编号', + }, + { + field: 'createTime', + title: '获得时间', + formatter: 'formatDateTime', + }, + { + field: 'nickname', + title: '用户', + }, + { + field: 'point', + title: '获得积分', + slots: { default: 'point' }, + }, + { + field: 'totalPoint', + title: '总积分', + }, + { + field: 'title', + title: '标题', + }, + { + field: 'description', + title: '描述', + }, + { + field: 'bizId', + title: '业务编码', + }, + { + field: 'bizType', + title: '业务类型', + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.MEMBER_POINT_BIZ_TYPE }, + }, + }, + ]; +} diff --git a/apps/web-antd/src/views/member/point/record/index.vue b/apps/web-antd/src/views/member/point/record/index.vue index 50ce2e1aa..afd775de6 100644 --- a/apps/web-antd/src/views/member/point/record/index.vue +++ b/apps/web-antd/src/views/member/point/record/index.vue @@ -1,34 +1,54 @@