在线考试系统基础模块开发(RBAC)

 

   今天算是正式开始码代码了,采用的后台UI模板是layui. PHP的后台框架是laravel。

今日完成任务

  基础模块RBAC完成。

  附上系统的截图

  

核心源码

    因为是最基本的列表,系统中以后可能会有很多的这样的列表。就先把公共的JS写一下。后续的话,这样普通的规范的列表,采用配置化开发。

             

public static function reqIndex($condition){
    $query = DB::table('users')->join('class_info','class_info.id','=','class_id');
    if (!empty($condition['keyword'])) {
        $query = $query->where(function ($query) use ($condition) {
            $query->where('name', 'like', '%' . $condition['keyword'] . '%')
                ->orwhere('email', 'like', '%' . $condition['keyword'] . '%');
        });
    }
    if (strlen($condition['user_status']) > 0) {
        if ($condition['user_status'] != -1) {
            $query = $query->where('status', '=', $condition['user_status']);
        }
    }
    $data['count'] = $query->count();
    if ($condition['page'] && $condition['limit']) {
        $query = $query->skip(($condition['page'] - 1) * $condition['limit'])->take($condition['limit']);
    } else {
        $query = $query->limit($condition['limit']);
    }

    $res = $query->select('users.id', 'email', 'name','class_name', 'users.status','is_super')->get()->toArray();
    $data['data'] = $res;
    return $data;
}

  配置文件
  

return [
    'list_url' => 'admin_setting',
    'is_page' => 'true',
    'limit' => 15,
    'limits' => '15,25,50,100',
    'width' => '98%',
    'list_fields' => [
        [
            'field' => 'email',
            'field_desc' => '登录邮箱',
            'width' => '20%',
        ],
        [
            'field' => 'name',
            'field_desc' => '用户名称',
            'width' => '20%',
        ],
        [
            'field' => 'class_name',
            'field_desc' => '班级',
            'width' => '15%',
        ],
        [
            'field' => 'status',
            'field_desc' => '状态',
            'width' => '15%',
            'templet' => '#templet_status',
        ],
        [
            'field' => 'is_super',
            'field_desc' => '是否是超级管理员',
            'width' => '15%',
            'templet' => '#templet_super',
        ],
        [
            'field_type' => 'toolbar',
            'field' => '#barFilter',
            'field_desc' => '操作',
            'width' => '15%',
            'fixed'=>'right',
        ],
    ]

];

遇到问题

  1. layui的使用

解决问题

  1. 参考官方文档

项目燃尽图

原文地址:https://www.cnblogs.com/sofic/p/13280566.html