import request from "@/utils/request"; /** * CRM 业务管线接口:线索 → 商机 → 项目,回访贯穿全流程。 * * 关联类型 related_type:1=线索 2=商机 3=项目 */ /* --------------------------------- 线索 --------------------------------- */ export function getClueList(params) { return request({ url: "/backend/crm/clue/list", method: "get", params }); } export function getClueDetail(id) { return request({ url: `/backend/crm/clue/${id}`, method: "get" }); } export function createClue(data) { return request({ url: "/backend/crm/clue", method: "post", data }); } export function updateClue(id, data) { return request({ url: `/backend/crm/clue/${id}`, method: "put", data }); } export function deleteClue(id) { return request({ url: `/backend/crm/clue/${id}`, method: "delete" }); } /** 线索转化商机:会把线索客户名称落地为正式客户,并锁定线索 */ export function convertClueToBusiness(id, data) { return request({ url: `/backend/crm/clue/${id}/convert`, method: "post", data }); } /* --------------------------------- 商机 --------------------------------- */ export function getBusinessList(params) { return request({ url: "/backend/crm/business/list", method: "get", params }); } export function getBusinessDetail(id) { return request({ url: `/backend/crm/business/${id}`, method: "get" }); } export function createBusiness(data) { return request({ url: "/backend/crm/business", method: "post", data }); } export function updateBusiness(id, data) { return request({ url: `/backend/crm/business/${id}`, method: "put", data }); } export function deleteBusiness(id) { return request({ url: `/backend/crm/business/${id}`, method: "delete" }); } /** 商机转化项目 */ export function convertBusinessToProject(id, data) { return request({ url: `/backend/crm/business/${id}/convert`, method: "post", data }); } /* --------------------------------- 项目 --------------------------------- */ export function getProjectList(params) { return request({ url: "/backend/crm/project/list", method: "get", params }); } export function getProjectDetail(id) { return request({ url: `/backend/crm/project/${id}`, method: "get" }); } export function createProject(data) { return request({ url: "/backend/crm/project", method: "post", data }); } export function updateProject(id, data) { return request({ url: `/backend/crm/project/${id}`, method: "put", data }); } export function deleteProject(id) { return request({ url: `/backend/crm/project/${id}`, method: "delete" }); } /** 项目状态流转:仅更新状态(1未开始 / 2进行中 / 3已完成 / 4已暂停 / 5异常) */ export function changeProjectStatus(id, status) { return request({ url: `/backend/crm/project/${id}/status`, method: "post", data: { status } }); } /** * 保存项目联系人:从对应企业通讯录中挑选的联系人ID集合(多选)。 * - upstream_contact_ids:上游(客户方)选中的联系人ID数组; * - downstream_contact_ids:下游/中游(对方主体方)选中的联系人ID数组; * - 单一项目后端会自动清空下游集合,传入不属于对应企业的ID会被过滤。 */ export function saveProjectContacts(id, data) { return request({ url: `/backend/crm/project/${id}/contacts`, method: "post", data }); } /* --------------------------- 项目文档(OA 文档库) --------------------------- */ /** * 项目文档列表:对应文档库「共享文档 / 项目文档 / {项目名称}」文件夹(含子文件夹)。 * 存量项目在首次调用时自动补建文件夹。 */ export function getProjectDocs(id, params) { return request({ url: `/backend/crm/project/${id}/docs`, method: "get", params }); } /** * 上传项目文档:文件先经 POST /backend/uploadfile 上传, * 再调用本接口写入文档库项目文件夹并同步登记 CRM 附件。 */ export function uploadProjectDoc(id, data) { return request({ url: `/backend/crm/project/${id}/doc-upload`, method: "post", data }); } /** 删除项目文档:同步软删文档库文档与对应 CRM 附件记录 */ export function deleteProjectDoc(id, data) { return request({ url: `/backend/crm/project/${id}/doc-delete`, method: "post", data }); } /** * 新建项目文档文件夹(对应文档库中项目文件夹下的子分类),用于分类存放文档。 * data: { name, parent_id },parent_id 缺省时建在项目根文件夹下。 */ export function createProjectDocFolder(id, data) { return request({ url: `/backend/crm/project/${id}/doc-folder`, method: "post", data }); } /** 删除项目文档文件夹(需为空:无子文件夹、无文档;项目根文件夹不可删除) */ export function deleteProjectDocFolder(id, data) { return request({ url: `/backend/crm/project/${id}/doc-folder-delete`, method: "post", data }); } /* --------------------------------- 回访 --------------------------------- */ export function getFollowList(params) { return request({ url: "/backend/crm/follow/list", method: "get", params }); } export function addFollow(data) { return request({ url: "/backend/crm/follow/add", method: "post", data }); } export function updateFollow(data) { return request({ url: "/backend/crm/follow/edit", method: "post", data }); } export function deleteFollow(data) { return request({ url: "/backend/crm/follow/delete", method: "post", data }); } /* --------------------------------- 附件 --------------------------------- */ export function getAttachList(params) { return request({ url: "/backend/crm/attach/list", method: "get", params }); } export function addAttach(data) { return request({ url: "/backend/crm/attach/add", method: "post", data }); } export function deleteAttach(data) { return request({ url: "/backend/crm/attach/delete", method: "post", data }); } /* ------------------------------ 联系人(实体) ------------------------------ */ export function getEntityContactList(params) { return request({ url: "/backend/crm/entity/contact/list", method: "get", params }); } export function addEntityContact(data) { return request({ url: "/backend/crm/entity/contact/add", method: "post", data }); } export function updateEntityContact(data) { return request({ url: "/backend/crm/entity/contact/edit", method: "post", data }); } export function deleteEntityContact(data) { return request({ url: "/backend/crm/entity/contact/delete", method: "post", data }); } /* ------------------------------- 操作日志 ------------------------------- */ export function getCrmOperateLogs(params) { return request({ url: "/backend/crm/oplog/list", method: "get", params }); }