46 lines
708 B
JavaScript
46 lines
708 B
JavaScript
/*
|
|
|
|
Page model:
|
|
{
|
|
filename,
|
|
filetype,
|
|
small_image,
|
|
medium_image,
|
|
large_image,
|
|
*small_url,
|
|
*medium_url,
|
|
*large_url,
|
|
size,
|
|
staff_id,
|
|
is_deleted,
|
|
created_at,
|
|
updated_at,
|
|
}
|
|
|
|
*/
|
|
|
|
export async function getTree(ctx) {
|
|
let res = await ctx.db.safeCallProc('pages_gettree', [])
|
|
let out = []
|
|
let children = []
|
|
let map = new Map()
|
|
for (let page of res.first) {
|
|
if (!page.parent_id) {
|
|
out.push(page)
|
|
} else {
|
|
children.push(page)
|
|
}
|
|
map.set(page.id, page)
|
|
}
|
|
for (let page of children) {
|
|
let parent = map.get(page.parent_id)
|
|
if (!parent.children) {
|
|
parent.children = []
|
|
}
|
|
parent.children.push(page)
|
|
}
|
|
return {
|
|
tree: out
|
|
}
|
|
}
|