保存进度!

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

View File

@ -884,9 +884,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.49.0", "version": "8.50.0",
"resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.49.0.tgz", "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.50.0.tgz",
"integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"engines": { "engines": {
@ -1449,9 +1449,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/lodash": { "node_modules/@types/lodash": {
"version": "4.14.198", "version": "4.14.199",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.198.tgz", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.199.tgz",
"integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
}, },
"node_modules/@types/lodash-es": { "node_modules/@types/lodash-es": {
"version": "4.17.9", "version": "4.17.9",
@ -4759,9 +4759,9 @@
"peer": true "peer": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.527", "version": "1.4.528",
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.527.tgz", "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz",
"integrity": "sha512-EafxEiEDzk2aLrdbtVczylHflHdHkNrpGNHIgDyA63sUQLQVS2ayj2hPw3RsVB42qkwURH+T2OxV7kGPUuYszA==" "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
}, },
"node_modules/element-plus": { "node_modules/element-plus": {
"version": "2.3.14", "version": "2.3.14",
@ -5061,16 +5061,16 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.49.0", "version": "8.50.0",
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.49.0.tgz", "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.50.0.tgz",
"integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2", "@eslint/eslintrc": "^2.1.2",
"@eslint/js": "8.49.0", "@eslint/js": "8.50.0",
"@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/config-array": "^0.11.11",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@ -6579,9 +6579,9 @@
} }
}, },
"node_modules/eslint-config-standard-with-typescript": { "node_modules/eslint-config-standard-with-typescript": {
"version": "39.0.0", "version": "39.1.0",
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.0.0.tgz", "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.0.tgz",
"integrity": "sha512-CiV2LS4NUeeRmDTDf1ocUMpMxitSyW0g+Y/N7ecElwGj188GahbcQgqfBNyVsIXQxHlZVBlOjkbg3oUI0R3KBg==", "integrity": "sha512-5+SPKis3yr6T1X6wSA7HhDuumTRMrTDMcsTrIWhdZuI+sX3e8SPGZYzuJxVxdc239Yo718dEVEVyJhHI6jUjrQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/parser": "^6.4.0", "@typescript-eslint/parser": "^6.4.0",
@ -7922,9 +7922,9 @@
} }
}, },
"node_modules/get-tsconfig": { "node_modules/get-tsconfig": {
"version": "4.7.1", "version": "4.7.2",
"resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.1.tgz", "resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
"integrity": "sha512-sLtd6Bcwbi9IrAow/raCOTE9pmhvo5ksQo5v2lApUGJMzja64MUYhBp0G6X1S+f7IrBPn1HP+XkS2w2meoGcjg==", "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"dependencies": { "dependencies": {

View File

@ -29,7 +29,7 @@
"axios": "^1.5.0", "axios": "^1.5.0",
"babel": "^6.23.0", "babel": "^6.23.0",
"eslint-config-recommended": "^4.1.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", "eslint-plugin-vue": "^9.17.0",
"node-sass": "^9.0.0", "node-sass": "^9.0.0",
"sass": "^1.68.0", "sass": "^1.68.0",

View File

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

View File

@ -52,6 +52,19 @@ interface AddRewardTelsalerResponse
message: string; message: string;
} }
interface UpdateRewardTelsalerRequest
{
recordID: number,
telsalerName: string;
rewardIndex: number;
}
interface UpdateRewardTelsalerResponse
{
success: boolean;
message: string;
}
interface DeleteRewardTelsalerRequest interface DeleteRewardTelsalerRequest
{ {
recordID: number; recordID: number;
@ -164,11 +177,62 @@ function addRewardTelsaler( data: AddRewardTelsalerRequest, handler: any ): void
}) })
.then(( response: AxiosResponse<any, 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 => .catch(( error ): void =>
{ {
console.log( error ); 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 ); console.log( error );
handler( deleteResponse ); handler( deleteResponse, error );
}); });
} }
@ -272,8 +336,11 @@ export {
type DeleteRewardTelsalerResponse, type DeleteRewardTelsalerResponse,
type AddRewardTelsalerRequest, type AddRewardTelsalerRequest,
type AddRewardTelsalerResponse, type AddRewardTelsalerResponse,
type UpdateRewardTelsalerRequest,
type UpdateRewardTelsalerResponse,
requestRewardPorjectsList, requestRewardPorjectsList,
requestRewardGainers, requestRewardGainers,
addRewardTelsaler, addRewardTelsaler,
updateTelsalerReward,
deleteRewardTelsaler deleteRewardTelsaler
}; };

View File

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

View File

@ -57,8 +57,24 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { reactive, onBeforeMount } from "vue"; import { reactive, onBeforeMount } from "vue";
import { ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { type RewardProject, type RewardProjectResponse, requestRewardPorjectsList } from "@/utils/reward.js"; 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"; import eventBus from "@/utils/api/EventBus.js";
interface RewardGainerUI interface RewardGainerUI
@ -101,6 +117,11 @@ export default {
selectedRecID: 0, selectedRecID: 0,
}); });
/**
* 请求奖项清单的回调函数用于处理请求结果
* @param response 请求奖项清单的响应对象
* @param error 请求失败时的错误对象
*/
const applyRewardProjectsData = ( response: RewardProjectResponse, error: any ): void => const applyRewardProjectsData = ( response: RewardProjectResponse, error: any ): void =>
{ {
if ( !response.success ) if ( !response.success )
@ -140,9 +161,67 @@ export default {
const onSaveRewardTelsaler = (): void => 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" ); 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 => // onBeforeUpdate((): void =>
// { // {
// refresh(); // refresh();

View File

@ -35,6 +35,7 @@
] ]
}, },
"include": [ "include": [
// "src/**/*",
"src/**/*.ts", "src/**/*.ts",
"src/**/*.tsx", "src/**/*.tsx",
"src/**/*.vue", "src/**/*.vue",

View File

@ -45,7 +45,6 @@ public class RewardController
public RewardProjectsResponse queryRewardProjecrts() public RewardProjectsResponse queryRewardProjecrts()
{ {
RewardProjectsResponse response = new RewardProjectsResponse(); RewardProjectsResponse response = new RewardProjectsResponse();
SqlSession session = null; SqlSession session = null;
logger.debug( "查询奖项清单。" ); logger.debug( "查询奖项清单。" );