From d3b4a360ddf90e382a2e47e52be005c91774bcc8 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Tue, 5 Nov 2024 09:41:16 +0800 Subject: [PATCH 1/4] sc --- src/api/home/reportSaler.js | 8 + .../Home/Comp/DialogSalerReportDetail.vue | 271 +++++++++--------- src/views/Home/SalesReport.vue | 97 +++---- 3 files changed, 193 insertions(+), 183 deletions(-) create mode 100644 src/api/home/reportSaler.js diff --git a/src/api/home/reportSaler.js b/src/api/home/reportSaler.js new file mode 100644 index 0000000..aec09e1 --- /dev/null +++ b/src/api/home/reportSaler.js @@ -0,0 +1,8 @@ +import request from '@/config/axios' +export const getInfo = async (data) => { + return await request.post({ url: '/admin-api/crm/sch-clue/sale/report/detail', data }) +} + +export const getList = async (data) => { + return await request.post({ url: '/admin-api/crm/sch-clue/sale/report', data }) +} diff --git a/src/views/Home/Comp/DialogSalerReportDetail.vue b/src/views/Home/Comp/DialogSalerReportDetail.vue index 12e6560..44c893d 100644 --- a/src/views/Home/Comp/DialogSalerReportDetail.vue +++ b/src/views/Home/Comp/DialogSalerReportDetail.vue @@ -1,14 +1,15 @@ - - - + + + + From b475af8dd30818a48c7dfe9a3cdcd53afe883222 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 6 Nov 2024 15:53:14 +0800 Subject: [PATCH 4/4] sc --- .env.base | 4 +-- src/views/Clue/Order/Comp/Reback.vue | 2 +- .../Home/Comp/DialogSalerReportDetail.vue | 34 ++++++++++++++----- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/.env.base b/.env.base index d470c46..b37d409 100644 --- a/.env.base +++ b/.env.base @@ -4,8 +4,8 @@ VITE_NODE_ENV=development VITE_DEV=true # 请求路径 -VITE_BASE_URL='http://118.31.23.45:48080' -# VITE_BASE_URL='http://114.55.169.15:48080' +# VITE_BASE_URL='http://118.31.23.45:48080' +VITE_BASE_URL='http://114.55.169.15:48080' # 上传路径 VITE_UPLOAD_URL='http://118.31.23.45:48080/admin-api/system/file/upload' diff --git a/src/views/Clue/Order/Comp/Reback.vue b/src/views/Clue/Order/Comp/Reback.vue index 92ec83c..3a3cec7 100644 --- a/src/views/Clue/Order/Comp/Reback.vue +++ b/src/views/Clue/Order/Comp/Reback.vue @@ -514,7 +514,7 @@ function handleSelectionChange(val) { const batchAuditDialog = ref() function batchAudit() { if (batchIds.value.length) { - batchAuditDialog.value.open('aftersale', batchIds.value) + batchAuditDialog.value.open('feeback', batchIds.value) } else { message.info('请选择表格中需要审核的数据') } diff --git a/src/views/Home/Comp/DialogSalerReportDetail.vue b/src/views/Home/Comp/DialogSalerReportDetail.vue index f49447e..e15be40 100644 --- a/src/views/Home/Comp/DialogSalerReportDetail.vue +++ b/src/views/Home/Comp/DialogSalerReportDetail.vue @@ -238,13 +238,21 @@ const echart3Option = ref({ const setReportData = async (data) => { // const data = await HomeApi.getClueSignSignRate() + const channelClueArr = showChannel.value.sort((pre, cur) => { + const preArr = tableList.value.find((it) => it.sourceName == pre).clueIntentionNumVOList || [] + const curArr = tableList.value.find((it) => it.sourceName == cur).clueIntentionNumVOList || [] + const preCount = preArr.reduce((preVal, curVal) => preVal + curVal.intentionNum, 0) + const curCount = curArr.reduce((preVal, curVal) => preVal + curVal.intentionNum, 0) + return preCount - curCount + }) + const arr1 = intentionOptions.map((intention) => { const list = [] - tableList.value.map((it) => { - if (showChannel.value.includes(it.sourceName)) { + channelClueArr.map((item) => { + const row = tableList.value.find((it) => item == it.sourceName) + if (row) { list.push( - it.clueIntentionNumVOList.find((row) => row.intentionState == intention.value) - .intentionNum + row.clueIntentionNumVOList.find((it) => it.intentionState == intention.value).intentionNum ) } }) @@ -264,12 +272,20 @@ const setReportData = async (data) => { } }) + const channelSignArr = showChannel.value.sort((pre, cur) => { + const preArr = tableList.value.find((it) => it.sourceName == pre).signLicenseTypeNumVOList || [] + const curArr = tableList.value.find((it) => it.sourceName == cur).signLicenseTypeNumVOList || [] + const preCount = preArr.reduce((preVal, curVal) => preVal + curVal.licenseTypeNum, 0) + const curCount = curArr.reduce((preVal, curVal) => preVal + curVal.licenseTypeNum, 0) + return preCount - curCount + }) const arr2 = props.licenseTypeOptions.map((cartype) => { const list = [] - tableList.value.map((it) => { - if (showChannel.value.includes(it.sourceName)) { + channelClueArr.map((item) => { + const row = tableList.value.find((it) => item == it.sourceName) + if (row) { list.push( - it.signLicenseTypeNumVOList.find((row) => row.licenseType == cartype.label).licenseTypeNum + row.signLicenseTypeNumVOList.find((it) => it.licenseType == cartype.label).licenseTypeNum ) } }) @@ -291,7 +307,7 @@ const setReportData = async (data) => { set(echart1Option.value, 'radiusAxis', { type: 'category', - data: showChannel.value, + data: channelClueArr, axisLabel: { margin: 5, fontSize: 10, @@ -303,7 +319,7 @@ const setReportData = async (data) => { set(echart2Option.value, 'radiusAxis', { type: 'category', - data: showChannel.value, + data: channelSignArr, axisLabel: { margin: 5, fontSize: 10,