hookehuyr

feat(打卡): 添加补录作业状态支持

在打卡功能中增加补录作业状态标识,修改任务选择逻辑以支持补录作业显示和处理。调整API调用参数以获取补录相关信息,并在界面中区分显示补录任务。
...@@ -24,6 +24,7 @@ export function useCheckin() { ...@@ -24,6 +24,7 @@ export function useCheckin() {
24 const subTaskId = ref('') // 当前选中的任务ID 24 const subTaskId = ref('') // 当前选中的任务ID
25 const selectedTaskText = ref('') // 选中的任务文本 25 const selectedTaskText = ref('') // 选中的任务文本
26 const selectedTaskValue = ref([]) // 选中的任务值(Picker使用) 26 const selectedTaskValue = ref([]) // 选中的任务值(Picker使用)
27 + const isMakeup = ref(false) // 是否为补录作业
27 const maxCount = ref(5) 28 const maxCount = ref(5)
28 29
29 // 打卡类型 30 // 打卡类型
...@@ -292,7 +293,7 @@ export function useCheckin() { ...@@ -292,7 +293,7 @@ export function useCheckin() {
292 note: message.value, 293 note: message.value,
293 file_type: activeType.value, 294 file_type: activeType.value,
294 meta_id: [], 295 meta_id: [],
295 - makeup_time: route.query.is_patch ? route.query.date : '', 296 + makeup_time: isMakeup.value ? route.query.date : '',
296 ...extraData 297 ...extraData
297 } 298 }
298 299
...@@ -423,7 +424,6 @@ export function useCheckin() { ...@@ -423,7 +424,6 @@ export function useCheckin() {
423 } 424 }
424 425
425 return { 426 return {
426 - // 状态
427 uploading, 427 uploading,
428 loading, 428 loading,
429 message, 429 message,
...@@ -432,6 +432,7 @@ export function useCheckin() { ...@@ -432,6 +432,7 @@ export function useCheckin() {
432 subTaskId, 432 subTaskId,
433 selectedTaskText, 433 selectedTaskText,
434 selectedTaskValue, 434 selectedTaskValue,
435 + isMakeup,
435 maxCount, 436 maxCount,
436 canSubmit, 437 canSubmit,
437 438
......
...@@ -208,6 +208,7 @@ const { ...@@ -208,6 +208,7 @@ const {
208 subTaskId, 208 subTaskId,
209 selectedTaskText, 209 selectedTaskText,
210 selectedTaskValue, 210 selectedTaskValue,
211 + isMakeup,
211 maxCount, 212 maxCount,
212 canSubmit, 213 canSubmit,
213 beforeRead, 214 beforeRead,
...@@ -263,6 +264,7 @@ const onConfirmTask = ({ selectedOptions }) => { ...@@ -263,6 +264,7 @@ const onConfirmTask = ({ selectedOptions }) => {
263 const option = selectedOptions[0] 264 const option = selectedOptions[0]
264 selectedTaskText.value = option.text 265 selectedTaskText.value = option.text
265 selectedTaskValue.value = [option.value] 266 selectedTaskValue.value = [option.value]
267 + isMakeup.value = !!option.is_makeup
266 showTaskPicker.value = false 268 showTaskPicker.value = false
267 269
268 // 如果是计数打卡,根据选中的作业ID查询计数对象 270 // 如果是计数打卡,根据选中的作业ID查询计数对象
...@@ -800,11 +802,12 @@ onMounted(async () => { ...@@ -800,11 +802,12 @@ onMounted(async () => {
800 selectedTaskValue.value = [+route.query.subtask_id] 802 selectedTaskValue.value = [+route.query.subtask_id]
801 803
802 // 获取小作业列表 804 // 获取小作业列表
803 - const subtask_list = await getSubtaskListAPI({ task_id: route.query.id }) 805 + const subtask_list = await getSubtaskListAPI({ task_id: route.query.id, date: current_date })
804 if (subtask_list.code) { 806 if (subtask_list.code) {
805 taskOptions.value = [...subtask_list.data.map(item => ({ 807 taskOptions.value = [...subtask_list.data.map(item => ({
806 - text: item.title, 808 + text: item.is_makeup ? '补卡:' + item.title : item.title,
807 - value: item.id 809 + value: item.id,
810 + is_makeup: item.is_makeup, // 是否为补录
808 })) 811 }))
809 ] 812 ]
810 } 813 }
...@@ -814,6 +817,7 @@ onMounted(async () => { ...@@ -814,6 +817,7 @@ onMounted(async () => {
814 const option = taskOptions.value.find(o => o.value === selectedTaskValue.value[0]) 817 const option = taskOptions.value.find(o => o.value === selectedTaskValue.value[0])
815 if (option) { 818 if (option) {
816 selectedTaskText.value = option.text 819 selectedTaskText.value = option.text
820 + isMakeup.value = !!option.is_makeup
817 } 821 }
818 } 822 }
819 823
......