diff --git a/apps/web-antd/src/views/crm/backlog/data.ts b/apps/web-antd/src/views/crm/backlog/data.ts deleted file mode 100644 index 6606f80..0000000 --- a/apps/web-antd/src/views/crm/backlog/data.ts +++ /dev/null @@ -1,895 +0,0 @@ -import type { Ref } from 'vue'; - -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { CrmContractApi } from '#/api/crm/contract'; -import type { CrmReceivableApi } from '#/api/crm/receivable'; - -import { useAccess } from '@vben/access'; - -import { DICT_TYPE } from '#/utils'; - -const { hasAccessByCodes } = useAccess(); - -export interface LeftSideItem { - name: string; - menu: string; - count: Ref; -} - -/** 跟进状态 */ -export const FOLLOWUP_STATUS = [ - { label: '待跟进', value: false }, - { label: '已跟进', value: true }, -]; - -/** 归属范围 */ -export const SCENE_TYPES = [ - { label: '我负责的', value: 1 }, - { label: '我参与的', value: 2 }, - { label: '下属负责的', value: 3 }, -]; - -/** 联系状态 */ -export const CONTACT_STATUS = [ - { label: '今日需联系', value: 1 }, - { label: '已逾期', value: 2 }, - { label: '已联系', value: 3 }, -]; - -/** 审批状态 */ -export const AUDIT_STATUS = [ - { label: '待审批', value: 10 }, - { label: '审核通过', value: 20 }, - { label: '审核不通过', value: 30 }, -]; - -/** 回款提醒类型 */ -export const RECEIVABLE_REMIND_TYPE = [ - { label: '待回款', value: 1 }, - { label: '已逾期', value: 2 }, - { label: '已回款', value: 3 }, -]; - -/** 合同过期状态 */ -export const CONTRACT_EXPIRY_TYPE = [ - { label: '即将过期', value: 1 }, - { label: '已过期', value: 2 }, -]; - -export const useLeftSides = ( - customerTodayContactCount: Ref, - clueFollowCount: Ref, - customerFollowCount: Ref, - customerPutPoolRemindCount: Ref, - contractAuditCount: Ref, - contractRemindCount: Ref, - receivableAuditCount: Ref, - receivablePlanRemindCount: Ref, -): LeftSideItem[] => { - return [ - { - name: '今日需联系客户', - menu: 'customerTodayContact', - count: customerTodayContactCount, - }, - { - name: '分配给我的线索', - menu: 'clueFollow', - count: clueFollowCount, - }, - { - name: '分配给我的客户', - menu: 'customerFollow', - count: customerFollowCount, - }, - { - name: '待进入公海的客户', - menu: 'customerPutPoolRemind', - count: customerPutPoolRemindCount, - }, - { - name: '待审核合同', - menu: 'contractAudit', - count: contractAuditCount, - }, - { - name: '待审核回款', - menu: 'receivableAudit', - count: receivableAuditCount, - }, - { - name: '待回款提醒', - menu: 'receivablePlanRemind', - count: receivablePlanRemindCount, - }, - { - name: '即将到期的合同', - menu: 'contractRemind', - count: contractRemindCount, - }, - ]; -}; - -/** 分配给我的线索 列表的搜索表单 */ -export function useClueFollowFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'followUpStatus', - label: '状态', - component: 'Select', - componentProps: { - allowClear: true, - options: FOLLOWUP_STATUS, - }, - defaultValue: false, - }, - ]; -} - -/** 分配给我的线索 列表的字段 */ -export function useClueFollowColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '线索名称', - minWidth: 160, - fixed: 'left', - slots: { default: 'name' }, - }, - { - field: 'source', - title: '线索来源', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_SOURCE }, - }, - }, - { - field: 'mobile', - title: '手机', - minWidth: 120, - }, - { - field: 'telephone', - title: '电话', - minWidth: 130, - }, - { - field: 'email', - title: '邮箱', - minWidth: 180, - }, - { - field: 'detailAddress', - title: '地址', - minWidth: 180, - }, - { - field: 'industryId', - title: '客户行业', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY }, - }, - }, - { - field: 'level', - title: '客户级别', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_LEVEL }, - }, - }, - { - field: 'contactNextTime', - title: '下次联系时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'contactLastContent', - title: '最后跟进记录', - minWidth: 200, - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - ]; -} - -/** 合同审核列表的搜索表单 */ -export function useContractAuditFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'auditStatus', - label: '合同状态', - component: 'Select', - componentProps: { - allowClear: true, - options: AUDIT_STATUS, - }, - defaultValue: 10, - }, - ]; -} - -/** 合同提醒列表的搜索表单 */ -export function useContractRemindFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'expiryType', - label: '到期状态', - component: 'Select', - componentProps: { - allowClear: true, - options: CONTRACT_EXPIRY_TYPE, - }, - defaultValue: 1, - }, - ]; -} - -/** 合同审核列表的字段 */ -export function useContractColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'no', - title: '合同编号', - minWidth: 160, - fixed: 'left', - }, - { - field: 'name', - title: '合同名称', - minWidth: 160, - slots: { - default: 'name', - }, - }, - { - field: 'customerName', - title: '客户名称', - minWidth: 160, - slots: { - default: 'customerName', - }, - }, - { - field: 'businessName', - title: '商机名称', - minWidth: 160, - slots: { - default: 'businessName', - }, - }, - { - field: 'price', - title: '合同金额(元)', - minWidth: 120, - formatter: 'formatAmount', - }, - { - field: 'orderDate', - title: '下单时间', - minWidth: 120, - formatter: 'formatDateTime', - }, - { - field: 'startTime', - title: '合同开始时间', - minWidth: 120, - formatter: 'formatDateTime', - }, - { - field: 'endTime', - title: '合同结束时间', - minWidth: 120, - formatter: 'formatDateTime', - }, - { - field: 'contactName', - title: '客户签约人', - minWidth: 130, - slots: { - default: 'contactName', - }, - }, - { - field: 'signUserName', - title: '公司签约人', - minWidth: 130, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'totalReceivablePrice', - title: '已回款金额(元)', - minWidth: 140, - formatter: 'formatAmount', - }, - { - field: 'noReceivablePrice', - title: '未回款金额(元)', - minWidth: 120, - formatter: 'formatAmount', - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 120, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - { - field: 'auditStatus', - title: '合同状态', - minWidth: 120, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_AUDIT_STATUS }, - }, - }, - { - field: 'operation', - title: '操作', - minWidth: 130, - align: 'center', - fixed: 'right', - cellRender: { - attrs: { - nameField: 'no', - nameTitle: '合同编号', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'processDetail', - show: hasAccessByCodes(['crm:contract:update']), - }, - ], - }, - }, - ]; -} - -/** 客户跟进列表的搜索表单 */ -export function useCustomerFollowFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'followUpStatus', - label: '状态', - component: 'Select', - componentProps: { - allowClear: true, - options: FOLLOWUP_STATUS, - }, - defaultValue: false, - }, - ]; -} - -/** 待进入公海客户列表的搜索表单 */ -export function useCustomerPutPoolFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'sceneType', - label: '归属', - component: 'Select', - componentProps: { - allowClear: true, - options: SCENE_TYPES, - }, - defaultValue: 1, - }, - ]; -} - -/** 今日需联系客户列表的搜索表单 */ -export function useCustomerTodayContactFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'contactStatus', - label: '状态', - component: 'Select', - componentProps: { - allowClear: true, - options: CONTACT_STATUS, - }, - defaultValue: 1, - }, - { - fieldName: 'sceneType', - label: '归属', - component: 'Select', - componentProps: { - allowClear: true, - options: SCENE_TYPES, - }, - defaultValue: 1, - }, - ]; -} - -/** 客户列表的字段 */ -export function useCustomerColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '客户名称', - minWidth: 160, - slots: { - default: 'name', - }, - }, - { - field: 'source', - title: '客户来源', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_SOURCE }, - }, - }, - { - field: 'mobile', - title: '手机', - minWidth: 120, - }, - { - field: 'telephone', - title: '电话', - minWidth: 130, - }, - { - field: 'email', - title: '邮箱', - minWidth: 180, - }, - { - field: 'level', - title: '客户级别', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_LEVEL }, - }, - }, - { - field: 'industryId', - title: '客户行业', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY }, - }, - }, - { - field: 'contactNextTime', - title: '下次联系时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'lockStatus', - title: '锁定状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, - }, - }, - { - field: 'dealStatus', - title: '成交状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, - }, - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'contactLastContent', - title: '最后跟进记录', - minWidth: 200, - }, - { - field: 'detailAddress', - title: '地址', - minWidth: 200, - }, - { - field: 'poolDay', - title: '距离进入公海天数', - minWidth: 180, - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - ]; -} - -/** 回款审核列表的搜索表单 */ -export function useReceivableAuditFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'auditStatus', - label: '合同状态', - component: 'Select', - componentProps: { - allowClear: true, - options: AUDIT_STATUS, - }, - defaultValue: 10, - }, - ]; -} - -/** 回款审核列表的字段 */ -export function useReceivableAuditColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'no', - title: '回款编号', - minWidth: 180, - fixed: 'left', - slots: { - default: 'no', - }, - }, - { - field: 'customerName', - title: '客户名称', - minWidth: 120, - slots: { - default: 'customerName', - }, - }, - { - field: 'contractNo', - title: '合同编号', - minWidth: 180, - slots: { - default: 'contractNo', - }, - }, - { - field: 'returnTime', - title: '回款日期', - minWidth: 150, - formatter: 'formatDateTime', - }, - { - field: 'price', - title: '回款金额(元)', - minWidth: 140, - formatter: 'formatAmount', - }, - { - field: 'returnType', - title: '回款方式', - minWidth: 130, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE }, - }, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'contract.totalPrice', - title: '合同金额(元)', - minWidth: 140, - formatter: 'formatAmount', - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 120, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 120, - }, - { - field: 'auditStatus', - title: '回款状态', - minWidth: 120, - fixed: 'right', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_AUDIT_STATUS }, - }, - }, - { - field: 'operation', - title: '操作', - width: 140, - fixed: 'right', - align: 'center', - cellRender: { - attrs: { - nameField: 'name', - nameTitle: '角色', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'processDetail', - text: '查看审批', - show: hasAccessByCodes(['crm:receivable:update']), - }, - ], - }, - }, - ]; -} - -/** 回款计划提醒列表的搜索表单 */ -export function useReceivablePlanRemindFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'remindType', - label: '合同状态', - component: 'Select', - componentProps: { - allowClear: true, - options: RECEIVABLE_REMIND_TYPE, - }, - defaultValue: 1, - }, - ]; -} - -/** 回款计划提醒列表的字段 */ -export function useReceivablePlanRemindColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'customerName', - title: '客户名称', - minWidth: 160, - fixed: 'left', - slots: { - default: 'customerName', - }, - }, - { - field: 'contractNo', - title: '合同编号', - minWidth: 200, - }, - { - field: 'period', - title: '期数', - minWidth: 160, - slots: { - default: 'period', - }, - }, - { - field: 'price', - title: '计划回款金额(元)', - minWidth: 120, - formatter: 'formatAmount', - }, - { - field: 'returnTime', - title: '计划回款日期', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'remindDays', - title: '提前几天提醒', - minWidth: 150, - }, - { - field: 'remindTime', - title: '提醒日期', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'returnType', - title: '回款方式', - minWidth: 120, - fixed: 'right', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE }, - }, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'receivable.price', - title: '实际回款金额(元)', - minWidth: 160, - formatter: 'formatAmount', - }, - { - field: 'receivable.returnTime', - title: '实际回款日期', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - { - field: 'operation', - title: '操作', - width: 140, - fixed: 'right', - align: 'center', - cellRender: { - attrs: { - nameField: 'customerName', - nameTitle: '客户名称', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'receivableForm', - text: '创建回款', - show: hasAccessByCodes(['crm:receivable:create']), - }, - ], - }, - }, - ]; -} diff --git a/apps/web-antd/src/views/crm/backlog/index.vue b/apps/web-antd/src/views/crm/backlog/index.vue deleted file mode 100644 index 971814f..0000000 --- a/apps/web-antd/src/views/crm/backlog/index.vue +++ /dev/null @@ -1,121 +0,0 @@ - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/ClueFollowList.vue b/apps/web-antd/src/views/crm/backlog/modules/ClueFollowList.vue deleted file mode 100644 index 23d109c..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/ClueFollowList.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/ContractAuditList.vue b/apps/web-antd/src/views/crm/backlog/modules/ContractAuditList.vue deleted file mode 100644 index a243bfe..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/ContractAuditList.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/ContractRemindList.vue b/apps/web-antd/src/views/crm/backlog/modules/ContractRemindList.vue deleted file mode 100644 index c8ac296..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/ContractRemindList.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/CustomerFollowList.vue b/apps/web-antd/src/views/crm/backlog/modules/CustomerFollowList.vue deleted file mode 100644 index 10e427d..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/CustomerFollowList.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/CustomerPutPoolRemindList.vue b/apps/web-antd/src/views/crm/backlog/modules/CustomerPutPoolRemindList.vue deleted file mode 100644 index 11899ac..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/CustomerPutPoolRemindList.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/CustomerTodayContactList.vue b/apps/web-antd/src/views/crm/backlog/modules/CustomerTodayContactList.vue deleted file mode 100644 index 8298f90..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/CustomerTodayContactList.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/ReceivableAuditList.vue b/apps/web-antd/src/views/crm/backlog/modules/ReceivableAuditList.vue deleted file mode 100644 index 710c858..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/ReceivableAuditList.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/backlog/modules/ReceivablePlanRemindList.vue b/apps/web-antd/src/views/crm/backlog/modules/ReceivablePlanRemindList.vue deleted file mode 100644 index e013759..0000000 --- a/apps/web-antd/src/views/crm/backlog/modules/ReceivablePlanRemindList.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - diff --git a/apps/web-antd/src/views/crm/business/data.ts b/apps/web-antd/src/views/crm/business/data.ts deleted file mode 100644 index a010bed..0000000 --- a/apps/web-antd/src/views/crm/business/data.ts +++ /dev/null @@ -1,211 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { CrmBusinessApi } from '#/api/crm/business'; - -import { useAccess } from '@vben/access'; - -import { getRangePickerDefaultProps } from '#/utils'; - -const { hasAccessByCodes } = useAccess(); - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '商机名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'customerId', - label: '客户', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'totalPrice', - label: '商机金额', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入商机金额', - }, - rules: 'required', - }, - { - fieldName: 'dealTime', - label: '预计成交日期', - component: 'DatePicker', - rules: 'required', - componentProps: { - showTime: false, - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'x', - }, - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - }, - { - fieldName: 'contactNextTime', - label: '下次联系时间', - component: 'DatePicker', - componentProps: { - showTime: false, - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'x', - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '商机名称', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '商机名称', - minWidth: 160, - fixed: 'left', - slots: { - default: 'name', - }, - }, - { - field: 'customerName', - title: '客户名称', - minWidth: 120, - fixed: 'left', - slots: { - default: 'customerName', - }, - }, - { - field: 'totalPrice', - title: '商机金额(元)', - minWidth: 140, - formatter: 'formatAmount', - }, - { - field: 'dealTime', - title: '预计成交日期', - minWidth: 180, - formatter: 'formatDate', - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'contactNextTime', - title: '下次联系时间', - minWidth: 180, - formatter: 'formatDate', - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - { - field: 'statusTypeName', - title: '商机状态组', - minWidth: 140, - fixed: 'right', - }, - { - field: 'statusName', - title: '商机阶段', - minWidth: 120, - fixed: 'right', - }, - { - field: 'operation', - title: '操作', - width: 130, - fixed: 'right', - align: 'center', - cellRender: { - attrs: { - nameField: 'name', - nameTitle: '商机', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['crm:business:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['crm:business:delete']), - }, - ], - }, - }, - ]; -} diff --git a/apps/web-antd/src/views/crm/business/index.vue b/apps/web-antd/src/views/crm/business/index.vue deleted file mode 100644 index 14d2965..0000000 --- a/apps/web-antd/src/views/crm/business/index.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - 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 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/business/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/business/modules/form.vue b/apps/web-antd/src/views/crm/business/modules/form.vue deleted file mode 100644 index dd8dbd6..0000000 --- a/apps/web-antd/src/views/crm/business/modules/form.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/business/status/data.ts b/apps/web-antd/src/views/crm/business/status/data.ts deleted file mode 100644 index ad6c88b..0000000 --- a/apps/web-antd/src/views/crm/business/status/data.ts +++ /dev/null @@ -1,134 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { CrmBusinessStatusApi } from '#/api/crm/business/status'; - -import { useAccess } from '@vben/access'; - -import { z } from '#/adapter/form'; -import { - CommonStatusEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; - -const { hasAccessByCodes } = useAccess(); - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '状态组名', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'deptIds', - label: '应用部门', - component: 'TreeSelect', - componentProps: { - multiple: true, - treeCheckable: true, - showCheckedStrategy: 'SHOW_PARENT', - placeholder: '请选择应用部门', - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '状态组名', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '状态组名', - minWidth: 200, - }, - { - field: 'deptNames', - title: '应用部门', - minWidth: 200, - formatter: ({ cellValue }) => { - return cellValue?.length > 0 ? cellValue.join(' ') : '全公司'; - }, - }, - { - field: 'creator', - title: '创建人', - minWidth: 100, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'operation', - title: '操作', - width: 160, - fixed: 'right', - align: 'center', - cellRender: { - name: 'TableAction', - props: { - actions: [ - { - label: '编辑', - code: 'edit', - show: hasAccessByCodes(['crm:business-status:update']), - }, - { - label: '删除', - code: 'delete', - show: hasAccessByCodes(['crm:business-status:delete']), - }, - ], - onActionClick, - }, - }, - }, - ]; -} diff --git a/apps/web-antd/src/views/crm/business/status/index.vue b/apps/web-antd/src/views/crm/business/status/index.vue deleted file mode 100644 index 5b205de..0000000 --- a/apps/web-antd/src/views/crm/business/status/index.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/business/status/modules/form.vue b/apps/web-antd/src/views/crm/business/status/modules/form.vue deleted file mode 100644 index aeb2117..0000000 --- a/apps/web-antd/src/views/crm/business/status/modules/form.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/clue/data.ts b/apps/web-antd/src/views/crm/clue/data.ts deleted file mode 100644 index 74edf0f..0000000 --- a/apps/web-antd/src/views/crm/clue/data.ts +++ /dev/null @@ -1,429 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { CrmClueApi } from '#/api/crm/clue'; -import type { DescriptionItemSchema } from '#/components/description'; - -import { h } from 'vue'; - -import { useAccess } from '@vben/access'; -import { formatDateTime } from '@vben/utils'; - -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -const { hasAccessByCodes } = useAccess(); - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '线索名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'source', - label: '客户来源', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE), - }, - rules: 'required', - }, - { - fieldName: 'mobile', - label: '手机', - component: 'Input', - }, - { - fieldName: 'ownerUserId', - label: '负责人', - component: 'Select', - componentProps: { - api: 'getSimpleUserList', - }, - rules: 'required', - }, - { - fieldName: 'telephone', - label: '电话', - component: 'Input', - }, - { - fieldName: 'email', - label: '邮箱', - component: 'Input', - }, - { - fieldName: 'wechat', - label: '微信', - component: 'Input', - }, - { - fieldName: 'qq', - label: 'QQ', - component: 'Input', - }, - { - fieldName: 'industryId', - label: '客户行业', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY), - }, - }, - { - fieldName: 'level', - label: '客户级别', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_LEVEL), - }, - }, - { - fieldName: 'areaId', - label: '地址', - component: 'Cascader', - componentProps: { - api: 'getAreaTree', - }, - }, - { - fieldName: 'detailAddress', - label: '详细地址', - component: 'Input', - }, - { - fieldName: 'contactNextTime', - label: '下次联系时间', - component: 'DatePicker', - componentProps: { - showTime: true, - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'x', - }, - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '线索名称', - component: 'Input', - }, - { - fieldName: 'transformStatus', - label: '转化状态', - component: 'Select', - componentProps: { - options: [ - { label: '未转化', value: false }, - { label: '已转化', value: true }, - ], - }, - }, - { - fieldName: 'mobile', - label: '手机号', - component: 'Input', - }, - { - fieldName: 'telephone', - label: '电话', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '线索名称', - minWidth: 160, - fixed: 'left', - slots: { - default: 'name', - }, - }, - { - field: 'source', - title: '线索来源', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_SOURCE }, - }, - }, - { - field: 'mobile', - title: '手机', - minWidth: 120, - }, - { - field: 'telephone', - title: '电话', - minWidth: 130, - }, - { - field: 'email', - title: '邮箱', - minWidth: 180, - }, - { - field: 'detailAddress', - title: '地址', - minWidth: 180, - }, - { - field: 'industryId', - title: '客户行业', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY }, - }, - }, - { - field: 'level', - title: '客户级别', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_LEVEL }, - }, - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'contactNextTime', - title: '下次联系时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'creatorName', - title: '创建人', - minWidth: 100, - }, - { - field: 'operation', - title: '操作', - width: 130, - fixed: 'right', - align: 'center', - cellRender: { - attrs: { - nameField: 'name', - nameTitle: '线索', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['crm:clue:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['crm:clue:delete']), - }, - ], - }, - }, - ]; -} - -/** 详情头部的配置 */ -export function useDetailSchema(): DescriptionItemSchema[] { - return [ - { - field: 'source', - label: '线索来源', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_SOURCE, - value: data?.source, - }), - }, - { - field: 'mobile', - label: '手机', - }, - { - field: 'ownerUserName', - label: '负责人', - }, - { - field: 'createTime', - label: '创建时间', - content: (data) => formatDateTime(data?.createTime) as string, - }, - ]; -} - -/** 详情基本信息的配置 */ -export function useDetailBaseSchema(): DescriptionItemSchema[] { - return [ - { - field: 'name', - label: '线索名称', - }, - { - field: 'source', - label: '客户来源', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_SOURCE, - value: data?.source, - }), - }, - { - field: 'mobile', - label: '手机', - }, - { - field: 'ownerUserName', - label: '负责人', - }, - { - field: 'telephone', - label: '电话', - }, - { - field: 'email', - label: '邮箱', - }, - { - field: 'wechat', - label: '微信', - }, - { - field: 'qq', - label: 'QQ', - }, - { - field: 'industryId', - label: '客户行业', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY, - value: data?.industryId, - }), - }, - { - field: 'level', - label: '客户级别', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_LEVEL, - value: data?.level, - }), - }, - { - field: 'areaId', - label: '地址', - }, - { - field: 'detailAddress', - label: '详细地址', - }, - { - field: 'contactNextTime', - label: '下次联系时间', - content: (data) => formatDateTime(data?.contactNextTime) as string, - }, - { - field: 'remark', - label: '备注', - }, - ]; -} - -/** 详情系统信息的配置 */ -export function useDetailSystemSchema(): DescriptionItemSchema[] { - return [ - { - field: 'ownerUserName', - label: '负责人', - }, - { - field: 'contactLastContent', - label: '最后跟进记录', - }, - { - field: 'contactLastContent', - label: '最后跟进时间', - content: (data) => formatDateTime(data?.contactLastContent) as string, - }, - { - field: 'creatorName', - label: '创建人', - }, - { - field: 'createTime', - label: '创建时间', - content: (data) => formatDateTime(data?.createTime) as string, - }, - { - field: 'updateTime', - label: '更新时间', - content: (data) => formatDateTime(data?.updateTime) as string, - }, - ]; -} diff --git a/apps/web-antd/src/views/crm/clue/index.vue b/apps/web-antd/src/views/crm/clue/index.vue deleted file mode 100644 index c9f519b..0000000 --- a/apps/web-antd/src/views/crm/clue/index.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/clue/modules/detail-info.vue b/apps/web-antd/src/views/crm/clue/modules/detail-info.vue deleted file mode 100644 index 36784a1..0000000 --- a/apps/web-antd/src/views/crm/clue/modules/detail-info.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/clue/modules/detail.vue b/apps/web-antd/src/views/crm/clue/modules/detail.vue deleted file mode 100644 index f8fbf8e..0000000 --- a/apps/web-antd/src/views/crm/clue/modules/detail.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/clue/modules/form.vue b/apps/web-antd/src/views/crm/clue/modules/form.vue deleted file mode 100644 index 4248fab..0000000 --- a/apps/web-antd/src/views/crm/clue/modules/form.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/clue/modules/transfer.vue b/apps/web-antd/src/views/crm/clue/modules/transfer.vue deleted file mode 100644 index d076ec4..0000000 --- a/apps/web-antd/src/views/crm/clue/modules/transfer.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/contact/index.vue b/apps/web-antd/src/views/crm/contact/index.vue deleted file mode 100644 index c17be72..0000000 --- a/apps/web-antd/src/views/crm/contact/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/contact/modules/detail.vue b/apps/web-antd/src/views/crm/contact/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/contact/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/contract/config/index.vue b/apps/web-antd/src/views/crm/contract/config/index.vue deleted file mode 100644 index db64ed7..0000000 --- a/apps/web-antd/src/views/crm/contract/config/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/contract/index.vue b/apps/web-antd/src/views/crm/contract/index.vue deleted file mode 100644 index 6622d14..0000000 --- a/apps/web-antd/src/views/crm/contract/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/contract/modules/detail.vue b/apps/web-antd/src/views/crm/contract/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/contract/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/data.ts b/apps/web-antd/src/views/crm/customer/data.ts deleted file mode 100644 index 87cdb42..0000000 --- a/apps/web-antd/src/views/crm/customer/data.ts +++ /dev/null @@ -1,379 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { CrmCustomerApi } from '#/api/crm/customer'; -import type { DescriptionItemSchema } from '#/components/description'; - -import { h } from 'vue'; - -import { useAccess } from '@vben/access'; -import { formatDateTime } from '@vben/utils'; - -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -const { hasAccessByCodes } = useAccess(); - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '客户名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'source', - label: '客户来源', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE), - }, - rules: 'required', - }, - { - fieldName: 'mobile', - label: '手机', - component: 'Input', - }, - { - fieldName: 'ownerUserId', - label: '负责人', - component: 'Select', - componentProps: { - api: 'getSimpleUserList', - }, - rules: 'required', - }, - { - fieldName: 'telephone', - label: '电话', - component: 'Input', - }, - { - fieldName: 'email', - label: '邮箱', - component: 'Input', - }, - { - fieldName: 'wechat', - label: '微信', - component: 'Input', - }, - { - fieldName: 'qq', - label: 'QQ', - component: 'Input', - }, - { - fieldName: 'industryId', - label: '客户行业', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY), - }, - }, - { - fieldName: 'level', - label: '客户级别', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_LEVEL), - }, - }, - { - fieldName: 'areaId', - label: '地址', - component: 'Cascader', - componentProps: { - api: 'getAreaTree', - }, - }, - { - fieldName: 'detailAddress', - label: '详细地址', - component: 'Input', - }, - { - fieldName: 'contactNextTime', - label: '下次联系时间', - component: 'DatePicker', - componentProps: { - showTime: true, - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'x', - }, - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '客户名称', - component: 'Input', - }, - { - fieldName: 'mobile', - label: '手机号', - component: 'Input', - }, - { - fieldName: 'telephone', - label: '电话', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onActionClick: OnActionClickFn, -): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '客户名称', - minWidth: 160, - fixed: 'left', - slots: { - default: 'name', - }, - }, - { - field: 'source', - title: '客户来源', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_SOURCE }, - }, - }, - { - field: 'mobile', - title: '手机', - minWidth: 120, - }, - { - field: 'telephone', - title: '电话', - minWidth: 130, - }, - { - field: 'email', - title: '邮箱', - minWidth: 180, - }, - { - field: 'detailAddress', - title: '地址', - minWidth: 180, - }, - { - field: 'industryId', - title: '客户行业', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY }, - }, - }, - { - field: 'level', - title: '客户级别', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.CRM_CUSTOMER_LEVEL }, - }, - }, - { - field: 'ownerUserName', - title: '负责人', - minWidth: 100, - }, - { - field: 'ownerUserDeptName', - title: '所属部门', - minWidth: 100, - }, - { - field: 'contactNextTime', - title: '下次联系时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'contactLastTime', - title: '最后跟进时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'updateTime', - title: '更新时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'operation', - title: '操作', - width: 130, - fixed: 'right', - align: 'center', - cellRender: { - attrs: { - nameField: 'name', - nameTitle: '线索', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['crm:clue:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['crm:clue:delete']), - }, - ], - }, - }, - ]; -} - -/** 详情页的字段 */ -export function useDetailSchema(): DescriptionItemSchema[] { - return [...useDetailBaseSchema(), ...useDetailSystemSchema()]; -} - -/** 详情页的基础字段 */ -export function useDetailBaseSchema(): DescriptionItemSchema[] { - return [ - { - field: 'name', - label: '客户名称', - }, - { - field: 'source', - label: '客户来源', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_SOURCE, - value: data?.source, - }), - }, - { - field: 'mobile', - label: '手机', - }, - { - field: 'telephone', - label: '电话', - }, - { - field: 'email', - label: '邮箱', - }, - { - field: 'wechat', - label: '微信', - }, - { - field: 'qq', - label: 'QQ', - }, - { - field: 'industryId', - label: '客户行业', - content: (data) => - h(DictTag, { - type: DICT_TYPE.CRM_CUSTOMER_INDUSTRY, - value: data?.industryId, - }), - }, - { - field: 'level', - label: '客户级别', - content: (data) => - h(DictTag, { type: DICT_TYPE.CRM_CUSTOMER_LEVEL, value: data?.level }), - }, - { - field: 'areaName', - label: '地址', - }, - { - field: 'detailAddress', - label: '详细地址', - }, - { - field: 'contactNextTime', - label: '下次联系时间', - content: (data) => formatDateTime(data?.contactNextTime) as string, - }, - { - field: 'remark', - label: '备注', - }, - ]; -} - -/** 详情页的系统字段 */ -export function useDetailSystemSchema(): DescriptionItemSchema[] { - return [ - { - field: 'ownerUserName', - label: '负责人', - }, - { - field: 'ownerUserDeptName', - label: '所属部门', - }, - { - field: 'contactLastTime', - label: '最后跟进时间', - content: (data) => formatDateTime(data?.contactLastTime) as string, - }, - { - field: 'createTime', - label: '创建时间', - content: (data) => formatDateTime(data?.createTime) as string, - }, - { - field: 'updateTime', - label: '更新时间', - content: (data) => formatDateTime(data?.updateTime) as string, - }, - ]; -} diff --git a/apps/web-antd/src/views/crm/customer/index.vue b/apps/web-antd/src/views/crm/customer/index.vue deleted file mode 100644 index 31d2777..0000000 --- a/apps/web-antd/src/views/crm/customer/index.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/limitConfig/index.vue b/apps/web-antd/src/views/crm/customer/limitConfig/index.vue deleted file mode 100644 index 3820d40..0000000 --- a/apps/web-antd/src/views/crm/customer/limitConfig/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/modules/detail.vue b/apps/web-antd/src/views/crm/customer/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/customer/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/modules/form.vue b/apps/web-antd/src/views/crm/customer/modules/form.vue deleted file mode 100644 index 504947f..0000000 --- a/apps/web-antd/src/views/crm/customer/modules/form.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/pool/index.vue b/apps/web-antd/src/views/crm/customer/pool/index.vue deleted file mode 100644 index aa330f8..0000000 --- a/apps/web-antd/src/views/crm/customer/pool/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/customer/poolConfig/index.vue b/apps/web-antd/src/views/crm/customer/poolConfig/index.vue deleted file mode 100644 index 717d8cb..0000000 --- a/apps/web-antd/src/views/crm/customer/poolConfig/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/permission/components/PermissionForm.vue b/apps/web-antd/src/views/crm/permission/components/PermissionForm.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/permission/components/PermissionForm.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/permission/components/PermissionList.vue b/apps/web-antd/src/views/crm/permission/components/PermissionList.vue deleted file mode 100644 index 474e404..0000000 --- a/apps/web-antd/src/views/crm/permission/components/PermissionList.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/permission/components/TransferForm.vue b/apps/web-antd/src/views/crm/permission/components/TransferForm.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/permission/components/TransferForm.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/product/category/index.vue b/apps/web-antd/src/views/crm/product/category/index.vue deleted file mode 100644 index 32f54cc..0000000 --- a/apps/web-antd/src/views/crm/product/category/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/product/index.vue b/apps/web-antd/src/views/crm/product/index.vue deleted file mode 100644 index 805a634..0000000 --- a/apps/web-antd/src/views/crm/product/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/product/modules/detail.vue b/apps/web-antd/src/views/crm/product/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/product/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/receivable/index.vue b/apps/web-antd/src/views/crm/receivable/index.vue deleted file mode 100644 index 016c496..0000000 --- a/apps/web-antd/src/views/crm/receivable/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/receivable/modules/detail.vue b/apps/web-antd/src/views/crm/receivable/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/receivable/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/receivable/plan/index.vue b/apps/web-antd/src/views/crm/receivable/plan/index.vue deleted file mode 100644 index dc177ae..0000000 --- a/apps/web-antd/src/views/crm/receivable/plan/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/receivable/plan/modules/detail.vue b/apps/web-antd/src/views/crm/receivable/plan/modules/detail.vue deleted file mode 100644 index 99ad6b6..0000000 --- a/apps/web-antd/src/views/crm/receivable/plan/modules/detail.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/statistics/customer/index.vue b/apps/web-antd/src/views/crm/statistics/customer/index.vue deleted file mode 100644 index f86e725..0000000 --- a/apps/web-antd/src/views/crm/statistics/customer/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/statistics/funnel/index.vue b/apps/web-antd/src/views/crm/statistics/funnel/index.vue deleted file mode 100644 index 3d94418..0000000 --- a/apps/web-antd/src/views/crm/statistics/funnel/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/statistics/performance/index.vue b/apps/web-antd/src/views/crm/statistics/performance/index.vue deleted file mode 100644 index 54f2eb5..0000000 --- a/apps/web-antd/src/views/crm/statistics/performance/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/statistics/portrait/index.vue b/apps/web-antd/src/views/crm/statistics/portrait/index.vue deleted file mode 100644 index 857fc95..0000000 --- a/apps/web-antd/src/views/crm/statistics/portrait/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/statistics/rank/index.vue b/apps/web-antd/src/views/crm/statistics/rank/index.vue deleted file mode 100644 index 52c96d9..0000000 --- a/apps/web-antd/src/views/crm/statistics/rank/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - -