From d0ad4e56dd8ff925333836fb7657084d85290bf0 Mon Sep 17 00:00:00 2001 From: lbw_9527443 <780139497@qq.com> Date: Fri, 29 Aug 2025 15:07:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=90=A5=E6=9C=9F=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9=E8=90=A5=E6=9C=9FAPI?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E8=90=A5=E6=9C=9F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增changeCampPeriod API接口用于修改营期参数 - 重构CenterCampPeriodAdmin方法支持新的参数格式 - 优化saveCampSettings和saveNextCampSettings方法调用逻辑 --- my-vue-app/src/api/secondTop.js | 5 +- .../views/secondTop/components/Calendar.vue | 70 ++++++++++--------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/my-vue-app/src/api/secondTop.js b/my-vue-app/src/api/secondTop.js index ef54254..126e845 100644 --- a/my-vue-app/src/api/secondTop.js +++ b/my-vue-app/src/api/secondTop.js @@ -68,7 +68,10 @@ export const getCampPeriodAdmin = (params) => { export const getExcellentRecordFile = (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) +} diff --git a/my-vue-app/src/views/secondTop/components/Calendar.vue b/my-vue-app/src/views/secondTop/components/Calendar.vue index 3524edb..db74070 100644 --- a/my-vue-app/src/views/secondTop/components/Calendar.vue +++ b/my-vue-app/src/views/secondTop/components/Calendar.vue @@ -258,7 +258,7 @@ import { ref, computed, onMounted } from 'vue'; import { useRouter } from 'vue-router'; import { useUserStore } from '@/stores/user'; -import {getCampPeriodAdmin} from '@/api/secondTop.js' +import {getCampPeriodAdmin, changeCampPeriod} from '@/api/secondTop.js' // 响应式数据 const currentYear = ref(new Date().getFullYear()); @@ -484,7 +484,6 @@ const loadHistoryPeriods = async () => { try { // 这里可以调用API获取历史营期数据 // const result = await getHistoryCampPeriods(); - // 模拟历史营期数据 historyPeriods.value = [ { @@ -534,10 +533,15 @@ const saveCampSettings = async () => { isSaving.value = true; try { - // 调用API设置营期参数并获取营期安排 - const result = await CenterCampPeriodAdmin({ + // 获取用户参数 + const params = getRequestParams(); + + // 调用changeCampPeriod API设置营期参数 + const result = await changeCampPeriod({ 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) { @@ -546,6 +550,9 @@ const saveCampSettings = async () => { campDays.value = null; restDays.value = null; alert('营期设置成功!'); + + // 重新获取营期数据以更新日历显示 + await CenterCampPeriodAdmin(); } } catch (error) { console.error('保存营期设置失败:', error); @@ -640,29 +647,26 @@ const saveNextCampSettings = async () => { } try { - // 先结束当前营期 - isCampFinished.value = true; - await CenterCampPeriodAdmin({ - is_camp_finish: "11" - }); - - // 设置下一营期 - await CenterCampPeriodAdmin({ - receipt_data_start_time: nextCampStartDate.value, + // 发送包含四个必需参数的请求 + const result = await CenterCampPeriodAdmin({ + is_camp_finish: "true", + camp_start_time: nextCampStartDate.value, receipt_data_time: nextCampDataDays.value.toString(), - rest_days: nextCampRestDays.value.toString() + rest_time: nextCampRestDays.value.toString() }); - // 关闭弹框并重置数据 - showNextCampModal.value = false; - nextCampStartDate.value = ''; - nextCampDataDays.value = null; - nextCampRestDays.value = null; - - alert('营期设置成功!'); + if (result && result.data) { + // 关闭弹框并重置数据 + showNextCampModal.value = false; + nextCampStartDate.value = ''; + nextCampDataDays.value = null; + nextCampRestDays.value = null; + isCampFinished.value = true; + + alert('营期设置成功!'); + } } catch (error) { console.error('营期设置失败:', error); - isCampFinished.value = false; alert('营期设置失败,请重试'); } }; @@ -699,11 +703,7 @@ const getRequestParams = () => { return params } -// 判断是否为路由导航(有路由参数) -const isRouteNavigation = computed(() => { - const routeUserName = router.currentRoute.value.query.user_name || router.currentRoute.value.params.user_name - return !!routeUserName -}) + // 获取和设置当前营期阶段 getCampPeriodAdmin async function CenterCampPeriodAdmin(data = {}) { const params = getRequestParams() @@ -711,7 +711,15 @@ async function CenterCampPeriodAdmin(data = {}) { // 根据传入的参数决定传递哪些数据 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参数 Finsh.is_camp_finish = data.is_camp_finish } else if (data.receipt_data_start_time && data.receipt_data_time) { @@ -734,9 +742,7 @@ async function CenterCampPeriodAdmin(data = {}) { } // 如果没有营期设置数据,Finsh 保持为空对象,用于获取现有数据 } - console.log('Finsh', Finsh) - console.log('params', params) - + // 确保总是传递用户参数,即使是获取数据时 const finalParams = hasParams ? {...params, ...Finsh} : (Object.keys(Finsh).length > 0 ? Finsh : {}) const res = await getCampPeriodAdmin(finalParams)