/* * @Author: Kane * @Date: 2023-03-17 15:17:44 * @LastEditors: Kane * @FilePath: /task_schedule/src/utils/archievement.ts * @Description: 请求业绩数据 * * Copyright (c) ${2022} by Kane, All Rights Reserved. */ import { service as instance } from "./api/request.js"; import { API_URL } from "./api/config.js"; import { type Department } from "@/types/cpicxim/Department.js"; // import { type AxiosResponse } from "axios"; interface Archievement { success: boolean; message: string; total_archievement: number; mensual_archievement_list: number[]; insurance_renewal_rate: string; attaching_rate: string; leading_reward_gainers: string[]; advance_reward_gainers: string[]; backward_list: string[]; } /** * 获取部门业绩数据,并调用回调函数进行渲染。 * @param render 用于给组件更新数据的回调函数 */ function queryDepartmentArchievement( departmentInfo: Department, render: any ): void { instance.request({ method: "post", url: API_URL.URL_DEPARTMENT_ARCHIEVEMENT, data: departmentInfo, }) .then(( response ) => { const archievement: Archievement = { success: false, message: "", total_archievement: 0, mensual_archievement_list: [], insurance_renewal_rate: "", attaching_rate: "", leading_reward_gainers: [], advance_reward_gainers: [], backward_list: [], }; const data = response.data ?? {}; archievement.success = data.success ?? false; archievement.message = data.message ?? ""; archievement.total_archievement = data.total_archievement; // archievement.mensual_archievement_list = data.mensual_archievement_list ?? []; archievement.mensual_archievement_list = []; archievement.insurance_renewal_rate = data.insurance_renewal_rate ?? "0.0"; archievement.attaching_rate = data.attaching_rate ?? "0.0"; archievement.leading_reward_gainers = data.leading_reward_gainers ?? []; archievement.advance_reward_gainers = data.advance_reward_gainers ?? []; archievement.backward_list = data.backward_list ?? []; // 转换每月业绩数据,用month排序以后,保留premium。 data.mensual_archievement_list.sort(( a: any, b: any ) => a.month - b.month ); data.mensual_archievement_list.forEach(( item: any ) => { archievement.mensual_archievement_list.push( item.premium ); }); console.log( "每月业绩", archievement ); // 渲染数据 render( archievement ); }) .catch(( error ) => { console.log( error ); }); } export { queryDepartmentArchievement, type Archievement };