feat: 活动创建页报名审核开关与作品详情页图片布局优化

Made-with: Cursor
This commit is contained in:
zhonghua 2026-04-09 10:16:23 +08:00
parent c1113c937c
commit 937f0650f0
3 changed files with 601 additions and 3 deletions

View File

@ -57,6 +57,14 @@
<a-range-picker v-model:value="timeRange" show-time format="YYYY-MM-DD HH:mm" style="width: 100%" @change="handleTimeRangeChange" /> <a-range-picker v-model:value="timeRange" show-time format="YYYY-MM-DD HH:mm" style="width: 100%" @change="handleTimeRangeChange" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24">
<a-form-item label="报名审核" name="requireAudit">
<a-space align="start" :size="12" wrap>
<a-switch v-model:checked="form.requireAudit" />
<span class="form-hint">开启后公众报名需管理员审核通过后才能提交作品关闭则报名后直接进入已通过状态</span>
</a-space>
</a-form-item>
</a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="可见范围" name="visibility"> <a-form-item label="可见范围" name="visibility">
<a-radio-group v-model:value="form.visibility"> <a-radio-group v-model:value="form.visibility">
@ -213,6 +221,7 @@ const form = reactive<CreateContestForm & { reviewRuleId?: number }>({
startTime: "", endTime: "", content: "", coverUrl: "", posterUrl: "", startTime: "", endTime: "", content: "", coverUrl: "", posterUrl: "",
organizers: "", coOrganizers: "", sponsors: "", organizers: "", coOrganizers: "", sponsors: "",
registerStartTime: "", registerEndTime: "", registerStartTime: "", registerEndTime: "",
requireAudit: false,
submitRule: "once", submitStartTime: "", submitEndTime: "", submitRule: "once", submitStartTime: "", submitEndTime: "",
reviewStartTime: "", reviewEndTime: "", resultPublishTime: "", reviewStartTime: "", reviewEndTime: "", resultPublishTime: "",
}) })
@ -378,6 +387,7 @@ const loadContestData = async () => {
form.sponsors = Array.isArray(c.sponsors) ? c.sponsors.join("、") : c.sponsors || "" form.sponsors = Array.isArray(c.sponsors) ? c.sponsors.join("、") : c.sponsors || ""
form.registerStartTime = c.registerStartTime || "" form.registerStartTime = c.registerStartTime || ""
form.registerEndTime = c.registerEndTime || "" form.registerEndTime = c.registerEndTime || ""
form.requireAudit = c.requireAudit === true
form.submitRule = c.submitRule || "once" form.submitRule = c.submitRule || "once"
form.submitStartTime = c.submitStartTime || "" form.submitStartTime = c.submitStartTime || ""
form.submitEndTime = c.submitEndTime || "" form.submitEndTime = c.submitEndTime || ""
@ -411,6 +421,7 @@ const handleSubmit = async () => {
content: form.content, coverUrl: form.coverUrl, posterUrl: form.posterUrl, content: form.content, coverUrl: form.coverUrl, posterUrl: form.posterUrl,
organizers: form.organizers, coOrganizers: form.coOrganizers, sponsors: form.sponsors, organizers: form.organizers, coOrganizers: form.coOrganizers, sponsors: form.sponsors,
registerStartTime: form.registerStartTime, registerEndTime: form.registerEndTime, registerStartTime: form.registerStartTime, registerEndTime: form.registerEndTime,
requireAudit: form.requireAudit,
submitRule: form.submitRule, submitStartTime: form.submitStartTime, submitEndTime: form.submitEndTime, submitRule: form.submitRule, submitStartTime: form.submitStartTime, submitEndTime: form.submitEndTime,
reviewRuleId: form.reviewRuleId || undefined, reviewRuleId: form.reviewRuleId || undefined,
reviewStartTime: form.reviewStartTime, reviewEndTime: form.reviewEndTime, reviewStartTime: form.reviewStartTime, reviewEndTime: form.reviewEndTime,

View File

@ -223,12 +223,36 @@ $primary: #6366f1;
margin-bottom: 16px; margin-bottom: 16px;
border: 1px solid rgba($primary, 0.06); border: 1px solid rgba($primary, 0.06);
// / max 3:4
.page-display { .page-display {
aspect-ratio: 3/4; display: flex;
align-items: center;
justify-content: center;
width: 100%;
min-height: 160px;
padding: 8px 12px;
box-sizing: border-box;
background: #f8f7fc; background: #f8f7fc;
.page-image { width: 100%; height: 100%; object-fit: contain; } .page-image {
.page-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; color: #d1d5db; font-size: 14px; } display: block;
max-width: 100%;
width: auto;
height: auto;
//
max-height: min(72vh, 85vw);
object-fit: contain;
}
.page-placeholder {
display: flex;
align-items: center;
justify-content: center;
min-height: 200px;
width: 100%;
color: #d1d5db;
font-size: 14px;
}
} }
.page-text { .page-text {

563
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff