85 lines
2.9 KiB
TypeScript
85 lines
2.9 KiB
TypeScript
/*
|
||
* @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 };
|