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;