diff --git a/src/api/member/tag/index.ts b/src/api/member/tag/index.ts new file mode 100644 index 00000000..a844dbe3 --- /dev/null +++ b/src/api/member/tag/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +export interface TagVO { + id: number + name: string +} + +// 查询会员标签列表 +export const getMemberTagPage = async (params) => { + return await request.get({ url: `/member/tag/page`, params }) +} + +// 查询会员标签详情 +export const getMemberTag = async (id: number) => { + return await request.get({ url: `/member/tag/get?id=` + id }) +} + +// 新增会员标签 +export const createMemberTag = async (data: TagVO) => { + return await request.post({ url: `/member/tag/create`, data }) +} + +// 修改会员标签 +export const updateMemberTag = async (data: TagVO) => { + return await request.put({ url: `/member/tag/update`, data }) +} + +// 删除会员标签 +export const deleteMemberTag = async (id: number) => { + return await request.delete({ url: `/member/tag/delete?id=` + id }) +} + +// 导出会员标签 Excel +export const exportMemberTag = async (params) => { + return await request.download({ url: `/member/tag/export-excel`, params }) +} diff --git a/src/views/member/tag/TagForm.vue b/src/views/member/tag/TagForm.vue new file mode 100644 index 00000000..d45ea589 --- /dev/null +++ b/src/views/member/tag/TagForm.vue @@ -0,0 +1,91 @@ + + diff --git a/src/views/member/tag/components/MemberTagSelect.vue b/src/views/member/tag/components/MemberTagSelect.vue new file mode 100644 index 00000000..ec4f4617 --- /dev/null +++ b/src/views/member/tag/components/MemberTagSelect.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/views/member/tag/index.vue b/src/views/member/tag/index.vue new file mode 100644 index 00000000..49633edf --- /dev/null +++ b/src/views/member/tag/index.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/views/member/user/UserForm.vue b/src/views/member/user/UserForm.vue index a6d02582..c10d3fea 100644 --- a/src/views/member/user/UserForm.vue +++ b/src/views/member/user/UserForm.vue @@ -57,6 +57,9 @@ :render-after-expand="true" /> + + + @@ -72,6 +75,7 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import * as UserApi from '@/api/member/user' import * as AreaApi from '@/api/system/area' import { defaultProps } from '@/utils/tree' +import MemberTagSelect from '@/views/member/tag/components/MemberTagSelect.vue' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -90,7 +94,8 @@ const formData = ref({ sex: undefined, areaId: undefined, birthday: undefined, - mark: undefined + mark: undefined, + tagIds: [] }) const formRules = reactive({ mobile: [{ required: true, message: '手机号不能为空', trigger: 'blur' }], @@ -163,7 +168,8 @@ const resetForm = () => { areaId: undefined, birthday: undefined, mark: undefined, - createTime: undefined + createTime: undefined, + tagIds: [] } formRef.value?.resetFields() } diff --git a/src/views/member/user/index.vue b/src/views/member/user/index.vue index 925eca04..0389de37 100644 --- a/src/views/member/user/index.vue +++ b/src/views/member/user/index.vue @@ -48,6 +48,9 @@ class="!w-240px" /> + + + 搜索 重置 @@ -69,6 +72,16 @@ + + +