Pārlūkot izejas kodu

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Lijy 11 mēneši atpakaļ
vecāks
revīzija
08519a1084

+ 12 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/corpreport/api.ts

@@ -1,8 +1,6 @@
 import { post, get } from '@/utils/request';
 import { dayjs } from 'element-plus';
 
-// String startDate, String endDate, String userId,Integer departmentId
-
 export type RequestProps = {
   startDate?: string;
   endDate?: string;
@@ -27,6 +25,18 @@ export async function getStaffData(): Promise<any> {
   return await get('/user/getSimpleActiveUserList');
 }
 
+export async function exportFile(
+  payload: RequestProps,
+  type: number
+): Promise<any> {
+  return await post(
+    type === 0
+      ? '/report/exportCustomerTotalCount'
+      : '/report/exportCustomerTransferRate',
+    payload
+  );
+}
+
 export const dateCollections = [
   {
     name: '当日',

+ 24 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/corpreport/index.vue

@@ -9,9 +9,12 @@ import {
   getDepartmentData,
   getStaffData,
   dateCollections,
-  getConversionData
+  getConversionData,
+  exportFile
 } from './api';
+import { downloadFile } from '@/utils/tools';
 
+const isLoading = ref(false);
 const dataSource = ref([]);
 const form = reactive({ type: undefined, date: undefined, member: undefined });
 const memberOptions = ref([]);
@@ -42,7 +45,7 @@ const dateOptions = [
   { label: '上季度', value: '8' }
 ];
 
-const onSubmit = () => {
+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,
@@ -51,11 +54,20 @@ const onSubmit = () => {
     departmentId: form.type === 1 ? undefined : form.member
   } 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);
 };
 
 const queryOverall = async (payload?: RequestProps) => {
+  isLoading.value = true;
   const { data = [] } = await getOverallData(payload);
+  isLoading.value = false;
 
   dataSource.value = data.map((d) => ({
     name: d.name,
@@ -81,7 +93,9 @@ const queryOverall = async (payload?: RequestProps) => {
 };
 
 const queryConversion = async (payload?: RequestProps) => {
+  isLoading.value = true;
   const { data = [] } = await getConversionData(payload);
+  isLoading.value = false;
 
   dataSource.value = data.map((d) => ({
     name: d.name,
@@ -154,9 +168,16 @@ watchEffect(async () => {
           </el-select>
         </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>
+
       <el-tabs
         type="card"
         v-model="dataType"