Przeglądaj źródła

排序,社区账号创建

whj 4 lat temu
rodzic
commit
61c1698272

+ 28 - 0
app/Community/Actions/Docter/AddUser.php

xqd
@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Community\Actions\Docter;
+
+use Encore\Admin\Admin;
+use Encore\Admin\Grid\Tools\AbstractTool;
+use Illuminate\Support\Facades\Request;
+
+class AddUser extends AbstractTool
+{
+    protected $url;
+    protected $icon;
+    protected $text;
+    function __construct($url,$icon,$text='')
+    {
+        $this->url = $url;
+        $this->icon = $icon;
+        $this->text = $text;
+    }
+
+    public function render()
+    {
+        $url = $this->url;
+        $icon = $this->icon;
+        $text = $this->text;
+        return view('cdms.button', compact('url','icon','text'));
+    }
+}

+ 1 - 1
app/Community/Controllers/DocterAccountController.php

xqd
@@ -45,7 +45,7 @@ class DocterAccountController extends  AdminController
         $form->ignore(['password_confirmation']);
 
         $form->hidden('org_id')->value(request('org_id'));
-        $form->hidden('docter_id')->value(request('docter_id'));
+        $form->hidden('docter_id')->value(request('docter_id',0));
         if($form->isEditing()){
             $reoute = request()->route()->parameters();
             $id = intval($reoute['docter_account']);

+ 11 - 3
app/Community/Controllers/DocterOrgController.php

xqd xqd
@@ -2,8 +2,9 @@
 
 namespace App\Community\Controllers;
 
-use App\Admin\Actions\Community\Docter\AddAccount;
 use App\Admin\Actions\Community\Docter\EditAccount;
+use App\Community\Actions\Docter\AddUser;
+use App\Admin\Actions\Community\Docter\AddAccount;
 use App\Community\Actions\Docter\ChangeType;
 use App\Models\CdmsUsers;
 use App\Models\Docter;
@@ -33,13 +34,20 @@ class DocterOrgController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new DocterOrganization());
-
-//        $grid->disableCreateButton(false);
         $is_manager = Admin::user()->isRole('manager');
         $grid->model()->orderByDesc('id');
         $grid->column('id', __('Id'));
         $grid->column('docter.name', __('成员名称'));
+        $org_id = Admin::user()->org_id;
+
+
         if($is_manager){
+            $grid->tools(function ($tools)use($org_id) {
+                $url = '/cdms/docter_account/create?org_id='.$org_id.'&docter_id=';
+                $icon = "fa-user";
+                $text = "创建账号";
+                $tools->append(new AddUser($url,$icon,$text));
+            });
             $grid->model()->where(['organization_id'=>Admin::user()->org_id]);
         } else {
             $grid->column('organization.name','所属机构')->display(function ($org_name){

+ 7 - 22
app/Community/Controllers/OrderVaccinesController.php

xqd xqd
@@ -49,27 +49,12 @@ class OrderVaccinesController extends AdminController
 //        $grid->model()->orderByDesc('orders.id');
         DB::enableQueryLog();
 
-//        if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
-//
-//            $grid->model()->leftJoin('order_patients','order_patients.order_id','=','orders.id')->orderByDesc('order_patients.appoint_start_time');
-//
-////            $grid->model()->whereHas('orderPatient',function($query){
-////                $query->orderBy( OrderPatient::select('appoint_start_time')
-////                    ->whereColumn('order_id', 'orders.id')
-////                    ->orderBy('appoint_start_time', 'asc'));
-////            });
-//
-////            $grid->model()->whereHas('orderPatient',function($query){
-////                $query->orderBy( 'appoint_start_time','asc');
-////            });
-//        } else {
-////            $grid->model()->whereHas('orderPatient',function($query){
-////                return $query->orderBy('appoint_start_time','desc')->groupBy('appoint_start_time');
-////            });
-//
-//            $grid->model()->leftJoin('order_patients','order_patients.order_id','=','orders.id')->orderBy('order_patients.appoint_start_time');
-//
-//        }
+        if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
+            $grid->model()->leftJoin('order_patients','order_patients.order_id','=','orders.id')->orderByDesc('order_patients.appoint_start_time');
+        } else {
+
+            $grid->model()->leftJoin('order_patients','order_patients.order_id','=','orders.id')->orderBy('order_patients.appoint_start_time');
+        }
 
 //        select bm_orders.*,bm_order_patients.appoint_end_time,bm_order_patients.appoint_start_time,bm_order_patients.name from `bm_orders`
 //left join `bm_order_patients` on `bm_order_patients`.`order_id` = `bm_orders`.`id` ORDER BY bm_order_patients.appoint_start_time asc;
@@ -106,7 +91,7 @@ class OrderVaccinesController extends AdminController
             // if(empty($this->orderPatient) || empty($this->orderPatient->appoint_start_time)) return '';
             return date('Y-m-d H:i',$w).'~'.date('H:i',$this->appoint_end_time);
         });
-        
+
         $grid->column('end_time', __('接种时间'))->display(function ($w){
             if(empty($w)) return '';
             return date('Y-m-d',$w);

+ 142 - 0
app/Community/Controllers/User/UserController.php

xqd
@@ -0,0 +1,142 @@
+<?php
+
+
+namespace App\Community\Controllers\User;
+
+
+use App\Models\CdmsUsers;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+use Encore\Admin\Facades\Admin;
+
+class UserController extends  AdminController
+{
+    protected $title = '管理账号';
+
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $userModel = config('admin.database.users_model');
+
+        $grid = new Grid(new $userModel());
+        $grid->disableCreateButton(false);
+        $org_id = Admin::user()->org_id;
+        $aid = Admin::user()->id;
+
+        if(!empty($org_id)){
+            $grid->model()->where('org_id',$org_id);
+        }
+        $grid->column('id', 'ID')->sortable();
+
+        $grid->column('username', trans('admin.username'));
+        $grid->column('name', trans('admin.name'));
+        $grid->column('roles', trans('admin.roles'))->pluck('name')->label();
+        $grid->column('created_at', trans('admin.created_at'));
+        $grid->column('updated_at', trans('admin.updated_at'));
+
+        $is_manager = Admin::user()->isRole('manager');
+        $grid->actions(function (Grid\Displayers\Actions $actions) use ($is_manager,$aid) {
+            $actions->disableDelete();
+        });
+
+        $grid->tools(function (Grid\Tools $tools) {
+            $tools->batch(function (Grid\Tools\BatchActions $actions) {
+                $actions->disableDelete();
+            });
+        });
+
+        return $grid;
+    }
+
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     *
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $userModel = config('admin.database.users_model');
+
+        $show = new Show($userModel::findOrFail($id));
+
+        $show->field('id', 'ID');
+        $show->field('username', trans('admin.username'));
+        $show->field('name', trans('admin.name'));
+        $show->field('roles', trans('admin.roles'))->as(function ($roles) {
+            return $roles->pluck('name');
+        })->label();
+        $show->field('permissions', trans('admin.permissions'))->as(function ($permission) {
+            return $permission->pluck('name');
+        })->label();
+        $show->field('created_at', trans('admin.created_at'));
+        $show->field('updated_at', trans('admin.updated_at'));
+
+        return $show;
+    }
+
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    public function form()
+    {
+        $userModel = config('tenancy.database.users_model');
+        $roleModel = config('tenancy.database.roles_model');
+
+
+        $org_id = Admin::user()->org_id;
+
+        $form = new Form(new $userModel());
+
+        $userTable = config('tenancy.database.users_table');
+        $connection = config('tenancy.database.connection');
+        $form->display('id', 'ID');
+        $form->text('username', trans('tenancy.username'))
+            ->creationRules(['required', "unique:{$connection}.{$userTable}"])
+            ->updateRules(['required', "unique:{$connection}.{$userTable},username,{{id}}"]);
+
+        $form->text('name', trans('tenancy.name'))->rules('required');
+        $form->image('avatar', trans('tenancy.avatar'));
+        $form->password('password', trans('tenancy.password'))->rules('required|confirmed');
+        $form->password('password_confirmation', trans('tenancy.password_confirmation'))->rules('required')
+            ->default(function ($form) {
+                return $form->model()->password;
+            });
+
+        $form->ignore(['password_confirmation']);
+
+        $form->hidden('org_id')->value($org_id);
+        $ids = [0,$org_id];
+
+        if($form->isEditing()){
+            $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::whereIn('org_id',$ids)->where('id','>',2)->get()->pluck('name', 'id'));
+        } else {
+            $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::whereIn('org_id',$ids)->where('id','>',2)->get()->pluck('name', 'id'));
+        }
+
+
+        $form->display('created_at', trans('tenancy.created_at'));
+        $form->display('updated_at', trans('tenancy.updated_at'));
+
+        $form->saving(function (Form $form) {
+            if ($form->password && $form->model()->password != $form->password) {
+                $form->password = bcrypt($form->password);
+            }
+        });
+
+
+        return $form;
+    }
+}

+ 1 - 1
config/tenancy.php

xqd
@@ -86,7 +86,7 @@ return [
     |
     */
 
-    'https' => env('ADMIN_HTTPS', true),
+    'https' => env('ADMIN_HTTPS', false),
 
     /*
     |--------------------------------------------------------------------------

+ 3 - 0
resources/views/cdms/button.blade.php

xqd
@@ -0,0 +1,3 @@
+<div class="btn">
+    <a class="btn btn-sm btn-success pull-right" href="{{$url}}" rel="external nofollow" ><i class="fa {{$icon}}"></i> {{$text}}</a>
+</div>