fix
This commit is contained in:
parent
ea27006085
commit
efa0b78442
|
|
@ -4,6 +4,7 @@ export const codeLoaded = new Set<string>();
|
||||||
const codeMap = {
|
const codeMap = {
|
||||||
page: {} as Record<string, string[]>,
|
page: {} as Record<string, string[]>,
|
||||||
compGroup: {} as Record<string, string[]>,
|
compGroup: {} as Record<string, string[]>,
|
||||||
|
comp: {} as Record<string, string>,
|
||||||
};
|
};
|
||||||
export const vLoadCode = async (v: VG, forceLoad?: boolean) => {
|
export const vLoadCode = async (v: VG, forceLoad?: boolean) => {
|
||||||
if (forceLoad) {
|
if (forceLoad) {
|
||||||
|
|
@ -17,38 +18,45 @@ export const vLoadCode = async (v: VG, forceLoad?: boolean) => {
|
||||||
|
|
||||||
const { site_id, page_id } = v.current;
|
const { site_id, page_id } = v.current;
|
||||||
const w = window as any;
|
const w = window as any;
|
||||||
const promises = [
|
const promises = [];
|
||||||
new Promise<void>(async (resolve) => {
|
|
||||||
if (!codeLoaded.has(site_id)) {
|
|
||||||
codeLoaded.add(site_id);
|
|
||||||
const module = await importCJS(`/nova-load/site/${site_id}/index.js`);
|
|
||||||
for (const [k, v] of Object.entries(module)) {
|
|
||||||
w[k] = v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
}),
|
|
||||||
];
|
|
||||||
const code_ids: string[] = [];
|
|
||||||
const code = await db.code.findMany({
|
|
||||||
where: { id_site: site_id, name: { notIn: ["site", "SSR"] } },
|
|
||||||
select: { code_assign: true },
|
|
||||||
});
|
|
||||||
|
|
||||||
codeMap.compGroup = {};
|
if (!codeLoaded.has(site_id)) {
|
||||||
codeMap.page = {};
|
codeLoaded.add(site_id);
|
||||||
for (const c of code) {
|
const module = await importCJS(`/nova-load/site/${site_id}/index.js`);
|
||||||
c.code_assign.forEach((e) => {
|
for (const [k, v] of Object.entries(module)) {
|
||||||
if (e.id_page) {
|
w[k] = v;
|
||||||
if (!codeMap.page[e.id_page]) codeMap.page[e.id_page] = [];
|
}
|
||||||
codeMap.page[e.id_page].push(e.id_code);
|
|
||||||
}
|
const code = await db.code.findMany({
|
||||||
if (e.id_component_group) {
|
where: { id_site: site_id, name: { notIn: ["site", "SSR"] } },
|
||||||
if (!codeMap.compGroup[e.id_component_group])
|
select: { code_assign: true },
|
||||||
codeMap.compGroup[e.id_component_group] = [];
|
|
||||||
codeMap.page[e.id_component_group].push(e.id_code);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
codeMap.compGroup = {};
|
||||||
|
codeMap.page = {};
|
||||||
|
for (const c of code) {
|
||||||
|
c.code_assign.forEach((e) => {
|
||||||
|
if (e.id_page) {
|
||||||
|
if (!codeMap.page[e.id_page]) codeMap.page[e.id_page] = [];
|
||||||
|
codeMap.page[e.id_page].push(e.id_code);
|
||||||
|
}
|
||||||
|
if (e.id_component_group) {
|
||||||
|
if (!codeMap.compGroup[e.id_component_group])
|
||||||
|
codeMap.compGroup[e.id_component_group] = [];
|
||||||
|
codeMap.page[e.id_component_group].push(e.id_code);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
codeMap.comp = {};
|
||||||
|
const comps = await db.component.findMany({
|
||||||
|
where: { id_component_group: { in: Object.keys(codeMap.compGroup) } },
|
||||||
|
select: { id: true, id_component_group: true },
|
||||||
|
});
|
||||||
|
for (const c of comps) {
|
||||||
|
if (c.id && c.id_component_group) {
|
||||||
|
codeMap.comp[c.id] = c.id_component_group;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (codeMap.page[page_id]) {
|
if (codeMap.page[page_id]) {
|
||||||
|
|
@ -75,7 +83,8 @@ export const vLoadCode = async (v: VG, forceLoad?: boolean) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const loadCGroupCode = async (cgroup_id: string) => {
|
const loadCGroupCode = async (comp_id: string) => {
|
||||||
|
const cgroup_id = codeMap.comp[comp_id];
|
||||||
if (codeMap.compGroup[cgroup_id]) {
|
if (codeMap.compGroup[cgroup_id]) {
|
||||||
const promises = [];
|
const promises = [];
|
||||||
const w = window as any;
|
const w = window as any;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue