diff --git a/frontend/uni-app/src/subpackage/diyComponents/menus.vue b/frontend/uni-app/src/subpackage/diyComponents/menus.vue index eb6e45191..213e48e06 100644 --- a/frontend/uni-app/src/subpackage/diyComponents/menus.vue +++ b/frontend/uni-app/src/subpackage/diyComponents/menus.vue @@ -189,8 +189,10 @@ {{ itemn.info[0].value }} @@ -236,8 +238,10 @@ {{ itemn.info[0].value }} @@ -299,8 +303,10 @@ {{ item.info[0].value }} @@ -347,8 +353,10 @@ {{ item.info[0].value }} @@ -411,8 +419,26 @@ const number = computed(() => { return props.dataConfig.number.tabVal; }); const configData = computed(() => { + const data = props.dataConfig; return { - ...props.dataConfig, + ...data, + // 旧数据迁移:后台预览 setConfig 对缺失的 paddingConfig/marginConfig 直接用 + // defaultConfig 补全(上内边距 10、外边距 0),移动端按同口径回填, + // 避免旧数据下移动端上下间距比后台 diy 展示小 + paddingConfig: data.paddingConfig || { + isAll: true, + val: 0, + min: 0, + max: 100, + valList: [{ val: 10 }, { val: 0 }, { val: 0 }, { val: 0 }], + }, + marginConfig: data.marginConfig || { + isAll: false, + val: 0, + min: 0, + max: 100, + valList: [{ val: 0 }, { val: 0 }, { val: 0 }, { val: 0 }], + }, }; }); const menus = computed(() => { @@ -585,7 +611,11 @@ const gridContainerStyle = computed(() => { rowGap: gridItemStyle.value.itemPaddingTop * 2 + "rpx", }; } else { - return gridColumns.value; + return { + ...gridColumns.value, + // 排列/图文展示换行行距对齐后台预览条目 margin-bottom: 12px + rowGap: 12 * 2 + "rpx", + }; } }); const gridItemContentStyle = computed(() => { @@ -729,7 +759,7 @@ function goMenuPage(url) { display: grid; grid-template-rows: auto; width: 100%; - padding: 0 0 20rpx 0; + padding: 0 0 24rpx 0; } .swiper { z-index: 20;