完成坐席业绩的请求方法。
This commit is contained in:
		@@ -26,7 +26,7 @@ interface DepartmentArchievement // 定义业绩对象的结构
 | 
			
		||||
    backward_list: string[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface CallerArchievement // 坐席的业绩
 | 
			
		||||
interface CallerArchievement // 坐席业绩对象
 | 
			
		||||
{
 | 
			
		||||
    success: boolean;
 | 
			
		||||
    message: string;
 | 
			
		||||
@@ -36,15 +36,16 @@ interface CallerArchievement // 坐席的业绩
 | 
			
		||||
    attaching_rate: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface MenusalArchievementItem
 | 
			
		||||
interface MenusalArchievementItem // 每月业绩清单的项目
 | 
			
		||||
{
 | 
			
		||||
    month: string;
 | 
			
		||||
    premium: number;
 | 
			
		||||
    month: number;
 | 
			
		||||
    premium: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取部门业绩数据,并调用回调函数进行渲染。
 | 
			
		||||
 * @param render 用于给组件更新数据的回调函数
 | 
			
		||||
 * @param departmentInfo 作为请求参数的部门参数对象
 | 
			
		||||
 * @param render 用于给组件更新数据的回调函数,用DepartmentArchievement对象调用;
 | 
			
		||||
 */
 | 
			
		||||
function queryDepartmentArchievement( departmentInfo: Department, render: any ): void
 | 
			
		||||
{
 | 
			
		||||
@@ -98,6 +99,14 @@ function queryDepartmentArchievement( departmentInfo: Department, render: any ):
 | 
			
		||||
        });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 查询坐席的业绩,并调用渲染函数.
 | 
			
		||||
 * 1、请求坐席业绩的数据
 | 
			
		||||
 * 2、对每月业绩清单进行检查,如果有缺少则用0代替,检查的结果是12个月的清单,让调用者自己截断;
 | 
			
		||||
 * 3、将检查后的清单,写入到业绩对象中,只写金额
 | 
			
		||||
 * @param callerInfo 坐席的信息参数,用于请求业绩;
 | 
			
		||||
 * @param render 渲染函数,用业绩对象CallerArchievement作为参数;
 | 
			
		||||
 */
 | 
			
		||||
function queryCallerArchievement( callerInfo: TelSaler, render: any ): void
 | 
			
		||||
{
 | 
			
		||||
    const caller = {
 | 
			
		||||
@@ -105,6 +114,7 @@ function queryCallerArchievement( callerInfo: TelSaler, render: any ): void
 | 
			
		||||
        callName: callerInfo.telSalerName,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    // 发送请求
 | 
			
		||||
    instance.request({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: API_URL.URL_CALLER_ARCHIEVEMENT,
 | 
			
		||||
@@ -124,8 +134,29 @@ function queryCallerArchievement( callerInfo: TelSaler, render: any ): void
 | 
			
		||||
                attaching_rate: data.attaching_rate ?? "0.0",
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            // 检查业绩清单有没有缺漏,缺漏的用0补上
 | 
			
		||||
            const checkedList = checkMensualArchievement( data.mensual_archievement_list );
 | 
			
		||||
 | 
			
		||||
            // 排序一下
 | 
			
		||||
            checkedList.sort(( a: MenusalArchievementItem, b: MenusalArchievementItem ): number =>
 | 
			
		||||
            {
 | 
			
		||||
                return a.month - b.month;
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            // 将排序后的每月业绩写到业绩对象中
 | 
			
		||||
            checkedList.forEach(( item: MenusalArchievementItem ): void =>
 | 
			
		||||
            {
 | 
			
		||||
                const premium = Number( item.premium );
 | 
			
		||||
 | 
			
		||||
                callArchievement.mensual_archievement_list.push( premium );
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            // 调用渲染函数
 | 
			
		||||
            if ( render !== undefined )
 | 
			
		||||
            {
 | 
			
		||||
                render( callArchievement );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            console.log( `queryCallerArchievement查询结果${data}` );
 | 
			
		||||
        })
 | 
			
		||||
        // 请求失败
 | 
			
		||||
@@ -137,8 +168,9 @@ function queryCallerArchievement( callerInfo: TelSaler, render: any ): void
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 检查服务器返回的每月业绩数组,检查是否有缺漏,缺少的月份业绩用0代替。
 | 
			
		||||
 * @param mensualArchievementList 
 | 
			
		||||
 * @returns 
 | 
			
		||||
 * 检查的结果是12个月的清单,由调用者自己进行截断。
 | 
			
		||||
 * @param mensualArchievementList MenusalArchievementItem类型的数组,为业绩清单
 | 
			
		||||
 * @returns 返回MenusalArchievementItem数组,为检查过的清单
 | 
			
		||||
 */
 | 
			
		||||
function checkMensualArchievement( mensualArchievementList: MenusalArchievementItem[]): MenusalArchievementItem[]
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,8 @@ import { ElMessage } from "element-plus";
 | 
			
		||||
import
 | 
			
		||||
{
 | 
			
		||||
    type DepartmentArchievement,
 | 
			
		||||
    queryDepartmentArchievement
 | 
			
		||||
    queryDepartmentArchievement,
 | 
			
		||||
    queryCallerArchievement
 | 
			
		||||
} from "@/utils/archievement.js";
 | 
			
		||||
import { RankingListItem } from "@/types/cpicxim/RankingListItem.js";
 | 
			
		||||
import
 | 
			
		||||
@@ -178,7 +179,7 @@ export default {
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        // 保存业绩数据
 | 
			
		||||
        const applyArchievementData = ( data: DepartmentArchievement ) =>
 | 
			
		||||
        const applyDepartmentArchievementData = ( data: DepartmentArchievement ) =>
 | 
			
		||||
        {
 | 
			
		||||
            console.log( "部门业绩数据", data );
 | 
			
		||||
 | 
			
		||||
@@ -254,7 +255,7 @@ export default {
 | 
			
		||||
                month: "06",
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            queryDepartmentArchievement( deparmentInfo, applyArchievementData );
 | 
			
		||||
            queryDepartmentArchievement( deparmentInfo, applyDepartmentArchievementData );
 | 
			
		||||
            requestRankingList( rankinglistRequest, applyRankingListData );
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
@@ -283,7 +284,7 @@ export default {
 | 
			
		||||
            callerInfo,
 | 
			
		||||
            timerHandler,
 | 
			
		||||
            getTotalArchievement,
 | 
			
		||||
            renderData: applyArchievementData,
 | 
			
		||||
            renderData: applyDepartmentArchievementData,
 | 
			
		||||
            refresh,
 | 
			
		||||
            logoutDesktopArchievement,
 | 
			
		||||
        };
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user