完成申请延期接口
This commit is contained in:
parent
9246d19806
commit
92ee88a961
17
api/task.js
17
api/task.js
|
|
@ -81,3 +81,20 @@ export const submitTask = ({ id, submitAttaches, submitRemark }) => {
|
|||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 申请任务延期(发起审核)
|
||||
* @param {Object} payload 请求数据
|
||||
* @param {string|number} payload.bstId 任务ID
|
||||
* @param {string} payload.bstType 审核类型
|
||||
* @param {string} payload.createRemark 申请说明
|
||||
* @param {string} payload.data 业务数据JSON字符串
|
||||
* @returns {Promise} 返回接口响应
|
||||
*/
|
||||
export const applyTaskDelay = (payload) => {
|
||||
return uni.$uv.http.post('/bst/verify', payload, {
|
||||
custom: {
|
||||
auth: true
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -111,8 +111,9 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, onMounted } from 'vue';
|
||||
import { ref, computed } from 'vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { applyTaskDelay } from '@/api';
|
||||
|
||||
// 表单数据
|
||||
const formData = ref({
|
||||
|
|
@ -281,6 +282,15 @@ const selectedTime = computed(() => {
|
|||
return formData.value.selectedTime;
|
||||
});
|
||||
|
||||
// 组合延期时间(YYYY-MM-DD HH:mm:ss)
|
||||
const buildExpireDateTime = () => {
|
||||
if (!formData.value.selectedDate) return '';
|
||||
const rawTime = formData.value.selectedTime || '00:00';
|
||||
const hasSeconds = /^\d{2}:\d{2}:\d{2}$/.test(rawTime);
|
||||
const timeSegment = hasSeconds ? rawTime : `${rawTime}:00`;
|
||||
return `${formData.value.selectedDate} ${timeSegment}`;
|
||||
};
|
||||
|
||||
// 打开时间选择器
|
||||
const openTimePicker = () => {
|
||||
const timeParts = formData.value.selectedTime.split(':');
|
||||
|
|
@ -331,7 +341,7 @@ const handleCancel = () => {
|
|||
};
|
||||
|
||||
// 提交申请
|
||||
const handleSubmit = () => {
|
||||
const handleSubmit = async () => {
|
||||
if (!canSubmit.value) {
|
||||
uni.showToast({
|
||||
title: '请填写申请说明',
|
||||
|
|
@ -340,54 +350,58 @@ const handleSubmit = () => {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!taskId.value) {
|
||||
uni.showToast({
|
||||
title: '缺少任务ID',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const expireDateTime = buildExpireDateTime();
|
||||
const payload = {
|
||||
bstId: taskId.value,
|
||||
bstType: 'UPDATE_TASK',
|
||||
createRemark: formData.value.description.trim(),
|
||||
data: JSON.stringify({
|
||||
expireTime: expireDateTime
|
||||
})
|
||||
};
|
||||
|
||||
uni.showLoading({
|
||||
title: '提交中...'
|
||||
});
|
||||
|
||||
// 准备提交数据
|
||||
const submitData = {
|
||||
taskId: taskId.value,
|
||||
description: formData.value.description.trim(),
|
||||
delayDate: formData.value.selectedDate,
|
||||
delayTime: formData.value.selectedTime
|
||||
};
|
||||
try {
|
||||
await applyTaskDelay(payload);
|
||||
|
||||
// TODO: 调用提交接口
|
||||
// 实际使用时,应该调用API接口上传数据
|
||||
// uni.request({
|
||||
// url: '/api/task/delay/apply',
|
||||
// method: 'POST',
|
||||
// data: submitData,
|
||||
// success: (res) => {
|
||||
// // 处理成功响应
|
||||
// },
|
||||
// fail: (err) => {
|
||||
// // 处理错误
|
||||
// }
|
||||
// });
|
||||
|
||||
// 模拟提交请求
|
||||
setTimeout(() => {
|
||||
uni.hideLoading();
|
||||
|
||||
// 将延期申请数据存储到本地,供任务详情页使用
|
||||
uni.setStorageSync('delayApplication', {
|
||||
taskId: taskId.value,
|
||||
description: submitData.description,
|
||||
delayDate: submitData.delayDate,
|
||||
delayTime: submitData.delayTime
|
||||
description: payload.createRemark,
|
||||
delayDate: formData.value.selectedDate,
|
||||
delayTime: formData.value.selectedTime,
|
||||
expireTime: expireDateTime
|
||||
});
|
||||
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '申请提交成功',
|
||||
icon: 'success'
|
||||
});
|
||||
|
||||
// 延迟返回,让用户看到成功提示
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1500);
|
||||
}, 1000);
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
console.error('申请延期失败:', error);
|
||||
const message = error?.data?.message || error?.errMsg || '申请失败,请稍后再试';
|
||||
uni.showToast({
|
||||
title: message,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user