From c762bab30b7098747649cdeb61806f9d2bf562b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Mon, 10 Mar 2025 15:31:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bst/customer.js | 1 + src/api/dashboard/customer.js | 8 ++ src/api/dashboard/task.js | 9 ++ src/assets/styles/ruoyi.scss | 2 +- src/components/CardTab/index.vue | 77 +++++++++++++++ src/layout/components/AppMain.vue | 1 + src/utils/enums.js | 6 +- .../customer/components/CustomerCardTabs.vue | 90 ++++++++++++++++++ src/views/bst/customer/edit/index.vue | 78 ++++++++------- src/views/bst/customer/index.vue | 69 ++++++++------ .../components/CustomerFollowEditDialog.vue | 12 +++ .../components/CustomerFollowForm.vue | 48 +++++++++- src/views/bst/index/index.vue | 43 +++++++-- .../bst/task/components/TaskCardTabs.vue | 94 +++++++++++++++++++ src/views/bst/task/index.vue | 22 ++++- src/views/system/user/index.vue | 2 + 16 files changed, 480 insertions(+), 82 deletions(-) create mode 100644 src/api/dashboard/task.js create mode 100644 src/components/CardTab/index.vue create mode 100644 src/views/bst/customer/components/CustomerCardTabs.vue create mode 100644 src/views/bst/task/components/TaskCardTabs.vue diff --git a/src/api/bst/customer.js b/src/api/bst/customer.js index f35ac09..c12e6f2 100644 --- a/src/api/bst/customer.js +++ b/src/api/bst/customer.js @@ -54,3 +54,4 @@ export function delCustomer(id) { method: 'delete' }) } + diff --git a/src/api/dashboard/customer.js b/src/api/dashboard/customer.js index bf30a19..ab54b61 100644 --- a/src/api/dashboard/customer.js +++ b/src/api/dashboard/customer.js @@ -9,4 +9,12 @@ export function dailyCreateCountCustomer(params) { }) } +// 客户概览 +export function customerBrief(params) { + return request({ + url: '/dashboard/customer/brief', + method: 'get', + params + }) +} diff --git a/src/api/dashboard/task.js b/src/api/dashboard/task.js new file mode 100644 index 0000000..5d30b9c --- /dev/null +++ b/src/api/dashboard/task.js @@ -0,0 +1,9 @@ +import request from '@/utils/request'; + +export function taskBrief(params) { + return request({ + url: '/dashboard/task/brief', + method: 'get', + params + }); +} diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index c0ae6ed..3f27e19 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -92,7 +92,7 @@ .el-table__header-wrapper, .el-table__fixed-header-wrapper { th { word-break: break-word; - background-color: #f8f8f9; + background-color: #fff; color: #515a6e; height: 40px; font-size: 13px; diff --git a/src/components/CardTab/index.vue b/src/components/CardTab/index.vue new file mode 100644 index 0000000..1101504 --- /dev/null +++ b/src/components/CardTab/index.vue @@ -0,0 +1,77 @@ + + + + + \ No newline at end of file diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index c4b3895..4e3394e 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -33,6 +33,7 @@ export default { width: 100%; position: relative; overflow: hidden; + background-color: #fafafa; } .fixed-header + .app-main { diff --git a/src/utils/enums.js b/src/utils/enums.js index 8ece80c..a38b6d1 100644 --- a/src/utils/enums.js +++ b/src/utils/enums.js @@ -52,7 +52,11 @@ export const CustomerStatus = { POTENTIAL: "1", // 潜在 INTENTION: "2", // 意向 TRANSACTION: "3", // 成交 - INVALID: "4" // 失效 + INVALID: "4", // 失效 + // 跟进中的客户状态 + following() { + return [this.POTENTIAL, this.INTENTION, this.TRANSACTION] + } } // 客户意向级别 diff --git a/src/views/bst/customer/components/CustomerCardTabs.vue b/src/views/bst/customer/components/CustomerCardTabs.vue new file mode 100644 index 0000000..df7f1a3 --- /dev/null +++ b/src/views/bst/customer/components/CustomerCardTabs.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/src/views/bst/customer/edit/index.vue b/src/views/bst/customer/edit/index.vue index fec4cf8..908a329 100644 --- a/src/views/bst/customer/edit/index.vue +++ b/src/views/bst/customer/edit/index.vue @@ -7,35 +7,31 @@
- + - - - - - - - - - - - - - - - - + + + + + + + @@ -121,12 +123,6 @@ export default { status: [ { required: true, message: "状态不能为空", trigger: "change" } ], - intentLevel: [ - { required: true, message: "意向强度不能为空", trigger: "change" } - ], - source: [ - { required: true, message: "来源不能为空", trigger: "change" } - ], followId: [ { required: true, message: "跟进人不能为空", trigger: "change" } ], @@ -139,6 +135,15 @@ export default { ], followTime: [ { required: true, message: "跟进时间不能为空", trigger: "change" } + ], + customerStatus: [ + { required: true, message: "客户状态不能为空", trigger: "change" } + ], + customerIntentLevel: [ + { required: true, message: "意向强度不能为空", trigger: "change" } + ], + nextFollowTime: [ + { required: true, message: "下次跟进时间不能为空", trigger: "change" } ] } }, @@ -187,8 +192,8 @@ export default { id: null, code: null, name: null, - status: CustomerStatus.POTENTIAL, - intentLevel: CustomerIntentLevel.MEDIUM, + status: null, + intentLevel: null, mobile: null, wechat: null, source: null, @@ -197,6 +202,9 @@ export default { remark: null, follow: { followTime: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'), + nextFollowTime: null, + customerStatus: CustomerStatus.POTENTIAL, + customerIntentLevel: CustomerIntentLevel.MEDIUM, } }; this.resetForm("form"); diff --git a/src/views/bst/customer/index.vue b/src/views/bst/customer/index.vue index 1bae1a6..11545be 100644 --- a/src/views/bst/customer/index.vue +++ b/src/views/bst/customer/index.vue @@ -1,15 +1,15 @@