From 166a51958b69f3cf1fb5b1edb695c0ea002b8f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9A=E4=BF=8A=E6=97=AD?= <398847134@qq.com> Date: Fri, 30 May 2025 16:23:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/ecommerce/supplier.vue | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/sub-operation-service/src/views/ecommerce/supplier.vue b/sub-operation-service/src/views/ecommerce/supplier.vue index e700b43..9092d86 100644 --- a/sub-operation-service/src/views/ecommerce/supplier.vue +++ b/sub-operation-service/src/views/ecommerce/supplier.vue @@ -216,11 +216,35 @@ const handleCurrentChange = (val) => { pagination.current = val; getList(); }; + +const sortTreeByDescendingId = (nodes) => { + if (!nodes || !nodes.length) return []; + + // 对当前层级节点排序(BigInt 安全比较) + const sortedNodes = [...nodes].sort((a, b) => { + const idA = BigInt(a.id); + const idB = BigInt(b.id); + return idA > idB ? -1 : idA < idB ? 1 : 0; // 降序 + }); + + // 递归排序每个节点的 children + sortedNodes.forEach((node) => { + if (node.children && node.children.length) { + node.children = sortTreeByDescendingId(node.children); + } + }); + + return sortedNodes; +}; + const getTree = () => { transaction().then((res) => { if (res.code === 200) { - let a = res.data.sort((a, b) => Number(b.id) - Number(a.id)); - treeList.splice(0, treeList.length, ...a); + // 2. 使用排序函数 + const sortedData = sortTreeByDescendingId(res.data); + treeList.splice(0, treeList.length, ...sortedData); + // let a = res.data.sort((a, b) => Number(b.id) - Number(a.id)); + // treeList.splice(0, treeList.length, ...a); // console.log('treeList', treeList); } });