该死的node 20

This commit is contained in:
2023-08-28 17:41:07 +08:00
parent 42c2e8bdf7
commit a74e612546
10 changed files with 327 additions and 275 deletions

View File

@@ -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",
};

View File

@@ -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
};