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