From db38eb23da9665587da0d19617aae727ebfd76c5 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 9 Oct 2025 21:28:13 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E3=80=91=E5=88=86=E9=94=80=E7=94=A8=E6=88=B7=E7=9A=84=20create?= =?UTF-8?q?=20=E8=BF=81=E7=A7=BB=EF=BC=88antd=2040%=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/mall/trade/brokerage/user/data.ts | 18 ++ .../views/mall/trade/brokerage/user/index.vue | 63 +++---- .../brokerage/user/modules/create-form.vue | 165 ++++++++++++++++++ 3 files changed, 216 insertions(+), 30 deletions(-) create mode 100644 apps/web-antd/src/views/mall/trade/brokerage/user/modules/create-form.vue diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts b/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts index 0a6c7c4fa..82c0c2853 100644 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts +++ b/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts @@ -150,3 +150,21 @@ export function useGridColumns( }, ]; } + +/** 创建分销员表单配置 */ +export function useCreateFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'userId', + label: '分销员编号', + component: 'InputSearch', + rules: 'required', + }, + { + fieldName: 'bindUserId', + label: '上级推广员编号', + component: 'InputSearch', + rules: 'required', + }, + ]; +} diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue index 7c8b5df4f..7a96dac79 100644 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue +++ b/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue @@ -15,27 +15,31 @@ import { } from '#/api/mall/trade/brokerage/user'; import { useGridColumns, useGridFormSchema } from './data'; +import CreateForm from './modules/create-form.vue'; import BrokerageOrderListModal from './modules/order-list-modal.vue'; -import BrokerageUserCreateForm from './modules/user-create-form.vue'; import BrokerageUserListModal from './modules/user-list-modal.vue'; import BrokerageUserUpdateForm from './modules/user-update-form.vue'; defineOptions({ name: 'TradeBrokerageUser' }); -const [OrderListModal, orderListModalApi] = useVbenModal({ - connectedComponent: BrokerageOrderListModal, -}); - -const [UserCreateModal, userCreateModalApi] = useVbenModal({ - connectedComponent: BrokerageUserCreateForm, -}); - -const [UserListModal, userListModalApi] = useVbenModal({ - connectedComponent: BrokerageUserListModal, +const [CreateFormModal, createFormModalApi] = useVbenModal({ + connectedComponent: CreateForm, + destroyOnClose: true, }); const [UserUpdateModal, userUpdateModalApi] = useVbenModal({ connectedComponent: BrokerageUserUpdateForm, + destroyOnClose: true, +}); + +const [OrderListModal, orderListModalApi] = useVbenModal({ + connectedComponent: BrokerageOrderListModal, + destroyOnClose: true, +}); + +const [UserListModal, userListModalApi] = useVbenModal({ + connectedComponent: BrokerageUserListModal, + destroyOnClose: true, }); /** 刷新表格 */ @@ -43,6 +47,16 @@ function handleRefresh() { gridApi.query(); } +/** 创建分销员 */ +function handleCreate() { + createFormModalApi.open(); +} + +/** 修改分销员 */ +function handleOpenUpdateForm(row: MallBrokerageUserApi.BrokerageUser) { + userUpdateModalApi.setData(row).open(); +} + /** 打开推广人列表 */ function handleOpenUserList(row: MallBrokerageUserApi.BrokerageUser) { userListModalApi.setData(row).open(); @@ -53,16 +67,6 @@ function handleOpenOrderList(row: MallBrokerageUserApi.BrokerageUser) { orderListModalApi.setData(row).open(); } -/** 打开表单:修改上级推广人 */ -function handleOpenUpdateForm(row: MallBrokerageUserApi.BrokerageUser) { - userUpdateModalApi.setData(row).open(); -} - -/** 创建分销员 */ -function handleCreate() { - userCreateModalApi.open(); -} - /** 清除上级推广人 */ async function handleClearBindUser(row: MallBrokerageUserApi.BrokerageUser) { const hideLoading = message.loading({ @@ -149,6 +153,14 @@ const [Grid, gridApi] = useVbenVxeGrid({ /> + + + + + + + + - - - - - - - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/create-form.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/create-form.vue new file mode 100644 index 000000000..3caa0718b --- /dev/null +++ b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/create-form.vue @@ -0,0 +1,165 @@ + + +