feat(card): 增加名片区块配置项,支持逐向内边距和独立成块样式
This commit is contained in:
@@ -282,7 +282,17 @@ const DEFAULT_BLOCK_ORDER = 'bio,acts,rows,social,qr,meta';
|
||||
*/
|
||||
function blockCustomSpacing(c, prefix) {
|
||||
if (!flagOn(c[prefix + 'SpacingCustom'], false)) return '';
|
||||
const side = (k) => px2rpx(num(c[prefix + k], 0));
|
||||
// 2.24 直配兜底: 逐向开关已开, 但四向值全为 0 且未被商家手动改过(touched=0)
|
||||
// → 说明是「后端直写配置」而非编辑器接管(编辑器开逐向时会先把统一内边距铺进四向)
|
||||
// → 此时逐向内边距回落统一内边距, 避免内边距被压成 0(独立成块看着「没内边距」)
|
||||
const SIDES = ['Top', 'Right', 'Bottom', 'Left'];
|
||||
const touched = num(c[prefix + 'SpacingTouched'], 0) === 1;
|
||||
let padBase = 0;
|
||||
if (!touched) {
|
||||
const anySide = SIDES.some(s => num(c[prefix + 'Padding' + s], 0) !== 0 || num(c[prefix + 'Margin' + s], 0) !== 0);
|
||||
if (!anySide) padBase = num(c[prefix + 'BlockPad'], 0);
|
||||
}
|
||||
const side = (k) => px2rpx(num(c[prefix + k], 0)) + (k.indexOf('Padding') === 0 ? px2rpx(padBase) : 0);
|
||||
const m = [side('MarginTop'), side('MarginRight'), side('MarginBottom'), side('MarginLeft')];
|
||||
const p = [side('PaddingTop'), side('PaddingRight'), side('PaddingBottom'), side('PaddingLeft')];
|
||||
return 'margin: ' + m.join('rpx ') + 'rpx; padding: ' + p.join('rpx ') + 'rpx;';
|
||||
|
||||
@@ -195,6 +195,65 @@ export default {
|
||||
qrPaddingRight: v.qrPaddingRight,
|
||||
qrPaddingBottom: v.qrPaddingBottom,
|
||||
qrPaddingLeft: v.qrPaddingLeft,
|
||||
// 2.20.4 逐向「已被手动改过」标记(C 端只透传, 渲染不消费; 保持与 config 同源)
|
||||
rowsSpacingTouched: v.rowsSpacingTouched,
|
||||
actsSpacingTouched: v.actsSpacingTouched,
|
||||
qrSpacingTouched: v.qrSpacingTouched,
|
||||
// 2.22 简介区块(开关/标题/行数/独立块/逐向)
|
||||
showBio: v.showBio,
|
||||
bioTitleShow: v.bioTitleShow,
|
||||
bioTitle: v.bioTitle,
|
||||
bioMaxLines: v.bioMaxLines,
|
||||
bioSize: v.bioSize,
|
||||
bioColor: v.bioColor,
|
||||
bioLineHeight: v.bioLineHeight,
|
||||
bioBlockBg: v.bioBlockBg,
|
||||
bioBlockRadius: v.bioBlockRadius,
|
||||
bioBlockPad: v.bioBlockPad,
|
||||
bioSpacingCustom: v.bioSpacingCustom,
|
||||
bioMarginTop: v.bioMarginTop,
|
||||
bioMarginRight: v.bioMarginRight,
|
||||
bioMarginBottom: v.bioMarginBottom,
|
||||
bioMarginLeft: v.bioMarginLeft,
|
||||
bioPaddingTop: v.bioPaddingTop,
|
||||
bioPaddingRight: v.bioPaddingRight,
|
||||
bioPaddingBottom: v.bioPaddingBottom,
|
||||
bioPaddingLeft: v.bioPaddingLeft,
|
||||
bioSpacingTouched: v.bioSpacingTouched,
|
||||
// 2.22 社交媒体区块(开关/独立块/逐向)
|
||||
showSocial: v.showSocial,
|
||||
socialBlockBg: v.socialBlockBg,
|
||||
socialBlockRadius: v.socialBlockRadius,
|
||||
socialBlockPad: v.socialBlockPad,
|
||||
socialSpacingCustom: v.socialSpacingCustom,
|
||||
socialMarginTop: v.socialMarginTop,
|
||||
socialMarginRight: v.socialMarginRight,
|
||||
socialMarginBottom: v.socialMarginBottom,
|
||||
socialMarginLeft: v.socialMarginLeft,
|
||||
socialPaddingTop: v.socialPaddingTop,
|
||||
socialPaddingRight: v.socialPaddingRight,
|
||||
socialPaddingBottom: v.socialPaddingBottom,
|
||||
socialPaddingLeft: v.socialPaddingLeft,
|
||||
socialSpacingTouched: v.socialSpacingTouched,
|
||||
// 2.22 名片标签 / 来源标注
|
||||
showTags: v.showTags,
|
||||
showSource: v.showSource,
|
||||
// 2.23 区块顺序(六个可独立成块模块任意排序)
|
||||
blockOrder: v.blockOrder,
|
||||
// 2.24 标签与来源(meta)区块独立成块 + 逐向
|
||||
metaBlockBg: v.metaBlockBg,
|
||||
metaBlockRadius: v.metaBlockRadius,
|
||||
metaBlockPad: v.metaBlockPad,
|
||||
metaSpacingCustom: v.metaSpacingCustom,
|
||||
metaMarginTop: v.metaMarginTop,
|
||||
metaMarginRight: v.metaMarginRight,
|
||||
metaMarginBottom: v.metaMarginBottom,
|
||||
metaMarginLeft: v.metaMarginLeft,
|
||||
metaPaddingTop: v.metaPaddingTop,
|
||||
metaPaddingRight: v.metaPaddingRight,
|
||||
metaPaddingBottom: v.metaPaddingBottom,
|
||||
metaPaddingLeft: v.metaPaddingLeft,
|
||||
metaSpacingTouched: v.metaSpacingTouched,
|
||||
};
|
||||
},
|
||||
boxStyle() {
|
||||
|
||||
@@ -157,6 +157,65 @@ export default {
|
||||
qrPaddingRight: v.qrPaddingRight,
|
||||
qrPaddingBottom: v.qrPaddingBottom,
|
||||
qrPaddingLeft: v.qrPaddingLeft,
|
||||
// 2.20.4 逐向「已被手动改过」标记(C 端只透传, 渲染不消费; 保持与 config 同源)
|
||||
rowsSpacingTouched: v.rowsSpacingTouched,
|
||||
actsSpacingTouched: v.actsSpacingTouched,
|
||||
qrSpacingTouched: v.qrSpacingTouched,
|
||||
// 2.22 简介区块(开关/标题/行数/独立块/逐向)
|
||||
showBio: v.showBio,
|
||||
bioTitleShow: v.bioTitleShow,
|
||||
bioTitle: v.bioTitle,
|
||||
bioMaxLines: v.bioMaxLines,
|
||||
bioSize: v.bioSize,
|
||||
bioColor: v.bioColor,
|
||||
bioLineHeight: v.bioLineHeight,
|
||||
bioBlockBg: v.bioBlockBg,
|
||||
bioBlockRadius: v.bioBlockRadius,
|
||||
bioBlockPad: v.bioBlockPad,
|
||||
bioSpacingCustom: v.bioSpacingCustom,
|
||||
bioMarginTop: v.bioMarginTop,
|
||||
bioMarginRight: v.bioMarginRight,
|
||||
bioMarginBottom: v.bioMarginBottom,
|
||||
bioMarginLeft: v.bioMarginLeft,
|
||||
bioPaddingTop: v.bioPaddingTop,
|
||||
bioPaddingRight: v.bioPaddingRight,
|
||||
bioPaddingBottom: v.bioPaddingBottom,
|
||||
bioPaddingLeft: v.bioPaddingLeft,
|
||||
bioSpacingTouched: v.bioSpacingTouched,
|
||||
// 2.22 社交媒体区块(开关/独立块/逐向)
|
||||
showSocial: v.showSocial,
|
||||
socialBlockBg: v.socialBlockBg,
|
||||
socialBlockRadius: v.socialBlockRadius,
|
||||
socialBlockPad: v.socialBlockPad,
|
||||
socialSpacingCustom: v.socialSpacingCustom,
|
||||
socialMarginTop: v.socialMarginTop,
|
||||
socialMarginRight: v.socialMarginRight,
|
||||
socialMarginBottom: v.socialMarginBottom,
|
||||
socialMarginLeft: v.socialMarginLeft,
|
||||
socialPaddingTop: v.socialPaddingTop,
|
||||
socialPaddingRight: v.socialPaddingRight,
|
||||
socialPaddingBottom: v.socialPaddingBottom,
|
||||
socialPaddingLeft: v.socialPaddingLeft,
|
||||
socialSpacingTouched: v.socialSpacingTouched,
|
||||
// 2.22 名片标签 / 来源标注
|
||||
showTags: v.showTags,
|
||||
showSource: v.showSource,
|
||||
// 2.23 区块顺序(六个可独立成块模块任意排序)
|
||||
blockOrder: v.blockOrder,
|
||||
// 2.24 标签与来源(meta)区块独立成块 + 逐向
|
||||
metaBlockBg: v.metaBlockBg,
|
||||
metaBlockRadius: v.metaBlockRadius,
|
||||
metaBlockPad: v.metaBlockPad,
|
||||
metaSpacingCustom: v.metaSpacingCustom,
|
||||
metaMarginTop: v.metaMarginTop,
|
||||
metaMarginRight: v.metaMarginRight,
|
||||
metaMarginBottom: v.metaMarginBottom,
|
||||
metaMarginLeft: v.metaMarginLeft,
|
||||
metaPaddingTop: v.metaPaddingTop,
|
||||
metaPaddingRight: v.metaPaddingRight,
|
||||
metaPaddingBottom: v.metaPaddingBottom,
|
||||
metaPaddingLeft: v.metaPaddingLeft,
|
||||
metaSpacingTouched: v.metaSpacingTouched,
|
||||
};
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user