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) {
|
function blockCustomSpacing(c, prefix) {
|
||||||
if (!flagOn(c[prefix + 'SpacingCustom'], false)) return '';
|
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 m = [side('MarginTop'), side('MarginRight'), side('MarginBottom'), side('MarginLeft')];
|
||||||
const p = [side('PaddingTop'), side('PaddingRight'), side('PaddingBottom'), side('PaddingLeft')];
|
const p = [side('PaddingTop'), side('PaddingRight'), side('PaddingBottom'), side('PaddingLeft')];
|
||||||
return 'margin: ' + m.join('rpx ') + 'rpx; padding: ' + p.join('rpx ') + 'rpx;';
|
return 'margin: ' + m.join('rpx ') + 'rpx; padding: ' + p.join('rpx ') + 'rpx;';
|
||||||
|
|||||||
@@ -195,6 +195,65 @@ export default {
|
|||||||
qrPaddingRight: v.qrPaddingRight,
|
qrPaddingRight: v.qrPaddingRight,
|
||||||
qrPaddingBottom: v.qrPaddingBottom,
|
qrPaddingBottom: v.qrPaddingBottom,
|
||||||
qrPaddingLeft: v.qrPaddingLeft,
|
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() {
|
boxStyle() {
|
||||||
|
|||||||
@@ -157,6 +157,65 @@ export default {
|
|||||||
qrPaddingRight: v.qrPaddingRight,
|
qrPaddingRight: v.qrPaddingRight,
|
||||||
qrPaddingBottom: v.qrPaddingBottom,
|
qrPaddingBottom: v.qrPaddingBottom,
|
||||||
qrPaddingLeft: v.qrPaddingLeft,
|
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