|
@@ -16,7 +16,7 @@ import { downloadFile } from '@/utils/tools';
|
|
|
|
|
|
const isLoading = ref(false);
|
|
|
const dataSource = ref([]);
|
|
|
-const form = reactive({ type: undefined, date: undefined, member: undefined });
|
|
|
+const form = reactive({ type: 1, date: undefined, member: undefined });
|
|
|
const memberOptions = ref([]);
|
|
|
// 0 客户总量 1 客户转化率
|
|
|
const dataType = ref<0 | 1>(0);
|
|
@@ -49,7 +49,7 @@ const onSubmit = async (isExport?: boolean) => {
|
|
|
const payload = {
|
|
|
startDate: form.date && dateCollections[form.date - 1].start_time,
|
|
|
endDate: form.date && dateCollections[form.date - 1].end_time,
|
|
|
- type: form.type,
|
|
|
+ exportType: form.type,
|
|
|
userId: form.type === 1 ? form.member : undefined,
|
|
|
departmentId: form.type === 1 ? undefined : form.member
|
|
|
} as RequestProps;
|
|
@@ -70,10 +70,10 @@ const queryOverall = async (payload?: RequestProps) => {
|
|
|
isLoading.value = false;
|
|
|
|
|
|
dataSource.value = data.map((d) => ({
|
|
|
- name: d.name,
|
|
|
dealRate: d.dealRate * 100,
|
|
|
customerDeal: d.customerDeal,
|
|
|
- customertotal: d.customertotal
|
|
|
+ customertotal: d.customertotal,
|
|
|
+ name: form.type === 1 ? d.name : d.departmentName
|
|
|
}));
|
|
|
|
|
|
// @ts-ignore
|
|
@@ -85,7 +85,7 @@ const queryOverall = async (payload?: RequestProps) => {
|
|
|
chartOptions.dataset.dimensions = ['name', '成交客户数', '新增客户数'];
|
|
|
// @ts-ignore
|
|
|
chartOptions.dataset.source = data.map((d) => ({
|
|
|
- name: d.name,
|
|
|
+ name: form.type === 1 ? d.name : d.departmentName,
|
|
|
['成交客户数']: d.customerDeal,
|
|
|
['新增客户数']: d.customertotal
|
|
|
}));
|
|
@@ -93,12 +93,13 @@ const queryOverall = async (payload?: RequestProps) => {
|
|
|
};
|
|
|
|
|
|
const queryConversion = async (payload?: RequestProps) => {
|
|
|
+ console.log(payload, '--------');
|
|
|
isLoading.value = true;
|
|
|
const { data = [] } = await getConversionData(payload);
|
|
|
isLoading.value = false;
|
|
|
|
|
|
dataSource.value = data.map((d) => ({
|
|
|
- name: d.name,
|
|
|
+ name: form.type === 1 ? d.name : d.departmentName,
|
|
|
dealRate: d.dealRate * 100
|
|
|
}));
|
|
|
|
|
@@ -108,19 +109,18 @@ const queryConversion = async (payload?: RequestProps) => {
|
|
|
chartOptions.dataset.dimensions = ['name', '客户转化率(%)'];
|
|
|
// @ts-ignore
|
|
|
chartOptions.dataset.source = data.map((d) => ({
|
|
|
- name: d.name,
|
|
|
+ name: form.type === 1 ? d.name : d.departmentName,
|
|
|
['客户转化率(%)']: d.dealRate * 100
|
|
|
}));
|
|
|
chartOptions.legend = undefined;
|
|
|
};
|
|
|
|
|
|
watchEffect(() => {
|
|
|
- dataType.value === 0 ? queryOverall() : queryConversion();
|
|
|
+ dataType.value === 0 ? queryOverall({ exportType: 1 }) : queryConversion({ exportType: 1 });
|
|
|
});
|
|
|
|
|
|
watchEffect(async () => {
|
|
|
- const { data = [] } =
|
|
|
- form.type === 1 ? await getStaffData() : await getDepartmentData();
|
|
|
+ const { data = [] } = form.type === 1 ? await getStaffData() : await getDepartmentData();
|
|
|
|
|
|
memberOptions.value = data.map((d) => ({
|
|
|
name: form.type === 1 ? d.name : d.departmentName,
|
|
@@ -144,11 +144,7 @@ watchEffect(async () => {
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item class="w-28">
|
|
|
- <el-select
|
|
|
- clearable
|
|
|
- v-model="form.type"
|
|
|
- @change="form.member = undefined"
|
|
|
- >
|
|
|
+ <el-select v-model="form.type" @change="form.member = undefined">
|
|
|
<el-option label="按部门" :value="0" />
|
|
|
<el-option label="按员工" :value="1" />
|
|
|
</el-select>
|
|
@@ -168,13 +164,12 @@ watchEffect(async () => {
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :loading="isLoading"
|
|
|
- @click="onSubmit(false)"
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
- <el-button type="primary" @click="onSubmit(true)">导出</el-button>
|
|
|
+ <!-- :loading="isLoading" -->
|
|
|
+
|
|
|
+ <div class="flex gap-1">
|
|
|
+ <el-button type="primary" @click="onSubmit(false)">搜索</el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit(true)">导出</el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
@@ -185,7 +180,7 @@ watchEffect(async () => {
|
|
|
() => {
|
|
|
form.date = undefined;
|
|
|
form.member = undefined;
|
|
|
- form.type = undefined;
|
|
|
+ form.type = 1;
|
|
|
dataSource = [];
|
|
|
}
|
|
|
"
|
|
@@ -198,12 +193,8 @@ watchEffect(async () => {
|
|
|
<Echarts :option="chartOptions"></Echarts>
|
|
|
</div>
|
|
|
<el-table :data="dataSource">
|
|
|
- <el-table-column prop="name" label="员工姓名" />
|
|
|
- <el-table-column
|
|
|
- prop="dealRate"
|
|
|
- label="客户转化率(%)"
|
|
|
- v-if="dataType === 1"
|
|
|
- />
|
|
|
+ <el-table-column prop="name" label="名称" />
|
|
|
+ <el-table-column prop="dealRate" label="客户转化率(%)" v-if="dataType === 1" />
|
|
|
<template v-else>
|
|
|
<el-table-column prop="customertotal" label="新增客户数" />
|
|
|
<el-table-column prop="customerDeal" label="成交客户数" />
|