保存进度!

This commit is contained in:
2023-09-24 01:17:54 +08:00
parent b03056d783
commit f61f623f73
8 changed files with 192 additions and 32 deletions

View File

@@ -71,13 +71,13 @@ const routes = [
component: ()=> import( "../views/StaffManagement.vue" ),
},
{
path:"/archievement_data",
name:"ArchievementDataManagement",
path:"/reward_management",
name:"RewardManagement",
meta: {
title:"数据管理",
title:"奖励管理",
icon: "document",
},
component: ()=> import( "../views/DataManagement.vue" ),
component: ()=> import( "../views/RewardManagement.vue" ),
},
],
},

View File

@@ -52,6 +52,19 @@ interface AddRewardTelsalerResponse
message: string;
}
interface UpdateRewardTelsalerRequest
{
recordID: number,
telsalerName: string;
rewardIndex: number;
}
interface UpdateRewardTelsalerResponse
{
success: boolean;
message: string;
}
interface DeleteRewardTelsalerRequest
{
recordID: number;
@@ -164,11 +177,62 @@ function addRewardTelsaler( data: AddRewardTelsalerRequest, handler: any ): void
})
.then(( response: AxiosResponse<any, any> ): void =>
{
const data: AddRewardTelsalerResponse = response.data ?? {};
addResponse.success = data.success ?? false;
addResponse.message = data.message ?? "";
handler( addResponse );
})
.catch(( error ): void =>
{
console.log( error );
addResponse.success = false;
addResponse.message = "请求添加获奖坐席失败,请查看控制台!";
handler( addResponse, error );
});
}
/**
* 请求更新获奖坐席根据请求结果调用handler函数。
* @param data 请求数据
* @param handler 处理请求结果数据的回调函数。
*/
function updateTelsalerReward( data: UpdateRewardTelsalerRequest, handler: any ): void
{
if ( handler === undefined || handler === null )
{
return;
}
const updateResponse: UpdateRewardTelsalerResponse = {
success: false,
message: "",
};
instance.request({
method: "post",
url: API_URL.URL_UPDATE_REWARD_TELSALER,
data,
})
.then(( response: AxiosResponse<any, any> ): any =>
{
const data: UpdateRewardTelsalerResponse = response.data ?? {};
updateResponse.success = data.success ?? false;
updateResponse.message = data.message ?? "";
handler( updateResponse );
})
.catch(( error: any ): void =>
{
updateResponse.success = false;
updateResponse.message = "请求更新获奖坐席失败,请查看控制台!";
console.log( error );
handler( updateResponse, error );
});
}
@@ -210,7 +274,7 @@ function deleteRewardTelsaler( data: DeleteRewardTelsalerRequest, handler: any )
console.log( error );
handler( deleteResponse );
handler( deleteResponse, error );
});
}
@@ -272,8 +336,11 @@ export {
type DeleteRewardTelsalerResponse,
type AddRewardTelsalerRequest,
type AddRewardTelsalerResponse,
type UpdateRewardTelsalerRequest,
type UpdateRewardTelsalerResponse,
requestRewardPorjectsList,
requestRewardGainers,
addRewardTelsaler,
updateTelsalerReward,
deleteRewardTelsaler
};

View File

@@ -2,7 +2,7 @@
* @Author: Kane
* @Date: 2023-03-23 16:05:08
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/DataManagement.vue
* @FilePath: /task_schedule/src/views/RewardManagement.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -21,6 +21,7 @@
<el-button
type="primary"
icon="documentAdd"
@click="onAddRewardGainer"
>
新增
</el-button>
@@ -122,7 +123,7 @@ interface UI
}
export default {
name: "DataManagement",
name: "RewardManagement",
components: { RewardGainerDialog, },
setup()
{
@@ -197,6 +198,16 @@ export default {
};
//
/**
* 添加获奖坐席
*/
const onAddRewardGainer = (): void =>
{
ui.selectedRecID = -1;
ui.selectedRewardProjectCode = 3;
ui.selectedTelsalerName = "";
ui.showEditRewardGainerDialog = true;
};
/**
* 响应用户在表格中的双击
* @param telsalerName
@@ -216,6 +227,8 @@ export default {
eventBus.on( "onSavedRewardTelsaler", (): void =>
{
ui.showEditRewardGainerDialog = false;
refresh();
});
/**
* 用于刷新页面
@@ -238,6 +251,7 @@ export default {
onTablePageSizeChange,
onEditRewardGainer,
refresh,
onAddRewardGainer,
};
},
};

View File

@@ -57,8 +57,24 @@
</template>
<script lang="ts">
import { reactive, onBeforeMount } from "vue";
import { ElMessageBox } from "element-plus";
import { type RewardProject, type RewardProjectResponse, requestRewardPorjectsList } from "@/utils/reward.js";
import { ElMessage, ElMessageBox } from "element-plus";
import {
type RewardProject,
type RewardGainer,
type RewardProjectResponse,
type RewardGainerResponse,
type DeleteRewardTelsalerRequest,
type DeleteRewardTelsalerResponse,
type AddRewardTelsalerRequest,
type AddRewardTelsalerResponse,
type UpdateRewardTelsalerRequest,
type UpdateRewardTelsalerResponse,
requestRewardPorjectsList,
requestRewardGainers,
addRewardTelsaler,
updateTelsalerReward,
deleteRewardTelsaler
} from "@/utils/reward.js";
import eventBus from "@/utils/api/EventBus.js";
interface RewardGainerUI
@@ -101,6 +117,11 @@ export default {
selectedRecID: 0,
});
/**
* 请求奖项清单的回调函数,用于处理请求结果。
* @param response 请求奖项清单的响应对象
* @param error 请求失败时的错误对象
*/
const applyRewardProjectsData = ( response: RewardProjectResponse, error: any ): void =>
{
if ( !response.success )
@@ -140,9 +161,67 @@ export default {
const onSaveRewardTelsaler = (): void =>
{
if ( props.selectedRecId === -1 )
{
// 新增
const addRequest: AddRewardTelsalerRequest = {
rewardIndex: ui.selectedRewardProjectCode as number,
telsalerName: ui.selectedRewardTelsalerName,
};
addRewardTelsaler( addRequest, addRewardTelsalerHandler );
}
else
{
// 更新
const updateRequest: UpdateRewardTelsalerRequest = {
recordID: ui.selectedRecID,
telsalerName: ui.selectedRewardTelsalerName,
rewardIndex: ui.selectedRewardProjectCode as number,
};
updateTelsalerReward( updateRequest, updateTelsalerRewardHandler );
}
eventBus.emit( "onSavedRewardTelsaler" );
};
const addRewardTelsalerHandler = ( data: AddRewardTelsalerResponse, error: any ): void =>
{
if ( data.success )
{
ElMessage({
message: data.message,
type: "success",
});
}
else
{
ElMessage({
message: data.message,
type: "error",
});
}
};
const updateTelsalerRewardHandler = ( data: UpdateRewardTelsalerResponse, error: any ): void =>
{
if ( data.success )
{
ElMessage({
message: data.message,
type: "success",
});
}
else
{
ElMessage({
message: data.message,
type: "error",
});
}
};
// onBeforeUpdate((): void =>
// {
// refresh();