feat(M09-B): 完成清洁规则与照片验收闭环

This commit is contained in:
Codex
2026-08-10 21:49:07 +08:00
parent b507e87999
commit bc7cb8fab9
24 changed files with 1650 additions and 81 deletions
+15 -5
View File
@@ -62,9 +62,14 @@ Page({
const taskId = event.currentTarget.dataset.taskId
if (!taskId) return
try {
const result = await wxChooseMedia(9)
const current = this.data.selectedPhotosByTask[taskId] || []
const next = current.concat(result.tempFiles.map((item) => item.tempFilePath)).slice(0, 9)
const maxPhotos = Math.max(1, Math.min(9, Number(event.currentTarget.dataset.maxPhotos || 9)))
if (current.length >= maxPhotos) {
this.setData({ errorMessage: `当前任务最多上传 ${maxPhotos} 张照片` })
return
}
const result = await wxChooseMedia(maxPhotos - current.length)
const next = current.concat(result.tempFiles.map((item) => item.tempFilePath)).slice(0, maxPhotos)
this.setData({ [`selectedPhotosByTask.${taskId}`]: next })
} catch (error) {
this.setData({ errorMessage: error.message || '选择照片失败' })
@@ -74,8 +79,10 @@ Page({
async submitTask(event) {
const taskId = event.currentTarget.dataset.taskId
const localPhotos = this.data.selectedPhotosByTask[taskId] || []
if (localPhotos.length === 0) {
this.setData({ errorMessage: '请先上传至少一张保洁照片' })
const task = this.data.myTasks.find((item) => item.id === taskId)
const minPhotos = Number(task?.minPhotoCount ?? 1)
if (localPhotos.length < minPhotos) {
this.setData({ errorMessage: `请先选择至少 ${minPhotos} 张保洁照片` })
return
}
this.setData({ loading: true, errorMessage: '' })
@@ -125,7 +132,10 @@ function formatTask(task) {
canStart: task.status === 'CLAIMED',
canSubmit: task.status === 'STARTED',
canRework: task.status === 'REJECTED',
canUpload: task.status === 'STARTED' || task.status === 'REJECTED',
canUpload: task.status === 'STARTED',
photoRuleText: task.photoRequired
? `至少 ${task.minPhotoCount} 张,最多 ${task.maxPhotoCount}`
: `照片可选,最多 ${task.maxPhotoCount}`,
}
}