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({ /> - - + + + + + + + + + -import type { CrmBusinessApi } from '#/api/crm/business'; - -import { Divider } from 'ant-design-vue'; - -import { useDescription } from '#/components/description'; -import { useFollowUpDetailSchema } from '#/views/crm/followup/data'; - -import { useDetailBaseSchema } from './detail-data'; - -defineProps<{ - business: CrmBusinessApi.Business; // 商机信息 -}>(); - -const [BaseDescriptions] = useDescription({ - componentProps: { - title: '基本信息', - bordered: false, - column: 4, - class: 'mx-4', - }, - schema: useDetailBaseSchema(), -}); - -const [SystemDescriptions] = useDescription({ - componentProps: { - title: '系统信息', - bordered: false, - column: 3, - class: 'mx-4', - }, - schema: useFollowUpDetailSchema(), -}); - - - - - - - - - diff --git a/apps/web-antd/src/views/crm/business/modules/detail-list-modal.vue b/apps/web-antd/src/views/crm/business/modules/detail-list-modal.vue index 03531810..6cf25155 100644 --- a/apps/web-antd/src/views/crm/business/modules/detail-list-modal.vue +++ b/apps/web-antd/src/views/crm/business/modules/detail-list-modal.vue @@ -13,7 +13,7 @@ import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { getBusinessPageByCustomer } from '#/api/crm/business'; import { $t } from '#/locales'; -import { useDetailListColumns } from './detail-data'; +import { useDetailListColumns } from '../detail/data'; import Form from './form.vue'; const props = defineProps<{ diff --git a/apps/web-antd/src/views/crm/business/modules/detail-list.vue b/apps/web-antd/src/views/crm/business/modules/detail-list.vue index d2f14eef..d218d53f 100644 --- a/apps/web-antd/src/views/crm/business/modules/detail-list.vue +++ b/apps/web-antd/src/views/crm/business/modules/detail-list.vue @@ -22,7 +22,7 @@ import { import { BizTypeEnum } from '#/api/crm/permission'; import { $t } from '#/locales'; -import { useDetailListColumns } from './detail-data'; +import { useDetailListColumns } from '../detail/data'; import ListModal from './detail-list-modal.vue'; import Form from './form.vue'; diff --git a/apps/web-antd/src/views/crm/business/modules/detail.vue b/apps/web-antd/src/views/crm/business/modules/detail.vue deleted file mode 100644 index ed661109..00000000 --- a/apps/web-antd/src/views/crm/business/modules/detail.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - {{ $t('ui.actionTitle.edit') }} - - - 变更商机状态 - - - 转移 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/web-antd/src/views/crm/business/modules/up-status-form.vue b/apps/web-antd/src/views/crm/business/modules/up-status-form.vue deleted file mode 100644 index 4f8635fe..00000000 --- a/apps/web-antd/src/views/crm/business/modules/up-status-form.vue +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - -