该死的node 20
This commit is contained in:
@@ -24,4 +24,6 @@ export const API_URL = {
|
||||
// URL_RANKINGLIST: "http://222.76.244.118:11101/desktop_archievement_backend/archievement/query_ranking_list.do",
|
||||
URL_RANKINGLIST: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/query_ranking_list.do",
|
||||
|
||||
// 坐席业绩查询
|
||||
URL_CALLER_ARCHIEVEMENT: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/query_caller_archievement.do",
|
||||
};
|
||||
|
@@ -3,16 +3,17 @@
|
||||
* @Date: 2023-03-17 15:17:44
|
||||
* @LastEditors: Kane
|
||||
* @FilePath: /task_schedule/src/utils/archievement.ts
|
||||
* @Description: 请求业绩数据
|
||||
* @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";
|
||||
import { type Department } from "../types/cpicxim/Department.js";
|
||||
import { type TelSaler } from "../types/cpicxim/TelSaler.js";
|
||||
import { type AxiosResponse } from "axios";
|
||||
|
||||
interface Archievement
|
||||
interface DepartmentArchievement // 定义业绩对象的结构
|
||||
{
|
||||
success: boolean;
|
||||
message: string;
|
||||
@@ -25,6 +26,22 @@ interface Archievement
|
||||
backward_list: string[];
|
||||
}
|
||||
|
||||
interface CallerArchievement // 坐席的业绩
|
||||
{
|
||||
success: boolean;
|
||||
message: string;
|
||||
total_archievement: number;
|
||||
mensual_archievement_list: number[];
|
||||
insurance_renewal_rate: string;
|
||||
attaching_rate: string;
|
||||
}
|
||||
|
||||
interface MenusalArchievementItem
|
||||
{
|
||||
month: string;
|
||||
premium: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部门业绩数据,并调用回调函数进行渲染。
|
||||
* @param render 用于给组件更新数据的回调函数
|
||||
@@ -38,7 +55,7 @@ function queryDepartmentArchievement( departmentInfo: Department, render: any ):
|
||||
})
|
||||
.then(( response ) =>
|
||||
{
|
||||
const archievement: Archievement = {
|
||||
const archievement: DepartmentArchievement = {
|
||||
success: false,
|
||||
message: "",
|
||||
total_archievement: 0,
|
||||
@@ -81,4 +98,87 @@ function queryDepartmentArchievement( departmentInfo: Department, render: any ):
|
||||
});
|
||||
}
|
||||
|
||||
export { queryDepartmentArchievement, type Archievement };
|
||||
function queryCallerArchievement( callerInfo: TelSaler, render: any ): void
|
||||
{
|
||||
const caller = {
|
||||
callerCode: callerInfo.telSalerCode,
|
||||
callName: callerInfo.telSalerName,
|
||||
};
|
||||
|
||||
instance.request({
|
||||
method: "post",
|
||||
url: API_URL.URL_CALLER_ARCHIEVEMENT,
|
||||
data: caller,
|
||||
})
|
||||
// 请求完成时
|
||||
.then(( response: AxiosResponse<any, any> ) =>
|
||||
{
|
||||
const data = response.data ?? {};
|
||||
|
||||
const callArchievement: CallerArchievement = {
|
||||
success: data.success ?? false,
|
||||
message: data.message ?? "",
|
||||
total_archievement: data.total_archievement ?? 0,
|
||||
mensual_archievement_list: [],
|
||||
insurance_renewal_rate: data.insurance_renewal_rate ?? "0.0",
|
||||
attaching_rate: data.attaching_rate ?? "0.0",
|
||||
};
|
||||
|
||||
const checkedList = checkMensualArchievement( data.mensual_archievement_list );
|
||||
|
||||
console.log( `queryCallerArchievement查询结果${data}` );
|
||||
})
|
||||
// 请求失败
|
||||
.catch(( error: any ) =>
|
||||
{
|
||||
console.log( `queryCallerArchievement:查询坐席${callerInfo.telSalerCode}业绩失败,原因${error}` );
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查服务器返回的每月业绩数组,检查是否有缺漏,缺少的月份业绩用0代替。
|
||||
* @param mensualArchievementList
|
||||
* @returns
|
||||
*/
|
||||
function checkMensualArchievement( mensualArchievementList: MenusalArchievementItem[]): MenusalArchievementItem[]
|
||||
{
|
||||
const checkedList: MenusalArchievementItem[] = [];
|
||||
const itemMap = new Map();
|
||||
|
||||
itemMap.set( 1, "0" );
|
||||
itemMap.set( 2, "0" );
|
||||
itemMap.set( 3, "0" );
|
||||
itemMap.set( 4, "0" );
|
||||
itemMap.set( 5, "0" );
|
||||
itemMap.set( 6, "0" );
|
||||
itemMap.set( 7, "0" );
|
||||
itemMap.set( 8, "0" );
|
||||
itemMap.set( 9, "0" );
|
||||
itemMap.set( 10, "0" );
|
||||
itemMap.set( 11, "0" );
|
||||
itemMap.set( 12, "0" );
|
||||
|
||||
mensualArchievementList.forEach(( item: MenusalArchievementItem ): void =>
|
||||
{
|
||||
itemMap.set( item.month, item.premium );
|
||||
});
|
||||
|
||||
itemMap.forEach(( value, key, map ) =>
|
||||
{
|
||||
const item: MenusalArchievementItem = {
|
||||
month: key,
|
||||
premium: value,
|
||||
};
|
||||
|
||||
checkedList.push( item );
|
||||
});
|
||||
|
||||
return checkedList;
|
||||
}
|
||||
|
||||
export {
|
||||
queryDepartmentArchievement,
|
||||
queryCallerArchievement,
|
||||
type DepartmentArchievement,
|
||||
type CallerArchievement
|
||||
};
|
||||
|
Reference in New Issue
Block a user