From 7146fdc9b9640c140d39e676453c09fe6a5248a2 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Mon, 6 Nov 2023 22:00:40 +0800 Subject: [PATCH 1/7] =?UTF-8?q?style:=20=E5=AE=A2=E6=88=B7=20review=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/customer/detail/CustomerDetails.vue | 7 +++---- src/views/crm/customer/detail/index.vue | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue index 1065b22c..2e584bd9 100644 --- a/src/views/crm/customer/detail/CustomerDetails.vue +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -44,6 +44,9 @@ {{ customer.contactNextTime ? formatDate(customer.contactNextTime, 'YYYY-MM-DD') : '空' }} + + {{ customer.contactLastTime ? formatDate(customer.contactLastTime) : '空' }} + @@ -71,10 +74,6 @@ {{ customer.updateTime ? formatDate(customer.updateTime) : '空' }} - - - {{ customer.contactLastTime ? formatDate(customer.contactLastTime) : '空' }} - diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index 1caeadef..f250bc28 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -63,8 +63,7 @@ - - + From 288aa72cdd3ebd889118d02f8e66ca606ddc4d09 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Thu, 9 Nov 2023 00:05:10 +0800 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20CRM=20=E5=AE=A2=E6=88=B7=E5=85=AC?= =?UTF-8?q?=E6=B5=B7=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/customerPoolConf/index.ts | 19 ++++ src/views/crm/customerPoolConf/index.vue | 134 +++++++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 src/api/crm/customerPoolConf/index.ts create mode 100644 src/views/crm/customerPoolConf/index.vue diff --git a/src/api/crm/customerPoolConf/index.ts b/src/api/crm/customerPoolConf/index.ts new file mode 100644 index 00000000..8234ba36 --- /dev/null +++ b/src/api/crm/customerPoolConf/index.ts @@ -0,0 +1,19 @@ +import request from '@/config/axios' + +export interface CustomerPoolConfigVO { + enabled?: boolean + contactExpireDays?: number + dealExpireDays?: number + notifyEnabled?: boolean + notifyDays: number +} + +// 获取客户公海规则设置 +export const getCustomerPoolConfig = async () => { + return await request.get({ url: `/crm/customer-pool-config/get` }) +} + +// 更新客户公海规则设置 +export const updateCustomerPoolConfig = async (data: ConfigVO) => { + return await request.put({ url: `/crm/customer-pool-config/update`, data }) +} diff --git a/src/views/crm/customerPoolConf/index.vue b/src/views/crm/customerPoolConf/index.vue new file mode 100644 index 00000000..518c6f3d --- /dev/null +++ b/src/views/crm/customerPoolConf/index.vue @@ -0,0 +1,134 @@ + + + From 59b2d89a18855091851270d6c1cebcc1fb6b0178 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Thu, 9 Nov 2023 00:08:09 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20CRM=20=E5=AE=A2=E6=88=B7=E5=85=AC?= =?UTF-8?q?=E6=B5=B7=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/customerPoolConf/index.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/views/crm/customerPoolConf/index.vue b/src/views/crm/customerPoolConf/index.vue index 518c6f3d..1ea61f94 100644 --- a/src/views/crm/customerPoolConf/index.vue +++ b/src/views/crm/customerPoolConf/index.vue @@ -11,7 +11,12 @@ From 6369b334e311f5cc402685d230df8d453d4c5007 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Sat, 11 Nov 2023 20:50:33 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20CRM=20=E5=AE=A2=E6=88=B7=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/customerLimitConfig/index.ts | 35 +++ src/api/system/user/index.ts | 5 + .../CustomerLimitConfigForm.vue | 222 ++++++++++++++++++ .../CustomerQuantityLimit.vue | 130 ++++++++++ .../customerLimitConfig/customerLimitConf.ts | 13 + src/views/crm/customerLimitConfig/index.vue | 20 ++ src/views/crm/customerPoolConf/index.vue | 4 +- 7 files changed, 427 insertions(+), 2 deletions(-) create mode 100644 src/api/crm/customerLimitConfig/index.ts create mode 100644 src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue create mode 100644 src/views/crm/customerLimitConfig/CustomerQuantityLimit.vue create mode 100644 src/views/crm/customerLimitConfig/customerLimitConf.ts create mode 100644 src/views/crm/customerLimitConfig/index.vue diff --git a/src/api/crm/customerLimitConfig/index.ts b/src/api/crm/customerLimitConfig/index.ts new file mode 100644 index 00000000..22fde3ea --- /dev/null +++ b/src/api/crm/customerLimitConfig/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +export interface CustomerLimitConfigVO { + id?: number + type?: number + userIds?: string + deptIds?: string + maxCount?: number + dealCountEnabled?: boolean +} + +// 查询客户限制配置列表 +export const getCustomerLimitConfigPage = async (params) => { + return await request.get({ url: `/crm/customer-limit-config/page`, params }) +} + +// 查询客户限制配置详情 +export const getCustomerLimitConfig = async (id: number) => { + return await request.get({ url: `/crm/customer-limit-config/get?id=` + id }) +} + +// 新增客户限制配置 +export const createCustomerLimitConfig = async (data: CustomerLimitConfigVO) => { + return await request.post({ url: `/crm/customer-limit-config/create`, data }) +} + +// 修改客户限制配置 +export const updateCustomerLimitConfig = async (data: CustomerLimitConfigVO) => { + return await request.put({ url: `/crm/customer-limit-config/update`, data }) +} + +// 删除客户限制配置 +export const deleteCustomerLimitConfig = async (id: number) => { + return await request.delete({ url: `/crm/customer-limit-config/delete?id=` + id }) +} diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 6224f0e8..689fec0d 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -22,6 +22,11 @@ export const getUserPage = (params: PageParam) => { return request.get({ url: '/system/user/page', params }) } +// 查询所有用户列表 +export const getAllUser = () => { + return request.get({ url: '/system/user/all' }) +} + // 查询用户详情 export const getUser = (id: number) => { return request.get({ url: '/system/user/get?id=' + id }) diff --git a/src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue b/src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue new file mode 100644 index 00000000..006c1349 --- /dev/null +++ b/src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue @@ -0,0 +1,222 @@ + + diff --git a/src/views/crm/customerLimitConfig/CustomerQuantityLimit.vue b/src/views/crm/customerLimitConfig/CustomerQuantityLimit.vue new file mode 100644 index 00000000..fec9acb4 --- /dev/null +++ b/src/views/crm/customerLimitConfig/CustomerQuantityLimit.vue @@ -0,0 +1,130 @@ + + + diff --git a/src/views/crm/customerLimitConfig/customerLimitConf.ts b/src/views/crm/customerLimitConfig/customerLimitConf.ts new file mode 100644 index 00000000..188e6ef4 --- /dev/null +++ b/src/views/crm/customerLimitConfig/customerLimitConf.ts @@ -0,0 +1,13 @@ +/** + * 客户限制配置类型 + */ +export enum LimitConfType { + /** + * 拥有客户数限制 + */ + CUSTOMER_QUANTITY_LIMIT = 1, + /** + * 锁定客户数限制 + */ + CUSTOMER_LOCK_LIMIT = 2 +} diff --git a/src/views/crm/customerLimitConfig/index.vue b/src/views/crm/customerLimitConfig/index.vue new file mode 100644 index 00000000..49582ca1 --- /dev/null +++ b/src/views/crm/customerLimitConfig/index.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/views/crm/customerPoolConf/index.vue b/src/views/crm/customerPoolConf/index.vue index 1ea61f94..92467fee 100644 --- a/src/views/crm/customerPoolConf/index.vue +++ b/src/views/crm/customerPoolConf/index.vue @@ -87,7 +87,6 @@ const getConfig = async () => { return } formData.value = data - console.log(formData.value) } finally { formLoading.value = false } @@ -107,7 +106,8 @@ const onSubmit = async () => { const data = formData.value as unknown as CustomerPoolConfApi.CustomerPoolConfigVO await CustomerPoolConfApi.updateCustomerPoolConfig(data) message.success(t('common.updateSuccess')) - dialogVisible.value = false + await getConfig() + formLoading.value = false } finally { formLoading.value = false } From a7f86dfd8bdc2813263d8a449d1b0efeec8fd490 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Sat, 11 Nov 2023 21:06:11 +0800 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20CRM=20=E5=AE=A2=E6=88=B7=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crm/customer/detail/CustomerDetails.vue | 160 +++++++++--------- src/views/crm/customer/detail/index.vue | 3 +- .../CustomerQuantityLimit.vue | 17 +- src/views/crm/customerLimitConfig/index.vue | 2 +- 4 files changed, 100 insertions(+), 82 deletions(-) diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue index 2e584bd9..67beae94 100644 --- a/src/views/crm/customer/detail/CustomerDetails.vue +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -1,82 +1,86 @@