From f61f623f7391b6b9e56bafc0b63f687297e58bd8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 24 Sep 2023 01:17:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/web/task_schedule/package-lock.json | 38 ++++----- code/web/task_schedule/package.json | 2 +- code/web/task_schedule/src/router/index.js | 8 +- code/web/task_schedule/src/utils/reward.ts | 69 ++++++++++++++- ...ataManagement.vue => RewardManagement.vue} | 18 +++- .../src/views/reward/RewardTelsaler.vue | 83 ++++++++++++++++++- code/web/task_schedule/tsconfig.json | 1 + .../controllers/rewards/RewardController.java | 5 +- 8 files changed, 192 insertions(+), 32 deletions(-) rename code/web/task_schedule/src/views/{DataManagement.vue => RewardManagement.vue} (94%) diff --git a/code/web/task_schedule/package-lock.json b/code/web/task_schedule/package-lock.json index 24134f0..3efee79 100644 --- a/code/web/task_schedule/package-lock.json +++ b/code/web/task_schedule/package-lock.json @@ -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": { diff --git a/code/web/task_schedule/package.json b/code/web/task_schedule/package.json index 7c04b36..884dfab 100644 --- a/code/web/task_schedule/package.json +++ b/code/web/task_schedule/package.json @@ -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", diff --git a/code/web/task_schedule/src/router/index.js b/code/web/task_schedule/src/router/index.js index aae18f5..cd1ead5 100644 --- a/code/web/task_schedule/src/router/index.js +++ b/code/web/task_schedule/src/router/index.js @@ -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" ), }, ], }, diff --git a/code/web/task_schedule/src/utils/reward.ts b/code/web/task_schedule/src/utils/reward.ts index 1ab7add..5885e91 100644 --- a/code/web/task_schedule/src/utils/reward.ts +++ b/code/web/task_schedule/src/utils/reward.ts @@ -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 ): 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 => + { + 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 }; diff --git a/code/web/task_schedule/src/views/DataManagement.vue b/code/web/task_schedule/src/views/RewardManagement.vue similarity index 94% rename from code/web/task_schedule/src/views/DataManagement.vue rename to code/web/task_schedule/src/views/RewardManagement.vue index b80388c..9ff7e0f 100644 --- a/code/web/task_schedule/src/views/DataManagement.vue +++ b/code/web/task_schedule/src/views/RewardManagement.vue @@ -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 @@ 新增 @@ -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, }; }, }; diff --git a/code/web/task_schedule/src/views/reward/RewardTelsaler.vue b/code/web/task_schedule/src/views/reward/RewardTelsaler.vue index 1874877..ddc5113 100644 --- a/code/web/task_schedule/src/views/reward/RewardTelsaler.vue +++ b/code/web/task_schedule/src/views/reward/RewardTelsaler.vue @@ -57,8 +57,24 @@