feat: 活动创建页报名审核开关与作品详情页图片布局优化
Made-with: Cursor
This commit is contained in:
parent
c1113c937c
commit
937f0650f0
@ -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,
|
||||||
|
|||||||
@ -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
563
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user