|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace app\admin\model;
|
|
|
|
|
|
+use fast\Tree;
|
|
|
use think\Model;
|
|
|
|
|
|
class UserRule extends Model
|
|
|
@@ -43,8 +44,16 @@ class UserRule extends Model
|
|
|
{
|
|
|
$ruleList = collection(self::where('status', 'normal')->order('weigh desc,id desc')->select())->toArray();
|
|
|
$nodeList = [];
|
|
|
+ Tree::instance()->init($ruleList);
|
|
|
+ $ruleList = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name');
|
|
|
+ $hasChildrens = [];
|
|
|
+ foreach ($ruleList as $k => $v)
|
|
|
+ {
|
|
|
+ if ($v['haschild'])
|
|
|
+ $hasChildrens[] = $v['id'];
|
|
|
+ }
|
|
|
foreach ($ruleList as $k => $v) {
|
|
|
- $state = array('selected' => $v['ismenu'] ? false : in_array($v['id'], $selected));
|
|
|
+ $state = array('selected' => in_array($v['id'], $selected) && !in_array($v['id'], $hasChildrens));
|
|
|
$nodeList[] = array('id' => $v['id'], 'parent' => $v['pid'] ? $v['pid'] : '#', 'text' => __($v['title']), 'type' => 'menu', 'state' => $state);
|
|
|
}
|
|
|
return $nodeList;
|