From 704eb548de3b54f898e28556d91bd6e14c79cd8b Mon Sep 17 00:00:00 2001 From: felix <33110464+whdreamgithub@users.noreply.github.com> Date: Mon, 28 Apr 2025 11:18:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=8A=95=E8=AF=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/customer-complaints/index.ts | 39 ++ src/components/UserSelectForm/index.vue | 2 +- src/router/modules/remaining.ts | 24 ++ src/utils/dict.ts | 3 + src/views/crm/customer-complaints/create.vue | 287 +++++++++++++++ src/views/crm/customer-complaints/detail.vue | 115 ++++++ src/views/crm/customer-complaints/index.vue | 355 +++++++++++++++++++ src/views/crm/customer-suggestion/detail.vue | 40 +-- src/views/crm/customer-suggestion/index.vue | 19 +- 9 files changed, 841 insertions(+), 43 deletions(-) create mode 100644 src/api/crm/customer-complaints/index.ts create mode 100644 src/views/crm/customer-complaints/create.vue create mode 100644 src/views/crm/customer-complaints/detail.vue create mode 100644 src/views/crm/customer-complaints/index.vue diff --git a/src/api/crm/customer-complaints/index.ts b/src/api/crm/customer-complaints/index.ts new file mode 100644 index 000000000..bcbebc137 --- /dev/null +++ b/src/api/crm/customer-complaints/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +// 客户投诉 VO +export interface CustomerComplaintsVO { + id:number //ID + customerId: number // 客户ID + complaintLevel: number // 投诉级别 + complaintMethod: number // 投诉方式 + complaintUserId: number // 投诉人ID + accusedComplaintUserId: number // 被投诉人ID + processingEfficiency: number // 处理时效:天 + feedbackProblem: string // 事件描述 + suggestion: string // 投诉附件 + startUserSelectAssignees:object //发起人自选审批人 ,示例:{taskKey1:[1, 2],taskKey2:[1,2]} + processInstanceId:string //流程编号 +} + +// 客户投诉 API +export const CustomerComplaintsApi = { + // 查询客户投诉分页 + getCustomerComplaintsPage: async (params: any) => { + return await request.get({ url: `/crm/customer-complaints/page`, params }) + }, + + // 查询客户投诉详情 + getCustomerComplaints: async (id: number) => { + return await request.get({ url: `/crm/customer-complaints/get?id=` + id }) + }, + + // 新增客户投诉 + createCustomerComplaints: async (data: CustomerComplaintsVO) => { + return await request.post({ url: `/crm/customer-complaints/create`, data }) + }, + + // 导出客户投诉 Excel + exportCustomerComplaints: async (params) => { + return await request.download({ url: `/crm/customer-complaints/export-excel`, params }) + }, +} diff --git a/src/components/UserSelectForm/index.vue b/src/components/UserSelectForm/index.vue index 5ed99f86e..1c9e8bc9c 100644 --- a/src/components/UserSelectForm/index.vue +++ b/src/components/UserSelectForm/index.vue @@ -124,7 +124,7 @@ const filterUserList = async (deptId?: number) => { /** 提交选择 */ const submitForm = async () => { try { - message.success(t('common.updateSuccess')) + // message.success(t('common.updateSuccess')) dialogVisible.value = false // 从所有用户列表中筛选出已选择的用户 const emitUserList = userList.value.filter((user: any) => diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 9b27642f1..4ecabc0b3 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -612,6 +612,30 @@ const remainingRouter: AppRouteRecordRaw[] = [ title: '新增客户建议', activeMenu: '/crm/customer-suggestion' } + }, + { + path: 'customer-complaints/detail', + component: () => import('@/views/crm/customer-complaints/detail.vue'), + name: 'CustomerComplaintsDetail', + meta: { + noCache: true, + hidden: true, + canTo: true, + title: '客户投诉详情', + activeMenu: '/crm/customer-complaints' + } + }, + { + path: 'customer-complaints/create', + component: () => import('@/views/crm/customer-complaints/create.vue'), + name: 'CustomerComplaintsCreate', + meta: { + noCache: true, + hidden: true, + canTo: true, + title: '新增客户投诉', + activeMenu: '/crm/customer-complaints' + } } ] }, diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 3dd0f01ff..310b9c7b5 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -218,6 +218,9 @@ export enum DICT_TYPE { CRM_COOPERATION_AREA = "crm_cooperation_area", //CRM 合作地区 CRM_CUSTOMER_STSTUS = "crm_customer_status", //CRM 客户状态 CRM_RETURN_VISIT_STSTUS = "crm_return_visit_type", //CRM 回访类型 + CRM_COMPLAINT_METHOD = "crm_complaint_method", // 投诉方式 + CRM_COMPLAINT_LEVEL = "crm_complaint_level", // 投诉级别 + // ========== ERP - 企业资源计划模块 ========== ERP_AUDIT_STATUS = 'erp_audit_status', // ERP 审批状态 diff --git a/src/views/crm/customer-complaints/create.vue b/src/views/crm/customer-complaints/create.vue new file mode 100644 index 000000000..c9508ec48 --- /dev/null +++ b/src/views/crm/customer-complaints/create.vue @@ -0,0 +1,287 @@ + + + diff --git a/src/views/crm/customer-complaints/detail.vue b/src/views/crm/customer-complaints/detail.vue new file mode 100644 index 000000000..b4c6b3430 --- /dev/null +++ b/src/views/crm/customer-complaints/detail.vue @@ -0,0 +1,115 @@ + + diff --git a/src/views/crm/customer-complaints/index.vue b/src/views/crm/customer-complaints/index.vue new file mode 100644 index 000000000..188449226 --- /dev/null +++ b/src/views/crm/customer-complaints/index.vue @@ -0,0 +1,355 @@ + + + diff --git a/src/views/crm/customer-suggestion/detail.vue b/src/views/crm/customer-suggestion/detail.vue index 70d3effa5..33ede8507 100644 --- a/src/views/crm/customer-suggestion/detail.vue +++ b/src/views/crm/customer-suggestion/detail.vue @@ -6,11 +6,6 @@ - - {{ detailData.id }} - - - {{ detailData.customerName }} @@ -25,51 +20,30 @@ - + {{ detailData.feedbackUserName }} - - - + {{ detailData.feedbackDeptName }} - - {{ detailData.processInstanceId }} - - - - - + {{ detailData.creatorName }} - - {{ formatDate(detailData.createTime, 'YYYY-MM-DD HH:mm:ss') }} - - diff --git a/src/views/crm/customer-suggestion/index.vue b/src/views/crm/customer-suggestion/index.vue index 33d9167f2..9168750d7 100644 --- a/src/views/crm/customer-suggestion/index.vue +++ b/src/views/crm/customer-suggestion/index.vue @@ -125,18 +125,17 @@ - - - - - - - + + + + - + + + - + + +