123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace app\common\model\base\menu;
- use app\common\model\Common;
- use think\facade\Db;
- class Menu extends Common
- {
- protected $name = "system_menus";
- protected $pk = 'menu_id';
- protected $autoWriteTimestamp = 'datetime';
- protected $createTime = 'create_at';
- protected $updateTime = 'update_at';
- protected $deleteTime = 'delete_at';
- protected $schema = [
- 'menu_id' => 'int',
- 'is_root' => 'int',
- 'is_parent' => 'int',
- 'pid' => 'int',
- 'name' => 'varchar',
- 'title' => 'varchar',
- 'badge' => 'varchar',
- 'path' => 'varchar',
- 'component' => 'varchar',
- 'icon' => 'varchar',
- 'redirect' => 'varchar',
- 'affix' => 'int',
- 'hidden' => 'int',
- 'dot' => 'int',
- 'noKeepAlive' => 'int',
- 'alwaysShow' => 'int',
- 'isCustomSvgIcon' => 'int',
- 'tabHidden' => 'int',
- 'sort' => 'int',
- 'cascade' => 'varchar',
- 'status' => 'int',
- 'create_user' => 'int',
- 'update_user' => 'int',
- 'create_at' => 'datetime',
- 'update_at' => 'datetime',
- 'parent_path' => 'varchar',
- 'delete_at' => 'datetime'
- ];
- protected $append = [
- 'parentName',
- 'pathName',
- 'status_txt',
- 'level',
- ];
- public function getAlwaysShowAttr($value)
- {
- return $value == 1;
- }
- public function statusList()
- {
- return [1 => '可用', 2 => '不可用'];
- }
- public function getStatusTxtAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
- $statusList = $this->statusList();
- return isset($statusList[$value]) ? $statusList[$value] : '';
- }
- public function menurequest()
- {
- return $this->hasMany(Menurequest::class,"menu_id","menu_id");
- }
- public function getParentNameAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['pid']) ? $data['pid'] : '');
- $MenuList = cache('MENULIST');
- if (empty($MenuList)) {
- $MenuList = self::column('title', 'menu_id');
- cache('MENULIST', $MenuList, 7200);
- }
- return isset($MenuList[$value]) ? $MenuList[$value] : '顶级菜单';
- }
- public function getPathNameAttr($value, $data)
- {
- $value = isset($data['parent_path']) ? $data['parent_path'] : '';
- if (!empty($value)) {
- $pids = explode(',', $value);
- $MenuList = cache('MENULIST');
- if (empty($MenuList)) {
- $MenuList = self::column('title', 'menu_id');
- cache('MENULIST', $MenuList, 7200);
- }
- $titles = [];
- foreach ($pids as $pid) {
- $titles[] = isset($MenuList[$pid]) ? $MenuList[$pid] : '';
- }
- $titles = array_filter($titles);
- return implode('/', $titles);
- } else {
- return '';
- }
- }
- public function getLevelAttr($value, $data)
- {
- $value = isset($data['parent_path']) ? $data['parent_path'] : '';
- $pids = [];
- if (!empty($value)) {
- $pids = explode(',', $value);
- };
- return count($pids);
- }
- }
|