minhnt-dev: add build node with arr
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import DynamicComponent from "~/components/dynamic-page/page-component/templates/index.vue";
|
import DynamicComponent from "~/components/dynamic-page/page-component/templates/index.vue";
|
||||||
import { COLLECTION_QUERY_DROP, getValueStringWithKeyAndColon, getInputValue } from "@/utils/parseSQL";
|
import { COLLECTION_QUERY_DROP, getValueStringWithKeyAndColon, getInputValue } from "@/utils/parseSQL";
|
||||||
import { isEmpty } from "lodash";
|
import isEmpty from "lodash/isEmpty";
|
||||||
|
|
||||||
const emit = defineEmits(["dropComponent", "dropData", "selectComponent"]);
|
const emit = defineEmits(["dropComponent", "dropData", "selectComponent"]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { isEmpty } from "lodash";
|
import isEmpty from "lodash/isEmpty";
|
||||||
import DynamicComponent from "~/components/dynamic-page/page-component/templates/index.vue";
|
import DynamicComponent from "~/components/dynamic-page/page-component/templates/index.vue";
|
||||||
import { COLLECTION_PAGING_QUERY_DROP, getInputValue } from "@/utils/parseSQL";
|
import { COLLECTION_PAGING_QUERY_DROP, getInputValue } from "@/utils/parseSQL";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|||||||
@@ -94,11 +94,11 @@ export const listArticleCondition = async (event: H3Event) => {
|
|||||||
try {
|
try {
|
||||||
const payload = await readBody<any>(event)
|
const payload = await readBody<any>(event)
|
||||||
const { apiUrl } = useRuntimeConfig().public
|
const { apiUrl } = useRuntimeConfig().public
|
||||||
const { items }: any = await $fetch(`${apiUrl}/cms/digital-article/condition`, {
|
const { items }: any = await $fetch(`${apiUrl}/cms/article/condition`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: new Headers({
|
||||||
Site: 1
|
site: '1' || 1,
|
||||||
},
|
}),
|
||||||
body: {
|
body: {
|
||||||
payload
|
payload
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import cloneDeep from 'lodash/cloneDeep';
|
||||||
|
|
||||||
|
export function buildTree(data: any) {
|
||||||
|
const _array = cloneDeep(JSON.parse(data))
|
||||||
|
if (_array.length > 0) {
|
||||||
|
let map = new Map();
|
||||||
|
_array.forEach((item : any) => map.set(item.id, item));
|
||||||
|
_array.forEach((item : any) => {
|
||||||
|
if (item.parentId !== undefined) {
|
||||||
|
let parent = map.get(item.parentId);
|
||||||
|
if (parent) {
|
||||||
|
parent.childs.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return _array.filter(item => !item.parentId);
|
||||||
|
} else {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user