|
@@ -9,9 +9,12 @@ import {
|
|
getDepartmentData,
|
|
getDepartmentData,
|
|
getStaffData,
|
|
getStaffData,
|
|
dateCollections,
|
|
dateCollections,
|
|
- getConversionData
|
|
|
|
|
|
+ getConversionData,
|
|
|
|
+ exportFile
|
|
} from './api';
|
|
} from './api';
|
|
|
|
+import { downloadFile } from '@/utils/tools';
|
|
|
|
|
|
|
|
+const isLoading = ref(false);
|
|
const dataSource = ref([]);
|
|
const dataSource = ref([]);
|
|
const form = reactive({ type: undefined, date: undefined, member: undefined });
|
|
const form = reactive({ type: undefined, date: undefined, member: undefined });
|
|
const memberOptions = ref([]);
|
|
const memberOptions = ref([]);
|
|
@@ -42,7 +45,7 @@ const dateOptions = [
|
|
{ label: '上季度', value: '8' }
|
|
{ label: '上季度', value: '8' }
|
|
];
|
|
];
|
|
|
|
|
|
-const onSubmit = () => {
|
|
|
|
|
|
+const onSubmit = async (isExport?: boolean) => {
|
|
const payload = {
|
|
const payload = {
|
|
startDate: form.date && dateCollections[form.date - 1].start_time,
|
|
startDate: form.date && dateCollections[form.date - 1].start_time,
|
|
endDate: form.date && dateCollections[form.date - 1].end_time,
|
|
endDate: form.date && dateCollections[form.date - 1].end_time,
|
|
@@ -51,11 +54,20 @@ const onSubmit = () => {
|
|
departmentId: form.type === 1 ? undefined : form.member
|
|
departmentId: form.type === 1 ? undefined : form.member
|
|
} as RequestProps;
|
|
} as RequestProps;
|
|
|
|
|
|
|
|
+ if (isExport === true) {
|
|
|
|
+ const { data } = await exportFile(payload, dataType.value);
|
|
|
|
+ console.log(data, '----------------');
|
|
|
|
+ await downloadFile(data, data?.split('/')?.[2] || '客户表');
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
dataType.value === 0 ? queryOverall(payload) : queryConversion(payload);
|
|
dataType.value === 0 ? queryOverall(payload) : queryConversion(payload);
|
|
};
|
|
};
|
|
|
|
|
|
const queryOverall = async (payload?: RequestProps) => {
|
|
const queryOverall = async (payload?: RequestProps) => {
|
|
|
|
+ isLoading.value = true;
|
|
const { data = [] } = await getOverallData(payload);
|
|
const { data = [] } = await getOverallData(payload);
|
|
|
|
+ isLoading.value = false;
|
|
|
|
|
|
dataSource.value = data.map((d) => ({
|
|
dataSource.value = data.map((d) => ({
|
|
name: d.name,
|
|
name: d.name,
|
|
@@ -81,7 +93,9 @@ const queryOverall = async (payload?: RequestProps) => {
|
|
};
|
|
};
|
|
|
|
|
|
const queryConversion = async (payload?: RequestProps) => {
|
|
const queryConversion = async (payload?: RequestProps) => {
|
|
|
|
+ isLoading.value = true;
|
|
const { data = [] } = await getConversionData(payload);
|
|
const { data = [] } = await getConversionData(payload);
|
|
|
|
+ isLoading.value = false;
|
|
|
|
|
|
dataSource.value = data.map((d) => ({
|
|
dataSource.value = data.map((d) => ({
|
|
name: d.name,
|
|
name: d.name,
|
|
@@ -154,9 +168,16 @@ watchEffect(async () => {
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-button type="primary" @click="onSubmit">搜索</el-button>
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ :loading="isLoading"
|
|
|
|
+ @click="onSubmit(false)"
|
|
|
|
+ >搜索</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button type="primary" @click="onSubmit(true)">导出</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
|
|
+
|
|
<el-tabs
|
|
<el-tabs
|
|
type="card"
|
|
type="card"
|
|
v-model="dataType"
|
|
v-model="dataType"
|