سلام
عنوان رو نمی دونستم چجوری بگم من از طریق api خروجی زیر برام برمی گرده :
{
"id": 1,
"name": "بهداشتی",
"parentCategoryId": null
},
{
"id": 3,
"name": "صابون",
"parentCategoryId": 1
},
{
"id": 4,
"name": "شوینده ماشین",
"parentCategoryId": null
},
{
"id": 5,
"name": "صابون لوکس",
"parentCategoryId": 3
},
حالا می خوام یک آبجکت جدید بسازم براساس اون parentCategoryId اگه null بود که می شه نود اصلی اگه نه جستجو بشه بره زیر مجموعه آبجکت مربوطه و یه خروجی مشابه نمونه زیر بسازم :
treeData: [
{
id: 1,
title: 'node1',
expanded: true,
children: [
{
id: 2,
title: 'node 1-1',
expanded: true,
children: [
{
id: 3,
title: 'node 1-1-1'
}, {
id: 4,
title: 'node 1-1-2'
}, {
id: 5,
title: 'node 1-1-3'
}
]
}, {
id: 6,
title: 'node 1-2',
children: [
{
id: 7,
title: 'test'
}, {
id: 8,
title: 'test 1'
}
]
}
]
}
]
این قراره بشه ورودی یه کامپوننت treeview
اون قسمت نودهای فرزند رو هر کاری کردم نشد
beforeMount () {
axios.get('/api/products/GetAllCategory')
.then(res => {
this.rowData = res.data.data
const th = this
res.data.data.map(function (item, index) {
if (item.parentCategoryId === null) {
th.treeData.push({id: item.id, title: item.name, expanded: false, async: false})
}
})
console.log(th.treeData)
}).catch(err => {
console.log(err.response)
})
}
با این تابع مشکل حل شد
createTreeData (data, parentId) {
const z = []
for (let i = 0; i < data.length; i++) {
if (data[i].parentCategoryId === parentId) {
const ch = this.createTreeData(data, data[i].id)
const o = Object.keys(ch).length === 0 ? {} : { children: ch }
const returnedTarget = Object.assign(data[i], o)
z.push(returnedTarget)
}
}
return z
}
@hesammousavi
جناب موسوی ممنون می شم اگه راهنمایی کنید
یا اصلا به کسی که api و ایجاد می کنه بگم به همین شکل خروجی به من بده ؟؟
پکیجی که برای treeview قرار هست استفاده بشه vue-tree-halower هست
با این تابع مشکل حل شد
createTreeData (data, parentId) {
const z = []
for (let i = 0; i < data.length; i++) {
if (data[i].parentCategoryId === parentId) {
const ch = this.createTreeData(data, data[i].id)
const o = Object.keys(ch).length === 0 ? {} : { children: ch }
const returnedTarget = Object.assign(data[i], o)
z.push(returnedTarget)
}
}
return z
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟