| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <?php
 
- namespace app\admin\model;
 
- use fast\Tree;
 
- use think\Model;
 
- class UserRule extends Model
 
- {
 
-     // 表名
 
-     protected $name = 'user_rule';
 
-     // 自动写入时间戳字段
 
-     protected $autoWriteTimestamp = 'int';
 
-     // 定义时间戳字段名
 
-     protected $createTime = 'createtime';
 
-     protected $updateTime = 'updatetime';
 
-     // 追加属性
 
-     protected $append = [
 
-         'status_text'
 
-     ];
 
-     protected static function init()
 
-     {
 
-         self::afterInsert(function ($row) {
 
-             if (!$row['weigh']) {
 
-                 $pk = $row->getPk();
 
-                 $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
 
-             }
 
-         });
 
-     }
 
-     public function getTitleAttr($value, $data)
 
-     {
 
-         return __($value);
 
-     }
 
-     public function getStatusList()
 
-     {
 
-         return ['normal' => __('Normal'), 'hidden' => __('Hidden')];
 
-     }
 
-     public function getStatusTextAttr($value, $data)
 
-     {
 
-         $value = $value ? $value : $data['status'];
 
-         $list = $this->getStatusList();
 
-         return $list[$value] ?? '';
 
-     }
 
-     public static function getTreeList($selected = [])
 
-     {
 
-         $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' => 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;
 
-     }
 
- }
 
 
  |