该死的node 20
This commit is contained in:
		@@ -32,7 +32,6 @@ export default {
 | 
			
		||||
            mensualList:[],
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
        // 设置图表
 | 
			
		||||
        const initCharts = () =>
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,8 @@
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { testRankingListRequest } from "./testRankingListRequest.js";
 | 
			
		||||
// import { testRankingListRequest } from "./testRankingListRequest.js";
 | 
			
		||||
 | 
			
		||||
testRankingListRequest();
 | 
			
		||||
// testRankingListRequest();
 | 
			
		||||
 | 
			
		||||
console.log( "test" );
 | 
			
		||||
 
 | 
			
		||||
@@ -14,13 +14,12 @@
 | 
			
		||||
        "target": "ESNext",
 | 
			
		||||
        "module": "ESNext",
 | 
			
		||||
        // "module": "CommonJS",
 | 
			
		||||
        // "moduleResolution": "node",
 | 
			
		||||
        "moduleResolution": "node",
 | 
			
		||||
        "strict": true,
 | 
			
		||||
        "jsx": "preserve",
 | 
			
		||||
        "sourceMap": true,
 | 
			
		||||
        "resolveJsonModule": true,
 | 
			
		||||
        "esModuleInterop": false,
 | 
			
		||||
        "esModuleInterop": true,
 | 
			
		||||
        "baseUrl": "./", // paths 路径解析起点
 | 
			
		||||
        "paths": { // 别名路径设置
 | 
			
		||||
            "@/*": [
 | 
			
		||||
@@ -46,5 +45,8 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": [
 | 
			
		||||
        "./node_modules",
 | 
			
		||||
    ]
 | 
			
		||||
    ],
 | 
			
		||||
    "ts-node": {
 | 
			
		||||
        "esm": true
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
@@ -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
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ import { getCallerInfo } from "@/utils/api/localStorage.js";
 | 
			
		||||
import { ElMessage } from "element-plus";
 | 
			
		||||
import
 | 
			
		||||
{
 | 
			
		||||
    type Archievement,
 | 
			
		||||
    type DepartmentArchievement,
 | 
			
		||||
    queryDepartmentArchievement
 | 
			
		||||
} from "@/utils/archievement.js";
 | 
			
		||||
import { RankingListItem } from "@/types/cpicxim/RankingListItem.js";
 | 
			
		||||
@@ -178,7 +178,7 @@ export default {
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        // 保存业绩数据
 | 
			
		||||
        const applyArchievementData = ( data: Archievement ) =>
 | 
			
		||||
        const applyArchievementData = ( data: DepartmentArchievement ) =>
 | 
			
		||||
        {
 | 
			
		||||
            console.log( "部门业绩数据", data );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user