修复token验证和左侧表单问题

This commit is contained in:
2025-08-19 17:48:53 +08:00
parent 1ceaeb9214
commit 2d44b8764d
39 changed files with 1461 additions and 554 deletions
+50 -15
View File
@@ -22,6 +22,33 @@ use think\Model;
class AdminSysMenu extends Model
{
// 设置表名
protected $name = 'menu';
// 设置主键
protected $pk = 'smid';
// 自动时间戳
protected $autoWriteTimestamp = true;
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
// 字段类型转换
protected $type = [
'smid' => 'integer',
'parent_id' => 'integer',
'type' => 'integer',
'sort' => 'integer',
'status' => 'integer',
'create_time' => 'integer',
'update_time' => 'integer'
];
// 允许写入的字段
protected $allowField = [
'parent_id', 'type', 'label', 'icon_class', 'sort', 'src', 'status'
];
/**
* 获取菜单树形结构
* @return array
@@ -30,28 +57,36 @@ class AdminSysMenu extends Model
{
// 获取所有启用的菜单
$menus = self::where('status', 1)
->order('type', 'asc')
->order('sort', 'desc')
->order('smid', 'asc')
->select()
->toArray();
$menuTree = [];
return self::buildTree($menus);
}
// 先处理所有父菜单
/**
* 构建树形结构
* @param array $menus 菜单数组
* @param int $parent_id 父级ID
* @return array
*/
public static function buildTree($menus, $parent_id = 0)
{
$tree = [];
foreach ($menus as $menu) {
if ($menu['parent_id'] == 0) {
$menuTree[$menu['smid']] = $menu;
$menuTree[$menu['smid']]['children'] = [];
if ($menu['parent_id'] == $parent_id) {
$children = self::buildTree($menus, $menu['smid']);
if ($children) {
$menu['children'] = $children;
} else {
$menu['children'] = [];
}
$tree[] = $menu;
}
}
// 再处理子菜单
foreach ($menus as $menu) {
if ($menu['parent_id'] != 0 && isset($menuTree[$menu['parent_id']])) {
$menuTree[$menu['parent_id']]['children'][] = $menu;
}
}
return array_values($menuTree);
return $tree;
}
}