From 1a5e46e6955225675d21fe04962e82b37e7890ed Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期二, 15 十月 2024 16:02:26 +0800
Subject: [PATCH] ziyuan

---
 pages/digitalCourses/digitalCoursesDetails/index.js |   45 ++++++++++++++++++++-------------------------
 assets/js/middleGround/api/store.js                 |    2 ++
 assets/js/middleGround/tool.js                      |    3 ++-
 3 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/assets/js/middleGround/api/store.js b/assets/js/middleGround/api/store.js
index 79e8543..472b10a 100644
--- a/assets/js/middleGround/api/store.js
+++ b/assets/js/middleGround/api/store.js
@@ -306,6 +306,7 @@
 
             data.datas[0].subDatas = data.datas[0].cmsDatas
             const datas = handleDetailQueryRequestData({
+              productId,
               item: data.datas[0],
               fields,
               itemFields: {
@@ -491,6 +492,7 @@
         if (data.datas.length) {
           data.datas[0].subDatas = data.datas[0].cmsDatas
           const datas = handleDetailQueryRequestData({
+            productId,
             item: data.datas[0],
             fields,
             itemFields: {
diff --git a/assets/js/middleGround/tool.js b/assets/js/middleGround/tool.js
index ecbcd87..f7f7370 100644
--- a/assets/js/middleGround/tool.js
+++ b/assets/js/middleGround/tool.js
@@ -151,6 +151,7 @@
 
 // 澶勭悊璇︽儏鏌ヨ缁撴灉
 export function handleDetailQueryRequestData({
+  productId,
   item,
   fields,
   path,
@@ -258,7 +259,7 @@
           }
         }
         if (subItem.productLinkInfo && subItem.productLinkInfo.length) {
-          let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.Name == item.datas.Name)
+          let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.ProductId == productId)
           subItem.productLinkPath =
             itemProductLinkInfo?.LinkPath +
             "\\" +
diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js
index 344b8b8..096b1a5 100644
--- a/pages/digitalCourses/digitalCoursesDetails/index.js
+++ b/pages/digitalCourses/digitalCoursesDetails/index.js
@@ -535,12 +535,17 @@
         if (this.data.selectActive === 'learn') {
           let list = []
           // 娴嬭瘯 6浣�// 姝e紡 5浣�//  娴嬭瘯璋冪敤浼�20锛屽唴閮�7  姝e紡璋冪敤浼�17 鍐呴儴浼�6
-          let addNum = query.cmsPath.length > 5 ? 7 : query.cmsPath.length > 6 ? 8 : 6
-          const num = query.cmsPath.length + addNum
           if (learn.some((item) => item.sysType == 'CmsFolder')) {
-            this.getTreeList(learn, num, list, '\\', addNum)
-            list = this.ensureTreeConsistency(list)
+            // 1.鍙湁鐩綍锛屾病鏈夎祫婧�
+            if (!learn.some((item) => item.sysType == 'CmsItem')) {
+              list = learn
+            } else {
+              // 2.鐩綍鍜岃祫婧愰兘鏈�
+              this.getTreeList(learn, list, query.cmsPath)
+              list = this.ensureTreeConsistency(list)
+            }
           } else {
+            // 3.鍙湁璧勬簮锛屾病鏈夌洰褰�
             list = learn
           }
           let result = [];
@@ -557,9 +562,7 @@
           )
           if (data.length > 0) {
             let list = []
-            let addNum = query.cmsPath.length > 5 ? 7 : query.cmsPath.length > 6 ? 8 : 6
-            const num = query.cmsPath.length + addNum
-            this.getTreeList(data, num, list, '\\', addNum)
+            this.getTreeList(data, list, query.cmsPath)
             list = this.ensureTreeConsistency(list)
             let result = [];
             this.findChildIds(list[0]?.children, result)
@@ -592,10 +595,9 @@
     })
   },
   // 鎵佸钩鍖栨暟鎹浆鎹ree
-  getTreeList(rootList, pathLength, newArr, path, addNum) {
+  getTreeList(rootList, newArr, path) {
     for (const item of rootList) {
-      // 姝ゅ鍘熸湰 item.productLinkPath.length == pathLength 浣� productLinkPath 闀垮害涓埆涔﹀瓨鍦�4銆�5浣嶄氦閿�
-      if ((pathLength - item.productLinkPath.length >= 0 && pathLength - item.productLinkPath.length <= 3) && item.productLinkPath.includes(path)) {
+      if (path == item.productLinkPath.replace('\\' + item.id, '')) {
         if (item.sysType == 'CmsItem') {
           if (item.selectType == 'webpage') {
             item.disabled = true
@@ -610,15 +612,16 @@
         }
         // newArr.push(item)
         // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴�
-        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item, addNum)
+        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
+        // 鎻掕繘鏁扮粍鍚� 浠庡師鏁版嵁涓垹闄�
+        rootList = rootList.filter(nitem => nitem.id != item.id)
       }
     }
     //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍
     for (const i of newArr) {
       i.children = []
-      this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum)
+      this.getTreeList(rootList, i.children, i.productLinkPath)
       if (i.children.length == 0) {
-        newArr[0].istry = true
         delete i.children
       }
     }
@@ -642,29 +645,21 @@
   },
 
   // 鎺掑簭鏁扮粍 鎸夌収productLinkPath
-  insertAndSortObjectsByProductLinkPath(array, newObj, addNum) {
+  insertAndSortObjectsByProductLinkPath(array, newObj) {
     // 鏌ユ壘鏂板璞″簲璇ユ彃鍏ョ殑浣嶇疆  
-    let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - addNum, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - addNum, obj.productLinkPath.length)));
-
+    let insertIndex = array.findIndex(obj => newObj.id < obj.id);
     // 濡傛灉娌℃湁鎵惧埌鍚堥�傜殑浣嶇疆锛屽垯鏀惧湪鏁扮粍鏈熬  
     if (insertIndex === -1) {
       insertIndex = array.length;
     }
     // 鎻掑叆鏂板璞″埌鏁扮粍  
     array.splice(insertIndex, 0, newObj);
-    // 娴嬭瘯6 姝e紡5
     // 瀵规暟缁勮繘琛屾帓搴�  
     array.sort((a, b) => {
-      if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) {
-        return -1;
-      }
-      if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) {
-        return 1;
-      }
-      // a must be equal to b  
+      if (a.id < b.id) return -1;
+      if (a.id > b.id) return 1;
       return 0;
     });
-
     // 杩斿洖鏇存柊鍚庣殑鏁扮粍  
     return array;
   },

--
Gitblit v1.9.1