diff --git a/apps/web-antd/src/views/crm/business/modules/detail.vue b/apps/web-antd/src/views/crm/business/modules/detail.vue index aebfd6e3..7bbd08ee 100644 --- a/apps/web-antd/src/views/crm/business/modules/detail.vue +++ b/apps/web-antd/src/views/crm/business/modules/detail.vue @@ -20,7 +20,7 @@ import { BusinessForm, UpStatusForm, } from '#/views/crm/business'; -import { ContactDetailsList } from '#/views/crm/contact'; +import { ContactDetailsList } from '#/views/crm/contact/components'; import { ContractDetailsList } from '#/views/crm/contract'; import { FollowUp } from '#/views/crm/followup'; import { PermissionList, TransferForm } from '#/views/crm/permission'; diff --git a/apps/web-antd/src/views/crm/contact/components/data.ts b/apps/web-antd/src/views/crm/contact/components/data.ts new file mode 100644 index 00000000..b2e63f76 --- /dev/null +++ b/apps/web-antd/src/views/crm/contact/components/data.ts @@ -0,0 +1,62 @@ +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; + +import { DICT_TYPE } from '@vben/constants'; + +/** 联系人明细列表列配置 */ +export function useDetailListColumns(): VxeTableGridOptions['columns'] { + return [ + { + type: 'checkbox', + width: 50, + fixed: 'left', + }, + { + field: 'name', + title: '姓名', + fixed: 'left', + slots: { default: 'name' }, + }, + { + field: 'customerName', + title: '客户名称', + fixed: 'left', + slots: { default: 'customerName' }, + }, + { + field: 'sex', + title: '性别', + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.SYSTEM_USER_SEX }, + }, + }, + { + field: 'mobile', + title: '手机', + }, + { + field: 'telephone', + title: '电话', + }, + { + field: 'email', + title: '邮箱', + }, + { + field: 'post', + title: '职位', + }, + { + field: 'detailAddress', + title: '地址', + }, + { + field: 'master', + title: '关键决策人', + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, + }, + }, + ]; +} diff --git a/apps/web-antd/src/views/crm/contact/components/detail-list-modal.vue b/apps/web-antd/src/views/crm/contact/components/detail-list-modal.vue new file mode 100644 index 00000000..4214096a --- /dev/null +++ b/apps/web-antd/src/views/crm/contact/components/detail-list-modal.vue @@ -0,0 +1,148 @@ + + + + diff --git a/apps/web-antd/src/views/crm/contact/components/detail-list.vue b/apps/web-antd/src/views/crm/contact/components/detail-list.vue new file mode 100644 index 00000000..193e0bc5 --- /dev/null +++ b/apps/web-antd/src/views/crm/contact/components/detail-list.vue @@ -0,0 +1,210 @@ + + + + diff --git a/apps/web-antd/src/views/crm/contact/components/index.ts b/apps/web-antd/src/views/crm/contact/components/index.ts new file mode 100644 index 00000000..d16cd533 --- /dev/null +++ b/apps/web-antd/src/views/crm/contact/components/index.ts @@ -0,0 +1 @@ +export { default as ContactDetailsList } from './detail-list.vue'; diff --git a/apps/web-antd/src/views/crm/contact/index.ts b/apps/web-antd/src/views/crm/contact/index.ts deleted file mode 100644 index 1886e21c..00000000 --- a/apps/web-antd/src/views/crm/contact/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { defineAsyncComponent } from 'vue'; - -export const ContactDetailsList = defineAsyncComponent( - () => import('./components/detail-list.vue'), -); diff --git a/apps/web-antd/src/views/crm/customer/modules/detail.vue b/apps/web-antd/src/views/crm/customer/modules/detail.vue index 6c7ccbf8..d674e2e9 100644 --- a/apps/web-antd/src/views/crm/customer/modules/detail.vue +++ b/apps/web-antd/src/views/crm/customer/modules/detail.vue @@ -23,7 +23,7 @@ import { useDescription } from '#/components/description'; import { AsyncOperateLog } from '#/components/operate-log'; import { ACTION_ICON, TableAction } from '#/components/table-action'; import { BusinessDetailsList } from '#/views/crm/business'; -import { ContactDetailsList } from '#/views/crm/contact'; +import { ContactDetailsList } from '#/views/crm/contact/components'; import { ContractDetailsList } from '#/views/crm/contract'; import { CustomerDetailsInfo,