作者 lyh

gx

@@ -31,19 +31,8 @@ class NavController extends BaseController @@ -31,19 +31,8 @@ class NavController extends BaseController
31 public function index(BNav $nav,BNavGroup $navGroup){ 31 public function index(BNav $nav,BNavGroup $navGroup){
32 $this->map['project_id'] = $this->user['project_id']; 32 $this->map['project_id'] = $this->user['project_id'];
33 $lists = $nav->list($this->map,$this->order = ['sort','id']); 33 $lists = $nav->list($this->map,$this->order = ['sort','id']);
34 - //获取菜单组排序字段  
35 - $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);  
36 - if(!empty($groupInfo['sort_list'])){  
37 - $sort_list = json_decode($groupInfo['sort_list']);  
38 - $result = $this->findDetailsList($sort_list,$lists);  
39 - $detailsList = $result['detailsList'];  
40 - if(!empty($detailsList)){  
41 - //写入  
42 -  
43 - }  
44 - $data = $result['result'];  
45 - }else{  
46 - $data = array(); 34 + $data = array();
  35 + if(!empty($lists)){
47 foreach ($lists as $v){ 36 foreach ($lists as $v){
48 $v = (array)$v; 37 $v = (array)$v;
49 if ($v['pid'] == 0) { 38 if ($v['pid'] == 0) {
@@ -51,6 +40,13 @@ class NavController extends BaseController @@ -51,6 +40,13 @@ class NavController extends BaseController
51 $data[] = $v; 40 $data[] = $v;
52 } 41 }
53 } 42 }
  43 + //获取菜单组排序字段
  44 + $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
  45 + if(!empty($groupInfo['sort_list'])){
  46 + $sort_list = json_decode($groupInfo['sort_list']);
  47 + $detailsList = $this->getIdDetailsList($data);
  48 + $data = $this->findDetailsLists($sort_list,$detailsList);
  49 + }
54 } 50 }
55 $this->response('success',Code::SUCCESS,$data); 51 $this->response('success',Code::SUCCESS,$data);
56 } 52 }
@@ -62,72 +58,43 @@ class NavController extends BaseController @@ -62,72 +58,43 @@ class NavController extends BaseController
62 * @method :post 58 * @method :post
63 * @time :2023/12/18 14:54 59 * @time :2023/12/18 14:54
64 */ 60 */
65 - public function findDetailsList($data, &$detailsList) { 61 + public function findDetailsLists($sort_list, $detailsList)
  62 + {
66 $result = []; 63 $result = [];
67 - foreach ($data as $item) {  
68 - $item = (array)$item;  
69 - $items = $item;  
70 - $id = $items['id'];  
71 - $matchingDetail = null;  
72 - foreach ($detailsList as $k => $v) {  
73 - if ($id == $v['id']) {  
74 - $matchingDetail = $v;  
75 - unset($detailsList[$k]);  
76 - break; // Break once a match is found  
77 - } 64 + foreach ($sort_list as $val) {
  65 + $val = (array)$val;
  66 + if (!empty($val['sub'])){
  67 + $detailsList[$val['id']]['sub'] = $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);
78 } 68 }
79 - if (!empty($matchingDetail)) {  
80 - $items = $matchingDetail; 69 + if (empty($detailsList[$val['id']])){
  70 + continue;
81 } 71 }
82 - if (!empty($item['sub']) && is_array($item['sub'])) {  
83 - $items['sub'] = $this->findDetailsList($item['sub'], $detailsList)['result'];  
84 - }  
85 - $result[] = $items; 72 + $result[] = $detailsList[$val['id']];
  73 + unset($detailsList[$val['id']]);
86 } 74 }
87 - return ['result'=>$result,'detailsList'=>$detailsList]; 75 + $result = array_merge($result, $detailsList);
  76 + return $this->success($result);
88 } 77 }
89 78
90 - /**  
91 - * @remark :  
92 - * @name : setDetails  
93 - * @author : lyh  
94 - * @method : post  
95 - * @time : 2023/12/21 9:09  
96 - */  
97 - public function setDetails($details, &$result)  
98 - {  
99 - foreach ($details as $k => $v) {  
100 - if ($v['pid'] == 0) {// 一级菜单  
101 - $result[] = $v;  
102 - } else {  
103 - $parentIndex = $this->findParentIndex($result, $v['pid']);  
104 - if ($parentIndex !== null) {  
105 - // Add the current element under its parent  
106 - $result[$parentIndex]['sub'][] = $v;  
107 - }  
108 - }  
109 - }  
110 - }  
111 79
112 /** 80 /**
113 - * Find the index of the parent element in $result based on 'id'.  
114 - *  
115 - * @param array $result  
116 - * @param int $parentId  
117 - * @return int|null 81 + * @remark :根据id组装数据
  82 + * @name :getDetailsList
  83 + * @author :lyh
  84 + * @method :post
  85 + * @time :2023/12/20 18:52
118 */ 86 */
119 - private function findParentIndex($result, $parentId)  
120 - {  
121 - foreach ($result as $index => $item) {  
122 - if ($item['id'] == $parentId) {  
123 - return $index; 87 + public function getIdDetailsList($data){
  88 + $detailsList = [];
  89 + foreach ($data as $v) {
  90 + if (!empty($v['sub'])){
  91 + $v['sub'] = $this->getIdDetailsList($v['sub']);
124 } 92 }
  93 + $detailsList[$v['id']] = $v;
125 } 94 }
126 - return null; 95 + return $this->success($detailsList);
127 } 96 }
128 97
129 -  
130 -  
131 /** 98 /**
132 * @remark :获取当前id下的所有子集 99 * @remark :获取当前id下的所有子集
133 * @name :getSubList 100 * @name :getSubList