feat(营期管理): 添加修改营期API并优化营期设置逻辑
- 新增changeCampPeriod API接口用于修改营期参数 - 重构CenterCampPeriodAdmin方法支持新的参数格式 - 优化saveCampSettings和saveNextCampSettings方法调用逻辑
This commit is contained in:
@@ -68,7 +68,10 @@ export const getCampPeriodAdmin = (params) => {
|
|||||||
export const getExcellentRecordFile = (params) => {
|
export const getExcellentRecordFile = (params) => {
|
||||||
return https.post('/api/v1/common/get_excellent_record_file', params)
|
return https.post('/api/v1/common/get_excellent_record_file', params)
|
||||||
}
|
}
|
||||||
|
// 修改营期 /api/v1/level_four/overview/change_camp_period
|
||||||
|
export const changeCampPeriod = (params) => {
|
||||||
|
return https.post('/api/v1/level_four/overview/change_camp_period', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -258,7 +258,7 @@
|
|||||||
import { ref, computed, onMounted } from 'vue';
|
import { ref, computed, onMounted } from 'vue';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { useUserStore } from '@/stores/user';
|
import { useUserStore } from '@/stores/user';
|
||||||
import {getCampPeriodAdmin} from '@/api/secondTop.js'
|
import {getCampPeriodAdmin, changeCampPeriod} from '@/api/secondTop.js'
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const currentYear = ref(new Date().getFullYear());
|
const currentYear = ref(new Date().getFullYear());
|
||||||
@@ -484,7 +484,6 @@ const loadHistoryPeriods = async () => {
|
|||||||
try {
|
try {
|
||||||
// 这里可以调用API获取历史营期数据
|
// 这里可以调用API获取历史营期数据
|
||||||
// const result = await getHistoryCampPeriods();
|
// const result = await getHistoryCampPeriods();
|
||||||
|
|
||||||
// 模拟历史营期数据
|
// 模拟历史营期数据
|
||||||
historyPeriods.value = [
|
historyPeriods.value = [
|
||||||
{
|
{
|
||||||
@@ -534,10 +533,15 @@ const saveCampSettings = async () => {
|
|||||||
isSaving.value = true;
|
isSaving.value = true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 调用API设置营期参数并获取营期安排
|
// 获取用户参数
|
||||||
const result = await CenterCampPeriodAdmin({
|
const params = getRequestParams();
|
||||||
|
|
||||||
|
// 调用changeCampPeriod API设置营期参数
|
||||||
|
const result = await changeCampPeriod({
|
||||||
receipt_data_time: campDays.value.toString(),
|
receipt_data_time: campDays.value.toString(),
|
||||||
rest_days: restDays.value.toString()
|
rest_time: restDays.value.toString(),
|
||||||
|
user_level: "4",
|
||||||
|
user_name: params.user_name || "潘加俊"
|
||||||
});
|
});
|
||||||
|
|
||||||
if (result && result.data) {
|
if (result && result.data) {
|
||||||
@@ -546,6 +550,9 @@ const saveCampSettings = async () => {
|
|||||||
campDays.value = null;
|
campDays.value = null;
|
||||||
restDays.value = null;
|
restDays.value = null;
|
||||||
alert('营期设置成功!');
|
alert('营期设置成功!');
|
||||||
|
|
||||||
|
// 重新获取营期数据以更新日历显示
|
||||||
|
await CenterCampPeriodAdmin();
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('保存营期设置失败:', error);
|
console.error('保存营期设置失败:', error);
|
||||||
@@ -640,29 +647,26 @@ const saveNextCampSettings = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 先结束当前营期
|
// 发送包含四个必需参数的请求
|
||||||
isCampFinished.value = true;
|
const result = await CenterCampPeriodAdmin({
|
||||||
await CenterCampPeriodAdmin({
|
is_camp_finish: "true",
|
||||||
is_camp_finish: "11"
|
camp_start_time: nextCampStartDate.value,
|
||||||
});
|
|
||||||
|
|
||||||
// 设置下一营期
|
|
||||||
await CenterCampPeriodAdmin({
|
|
||||||
receipt_data_start_time: nextCampStartDate.value,
|
|
||||||
receipt_data_time: nextCampDataDays.value.toString(),
|
receipt_data_time: nextCampDataDays.value.toString(),
|
||||||
rest_days: nextCampRestDays.value.toString()
|
rest_time: nextCampRestDays.value.toString()
|
||||||
});
|
});
|
||||||
|
|
||||||
// 关闭弹框并重置数据
|
if (result && result.data) {
|
||||||
showNextCampModal.value = false;
|
// 关闭弹框并重置数据
|
||||||
nextCampStartDate.value = '';
|
showNextCampModal.value = false;
|
||||||
nextCampDataDays.value = null;
|
nextCampStartDate.value = '';
|
||||||
nextCampRestDays.value = null;
|
nextCampDataDays.value = null;
|
||||||
|
nextCampRestDays.value = null;
|
||||||
|
isCampFinished.value = true;
|
||||||
|
|
||||||
alert('营期设置成功!');
|
alert('营期设置成功!');
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('营期设置失败:', error);
|
console.error('营期设置失败:', error);
|
||||||
isCampFinished.value = false;
|
|
||||||
alert('营期设置失败,请重试');
|
alert('营期设置失败,请重试');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -699,11 +703,7 @@ const getRequestParams = () => {
|
|||||||
return params
|
return params
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断是否为路由导航(有路由参数)
|
|
||||||
const isRouteNavigation = computed(() => {
|
|
||||||
const routeUserName = router.currentRoute.value.query.user_name || router.currentRoute.value.params.user_name
|
|
||||||
return !!routeUserName
|
|
||||||
})
|
|
||||||
// 获取和设置当前营期阶段 getCampPeriodAdmin
|
// 获取和设置当前营期阶段 getCampPeriodAdmin
|
||||||
async function CenterCampPeriodAdmin(data = {}) {
|
async function CenterCampPeriodAdmin(data = {}) {
|
||||||
const params = getRequestParams()
|
const params = getRequestParams()
|
||||||
@@ -711,7 +711,15 @@ async function CenterCampPeriodAdmin(data = {}) {
|
|||||||
|
|
||||||
// 根据传入的参数决定传递哪些数据
|
// 根据传入的参数决定传递哪些数据
|
||||||
let Finsh = {}
|
let Finsh = {}
|
||||||
if (data.is_camp_finish !== undefined) {
|
|
||||||
|
// 检查是否传入了新的四个参数格式
|
||||||
|
if (data.is_camp_finish && data.camp_start_time && data.receipt_data_time && data.rest_time) {
|
||||||
|
// 新的四个参数格式:同时设置营期结束和下一营期
|
||||||
|
Finsh.is_camp_finish = data.is_camp_finish
|
||||||
|
Finsh.camp_start_time = data.camp_start_time
|
||||||
|
Finsh.receipt_data_time = data.receipt_data_time
|
||||||
|
Finsh.rest_time = data.rest_time
|
||||||
|
} else if (data.is_camp_finish !== undefined) {
|
||||||
// 结束营期时,只传递is_camp_finish参数
|
// 结束营期时,只传递is_camp_finish参数
|
||||||
Finsh.is_camp_finish = data.is_camp_finish
|
Finsh.is_camp_finish = data.is_camp_finish
|
||||||
} else if (data.receipt_data_start_time && data.receipt_data_time) {
|
} else if (data.receipt_data_start_time && data.receipt_data_time) {
|
||||||
@@ -734,8 +742,6 @@ async function CenterCampPeriodAdmin(data = {}) {
|
|||||||
}
|
}
|
||||||
// 如果没有营期设置数据,Finsh 保持为空对象,用于获取现有数据
|
// 如果没有营期设置数据,Finsh 保持为空对象,用于获取现有数据
|
||||||
}
|
}
|
||||||
console.log('Finsh', Finsh)
|
|
||||||
console.log('params', params)
|
|
||||||
|
|
||||||
// 确保总是传递用户参数,即使是获取数据时
|
// 确保总是传递用户参数,即使是获取数据时
|
||||||
const finalParams = hasParams ? {...params, ...Finsh} : (Object.keys(Finsh).length > 0 ? Finsh : {})
|
const finalParams = hasParams ? {...params, ...Finsh} : (Object.keys(Finsh).length > 0 ? Finsh : {})
|
||||||
|
|||||||
Reference in New Issue
Block a user