🔥جمعه سیاه در راکت با (( ۷۰ درصد )) تخفیف! این فرصت دیگه تکرار نمیشه
مشاهده دورههاسلام
عنوان رو نمی دونستم چجوری بگم من از طریق 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
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟