From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
wx/pages/judge/review.js | 173 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 117 insertions(+), 56 deletions(-)
diff --git a/wx/pages/judge/review.js b/wx/pages/judge/review.js
index 27afd37..112e080 100644
--- a/wx/pages/judge/review.js
+++ b/wx/pages/judge/review.js
@@ -117,10 +117,8 @@
items {
id
name
- description
maxScore
- weight
- sortOrder
+ orderNo
}
}
}
@@ -151,11 +149,31 @@
videos: detail.submissionFiles ? detail.submissionFiles
.filter(file => file.mediaType === 2)
.map(file => file.fullUrl || file.url) : [],
+ mediaList: (detail.submissionFiles || []).map(file => {
+ const mt = file.mediaType
+ let typeStr = ''
+ if (mt === 1 || mt === 'image' || (typeof mt === 'string' && mt.startsWith('image'))) typeStr = 'image'
+ else if (mt === 2 || mt === 'video' || (typeof mt === 'string' && mt.startsWith('video'))) typeStr = 'video'
+ else if ((file.fileExt || '').toLowerCase().includes('pdf')) typeStr = 'pdf'
+ else if ((file.fileExt || '').toLowerCase().includes('doc')) typeStr = 'word'
+ else typeStr = 'file'
+ return {
+ id: file.id,
+ name: file.name,
+ size: file.fileSize,
+ mediaType: typeStr,
+ thumbUrl: file.fullThumbUrl || file.thumbUrl || file.fullUrl || file.url,
+ url: file.fullUrl || file.url
+ }
+ }),
participant: {
id: detail.playerInfo.id,
name: detail.playerInfo.name,
- school: detail.regionInfo ? detail.regionInfo.name : '',
- major: detail.playerInfo.education || '',
+ phone: detail.playerInfo.phone || '',
+ gender: this.getGenderText(detail.playerInfo.gender),
+ birthday: detail.playerInfo.birthday || '',
+ region: detail.regionInfo ? detail.regionInfo.name : '',
+ education: detail.playerInfo.education || '',
avatar: detail.playerInfo.userInfo?.avatarUrl || '/images/default-avatar.svg'
},
status: detail.state === 1 ? 'APPROVED' : detail.state === 2 ? 'REJECTED' : 'PENDING'
@@ -215,14 +233,14 @@
currentJudgeRating(activityPlayerId: $activityPlayerId) {
id
totalScore
- comment
+ remark
status
ratedAt
items {
ratingItemId
ratingItemName
score
- maxScore
+ weightedScore
}
}
}
@@ -247,7 +265,7 @@
this.setData({
scores,
totalScore,
- comment: rating.comment || '',
+ comment: rating.remark || '',
existingReview: rating,
reviewStatus: rating.status || 'COMPLETED'
})
@@ -280,7 +298,7 @@
criteria.forEach(criterion => {
const score = scores[criterion.id] || 0
- totalScore += score * (criterion.weight || 1)
+ totalScore += score
})
this.setData({ totalScore })
@@ -293,20 +311,39 @@
})
},
- // 濯掍綋鐐瑰嚮
+ // 濯掍綋鐐瑰嚮锛堥�氳繃 index 瀹氫綅 mediaList 椤癸級
onMediaTap(e) {
- const { url, type } = e.currentTarget.dataset
-
- if (type === 'image') {
+ const { index } = e.currentTarget.dataset
+ const item = this.data.submission?.mediaList?.[index]
+ if (!item) return
+ if (item.mediaType === 'image') {
+ const imgs = (this.data.submission.mediaList || [])
+ .filter(it => it.mediaType === 'image')
+ .map(it => it.url)
wx.previewImage({
- current: url,
- urls: this.data.submission.images || []
+ current: item.url,
+ urls: imgs.length ? imgs : [item.url]
})
- } else if (type === 'video') {
+ } else if (item.mediaType === 'video') {
this.setData({
showMediaPreview: true,
- currentMedia: url,
+ currentMedia: item.url,
mediaType: 'video'
+ })
+ } else {
+ wx.downloadFile({
+ url: item.url,
+ success: (res) => {
+ if (res.statusCode === 200) {
+ wx.openDocument({
+ filePath: res.tempFilePath,
+ showMenu: true
+ })
+ } else {
+ wx.showToast({ title: '棰勮澶辫触', icon: 'none' })
+ }
+ },
+ fail: () => wx.showToast({ title: '涓嬭浇澶辫触', icon: 'none' })
})
}
},
@@ -317,6 +354,44 @@
showMediaPreview: false,
currentMedia: null
})
+ },
+
+ // 鐐瑰嚮棰勮鎸夐挳锛氬浘鐗�/瑙嗛鐢� wx.previewMedia锛屾枃妗g敤 openDocument
+ onPreviewTap(e) {
+ const { index } = e.currentTarget.dataset
+ const list = this.data.submission?.mediaList || []
+ const item = list[index]
+ if (!item) return
+
+ if (item.mediaType === 'image' || item.mediaType === 'video') {
+ const mediaList = list
+ .filter(m => m.mediaType === 'image' || m.mediaType === 'video')
+ .map(m => ({
+ url: m.url,
+ type: m.mediaType === 'video' ? 'video' : 'image',
+ poster: m.thumbUrl || m.url
+ }))
+ const current = Math.max(0, mediaList.findIndex(m => m.url === item.url))
+ wx.previewMedia({
+ sources: mediaList,
+ current
+ })
+ } else {
+ wx.downloadFile({
+ url: item.url,
+ success: (res) => {
+ if (res.statusCode === 200) {
+ wx.openDocument({
+ filePath: res.tempFilePath,
+ showMenu: true
+ })
+ } else {
+ wx.showToast({ title: '棰勮澶辫触', icon: 'none' })
+ }
+ },
+ fail: () => wx.showToast({ title: '涓嬭浇澶辫触', icon: 'none' })
+ })
+ }
},
// 涓嬭浇鏂囦欢
@@ -422,15 +497,7 @@
})
return false
}
-
- if (comment.trim().length < 10) {
- wx.showToast({
- title: '璇勫鎰忚鑷冲皯10涓瓧绗�',
- icon: 'error'
- })
- return false
- }
-
+
return true
},
@@ -443,8 +510,8 @@
// 鏋勫缓璇勫垎椤规暟缁�
const ratings = criteria.map(criterion => ({
- itemId: criterion.id,
- score: scores[criterion.id] || 0
+ itemId: parseInt(criterion.id),
+ score: parseFloat(scores[criterion.id] || 0)
}))
const mutation = `
@@ -454,8 +521,8 @@
`
const input = {
- activityPlayerId,
- stageId: activity.stageId,
+ activityPlayerId: parseInt(activityPlayerId),
+ stageId: parseInt(activity.id),
ratings,
comment: comment.trim()
}
@@ -521,7 +588,7 @@
const input = {
activityPlayerId,
- stageId: activity.stageId,
+ stageId: activity.id,
ratings,
comment: comment.trim()
}
@@ -559,37 +626,24 @@
}
},
- // 鏌ョ湅鍏朵粬璇勫
+ // 鏌ョ湅鍏朵粬璇勫 - 宸查殣钘忓姛鑳�
+ /*
onViewOtherReviews() {
wx.navigateTo({
url: `/pages/judge/reviews?activityPlayerId=${this.data.activityPlayerId}`
})
},
+ */
- // 鑱旂郴鍙傝禌鑰�
+ // 鑱旂郴鍙傝禌鑰咃細鐩存帴鎷ㄦ墦鐢佃瘽
onContactParticipant() {
- const { submission } = this.data
-
- if (submission.participant) {
- wx.showActionSheet({
- itemList: ['鍙戦�佹秷鎭�', '鏌ョ湅璇︽儏'],
- success: (res) => {
- switch (res.tapIndex) {
- case 0:
- // 鍙戦�佹秷鎭姛鑳�
- wx.navigateTo({
- url: `/pages/chat/chat?userId=${submission.participant.id}`
- })
- break
- case 1:
- // 鏌ョ湅鐢ㄦ埛璇︽儏
- wx.navigateTo({
- url: `/pages/user/profile?userId=${submission.participant.id}`
- })
- break
- }
- }
- })
+ const phone =
+ this.data.submission?.participant?.phone ||
+ this.data.submission?.participant?.userInfo?.phone
+ if (phone) {
+ wx.makePhoneCall({ phoneNumber: String(phone) })
+ } else {
+ wx.showToast({ title: '鏃犺仈绯荤數璇�', icon: 'none' })
}
},
@@ -610,6 +664,13 @@
}
},
+ // 鎬у埆杞崲鍑芥暟
+ getGenderText(gender) {
+ if (gender === 0) return '鐢�'
+ if (gender === 1) return '濂�'
+ return '鏈~鍐�'
+ },
+
// 鏍煎紡鍖栨棩鏈�
formatDate(dateString) {
return formatDate(dateString, 'YYYY-MM-DD HH:mm')
@@ -618,7 +679,7 @@
// 鍒嗕韩椤甸潰
onShareAppMessage() {
return {
- title: '钃夋槗鍒� - 璇勫浣滃搧',
+ title: '钃塭鍒� - 璇勫浣滃搧',
path: '/pages/index/index'
}
}
--
Gitblit v1.8.0