diff --git a/apps/web-antd/src/views/crm/business/index.ts b/apps/web-antd/src/views/crm/business/index.ts index 6ff97edf..2b37527a 100644 --- a/apps/web-antd/src/views/crm/business/index.ts +++ b/apps/web-antd/src/views/crm/business/index.ts @@ -1,25 +1,5 @@ import { defineAsyncComponent } from 'vue'; -export const BusinessForm = defineAsyncComponent( - () => import('./modules/form.vue'), -); - -export const BusinessDetailsInfo = defineAsyncComponent( - () => import('./modules/detail-info.vue'), -); - export const BusinessDetailsList = defineAsyncComponent( () => import('./modules/detail-list.vue'), ); - -export const BusinessDetails = defineAsyncComponent( - () => import('./modules/detail.vue'), -); - -export const BusinessDetailsListModal = defineAsyncComponent( - () => import('./modules/detail-list-modal.vue'), -); - -export const UpStatusForm = defineAsyncComponent( - () => import('./modules/up-status-form.vue'), -); diff --git a/apps/web-antd/src/views/crm/business/index.vue b/apps/web-antd/src/views/crm/business/index.vue index 85210cba..ae7d583b 100644 --- a/apps/web-antd/src/views/crm/business/index.vue +++ b/apps/web-antd/src/views/crm/business/index.vue @@ -2,12 +2,13 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { CrmBusinessApi } from '#/api/crm/business'; +import { ref } from 'vue'; import { useRouter } from 'vue-router'; import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { downloadFileFromBlobPart } from '@vben/utils'; -import { Button, message } from 'ant-design-vue'; +import { Button, message, Tabs } from 'ant-design-vue'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { @@ -21,6 +22,7 @@ import { useGridColumns, useGridFormSchema } from './data'; import Form from './modules/form.vue'; const { push } = useRouter(); +const sceneType = ref('1'); const [FormModal, formModalApi] = useVbenModal({ connectedComponent: Form, @@ -28,13 +30,23 @@ const [FormModal, formModalApi] = useVbenModal({ }); /** 刷新表格 */ -function onRefresh() { +function handleRefresh() { + gridApi.query(); +} + +/** 处理场景类型的切换 */ +function handleChangeSceneType(key: number | string) { + sceneType.value = key.toString(); gridApi.query(); } /** 导出表格 */ async function handleExport() { - const data = await exportBusiness(await gridApi.formApi.getValues()); + const formValues = await gridApi.formApi.getValues(); + const data = await exportBusiness({ + sceneType: sceneType.value, + ...formValues, + }); downloadFileFromBlobPart({ fileName: '商机.xls', source: data }); } @@ -58,7 +70,7 @@ async function handleDelete(row: CrmBusinessApi.Business) { try { await deleteBusiness(row.id as number); message.success($t('ui.actionMessage.deleteSuccess', [row.name])); - onRefresh(); + handleRefresh(); } catch { hideLoading(); } @@ -88,6 +100,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ return await getBusinessPage({ pageNo: page.currentPage, pageSize: page.pageSize, + sceneType: sceneType.value, ...formValues, }); }, @@ -95,6 +108,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, rowConfig: { keyField: 'id', + isHover: true, }, toolbarConfig: { refresh: true, @@ -117,8 +131,15 @@ const [Grid, gridApi] = useVbenVxeGrid({ /> - - + + +