gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import type { PageParam, PageResult } from '../../../packages/effects/request/src';
 
import type { CrmPermissionApi } from '#/api/crm/permission';
 
import { requestClient } from '#/api/request';
 
export namespace CrmContactApi {
  /** 联系人信息 */
  export interface Contact {
    id: number; // 编号
    name: string; // 联系人名称
    customerId: number; // 客户编号
    customerName?: string; // 客户名称
    contactLastTime: Date; // 最后跟进时间
    contactLastContent: string; // 最后跟进内容
    contactNextTime: Date; // 下次联系时间
    ownerUserId: number; // 负责人的用户编号
    ownerUserName?: string; // 负责人的用户名称
    ownerUserDept?: string; // 负责人的部门名称
    mobile: string; // 手机号
    telephone: string; // 电话
    qq: string; // QQ
    wechat: string; // wechat
    email: string; // email
    areaId: number; // 所在地
    areaName?: string; // 所在地名称
    detailAddress: string; // 详细地址
    sex: number; // 性别
    master: boolean; // 是否主联系人
    post: string; // 职务
    parentId: number; // 上级联系人编号
    parentName?: string; // 上级联系人名称
    remark: string; // 备注
    creator: string; // 创建人
    creatorName?: string; // 创建人名称
    createTime: Date; // 创建时间
    updateTime: Date; // 更新时间
  }
 
  /** 联系人商机关联请求 */
  export interface ContactBusinessReqVO {
    contactId: number;
    businessIds: number[];
  }
 
  /** 商机联系人关联请求 */
  export interface BusinessContactReqVO {
    businessId: number;
    contactIds: number[];
  }
}
 
/** 查询联系人列表 */
export function getContactPage(params: PageParam) {
  return requestClient.get<PageResult<CrmContactApi.Contact>>(
    '/crm/contact/page',
    { params },
  );
}
 
/** 查询联系人列表,基于指定客户 */
export function getContactPageByCustomer(params: PageParam) {
  return requestClient.get<PageResult<CrmContactApi.Contact>>(
    '/crm/contact/page-by-customer',
    { params },
  );
}
 
/** 查询联系人列表,基于指定商机 */
export function getContactPageByBusiness(params: PageParam) {
  return requestClient.get<PageResult<CrmContactApi.Contact>>(
    '/crm/contact/page-by-business',
    { params },
  );
}
 
/** 查询联系人详情 */
export function getContact(id: number) {
  return requestClient.get<CrmContactApi.Contact>(`/crm/contact/get?id=${id}`);
}
 
/** 新增联系人 */
export function createContact(data: CrmContactApi.Contact) {
  return requestClient.post('/crm/contact/create', data);
}
 
/** 修改联系人 */
export function updateContact(data: CrmContactApi.Contact) {
  return requestClient.put('/crm/contact/update', data);
}
 
/** 删除联系人 */
export function deleteContact(id: number) {
  return requestClient.delete(`/crm/contact/delete?id=${id}`);
}
 
/** 导出联系人 */
export function exportContact(params: any) {
  return requestClient.download('/crm/contact/export-excel', { params });
}
 
/** 获得联系人列表(精简) */
export function getSimpleContactList() {
  return requestClient.get<CrmContactApi.Contact[]>(
    '/crm/contact/simple-all-list',
  );
}
 
/** 批量新增联系人商机关联 */
export function createContactBusinessList(
  data: CrmContactApi.ContactBusinessReqVO,
) {
  return requestClient.post('/crm/contact/create-business-list', data);
}
 
/** 批量新增商机联系人关联 */
export function createBusinessContactList(
  data: CrmContactApi.BusinessContactReqVO,
) {
  return requestClient.post('/crm/contact/create-business-list2', data);
}
 
/** 解除联系人商机关联 */
export function deleteContactBusinessList(
  data: CrmContactApi.ContactBusinessReqVO,
) {
  return requestClient.delete('/crm/contact/delete-business-list', { data });
}
 
/** 解除商机联系人关联 */
export function deleteBusinessContactList(
  data: CrmContactApi.BusinessContactReqVO,
) {
  return requestClient.delete('/crm/contact/delete-business-list2', { data });
}
 
/** 联系人转移 */
export function transferContact(data: CrmPermissionApi.BusinessTransferReqVO) {
  return requestClient.put('/crm/contact/transfer', data);
}