From 8df1f7d25a394277655127dc4234e0aa103b1f88 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 19 Jun 2024 15:04:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/clue/afterSale.js | 9 ++ src/api/clue/payment.js | 9 ++ src/views/Clue/Order/Comp/AfterSales.vue | 29 +++- .../Clue/Order/Comp/DialogAfterSaleDetail.vue | 137 ++++++++++++++++++ .../Clue/Order/Comp/DialogBatchAudit.vue | 87 +++++++++++ .../Clue/Order/Comp/DialogFeebackDetail.vue | 127 ++++++++++++++++ src/views/Clue/Order/Comp/Reback.vue | 27 +++- src/views/Home/Index.vue | 4 +- 8 files changed, 420 insertions(+), 9 deletions(-) create mode 100644 src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue create mode 100644 src/views/Clue/Order/Comp/DialogBatchAudit.vue create mode 100644 src/views/Clue/Order/Comp/DialogFeebackDetail.vue diff --git a/src/api/clue/afterSale.js b/src/api/clue/afterSale.js index 9c43e6a..685289a 100644 --- a/src/api/clue/afterSale.js +++ b/src/api/clue/afterSale.js @@ -20,7 +20,16 @@ export const auditAfterSale = async (data) => { return await request.post({ url: '/admin-api/crm/sign-after-sale/check', data }) } +export const batchAuditAfterSale = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-after-sale/batch/check', data }) +} + // 撤销 export const cancelApplyAfterSale = async (data) => { return await request.post({ url: '/admin-api/crm/sign-after-sale/revoke', params: data }) } + +// 查询详情 +export const getAfterSaleDetail = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-after-sale/get', params }) +} diff --git a/src/api/clue/payment.js b/src/api/clue/payment.js index 277f90d..4a63fbf 100644 --- a/src/api/clue/payment.js +++ b/src/api/clue/payment.js @@ -20,7 +20,16 @@ export const auditPayment = async (data) => { return await request.post({ url: '/admin-api/crm/sign-pay-record/check', data }) } +export const batchAuditPayment = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-pay-record/batch/check', data }) +} + // 撤销 export const cancelApplyPayment = async (data) => { return await request.post({ url: '/admin-api/crm/sign-pay-record/revoke', params: data }) } + +// 查询详情 +export const getPaymentDetail = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-pay-record/get', params }) +} diff --git a/src/views/Clue/Order/Comp/AfterSales.vue b/src/views/Clue/Order/Comp/AfterSales.vue index 29785cf..04869c9 100644 --- a/src/views/Clue/Order/Comp/AfterSales.vue +++ b/src/views/Clue/Order/Comp/AfterSales.vue @@ -64,7 +64,13 @@ - + + @@ -112,6 +118,8 @@ @pagination="getList" /> + + @@ -121,6 +129,8 @@ import { getSimpleUserList as getUserOption } from '@/api/system/user' import { useUserStore } from '@/store/modules/user' import DialogAfterSaleAudit from './DialogAfterSaleAudit.vue' +import DialogAfterSaleDetail from './DialogAfterSaleDetail.vue' +import DialogBatchAudit from './DialogBatchAudit.vue' const afterSaleAuditDialog = ref() @@ -177,12 +187,23 @@ async function getList() { } } -function batchAudit(row) { - afterSaleAuditDialog.value.open(row) +const batchIds = ref([]) +function handleSelectionChange(val) { + batchIds.value = val +} + +const batchAuditDialog = ref() +function batchAudit() { + if (batchIds.value.length) { + batchAuditDialog.value.open('aftersale', batchIds.value) + } else { + message.info('请选择表格中需要审核的数据') + } } +const afterSaleDetailDialog = ref() function handleDetail(id) { - console.log(id) + afterSaleDetailDialog.value.open(id) } async function handleCancel(id) { try { diff --git a/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue b/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue new file mode 100644 index 0000000..83277ad --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogBatchAudit.vue b/src/views/Clue/Order/Comp/DialogBatchAudit.vue new file mode 100644 index 0000000..4204057 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogBatchAudit.vue @@ -0,0 +1,87 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogFeebackDetail.vue b/src/views/Clue/Order/Comp/DialogFeebackDetail.vue new file mode 100644 index 0000000..f524eb9 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogFeebackDetail.vue @@ -0,0 +1,127 @@ + + diff --git a/src/views/Clue/Order/Comp/Reback.vue b/src/views/Clue/Order/Comp/Reback.vue index 724e2ec..26be7e2 100644 --- a/src/views/Clue/Order/Comp/Reback.vue +++ b/src/views/Clue/Order/Comp/Reback.vue @@ -64,7 +64,13 @@ - + + @@ -111,6 +117,8 @@ /> + + @@ -120,6 +128,8 @@ import { getSimpleUserList as getUserOption } from '@/api/system/user' import { useUserStore } from '@/store/modules/user' import DialogFeebackAudit from './DialogFeebackAudit.vue' +import DialogFeebackDetail from './DialogFeebackDetail.vue' +import DialogBatchAudit from './DialogBatchAudit.vue' const userStore = useUserStore() const message = useMessage() // 消息弹窗 @@ -176,12 +186,23 @@ async function getList() { } } +const batchIds = ref([]) +function handleSelectionChange(val) { + batchIds.value = val +} + +const batchAuditDialog = ref() function batchAudit() { - console.log(123) + if (batchIds.value.length) { + batchAuditDialog.value.open('aftersale', batchIds.value) + } else { + message.info('请选择表格中需要审核的数据') + } } +const feebackDetailDialog = ref() function handleDetail(id) { - console.log(id) + feebackDetailDialog.value.open(id) } async function handleCancel(id) { try { diff --git a/src/views/Home/Index.vue b/src/views/Home/Index.vue index fb08edd..0f2b5e4 100644 --- a/src/views/Home/Index.vue +++ b/src/views/Home/Index.vue @@ -203,7 +203,7 @@ const getMonthlySaleRate = async () => { ) set(lineOptionsData, 'series', [ { - name: t('analysis.estimate'), + name: '个人成交率', smooth: true, type: 'line', data: data.map((v) => v.estimate), @@ -211,7 +211,7 @@ const getMonthlySaleRate = async () => { animationEasing: 'cubicInOut' }, { - name: t('analysis.actual'), + name: '平均成交率', smooth: true, type: 'line', itemStyle: {},