保存进度!

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
);
PROCEDURE save_telsaler_reward
PROCEDURE update_telsaler_reward
(
a_rec_id INTEGER,
a_telsaler_name VARCHAR2,
@ -47,14 +47,14 @@ CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS
COMMIT;
END;
PROCEDURE save_telsaler_reward
PROCEDURE update_telsaler_reward
(
a_rec_id INTEGER,
a_telsaler_name VARCHAR2,
a_reward_index VARCHAR2
) IS
BEGIN
MERGE INTO telsaler_reward r
/*MERGE INTO telsaler_reward r
USING (SELECT COUNT(*) COUNT
FROM telsaler_reward
WHERE rec_id = a_rec_id) a
@ -70,7 +70,17 @@ CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS
telsaler_name)
VALUES
(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;
END;

View File

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

View File

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

View File

@ -67,7 +67,7 @@ interface UpdateRewardTelsalerResponse
interface DeleteRewardTelsalerRequest
{
recordID: number;
recordID: number[];
}
interface DeleteRewardTelsalerResponse
@ -255,7 +255,7 @@ function deleteRewardTelsaler( data: DeleteRewardTelsalerRequest, handler: any )
instance.request({
method: "post",
url: "",
url: API_URL.URL_DEL_REWARD_TELSALER,
data,
})
.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>
</template>
<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 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";
interface UI
@ -139,9 +139,10 @@ export default {
selectedTelsalerName: "",
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 )
{
@ -161,6 +162,8 @@ export default {
ui.rewardGainerList = response.gainerList;
console.log( "请求获奖人员列表", ui.rewardGainerList );
refreshUI();
};
/** 表格相关 ***************************/
@ -229,10 +232,19 @@ export default {
*/
const onDeleteRewardGainer = (): void =>
{
const selectedRecord: RewardGainer[] = rewardTelsalerTable.value?.getSelectionRows();
const deleteRequest: DeleteRewardTelsalerRequest = {
recordID: 1,
recordID: [],
};
if ( selectedRecord !== undefined )
{
selectedRecord.forEach(( item: RewardGainer ): void =>
{
deleteRequest.recordID.push( item.recID );
});
}
deleteRewardTelsaler( deleteRequest, deleteTelsalerRewardHandler );
};
@ -253,11 +265,15 @@ export default {
type: "error",
});
}
refresh();
};
/** 事件相关 ***************/
/** 订阅新增和保存修改获奖者事件 */
eventBus.on( "onSavedRewardTelsaler", (): void =>
{
//
ui.showEditRewardGainerDialog = false;
refresh();
@ -267,7 +283,17 @@ export default {
*/
const refresh = (): void =>
{
requestRewardGainers( applyGainerList );
requestRewardGainers( requestRewardTelsalerListHandler );
};
const refreshUI = (): void =>
{
ui.showUI = false;
setTimeout(() =>
{
ui.showUI = true;
}, 0 );
};
onBeforeMount((): void =>
@ -279,6 +305,7 @@ export default {
ui,
tableHeight,
rewardGainerData,
rewardTelsalerTable,
onCurrentPageIndexChange,
onTablePageSizeChange,
onEditRewardGainer,

View File

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

View File

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

View File

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