作者 lyh

gx

... ... @@ -28,7 +28,7 @@ class NavController extends BaseController
* @method :post
* @time :2023/12/4 15:00
*/
public function index(BNav $nav,BNavGroup $navGroup){
public function index(BNav $nav){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav->list($this->map,$this->order = ['sort','id']);
$data = array();
... ... @@ -41,13 +41,6 @@ class NavController extends BaseController
$data[] = $v;
}
}
//获取菜单组排序字段
$groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
if(!empty($groupInfo['sort_list'])){
$sort_list = json_decode($groupInfo['sort_list']);
$detailsList = $this->getIdDetailsList($data);
$data = $this->findDetailsLists($sort_list,$detailsList);
}
}
$this->response('success',Code::SUCCESS,$data);
}
... ... @@ -70,66 +63,6 @@ class NavController extends BaseController
}
/**
* @remark :根据固定的数组排序
* @name :findDetailsInList
* @author :lyh
* @method :post
* @time :2023/12/18 14:54
*/
public function findDetailsLists($sort_list, $detailsList)
{
$result = [];
foreach ($sort_list as $val) {
$val = (array)$val;
if (!empty($val['sub']) && is_array($val['sub']) && isset($detailsList[$val['id']]['sub'])){
$detailsList[$val['id']]['sub'] = $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);
}
if (empty($detailsList[$val['id']])){
continue;
}
if(!empty($detailsList[$val['id']]['sub']) && is_array($detailsList[$val['id']]['sub'])){
$detailsList[$val['id']]['sub'] = $this->handleDetailsSub($detailsList[$val['id']]['sub']);
}
$result[] = $detailsList[$val['id']];
unset($detailsList[$val['id']]);
}
$result = array_merge($result, $detailsList);
return $this->success($result);
}
/**
* @remark :处理子集
* @name :handleDetailsSub
* @author :lyh
* @method :post
* @time :2023/12/21 16:36
*/
public function handleDetailsSub($detailsList){
if(!empty($detailsList['sub']) && is_array($detailsList['sub'])){
$detailsList['sub'] = $this->handleDetailsSub($detailsList['sub']);
}
return array_merge($detailsList);
}
/**
* @remark :根据id组装数据
* @name :getDetailsList
* @author :lyh
* @method :post
* @time :2023/12/20 18:52
*/
public function getIdDetailsList($data){
$detailsList = [];
foreach ($data as $v) {
if (!empty($v['sub'])){
$v['sub'] = $this->getIdDetailsList($v['sub']);
}
$detailsList[$v['id']] = $v;
}
return $this->success($detailsList);
}
/**
* @remark :获取当前id下的所有子集
* @name :getSubList
* @author :lyh
... ...
... ... @@ -260,11 +260,31 @@ class NavLogic extends BaseLogic
* @time :2023/12/18 13:47
*/
public function setSortList(){
$navGroupModel = new BNavGroup();
if(!empty($this->param['sort_list'])){
$this->param['sort_list'] = json_encode($this->param['sort_list']);
$navList = $this->param['sort_list'];
if(!empty($navList)){
$sort = 0;
$this->subSort($navList,$sort);
}
$navGroupModel->edit(['sort_list'=>$this->param['sort_list']],['id'=>$this->param['id']]);
return $this->success();
}
/**
* @remark :处理子集排序
* @name :subSort
* @author :lyh
* @method :post
* @time :2024/2/29 15:30
*/
public function subSort($subList,&$sort,$pid = 0){
$navModel = new BNav();
$sort = $sort + 1;
foreach ($subList as $k => $v){
if(!empty($v['sub'])){
$this->subSort($v['sub'],$sort,$v['id']);
}else{
$navModel->edit(['pid'=>$pid,'sort'=>$sort],['id'=>$v['id']]);
}
}
return true;
}
}
... ...