diff --git a/src/api/crm/clue/index.ts b/src/api/crm/clue/index.ts index de8b0214..7414ccb0 100644 --- a/src/api/crm/clue/index.ts +++ b/src/api/crm/clue/index.ts @@ -20,11 +20,16 @@ export interface ClueVO { wechat: string // wechat email: string // email areaId: number // 所在地 + areaName?: string // 所在地名称 detailAddress: string // 详细地址 industryId: number // 所属行业 level: number // 客户等级 source: number // 客户来源 remark: string // 备注 + creator: string // 创建人 + creatorName?: string // 创建人名称 + createTime: Date // 创建时间 + updateTime: Date // 更新时间 } // 查询线索列表 @@ -61,3 +66,8 @@ export const exportClue = async (params) => { export const transferClue = async (data: TransferReqVO) => { return await request.put({ url: '/crm/clue/transfer', data }) } + +// 线索转化为客户 +export const transformClue = async (ids: number[]) => { + return await request.put({ url: '/crm/clue/transform?ids=' + ids.join(',') }) +} diff --git a/src/api/crm/permission/index.ts b/src/api/crm/permission/index.ts index 5c829b6a..31f9e18d 100644 --- a/src/api/crm/permission/index.ts +++ b/src/api/crm/permission/index.ts @@ -19,7 +19,7 @@ export interface PermissionVO { * @author HUIHUI */ export enum BizTypeEnum { - CRM_LEADS = 1, // 线索 + CRM_CLUE = 1, // 线索 CRM_CUSTOMER = 2, // 客户 CRM_CONTACT = 3, // 联系人 CRM_BUSINESS = 4, // 商机 diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 4eec8cd4..4f845d0d 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -496,6 +496,17 @@ const remainingRouter: AppRouteRecordRaw[] = [ name: 'CrmCenter', meta: { hidden: true }, children: [ + { + path: 'clue/detail/:id', + name: 'CrmClueDetail', + meta: { + title: '线索详情', + noCache: true, + hidden: true, + activeMenu: '/crm/clue' + }, + component: () => import('@/views/crm/clue/detail/index.vue') + }, { path: 'customer/detail/:id', name: 'CrmCustomerDetail', diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index 7605f4fa..11e43387 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -128,12 +128,12 @@ /> + + + + + - - - - - 确 定 diff --git a/src/views/crm/clue/detail/ClueDetailsHeader.vue b/src/views/crm/clue/detail/ClueDetailsHeader.vue new file mode 100644 index 00000000..c1178ced --- /dev/null +++ b/src/views/crm/clue/detail/ClueDetailsHeader.vue @@ -0,0 +1,43 @@ + + + + + + + + {{ clue.name }} + + + + + + + + + + + + + + + {{ clue.mobile }} + + {{ clue.ownerUserName }} + + + {{ formatDate(clue.createTime) }} + + + + + diff --git a/src/views/crm/clue/detail/ClueDetailsInfo.vue b/src/views/crm/clue/detail/ClueDetailsInfo.vue new file mode 100644 index 00000000..9aec591a --- /dev/null +++ b/src/views/crm/clue/detail/ClueDetailsInfo.vue @@ -0,0 +1,72 @@ + + + + + + 基本信息 + + + + {{ clue.name }} + + + + + {{ clue.mobile }} + {{ clue.telephone }} + {{ clue.email }} + + {{ clue.areaName }} {{ clue.detailAddress }} + + {{ clue.qq }} + {{ clue.wechat }} + + + + + + + + {{ formatDate(clue.contactNextTime) }} + + {{ clue.remark }} + + + + + 系统信息 + + + {{ clue.ownerUserName }} + + {{ clue.contactLastContent }} + + + {{ formatDate(clue.contactLastTime) }} + + + {{ clue.creatorName }} + + {{ formatDate(clue.createTime) }} + + + {{ formatDate(clue.updateTime) }} + + + + + + + + diff --git a/src/views/crm/clue/detail/index.vue b/src/views/crm/clue/detail/index.vue new file mode 100644 index 00000000..142b23f8 --- /dev/null +++ b/src/views/crm/clue/detail/index.vue @@ -0,0 +1,130 @@ + + + + 编辑 + + + 转移 + + + 转化为客户 + + 已转化客户 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/crm/clue/index.vue b/src/views/crm/clue/index.vue index 8df9d269..43eaab20 100644 --- a/src/views/crm/clue/index.vue +++ b/src/views/crm/clue/index.vue @@ -17,6 +17,12 @@ class="!w-240px" /> + + + + + + + + + + + - - + + + + {{ scope.row.name }} + + + @@ -146,11 +162,12 @@