From f6fedde26e18eae6c2966b0c9cb0a09a10be232c Mon Sep 17 00:00:00 2001 From: ZLI263 Date: Sun, 21 Sep 2025 21:26:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=AE=A2=E6=88=B7=E7=94=BB?= =?UTF-8?q?=E5=83=8F=EF=BC=8C=E5=93=81=E7=89=8C=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/audio-statistics.js | 62 ++ src/api/brand-analysis.js | 62 ++ src/api/customer-profile.js | 67 ++ src/views/audio-statistics/index.vue | 259 +++++ src/views/dashboard/data-dashboard.vue | 482 ++++++++++ src/views/dealership/brand-analysis.vue | 533 +++++++++++ src/views/dealership/customer-profile.vue | 1040 +++++++++++++++++++++ src/views/knowledge/dialogue-mining.vue | 233 +++++ src/views/knowledge/index.vue | 137 +++ src/views/knowledge/knowledge-base.vue | 363 +++++++ src/views/knowledge/terminology.vue | 408 ++++++++ 11 files changed, 3646 insertions(+) create mode 100644 src/api/audio-statistics.js create mode 100644 src/api/brand-analysis.js create mode 100644 src/api/customer-profile.js create mode 100644 src/views/audio-statistics/index.vue create mode 100644 src/views/dashboard/data-dashboard.vue create mode 100644 src/views/dealership/brand-analysis.vue create mode 100644 src/views/dealership/customer-profile.vue create mode 100644 src/views/knowledge/dialogue-mining.vue create mode 100644 src/views/knowledge/index.vue create mode 100644 src/views/knowledge/knowledge-base.vue create mode 100644 src/views/knowledge/terminology.vue diff --git a/src/api/audio-statistics.js b/src/api/audio-statistics.js new file mode 100644 index 0000000..4d63ed5 --- /dev/null +++ b/src/api/audio-statistics.js @@ -0,0 +1,62 @@ +import request from '@/utils/request' + +// 门店录音统计相关接口 +export function generateStatistics(date) { + return request({ + url: '/api/audio-statistics/generate', + method: 'post', + params: { date } + }) +} + +export function getStatisticsByDateRange(startDate, endDate) { + return request({ + url: '/api/audio-statistics/range', + method: 'get', + params: { startDate, endDate } + }) +} + +export function getStatisticsByDealership(dealershipId, startDate, endDate) { + return request({ + url: `/api/audio-statistics/dealership/${dealershipId}`, + method: 'get', + params: { startDate, endDate } + }) +} + +export function getStatisticsBySales(salesId, startDate, endDate) { + return request({ + url: `/api/audio-statistics/sales/${salesId}`, + method: 'get', + params: { startDate, endDate } + }) +} + +export function getStatisticsByProject(projectId, startDate, endDate) { + return request({ + url: `/api/audio-statistics/project/${projectId}`, + method: 'get', + params: { startDate, endDate } + }) +} + +export function getStatisticsByDate(date) { + return request({ + url: `/api/audio-statistics/date/${date}`, + method: 'get' + }) +} + +export function getStatisticsOverview() { + return request({ + url: '/api/audio-statistics/overview', + method: 'get' + }) +} + + + + + + diff --git a/src/api/brand-analysis.js b/src/api/brand-analysis.js new file mode 100644 index 0000000..223ff62 --- /dev/null +++ b/src/api/brand-analysis.js @@ -0,0 +1,62 @@ +import request from '@/utils/request' + +// 获取品牌分析列表 +export function getBrandAnalysisList(params) { + return request({ + url: '/cpa-brand-score-statistics/list', + method: 'get', + params: { + current: params?.current || 1, + size: params?.size || 20, + dealerCode: params?.dealerCode, + dealerName: params?.dealerName, + bigArea: params?.bigArea, + statisticsType: params?.statisticsType, + startDate: params?.startDate, + endDate: params?.endDate + } + }) +} + +// 根据ID查询品牌分析详情 +export function getBrandAnalysisById(id) { + return request({ + url: `/cpa-brand-score-statistics/get/${id}`, + method: 'get' + }) +} + +// 导出品牌分析数据 +export function exportBrandAnalysis(params) { + return request({ + url: '/cpa-brand-score-statistics/export', + method: 'get', + params, + responseType: 'blob' + }) +} + +// 获取品牌分析统计数据 +export function getBrandAnalysisStatistics(params) { + return request({ + url: '/cpa-brand-score-statistics/statistics', + method: 'get', + params + }) +} + +// 获取经销商列表(用于下拉选择) +export function getDealerList() { + return request({ + url: '/cpa-brand-score-statistics/dealers', + method: 'get' + }) +} + +// 获取大区列表(用于下拉选择) +export function getBigAreaList() { + return request({ + url: '/cpa-brand-score-statistics/big-areas', + method: 'get' + }) +} diff --git a/src/api/customer-profile.js b/src/api/customer-profile.js new file mode 100644 index 0000000..0efae3e --- /dev/null +++ b/src/api/customer-profile.js @@ -0,0 +1,67 @@ +import request from '@/utils/request' + +// 获取客户画像分析列表 +export function getCustomerProfileList(params) { + return request({ + url: '/customer-profile-analysis/list', + method: 'get', + params: { + current: params?.current || 1, + size: params?.size || 20, + clientName: params?.clientName, + clientPhone: params?.clientPhone, + dealerCode: params?.dealerCode, + dealerName: params?.dealerName, + bigArea: params?.bigArea, + salesPersonName: params?.salesPersonName, + analysisSceneType: params?.analysisSceneType, + purchaseType: params?.purchaseType, + paymentWay: params?.paymentWay, + startDate: params?.startDate, + endDate: params?.endDate + } + }) +} + +// 根据ID查询客户画像详情 +export function getCustomerProfileById(id) { + return request({ + url: `/customer-profile-analysis/get/${id}`, + method: 'get' + }) +} + +// 导出客户画像数据 +export function exportCustomerProfile(params) { + return request({ + url: '/customer-profile-analysis/export', + method: 'get', + params, + responseType: 'blob' + }) +} + +// 获取客户画像统计数据 +export function getCustomerProfileStatistics(params) { + return request({ + url: '/customer-profile-analysis/statistics', + method: 'get', + params + }) +} + +// 获取经销商列表(用于下拉选择) +export function getDealerList() { + return request({ + url: '/customer-profile-analysis/dealers', + method: 'get' + }) +} + +// 获取大区列表(用于下拉选择) +export function getBigAreaList() { + return request({ + url: '/customer-profile-analysis/big-areas', + method: 'get' + }) +} diff --git a/src/views/audio-statistics/index.vue b/src/views/audio-statistics/index.vue new file mode 100644 index 0000000..82ea88a --- /dev/null +++ b/src/views/audio-statistics/index.vue @@ -0,0 +1,259 @@ + + + diff --git a/src/views/dashboard/data-dashboard.vue b/src/views/dashboard/data-dashboard.vue new file mode 100644 index 0000000..a2f0a20 --- /dev/null +++ b/src/views/dashboard/data-dashboard.vue @@ -0,0 +1,482 @@ + + + + + + diff --git a/src/views/dealership/brand-analysis.vue b/src/views/dealership/brand-analysis.vue new file mode 100644 index 0000000..eebe2bf --- /dev/null +++ b/src/views/dealership/brand-analysis.vue @@ -0,0 +1,533 @@ + + + + + diff --git a/src/views/dealership/customer-profile.vue b/src/views/dealership/customer-profile.vue new file mode 100644 index 0000000..3cfec9d --- /dev/null +++ b/src/views/dealership/customer-profile.vue @@ -0,0 +1,1040 @@ + + + + + diff --git a/src/views/knowledge/dialogue-mining.vue b/src/views/knowledge/dialogue-mining.vue new file mode 100644 index 0000000..104a2f8 --- /dev/null +++ b/src/views/knowledge/dialogue-mining.vue @@ -0,0 +1,233 @@ + + + + + + diff --git a/src/views/knowledge/index.vue b/src/views/knowledge/index.vue new file mode 100644 index 0000000..2e0eee2 --- /dev/null +++ b/src/views/knowledge/index.vue @@ -0,0 +1,137 @@ + + + + + + diff --git a/src/views/knowledge/knowledge-base.vue b/src/views/knowledge/knowledge-base.vue new file mode 100644 index 0000000..e409f87 --- /dev/null +++ b/src/views/knowledge/knowledge-base.vue @@ -0,0 +1,363 @@ + + + + + + diff --git a/src/views/knowledge/terminology.vue b/src/views/knowledge/terminology.vue new file mode 100644 index 0000000..dd1ce8e --- /dev/null +++ b/src/views/knowledge/terminology.vue @@ -0,0 +1,408 @@ + + + + + +