From 35c2ffd03e0093cf3566cc19c2b7ce6d3d95a5b1 Mon Sep 17 00:00:00 2001 From: xingyu Date: Wed, 6 Sep 2023 14:02:06 +0800 Subject: [PATCH] feat: member --- src/api/member/address/index.ts | 15 +++ src/api/member/group/index.ts | 38 ++++++ src/api/member/level/index.ts | 42 +++++++ src/api/member/tag/index.ts | 5 + src/api/member/user/index.ts | 5 + src/views/member/group/GroupModal.vue | 61 +++++++++ src/views/member/group/group.data.ts | 84 +++++++++++++ src/views/member/group/index.vue | 50 ++++++++ src/views/member/level/LevelModal.vue | 61 +++++++++ src/views/member/level/index.vue | 50 ++++++++ src/views/member/level/level.data.ts | 136 +++++++++++++++++++++ src/views/member/signin/config/index.vue | 6 +- src/views/member/tag/index.vue | 6 +- src/views/member/user/UpdateLevelModal.vue | 58 +++++++++ src/views/member/user/index.vue | 13 +- src/views/member/user/user.data.ts | 96 +++++++++++++-- 16 files changed, 704 insertions(+), 22 deletions(-) create mode 100644 src/api/member/address/index.ts create mode 100644 src/api/member/group/index.ts create mode 100644 src/api/member/level/index.ts create mode 100644 src/views/member/group/GroupModal.vue create mode 100644 src/views/member/group/group.data.ts create mode 100644 src/views/member/group/index.vue create mode 100644 src/views/member/level/LevelModal.vue create mode 100644 src/views/member/level/index.vue create mode 100644 src/views/member/level/level.data.ts create mode 100644 src/views/member/user/UpdateLevelModal.vue diff --git a/src/api/member/address/index.ts b/src/api/member/address/index.ts new file mode 100644 index 0000000..1d8fb25 --- /dev/null +++ b/src/api/member/address/index.ts @@ -0,0 +1,15 @@ +import { defHttp } from '@/utils/http/axios' + +export interface AddressVO { + id: number + name: string + mobile: string + areaId: number + detailAddress: string + defaultStatus: boolean +} + +// 查询用户收件地址列表 +export function getAddressList(params) { + return defHttp.get({ url: '/member/address/list', params }) +} diff --git a/src/api/member/group/index.ts b/src/api/member/group/index.ts new file mode 100644 index 0000000..1787fed --- /dev/null +++ b/src/api/member/group/index.ts @@ -0,0 +1,38 @@ +import { defHttp } from '@/utils/http/axios' + +export interface GroupVO { + id: number + name: string + remark: string + status: number +} + +// 查询用户分组列表 +export function getGroupPage(params: any) { + return defHttp.get({ url: '/member/group/page', params }) +} + +// 查询用户分组详情 +export function getGroup(id: number) { + return defHttp.get({ url: `/member/group/get?id=${id}` }) +} + +// 新增用户分组 +export function createGroup(data: GroupVO) { + return defHttp.post({ url: '/member/group/create', data }) +} + +// 查询用户分组 - 精简信息列表 +export function getSimpleGroupList() { + return defHttp.get({ url: '/member/group/list-all-simple' }) +} + +// 修改用户分组 +export function updateGroup(data: GroupVO) { + return defHttp.put({ url: '/member/group/update', data }) +} + +// 删除用户分组 +export function deleteGroup(id: number) { + return defHttp.delete({ url: `/member/group/delete?id=${id}` }) +} diff --git a/src/api/member/level/index.ts b/src/api/member/level/index.ts new file mode 100644 index 0000000..d192124 --- /dev/null +++ b/src/api/member/level/index.ts @@ -0,0 +1,42 @@ +import { defHttp } from '@/utils/http/axios' + +export interface LevelVO { + id: number + name: string + experience: number + value: number + discountPercent: number + icon: string + bgUrl: string + status: number +} + +// 查询会员等级列表 +export function getLevelList(params) { + return defHttp.get({ url: '/member/level/list', params }) +} + +// 查询会员等级详情 +export function getLevel(id: number) { + return defHttp.get({ url: `/member/level/get?id=${id}` }) +} + +// 查询会员等级 - 精简信息列表 +export function getSimpleLevelList() { + return defHttp.get({ url: '/member/level/list-all-simple' }) +} + +// 新增会员等级 +export function createLevel(data: LevelVO) { + return defHttp.post({ url: '/member/level/create', data }) +} + +// 修改会员等级 +export function updateLevel(data: LevelVO) { + return defHttp.put({ url: '/member/level/update', data }) +} + +// 删除会员等级 +export function deleteLevel(id: number) { + return defHttp.delete({ url: `/member/level/delete?id=${id}` }) +} diff --git a/src/api/member/tag/index.ts b/src/api/member/tag/index.ts index 07e6e07..b37914a 100644 --- a/src/api/member/tag/index.ts +++ b/src/api/member/tag/index.ts @@ -15,6 +15,11 @@ export function getMemberTag(id: number) { return defHttp.get({ url: `/member/tag/get?id=${id}` }) } +// 查询会员标签 - 精简信息列表 +export function getSimpleTagList() { + return defHttp.get({ url: '/member/tag/list-all-simple' }) +} + // 新增会员标签 export function createMemberTag(data: TagVO) { return defHttp.post({ url: '/member/tag/create', data }) diff --git a/src/api/member/user/index.ts b/src/api/member/user/index.ts index 6228ee4..3a4a13e 100644 --- a/src/api/member/user/index.ts +++ b/src/api/member/user/index.ts @@ -32,3 +32,8 @@ export function getUser(id: number) { export function updateUser(data: UserVO) { return defHttp.put({ url: '/member/user/update', data }) } + +// 修改会员用户等级 +export function updateUserLevel(data: any) { + return defHttp.put({ url: '/member/user/update-level', data }) +} diff --git a/src/views/member/group/GroupModal.vue b/src/views/member/group/GroupModal.vue new file mode 100644 index 0000000..62bd85d --- /dev/null +++ b/src/views/member/group/GroupModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/member/group/group.data.ts b/src/views/member/group/group.data.ts new file mode 100644 index 0000000..3825f64 --- /dev/null +++ b/src/views/member/group/group.data.ts @@ -0,0 +1,84 @@ +import type { BasicColumn, FormSchema } from '@/components/Table' +import { useRender } from '@/components/Table' +import { DICT_TYPE, getDictOptions } from '@/utils/dict' + +export const columns: BasicColumn[] = [ + { + title: '编号', + dataIndex: 'id', + }, + { + title: '名称', + dataIndex: 'name', + }, + { + title: '备注', + dataIndex: 'remark', + }, + { + title: '状态', + dataIndex: 'status', + customRender: ({ text }) => { + return useRender.renderDict(text, DICT_TYPE.COMMON_STATUS) + }, + }, + { + title: '创建时间', + dataIndex: 'createTime', + customRender: ({ text }) => { + return useRender.renderDate(text) + }, + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + label: '分组名称', + field: 'name', + component: 'Input', + colProps: { span: 8 }, + }, + { + label: '创建时间', + field: 'createTime', + component: 'RangePicker', + colProps: { span: 8 }, + }, + { + label: '状态', + field: 'status', + component: 'Select', + componentProps: { + options: getDictOptions(DICT_TYPE.COMMON_STATUS), + }, + colProps: { span: 8 }, + }, +] + +export const formSchema: FormSchema[] = [ + { + label: '编号', + field: 'id', + show: false, + component: 'Input', + }, + { + label: '名称', + field: 'name', + required: true, + component: 'Input', + }, + { + label: '状态', + field: 'status', + component: 'Select', + componentProps: { + options: getDictOptions(DICT_TYPE.COMMON_STATUS), + }, + }, + { + label: '备注', + field: 'remark', + component: 'InputTextArea', + }, +] diff --git a/src/views/member/group/index.vue b/src/views/member/group/index.vue new file mode 100644 index 0000000..dfe3c5b --- /dev/null +++ b/src/views/member/group/index.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/views/member/level/LevelModal.vue b/src/views/member/level/LevelModal.vue new file mode 100644 index 0000000..665525f --- /dev/null +++ b/src/views/member/level/LevelModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/member/level/index.vue b/src/views/member/level/index.vue new file mode 100644 index 0000000..d09a15f --- /dev/null +++ b/src/views/member/level/index.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/views/member/level/level.data.ts b/src/views/member/level/level.data.ts new file mode 100644 index 0000000..15b320c --- /dev/null +++ b/src/views/member/level/level.data.ts @@ -0,0 +1,136 @@ +import type { BasicColumn, FormSchema } from '@/components/Table' +import { useRender } from '@/components/Table' +import { DICT_TYPE, getDictOptions } from '@/utils/dict' + +export const columns: BasicColumn[] = [ + { + title: '编号', + dataIndex: 'id', + }, + { + title: '等级图标', + dataIndex: 'icon', + customRender: ({ text }) => { + return useRender.renderImg(text) + }, + }, + { + title: '等级背景图', + dataIndex: 'remark', + customRender: ({ text }) => { + return useRender.renderImg(text) + }, + }, + { + title: '等级名称', + dataIndex: 'name', + }, + { + title: '等级', + dataIndex: 'level', + }, + { + title: '升级经验', + dataIndex: 'experience', + }, + { + title: '享受折扣(%)', + dataIndex: 'discountPercent', + }, + { + title: '状态', + dataIndex: 'status', + customRender: ({ text }) => { + return useRender.renderDict(text, DICT_TYPE.COMMON_STATUS) + }, + }, + { + title: '创建时间', + dataIndex: 'createTime', + customRender: ({ text }) => { + return useRender.renderDate(text) + }, + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + label: '等级名称', + field: 'name', + component: 'Input', + colProps: { span: 8 }, + }, + { + label: '状态', + field: 'status', + component: 'Select', + componentProps: { + options: getDictOptions(DICT_TYPE.COMMON_STATUS), + }, + colProps: { span: 8 }, + }, +] + +export const formSchema: FormSchema[] = [ + { + label: '编号', + field: 'id', + show: false, + component: 'Input', + }, + { + label: '等级名称', + field: 'name', + required: true, + component: 'Input', + }, + { + label: '等级', + field: 'level', + required: true, + component: 'InputNumber', + }, + { + label: '升级经验', + field: 'experience', + required: true, + component: 'InputNumber', + }, + { + label: '享受折扣(%)', + field: 'discountPercent', + required: true, + component: 'InputNumber', + }, + { + label: '等级图标', + field: 'icon', + component: 'FileUpload', + componentProps: { + maxCount: 1, + fileType: 'image', + }, + }, + { + label: '背景图', + field: 'backgroundUrl', + component: 'FileUpload', + componentProps: { + maxCount: 1, + fileType: 'image', + }, + }, + { + label: '状态', + field: 'status', + component: 'Select', + componentProps: { + options: getDictOptions(DICT_TYPE.COMMON_STATUS), + }, + }, + { + label: '备注', + field: 'remark', + component: 'InputTextArea', + }, +] diff --git a/src/views/member/signin/config/index.vue b/src/views/member/signin/config/index.vue index bd15d91..0c669d1 100644 --- a/src/views/member/signin/config/index.vue +++ b/src/views/member/signin/config/index.vue @@ -45,7 +45,7 @@ async function handleDelete(record: Recordable) {
@@ -53,12 +53,12 @@ async function handleDelete(record: Recordable) {