update:报名列表

This commit is contained in:
ltx 2026-05-08 16:24:42 +08:00
parent 9f5e6ddf32
commit e668f2c593
3 changed files with 76 additions and 8 deletions

View File

@ -42,13 +42,12 @@ function normalizeBannerItem(raw) {
}
function canCancelByEventStatus(rawEventStatus) {
return true;
// 仅报名中(Enrolling / 1)允许取消
// if (rawEventStatus === 'Enrolling') return true;
// const n = Number(rawEventStatus);
// if (!Number.isNaN(n)) return n === 1;
// const s = rawEventStatus == null ? '' : String(rawEventStatus).toLowerCase();
// return s === 'enrolling' || s === '1';
if (rawEventStatus === 'Enrolling') return true;
const n = Number(rawEventStatus);
if (!Number.isNaN(n)) return n === 1;
const s = rawEventStatus == null ? '' : String(rawEventStatus).toLowerCase();
return s === 'enrolling' || s === '1';
}
Page({
@ -214,6 +213,8 @@ Page({
},
onCancelRegistrationTap(e) {
const canCancel = e.currentTarget.dataset.cancancel;
if (!canCancel) return;
const registrationId = Number(e.currentTarget.dataset.registrationid);
if (!registrationId) return;
wx.navigateTo({
@ -224,6 +225,31 @@ Page({
onUploadMaterialTap(e) {
const registrationId = Number(e.currentTarget.dataset.registrationid);
if (!registrationId) return;
const now = Date.now();
console.log('时间', e.currentTarget.dataset.matstarttime, e.currentTarget.dataset.matendtime , now);
const matStartTime = e.currentTarget.dataset.matstarttime;
const matEndTime = e.currentTarget.dataset.matendtime;
const rangeText = e.currentTarget.dataset.materialrangetext || '';
if (matStartTime && now < Number(matStartTime)) {
wx.showToast({
title: `素材上传未开始,开始时间:${rangeText.split(' ~ ')[0] || rangeText}`,
icon: 'none',
duration: 2500
});
return;
}
if (matEndTime && now > Number(matEndTime)) {
wx.showToast({
title: `素材上传已截止,截止时间:${rangeText.split(' ~ ')[1] || rangeText}`,
icon: 'none',
duration: 2500
});
return;
}
this.openUploadPicker({ kind: 'material', registrationId });
},
@ -458,6 +484,31 @@ Page({
? item.status
: item.Status;
const eventStatusPill = eventStatusForPill(rawEventStatus);
const matStart =
item.materialUploadStartTime ||
item.MaterialUploadStartTime ||
item.uploadMaterialStartTime ||
item.UploadMaterialStartTime;
const matEnd =
item.materialUploadEndTime ||
item.MaterialUploadEndTime ||
item.uploadMaterialEndTime ||
item.UploadMaterialEndTime;
const matDeadlineText =
item.materialUploadDeadlineText || item.MaterialUploadDeadlineText || '';
const matStartFmt = formatDateTime(matStart);
const matEndFmt = formatDateTime(matEnd);
let materialRangeText = matDeadlineText;
if (!materialRangeText) {
if (matStartFmt && matStartFmt !== '-' && matEndFmt && matEndFmt !== '-') {
materialRangeText = `${matStartFmt} ~ ${matEndFmt}`;
} else if (matStartFmt && matStartFmt !== '-') {
materialRangeText = matStartFmt;
} else if (matEndFmt && matEndFmt !== '-') {
materialRangeText = matEndFmt;
}
}
return {
id: eid,
rowKey: `m-${rid}`,
@ -466,6 +517,9 @@ Page({
coverImage: item.coverImage,
address: '',
isNeedMaterial: !!item.isNeedMaterial,
materialRangeText,
matStartTime: matStart ? new Date(matStart).getTime() : null,
matEndTime: matEnd ? new Date(matEnd).getTime() : null,
eventStatusPill,
eventStatusText: eventStatusText(rawEventStatus) || '已报名',
registrationTimeText: formatDateTime(item.registrationTime),

View File

@ -90,10 +90,13 @@
<view class="meta-line" wx:if="{{item.projectCount != null}}">
已报项目:{{item.projectCount}} 项
</view>
<view class="meta-line" wx:if="{{item.isNeedMaterial && item.materialRangeText}}">
素材上传时间:{{item.materialRangeText}}
</view>
</block>
</view>
<view class="card-actions" wx:if="{{sectionTab === 'registered'}}" catchtap>
<view wx:if="{{item.isNeedMaterial}}" class="action-btn action-btn--ghost" catchtap="onUploadMaterialTap" data-registrationid="{{item.registrationId}}">
<view wx:if="{{item.isNeedMaterial}}" class="action-btn action-btn--ghost" catchtap="onUploadMaterialTap" data-registrationid="{{item.registrationId}}" data-matstarttime="{{item.matStartTime}}" data-matendtime="{{item.matEndTime}}" data-materialrangetext="{{item.materialRangeText}}">
上传素材
</view>
<block wx:if="{{item.paymentStatus === 1}}">
@ -105,7 +108,12 @@
</view>
</block>
<!-- <view class="action-btn action-btn--ghost" catchtap>更改参赛人</view> -->
<view class="action-btn action-btn--danger" wx:if="{{item.canCancel}}" catchtap="onCancelRegistrationTap" data-registrationid="{{item.registrationId}}">
<view
class="action-btn {{item.canCancel ? 'action-btn--danger' : 'action-btn--disabled'}}"
catchtap="onCancelRegistrationTap"
data-registrationid="{{item.registrationId}}"
data-cancancel="{{item.canCancel}}"
>
取消报名
</view>
</view>

View File

@ -326,6 +326,12 @@ page {
background: #fff;
}
.action-btn--disabled {
border-color: #c8c9cc;
color: #c8c9cc;
background: #f7f8fa;
}
.action-btn--paid {
border-color: #00b56d;
background: rgba(0, 181, 109, 0.12);