保存进度!
This commit is contained in:
parent
b03056d783
commit
f61f623f73
38
code/web/task_schedule/package-lock.json
generated
38
code/web/task_schedule/package-lock.json
generated
@ -884,9 +884,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.49.0",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.49.0.tgz",
|
||||
"integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==",
|
||||
"version": "8.50.0",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.50.0.tgz",
|
||||
"integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
@ -1449,9 +1449,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/lodash": {
|
||||
"version": "4.14.198",
|
||||
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.198.tgz",
|
||||
"integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg=="
|
||||
"version": "4.14.199",
|
||||
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.199.tgz",
|
||||
"integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
|
||||
},
|
||||
"node_modules/@types/lodash-es": {
|
||||
"version": "4.17.9",
|
||||
@ -4759,9 +4759,9 @@
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.527",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.527.tgz",
|
||||
"integrity": "sha512-EafxEiEDzk2aLrdbtVczylHflHdHkNrpGNHIgDyA63sUQLQVS2ayj2hPw3RsVB42qkwURH+T2OxV7kGPUuYszA=="
|
||||
"version": "1.4.528",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz",
|
||||
"integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
|
||||
},
|
||||
"node_modules/element-plus": {
|
||||
"version": "2.3.14",
|
||||
@ -5061,16 +5061,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.49.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.49.0.tgz",
|
||||
"integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==",
|
||||
"version": "8.50.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.50.0.tgz",
|
||||
"integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
"@eslint/eslintrc": "^2.1.2",
|
||||
"@eslint/js": "8.49.0",
|
||||
"@eslint/js": "8.50.0",
|
||||
"@humanwhocodes/config-array": "^0.11.11",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@ -6579,9 +6579,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-config-standard-with-typescript": {
|
||||
"version": "39.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.0.0.tgz",
|
||||
"integrity": "sha512-CiV2LS4NUeeRmDTDf1ocUMpMxitSyW0g+Y/N7ecElwGj188GahbcQgqfBNyVsIXQxHlZVBlOjkbg3oUI0R3KBg==",
|
||||
"version": "39.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.0.tgz",
|
||||
"integrity": "sha512-5+SPKis3yr6T1X6wSA7HhDuumTRMrTDMcsTrIWhdZuI+sX3e8SPGZYzuJxVxdc239Yo718dEVEVyJhHI6jUjrQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/parser": "^6.4.0",
|
||||
@ -7922,9 +7922,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-tsconfig": {
|
||||
"version": "4.7.1",
|
||||
"resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.1.tgz",
|
||||
"integrity": "sha512-sLtd6Bcwbi9IrAow/raCOTE9pmhvo5ksQo5v2lApUGJMzja64MUYhBp0G6X1S+f7IrBPn1HP+XkS2w2meoGcjg==",
|
||||
"version": "4.7.2",
|
||||
"resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
|
||||
"integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
|
@ -29,7 +29,7 @@
|
||||
"axios": "^1.5.0",
|
||||
"babel": "^6.23.0",
|
||||
"eslint-config-recommended": "^4.1.0",
|
||||
"eslint-config-standard-with-typescript": "^39.0.0",
|
||||
"eslint-config-standard-with-typescript": "^39.1.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"node-sass": "^9.0.0",
|
||||
"sass": "^1.68.0",
|
||||
|
@ -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" ),
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
},
|
||||
};
|
@ -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();
|
||||
|
@ -35,6 +35,7 @@
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
// "src/**/*",
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx",
|
||||
"src/**/*.vue",
|
||||
|
@ -45,7 +45,6 @@ public class RewardController
|
||||
public RewardProjectsResponse queryRewardProjecrts()
|
||||
{
|
||||
RewardProjectsResponse response = new RewardProjectsResponse();
|
||||
|
||||
SqlSession session = null;
|
||||
|
||||
logger.debug( "查询奖项清单。" );
|
||||
|
Loading…
x
Reference in New Issue
Block a user