🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 1管理员页面 ``` @extends("layout.main") @section("content") &#xe67f; 首页 &gt; 用户中心 &gt; 用户管理 &#xe68f; &#xe665; 搜用户 &#xe600; 添加用户 ID 用户名 性别 手机 邮箱 加入时间 状态 操作 @endsection @section("footerjs") $(function(){ mydatatable \= $('.table-sort').dataTable({ "lengthMenu": \[ 3,10, 20, 30 \], "paging":true, "info":true, "searching":false, "ordering":true, "order": \[\[ 0, "desc" \]\], "columnDefs": \[{ "targets": \[1,2,3,4,5,6,7\], "orderable":false }\], "processing":true, "serverSide":true, "ajax": { "url": "{{url('admin/users')}}", "type": "post", 'headers': { 'X-CSRF-TOKEN' : '{{ csrf\_token() }}' }, 'data':function(d){ d.datemin\=$('#datemin').val(); d.datemax\=$('#datemax').val(); d.keyword\=$('#keyword').val(); } }, "columns": \[ {'data':'id'}, {'data':'name'}, {'data':'sex'}, {'data':'phone'}, {"data": "email"}, {'data':'created\_at'}, {'data':'status'}, {"defaultContent": "","className":"td-manager"},         \], "createdRow":function(row,data,dataIndex){ //数据填充的回调函数,每个"tr"被绘制的时候会调用该函数 //row:被绘制的tr的dom对象 //data:该tr行对应的一条数据记录信息 //dataIndex:是该tr的下表索引号码 if(data.status\==1){ var status \='已启用'; }else{ var status\='已停用'; } $(row).find('td:eq(6)').html(status); var anniu \= '&#xe6df;&#xe6e2;'; //把anniu填充给最后一个td里边 $(row).find('td:eq(7)').html(anniu); if(data.sex\==1){ $(row).find('td:eq(2)').html('女'); }else{ $(row).find('td:eq(2)').html('男'); } $(row)\[0\].className\="text-c"; // console.log($(row)); } }); }); /\*用户-添加\*/ function member\_add(title,url,w,h){ layer\_show(title,url,w,h); } /\*用户-查看\*/ function member\_show(title,url,id,w,h){ layer\_show(title,url,w,h); } /\*用户-停用\*/ function member\_stop(obj,id){ layer.confirm('确认要停用吗?',function(index){ $.ajax({             type: 'POST',             url: "{{url('admin/users')}}"+'/'+id,             data:{status:0},             dataType: 'json',             headers: { 'X-CSRF-TOKEN' : '{{ csrf\_token() }}' }, success: function(data){ layer.msg('已停用!',{icon: 6,time:1000}); var status\='已停用'; $(obj).parent().html(status); // location.reload(); }, error:function(data) { console.log(data.msg); }, }); }); } /\*用户-启用\*/ function member\_start(obj,id){ layer.confirm('确认要启用吗?',function(index){ $.ajax({             type: 'POST',             url: "{{url('admin/users/')}}"+'/'+id,             data:{status:1},             dataType: 'json',             headers: { 'X-CSRF-TOKEN' : '{{ csrf\_token() }}' }, success: function(data){ layer.msg('已启用!',{icon: 6,time:1000}); var status \='已启用'; $(obj).parent().html(status); // location.reload(); }, error:function(data) { console.log(data.msg); }, }); }); } /\*用户-编辑\*/ function member\_edit(title,url,id,w,h){ layer\_show(title,url,w,h); } /\*密码-修改\*/ function change\_password(title,url,id,w,h){ layer\_show(title,url,w,h); } /\*用户-删除\*/ function member\_del(obj,id){ layer.confirm('确认要删除吗?',function(index){ $.ajax({             type: 'POST',             url: "{{url('admin/users/delete')}}"+'/'+id,             dataType: 'json',             headers: { 'X-CSRF-TOKEN' : '{{ csrf\_token() }}' }, success: function(data){ $(obj).parents("tr").remove(); layer.msg('已删除!',{icon:1,time:1000}); }, error:function(data) { console.log(data.msg); }, }); }); } $('#btns').bind('click',function(){ $('.table-sort').dataTable().fnDraw(false); }); @endsection ``` #### 2管理员controller ``` <?php namespace App\\Http\\Controllers\\Admin; use Illuminate\\Http\\Request; use App\\Http\\Controllers\\Controller; use App\\Models\\Users; class UsersController extends Controller { /\*\* \* \* @param Request $request \* @return void \* @Description管理员列表 \* @example \* @author liu \* @since \*/ public function index(Request $request){ if($request\->isMethod('post')){ //B. 排序 $n \= $request \-> input('order.0.column');//获得排序字段的序号 $duan \= $request \-> input('columns.'.$n.'.data');//获得排序的字段 $xu \= $request \-> input('order.0.dir'); //排序的顺序asc/desc //数据分页 $offset\=$request\->input('start');//开始 $len\=$request\->input('length');//长度偏移量 $where\=array(); $datemin\=$request\->input('datemin')?$request\->input('datemin'):date("Y-m-d"); $datemax\=$request\->input('datemax')?$request\->input('datemax'):date("Y-m-d"); $datemin\=$datemin." 00:00:00"; $datemax\=$datemax." 23:59:59"; if($request\->input('keyword')){ $keyword\=$request\->input('keyword'); $where\[\]=\['name','like',"%$keyword%"\]; } //获取管理员记录总条数 $cnt \=Users::where($where) \->whereBetween('created\_at',\[$datemin,$datemax\]) \->count(); $shuju\=Users::offset($offset) \->orderBy($duan,$xu) \->where($where) \->whereBetween('created\_at',\[$datemin,$datemax\]) \->limit($len) \->get(); $info\=\[ 'draw'\=>$request\->get('draw'), 'recordsTotal'\=>$cnt, 'recordsFiltered'\=>$cnt, 'data'\=>$shuju, \]; return $info; }else{ $datemin\=date('Y-m-d'); $datemax\=date('Y-m-d'); return view('admin.users.index',compact('datemin','datemax')); } } /\*\* \* Undocumented function \* \* @param Request $request \* @return void \* @Description添加管理员 \* @example \* @author liu \* @since \*/ public function add(Request $request){ if($request\->isMethod('post')){ $rules\=\[ 'name'\=>'required', 'password'\=>'required', 'phone'\=>'required', 'email'\=>'required', 'sex'\=>'required', 'role\_id'\=>'required', \]; $notices \= \[ 'name.required'\=>'姓名必须填写', 'password.required'\=>'密码必须填写', 'phone.required'\=>'手机号必须填写', 'email.required'\=>'邮箱必须填写', 'sex.required'\=>'性别必须选择', 'role\_id.required'\=>'角色必须选择', \]; //收集数据 $from\_data\=$request\->all(); $validator\=\\Validator::make($from\_data,$rules,$notices); if($validator\->passes()){//验证通过 //储存数据 Users::create([ 'name'=>$from_data['name'], 'password'=>bcrypt($from_data['password']), 'phone'=>$from_data['phone'], 'sex'=>$from_data['sex'], 'email'=>$from_data['email'], 'role_id'=>$from_data['role_id'], ]); return ['success'=>true]; }else{ $errorinfo=collect($validator->messages())->implode('0','|'); return ['success'=>false,'errorinfo'=>$errorinfo\]; } }else{ return view('admin.users.add'); } } public function setStatus(Request $request,Users $users){ $users->status\=$request\->input('status'); $users\->update(); return \['success'\=>'设置成功!'\]; } public function editUsers(Request $request,Users $users){ if($request->isMethod('post')){ $rules=[ 'name'=>'required', 'password'=>'required', 'phone'=>'required', 'email'=>'required', 'sex'=>'required', 'role_id'=>'required', ]; $notices = [ 'name.required'=>'姓名必须填写', 'password.required'=>'密码必须填写', 'phone.required'=>'手机号必须填写', 'email.required'=>'邮箱必须填写', 'sex.required'=>'性别必须选择', 'role_id.required'=>'角色必须选择', ]; //收集数据 $from_data=$request->all(); $validator=\Validator::make($from_data,$rules,$notices); if($validator->passes()){//验证通过 //储存数据 $users->update([ 'name'=>$from_data['name'], 'password'=>bcrypt($from_data['password']), 'phone'=>$from_data['phone'], 'sex'=>$from_data['sex'], 'email'=>$from_data['email'], 'role_id'=>$from_data['role_id'], ]); return ['success'=>true]; }else{ $errorinfo=collect($validator->messages())->implode('0','|'); return ['success'=>false,'errorinfo'=>$errorinfo]; } }else{ return view('admin.users.edit',compact('users')); } } public function delete(Request $request,Users $users){ if($request->isMethod('post')){ $result=$users->delete(); if($result){ return ['success'=>true]; }else{ return ['success'=>false]; } } } } ```