diff --git a/apps/web-antd/src/api/member/tag/index.ts b/apps/web-antd/src/api/member/tag/index.ts new file mode 100644 index 000000000..d5c2ef44e --- /dev/null +++ b/apps/web-antd/src/api/member/tag/index.ts @@ -0,0 +1,43 @@ +import type { PageParam, PageResult } from '@vben/request'; + +import { requestClient } from '#/api/request'; + +export namespace MemberTagApi { + /** 会员标签信息 */ + export interface Tag { + id?: number; + name: string; + } +} + +/** 查询会员标签列表 */ +export function getMemberTagPage(params: PageParam) { + return requestClient.get>('/member/tag/page', { + params, + }); +} + +/** 查询会员标签详情 */ +export function getMemberTag(id: number) { + return requestClient.get(`/member/tag/get?id=${id}`); +} + +/** 查询会员标签 - 精简信息列表 */ +export function getSimpleTagList() { + return requestClient.get('/member/tag/list-all-simple'); +} + +/** 新增会员标签 */ +export function createMemberTag(data: MemberTagApi.Tag) { + return requestClient.post('/member/tag/create', data); +} + +/** 修改会员标签 */ +export function updateMemberTag(data: MemberTagApi.Tag) { + return requestClient.put('/member/tag/update', data); +} + +/** 删除会员标签 */ +export function deleteMemberTag(id: number) { + return requestClient.delete(`/member/tag/delete?id=${id}`); +} diff --git a/apps/web-antd/src/views/member/tag/data.ts b/apps/web-antd/src/views/member/tag/data.ts new file mode 100644 index 000000000..73728e0c3 --- /dev/null +++ b/apps/web-antd/src/views/member/tag/data.ts @@ -0,0 +1,71 @@ +import type { VbenFormSchema } from '#/adapter/form'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; + +import { getRangePickerDefaultProps } from '#/utils'; + +/** 新增/修改的表单 */ +export function useFormSchema(): VbenFormSchema[] { + return [ + { + component: 'Input', + fieldName: 'id', + dependencies: { + triggerFields: [''], + show: () => false, + }, + }, + { + component: 'Input', + fieldName: 'name', + label: '标签名称', + rules: 'required', + }, + ]; +} + +/** 列表的搜索表单 */ +export function useGridFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'name', + label: '标签名称', + component: 'Input', + }, + { + fieldName: 'createTime', + label: '创建时间', + component: 'RangePicker', + componentProps: { + ...getRangePickerDefaultProps(), + }, + }, + ]; +} + +/** 列表的字段 */ +export function useGridColumns(): VxeTableGridOptions['columns'] { + return [ + { + field: 'id', + title: '编号', + minWidth: 200, + }, + { + field: 'name', + title: '标签名称', + minWidth: 200, + }, + { + field: 'createTime', + title: '创建时间', + minWidth: 180, + formatter: 'formatDateTime', + }, + { + title: '操作', + width: 150, + fixed: 'right', + slots: { default: 'actions' }, + }, + ]; +} diff --git a/apps/web-antd/src/views/member/tag/index.vue b/apps/web-antd/src/views/member/tag/index.vue index 532f0a838..1f59e7584 100644 --- a/apps/web-antd/src/views/member/tag/index.vue +++ b/apps/web-antd/src/views/member/tag/index.vue @@ -1,34 +1,134 @@ diff --git a/apps/web-antd/src/views/member/tag/modules/form.vue b/apps/web-antd/src/views/member/tag/modules/form.vue new file mode 100644 index 000000000..267bcde26 --- /dev/null +++ b/apps/web-antd/src/views/member/tag/modules/form.vue @@ -0,0 +1,88 @@ + + +