mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2026-09-20 11:52:05 +08:00
refactor(renovation): 重构页面数据处理逻辑
- 将页面数据处理逻辑提取到 applyPageData 方法中,简化 onOk 和 getTemplateItem 方法 - 增强数据解析和错误处理,确保在无数据或解析失败时正确初始化 modelForm - 优化对 topAdvert 类型的处理逻辑,提高代码可读性和维护性
This commit is contained in:
@@ -55,20 +55,7 @@ export default {
|
||||
okText: '使用',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
let pageData = cache;
|
||||
if (pageData) {
|
||||
pageData = JSON.parse(pageData);
|
||||
if (pageData.list[0].type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = pageData.list[0];
|
||||
this.$refs.modelForm.navList = pageData.list[1];
|
||||
pageData.list.splice(0, 2);
|
||||
this.modelForm = pageData;
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
this.applyPageData(cache);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -131,23 +118,41 @@ export default {
|
||||
resetTemplate() {
|
||||
this.getTemplateItem(this.$route.query.id);
|
||||
},
|
||||
applyPageData(raw) {
|
||||
const empty = { list: [] };
|
||||
if (raw == null || raw === "") {
|
||||
this.modelForm = empty;
|
||||
return;
|
||||
}
|
||||
let pageData = raw;
|
||||
if (typeof raw === "string") {
|
||||
try {
|
||||
pageData = JSON.parse(raw);
|
||||
} catch {
|
||||
this.modelForm = empty;
|
||||
return;
|
||||
}
|
||||
}
|
||||
const list = Array.isArray(pageData)
|
||||
? pageData
|
||||
: Array.isArray(pageData?.list)
|
||||
? pageData.list
|
||||
: [];
|
||||
const form = Array.isArray(pageData) ? { list } : { ...pageData, list };
|
||||
if (list[0]?.type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = list[0];
|
||||
if (list[1]) {
|
||||
this.$refs.modelForm.navList = list[1];
|
||||
}
|
||||
this.modelForm = { ...form, list: list.slice(2) };
|
||||
return;
|
||||
}
|
||||
this.modelForm = { ...form, list };
|
||||
},
|
||||
getTemplateItem(id) {
|
||||
API_floor.getHomeData(id).then((res) => {
|
||||
if (res.success) {
|
||||
let pageData = res.result.pageData;
|
||||
if (pageData) {
|
||||
pageData = JSON.parse(pageData);
|
||||
if (pageData.list[0].type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = pageData.list[0];
|
||||
this.$refs.modelForm.navList = pageData.list[1];
|
||||
pageData.list.splice(0, 2);
|
||||
this.modelForm = pageData;
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
this.applyPageData(res.result?.pageData);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -55,20 +55,7 @@ export default {
|
||||
okText: '使用',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
let pageData = cache;
|
||||
if (pageData) {
|
||||
pageData = JSON.parse(pageData);
|
||||
if (pageData.list[0].type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = pageData.list[0];
|
||||
this.$refs.modelForm.navList = pageData.list[1];
|
||||
pageData.list.splice(0, 2);
|
||||
this.modelForm = pageData;
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
this.applyPageData(cache);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -130,23 +117,41 @@ export default {
|
||||
resetTemplate() {
|
||||
this.getTemplateItem(this.$route.query.id);
|
||||
},
|
||||
applyPageData(raw) {
|
||||
const empty = { list: [] };
|
||||
if (raw == null || raw === "") {
|
||||
this.modelForm = empty;
|
||||
return;
|
||||
}
|
||||
let pageData = raw;
|
||||
if (typeof raw === "string") {
|
||||
try {
|
||||
pageData = JSON.parse(raw);
|
||||
} catch {
|
||||
this.modelForm = empty;
|
||||
return;
|
||||
}
|
||||
}
|
||||
const list = Array.isArray(pageData)
|
||||
? pageData
|
||||
: Array.isArray(pageData?.list)
|
||||
? pageData.list
|
||||
: [];
|
||||
const form = Array.isArray(pageData) ? { list } : { ...pageData, list };
|
||||
if (list[0]?.type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = list[0];
|
||||
if (list[1]) {
|
||||
this.$refs.modelForm.navList = list[1];
|
||||
}
|
||||
this.modelForm = { ...form, list: list.slice(2) };
|
||||
return;
|
||||
}
|
||||
this.modelForm = { ...form, list };
|
||||
},
|
||||
getTemplateItem(id) {
|
||||
API_floor.getHomeData(id).then((res) => {
|
||||
if (res.success) {
|
||||
let pageData = res.result.pageData;
|
||||
if (pageData) {
|
||||
pageData = JSON.parse(pageData);
|
||||
if (pageData.list[0].type === "topAdvert") {
|
||||
this.$refs.modelForm.topAdvert = pageData.list[0];
|
||||
this.$refs.modelForm.navList = pageData.list[1];
|
||||
pageData.list.splice(0, 2);
|
||||
this.modelForm = pageData;
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
} else {
|
||||
this.modelForm = { list: [] };
|
||||
}
|
||||
this.applyPageData(res.result?.pageData);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user