Browse Source

fix: deep sub-categories not showing has password status (#527)

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/531/head
Ryan Wang 3 years ago committed by GitHub
parent
commit
e7e443778c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      src/views/post/CategoryList.vue

21
src/views/post/CategoryList.vue

@ -154,22 +154,23 @@ export default {
categories.forEach(category => (hashMap[category.id] = { ...category, children: [] })) categories.forEach(category => (hashMap[category.id] = { ...category, children: [] }))
categories.forEach(category => { categories.forEach(category => {
const current = hashMap[category.id] const current = hashMap[category.id]
const parent = hashMap[category.parentId]
if (current.password) {
current.hasPassword = true
}
if (parent && (parent.password || parent.hasPassword)) {
current.hasPassword = true
}
if (category.parentId) { if (category.parentId) {
hashMap[category.parentId].children.push(current) hashMap[category.parentId].children.push(current)
} else { } else {
treeData.push(current) treeData.push(current)
} }
}) })
// set hasPassword field for tree node
const setHasPasswordField = (categories, hasPassword = false) => {
categories.forEach(category => {
category.hasPassword = !!category.password || hasPassword
if (category.children && category.children.length) {
setHasPasswordField(category.children, category.hasPassword)
}
})
}
setHasPasswordField(treeData)
return treeData return treeData
}, },

Loading…
Cancel
Save