1. 海报

This commit is contained in:
李琦
2026-08-03 10:18:23 +08:00
parent 3b9520eb0f
commit 807adbc6a4
10 changed files with 1155 additions and 21 deletions

View File

@@ -10,6 +10,13 @@ export const POSTER_TEMPLATES = [
{ value: 'split', label: '左图右文', desc: '竖排书法 + 右侧宴席信息' },
]
/** 手机端布局仅影响窄屏PC 仍按模板本身版式 */
export const MOBILE_LAYOUTS = [
{ value: 'auto', label: '自动布局', desc: '按屏幕宽度自动切换(当前默认)' },
{ value: 'portrait', label: '竖向展示', desc: '手机端强制上下排布' },
{ value: 'landscape', label: '横屏展示', desc: '手机端强制左右分栏' },
]
/** 解析为 1 | 2无法识别返回 0 */
export function resolvePosterSide(input) {
if (input === 1 || input === '1') return 1
@@ -29,8 +36,11 @@ function baseFields(side) {
return {
side: resolvePosterSide(side) || 1,
template: 'classic',
mobileLayout: 'auto',
enabled: true,
heroImg: '',
/** 二维码中心图;空则显示圆圈大囍 */
qrCenterImg: '',
title: '婚礼邀请函',
footer: '—诚挚邀请 ♥ 恭请光临—',
loadingEffect: 'redSeal',
@@ -157,6 +167,9 @@ export function normalizePosterConfig(raw, side = 1) {
const template = POSTER_TEMPLATES.some((t) => t.value === loaded.template)
? loaded.template
: base.template
const mobileLayout = MOBILE_LAYOUTS.some((t) => t.value === loaded.mobileLayout)
? loaded.mobileLayout
: base.mobileLayout
const groomName = loaded.groomName || loaded.sonName || base.groomName
const brideName = loaded.brideName || loaded.daughterInLawName || base.brideName
@@ -166,6 +179,7 @@ export function normalizePosterConfig(raw, side = 1) {
...loaded,
side: s,
template,
mobileLayout,
lines: lines.length ? lines : base.lines,
groomName,
brideName,
@@ -179,6 +193,7 @@ export function normalizePosterConfig(raw, side = 1) {
: base.enterEffect,
invitePath: loaded.invitePath || '/',
inviteButtonText: loaded.inviteButtonText || base.inviteButtonText,
qrCenterImg: loaded.qrCenterImg || '',
verticalSlogan: loaded.verticalSlogan || base.verticalSlogan,
subSlogan1: loaded.subSlogan1 || base.subSlogan1,
subSlogan2: loaded.subSlogan2 || base.subSlogan2,