1. 海报
This commit is contained in:
@@ -438,6 +438,16 @@
|
||||
{{ POSTER_TEMPLATES.find(t => t.value === posterCfg.template)?.desc }}
|
||||
</div>
|
||||
</a-form-item>
|
||||
<a-form-item label="手机端布局">
|
||||
<a-radio-group v-model:value="posterCfg.mobileLayout">
|
||||
<a-radio-button v-for="t in MOBILE_LAYOUTS" :key="t.value" :value="t.value">
|
||||
{{ t.label }}
|
||||
</a-radio-button>
|
||||
</a-radio-group>
|
||||
<div class="text-[11px] text-[#8A8680] mt-1">
|
||||
{{ MOBILE_LAYOUTS.find(t => t.value === posterCfg.mobileLayout)?.desc }}(仅窄屏生效,PC 不受影响)
|
||||
</div>
|
||||
</a-form-item>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<a-form-item label="启用海报页">
|
||||
<a-switch v-model:checked="posterCfg.enabled" />
|
||||
@@ -467,6 +477,15 @@
|
||||
<a-form-item :label="posterCfg.template === 'split' ? '左侧照片' : '顶部照片'">
|
||||
<image-field v-model="posterCfg.heroImg" label="海报图片" @pick="setPosterHero" :uploading="uploading" />
|
||||
</a-form-item>
|
||||
<a-form-item label="二维码中心图">
|
||||
<image-field
|
||||
v-model="posterCfg.qrCenterImg"
|
||||
label="中心图(可选)"
|
||||
@pick="setPosterQrCenter"
|
||||
:uploading="uploading"
|
||||
/>
|
||||
<div class="text-xs text-stone-500 mt-1">不配置时,二维码中心为圆圈大「囍」字</div>
|
||||
</a-form-item>
|
||||
|
||||
<!-- classic 字段 -->
|
||||
<template v-if="posterCfg.template === 'classic'">
|
||||
@@ -890,7 +909,7 @@ import { resolveDanmakuSwatch } from '@/utils/danmakuColors'
|
||||
import { getSlotResizeSpecs, resizeSlotToFile, probeResizedMeta, metaHasFileSize } from '@/composables/resizeImage'
|
||||
import {
|
||||
defaultPosterBundle, normalizePosterBundle, normalizePosterConfig,
|
||||
LOADING_EFFECTS, ENTER_EFFECTS, POSTER_SIDES, POSTER_TEMPLATES, sideKey,
|
||||
LOADING_EFFECTS, ENTER_EFFECTS, POSTER_SIDES, POSTER_TEMPLATES, MOBILE_LAYOUTS, sideKey,
|
||||
} from '@/composables/posterDefaults'
|
||||
|
||||
echarts.use([PieChart, TooltipComponent, LegendComponent, CanvasRenderer])
|
||||
@@ -969,6 +988,11 @@ function setPosterHero(url) {
|
||||
if (!posterBundle[side]) posterBundle[side] = normalizePosterConfig(null, side)
|
||||
posterBundle[side].heroImg = url
|
||||
}
|
||||
function setPosterQrCenter(url) {
|
||||
const side = sideKey(posterSideTab.value)
|
||||
if (!posterBundle[side]) posterBundle[side] = normalizePosterConfig(null, side)
|
||||
posterBundle[side].qrCenterImg = url
|
||||
}
|
||||
const currentPhotoIndex = computed(() => Math.min(Number(activePhotoTab.value) || 0, Math.max(cfg.photoPages.length - 1, 0)))
|
||||
const isConfigTab = computed(() => CONFIG_SECTIONS.includes(activeTab.value))
|
||||
const visitPagination = computed(() => ({
|
||||
|
||||
Reference in New Issue
Block a user