保存进度!

This commit is contained in:
Kane Wang 2023-09-25 16:23:26 +08:00
parent 099a1e65f6
commit 64824e6f74
9 changed files with 126 additions and 25 deletions

View File

@ -10,7 +10,7 @@ CREATE OR REPLACE PACKAGE telsaler_reward_pkg IS
a_telsaler_name VARCHAR2 a_telsaler_name VARCHAR2
); );
PROCEDURE save_telsaler_reward PROCEDURE update_telsaler_reward
( (
a_rec_id INTEGER, a_rec_id INTEGER,
a_telsaler_name VARCHAR2, a_telsaler_name VARCHAR2,
@ -47,14 +47,14 @@ CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS
COMMIT; COMMIT;
END; END;
PROCEDURE save_telsaler_reward PROCEDURE update_telsaler_reward
( (
a_rec_id INTEGER, a_rec_id INTEGER,
a_telsaler_name VARCHAR2, a_telsaler_name VARCHAR2,
a_reward_index VARCHAR2 a_reward_index VARCHAR2
) IS ) IS
BEGIN BEGIN
MERGE INTO telsaler_reward r /*MERGE INTO telsaler_reward r
USING (SELECT COUNT(*) COUNT USING (SELECT COUNT(*) COUNT
FROM telsaler_reward FROM telsaler_reward
WHERE rec_id = a_rec_id) a WHERE rec_id = a_rec_id) a
@ -70,7 +70,17 @@ CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS
telsaler_name) telsaler_name)
VALUES VALUES
(a_reward_index, (a_reward_index,
a_telsaler_name); a_telsaler_name);*/
BEGIN
UPDATE telsaler_reward r
SET r.reward_index = a_reward_index,
r.telsaler_name = a_telsaler_name
WHERE r.rec_id = a_rec_id;
EXCEPTION
WHEN no_data_found THEN
raise_application_error(-20002,
'Î޴˼Ǽ£¡');
END;
COMMIT; COMMIT;
END; END;

View File

@ -28,7 +28,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

@ -70,6 +70,15 @@ const routes = [
}, },
component: ()=> import( "../views/StaffManagement.vue" ), component: ()=> import( "../views/StaffManagement.vue" ),
}, },
{
path: "/data_management",
name: "DataManagement",
meta: {
title: "数据管理",
icon: "document",
},
component: ()=> import( "../views/DataManagement.vue" ),
},
{ {
path:"/reward_management", path:"/reward_management",
name:"RewardManagement", name:"RewardManagement",

View File

@ -67,7 +67,7 @@ interface UpdateRewardTelsalerResponse
interface DeleteRewardTelsalerRequest interface DeleteRewardTelsalerRequest
{ {
recordID: number; recordID: number[];
} }
interface DeleteRewardTelsalerResponse interface DeleteRewardTelsalerResponse
@ -255,7 +255,7 @@ function deleteRewardTelsaler( data: DeleteRewardTelsalerRequest, handler: any )
instance.request({ instance.request({
method: "post", method: "post",
url: "", url: API_URL.URL_DEL_REWARD_TELSALER,
data, data,
}) })
.then(( response: AxiosResponse<any, any> ): void => .then(( response: AxiosResponse<any, any> ): void =>

View File

@ -0,0 +1,40 @@
<!--
* @Author: Kane
* @Date: 2023-09-25 09:48:25
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/DataManagement.vue
* @Description: 数据管理view
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div class="data_management_wrapper">
数据管理
</div>
</template>
<script lang="ts">
import { ref, reactive } from "vue";
export default {
name: "DataManagement",
setup()
{
const ui = reactive({
showUI: false,
});
return { ui, };
},
};
</script>
<style lang="scss">
.data_management_wrapper {
margin: 10px;
min-width: 800px;
>*+* {
margin-top: 10px;
}
}
</style>

View File

@ -106,10 +106,10 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { reactive, computed, onBeforeMount } from "vue"; import { reactive, computed, onBeforeMount, ref } from "vue";
import { type RewardGainer, type RewardGainerResponse, requestRewardGainers, type DeleteRewardTelsalerResponse, deleteRewardTelsaler, type DeleteRewardTelsalerRequest } from "@/utils/reward.js"; import { type RewardGainer, type RewardGainerResponse, requestRewardGainers, type DeleteRewardTelsalerResponse, deleteRewardTelsaler, type DeleteRewardTelsalerRequest } from "@/utils/reward.js";
import eventBus from "@/utils/api/EventBus.js"; import eventBus from "@/utils/api/EventBus.js";
import { ElMessage, ElMessageBox, ElTable } from "element-plus"; import { ElMessage, ElMessageBox, type ElTable } from "element-plus";
import RewardGainerDialog from "@/views/reward/RewardTelsaler.vue"; import RewardGainerDialog from "@/views/reward/RewardTelsaler.vue";
interface UI interface UI
@ -139,9 +139,10 @@ export default {
selectedTelsalerName: "", selectedTelsalerName: "",
selectedRewardProjectCode: -999, selectedRewardProjectCode: -999,
}); });
const rewardTelsalerTable = ref<InstanceType<typeof ElTable>>();
/** 请求数据相关 ***************************/ /** 请求数据相关 ***************************/
const applyGainerList = ( response: RewardGainerResponse, error: any ): void => const requestRewardTelsalerListHandler = ( response: RewardGainerResponse, error: any ): void =>
{ {
if ( !response.success ) if ( !response.success )
{ {
@ -161,6 +162,8 @@ export default {
ui.rewardGainerList = response.gainerList; ui.rewardGainerList = response.gainerList;
console.log( "请求获奖人员列表", ui.rewardGainerList ); console.log( "请求获奖人员列表", ui.rewardGainerList );
refreshUI();
}; };
/** 表格相关 ***************************/ /** 表格相关 ***************************/
@ -229,10 +232,19 @@ export default {
*/ */
const onDeleteRewardGainer = (): void => const onDeleteRewardGainer = (): void =>
{ {
const selectedRecord: RewardGainer[] = rewardTelsalerTable.value?.getSelectionRows();
const deleteRequest: DeleteRewardTelsalerRequest = { const deleteRequest: DeleteRewardTelsalerRequest = {
recordID: 1, recordID: [],
}; };
if ( selectedRecord !== undefined )
{
selectedRecord.forEach(( item: RewardGainer ): void =>
{
deleteRequest.recordID.push( item.recID );
});
}
deleteRewardTelsaler( deleteRequest, deleteTelsalerRewardHandler ); deleteRewardTelsaler( deleteRequest, deleteTelsalerRewardHandler );
}; };
@ -253,11 +265,15 @@ export default {
type: "error", type: "error",
}); });
} }
refresh();
}; };
/** 事件相关 ***************/ /** 事件相关 ***************/
/** 订阅新增和保存修改获奖者事件 */
eventBus.on( "onSavedRewardTelsaler", (): void => eventBus.on( "onSavedRewardTelsaler", (): void =>
{ {
//
ui.showEditRewardGainerDialog = false; ui.showEditRewardGainerDialog = false;
refresh(); refresh();
@ -267,7 +283,17 @@ export default {
*/ */
const refresh = (): void => const refresh = (): void =>
{ {
requestRewardGainers( applyGainerList ); requestRewardGainers( requestRewardTelsalerListHandler );
};
const refreshUI = (): void =>
{
ui.showUI = false;
setTimeout(() =>
{
ui.showUI = true;
}, 0 );
}; };
onBeforeMount((): void => onBeforeMount((): void =>
@ -279,6 +305,7 @@ export default {
ui, ui,
tableHeight, tableHeight,
rewardGainerData, rewardGainerData,
rewardTelsalerTable,
onCurrentPageIndexChange, onCurrentPageIndexChange,
onTablePageSizeChange, onTablePageSizeChange,
onEditRewardGainer, onEditRewardGainer,

View File

@ -180,8 +180,6 @@ export default {
updateTelsalerReward( updateRequest, updateTelsalerRewardHandler ); updateTelsalerReward( updateRequest, updateTelsalerRewardHandler );
} }
eventBus.emit( "onSavedRewardTelsaler" );
}; };
const addRewardTelsalerHandler = ( data: AddRewardTelsalerResponse, error: any ): void => const addRewardTelsalerHandler = ( data: AddRewardTelsalerResponse, error: any ): void =>
@ -200,6 +198,8 @@ export default {
type: "error", type: "error",
}); });
} }
eventBus.emit( "onSavedRewardTelsaler" );
}; };
const updateTelsalerRewardHandler = ( data: UpdateRewardTelsalerResponse, error: any ): void => const updateTelsalerRewardHandler = ( data: UpdateRewardTelsalerResponse, error: any ): void =>
@ -218,6 +218,8 @@ export default {
type: "error", type: "error",
}); });
} }
eventBus.emit( "onSavedRewardTelsaler" );
}; };
// onBeforeUpdate((): void => // onBeforeUpdate((): void =>

View File

@ -9,13 +9,14 @@
*/ */
package com.cpic.xim.web.controllers.rewards; package com.cpic.xim.web.controllers.rewards;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
public class DeleteTelsalerRequest public class DeleteTelsalerRequest
{ {
public DeleteTelsalerRequest() {} public DeleteTelsalerRequest() {}
public DeleteTelsalerRequest( int recordID) public DeleteTelsalerRequest( int[] recordID)
{ {
this.recordID = recordID; this.recordID = recordID;
} }
@ -23,7 +24,7 @@ public class DeleteTelsalerRequest
@Override @Override
public String toString() public String toString()
{ {
return "DeleteTelsalerRequest [recordID=" + recordID + "]"; return "DeleteTelsalerRequest [recordID=" + Arrays.toString( recordID ) + "]";
} }
@Override @Override
@ -31,7 +32,7 @@ public class DeleteTelsalerRequest
{ {
final int prime = 31; final int prime = 31;
int result = 1; int result = 1;
result = prime * result + recordID; result = prime * result + Arrays.hashCode( recordID );
return result; return result;
} }
@ -45,21 +46,21 @@ public class DeleteTelsalerRequest
if ( getClass() != obj.getClass() ) if ( getClass() != obj.getClass() )
return false; return false;
DeleteTelsalerRequest other = (DeleteTelsalerRequest) obj; DeleteTelsalerRequest other = (DeleteTelsalerRequest) obj;
if ( recordID != other.recordID ) if ( !Arrays.equals( recordID, other.recordID ) )
return false; return false;
return true; return true;
} }
public int getRecordID() public int[] getRecordID()
{ {
return recordID; return recordID;
} }
public void setRecordID( int recordID ) public void setRecordID( int[] recordID )
{ {
this.recordID = recordID; this.recordID = recordID;
} }
@JsonProperty("recordID") @JsonProperty("recordID")
private int recordID; private int[] recordID;
} }

View File

@ -45,13 +45,14 @@ 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( "查询奖项清单。" );
try try
{ {
session = MybatisUtils.getSqlSession(); session = MybatisUtils.getSqlSession();
session.clearCache();
RewardsMapper mapper = session.getMapper( RewardsMapper.class ); RewardsMapper mapper = session.getMapper( RewardsMapper.class );
ArrayList<RewardProject> rewards = mapper.queryRewardProjects(); ArrayList<RewardProject> rewards = mapper.queryRewardProjects();
@ -79,7 +80,7 @@ public class RewardController
RewardGainersResponse queryRewardGainers() RewardGainersResponse queryRewardGainers()
{ {
RewardGainersResponse response = new RewardGainersResponse(); RewardGainersResponse response = new RewardGainersResponse();
SqlSession session = null; SqlSession session = null;
try try
{ {
@ -93,6 +94,12 @@ public class RewardController
response.setMessage( "查询成功!" ); response.setMessage( "查询成功!" );
response.setGainerList( gainers ); response.setGainerList( gainers );
} }
catch ( PersistenceException error )
{
response.setSuccess( false );
response.setMessage( "查询失败!" + error.getMessage() );
response.setGainerList( null );
}
catch ( IOException error ) catch ( IOException error )
{ {
response.setSuccess( false ); response.setSuccess( false );
@ -163,9 +170,14 @@ public class RewardController
HashMap<String, Object> param = new HashMap<String, Object>( 3 ); HashMap<String, Object> param = new HashMap<String, Object>( 3 );
param.put( "a_rec_id", request.getRecordID() ); int[] records = request.getRecordID();
mapper.deleteRewardTelSaler( param ); for ( int index = 0; index < records.length; index++ )
{
param.put( "a_rec_id", records[index] );
mapper.deleteRewardTelSaler( param );
}
response.setSuccess( true ); response.setSuccess( true );
response.setMessage( "删除成功!" ); response.setMessage( "删除成功!" );