Ver código fonte

服务包管理

jingyuzhi 4 anos atrás
pai
commit
71db8b76dc

+ 24 - 0
app/Admin/Actions/Serve/Addmember.php

xqd
@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Admin\Actions\Serve;
+
+use Encore\Admin\Actions\RowAction;
+use Illuminate\Database\Eloquent\Model;
+
+class Addmember extends RowAction
+{
+    public $name = '添加成员';
+
+//    public function form(){
+//       TeamDocter::insert();
+//      $this->multipleSelect('member', '成员选择')->options(function ($ids) {
+//           return Docter::where('is_then', 1)->pluck('name', 'id');
+//       });
+//    }
+    public function handle(Model $model)
+    {
+        // $request ...
+//        TeamDocter::insert();
+        return $this->response()->success('跳转成功成功')->redirect('/admin/team_docter?team_id='.$this->row->id.'');
+    }
+}

+ 19 - 0
app/Admin/Actions/Serve/member.php

xqd
@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Admin\Actions\Serve;
+
+use Encore\Admin\Actions\Action;
+use Illuminate\Http\Request;
+use App\Models\Docter;
+
+class member extends Action
+{
+//    protected $selector = '.member';
+
+    public function handle(Request $request)
+    {
+        // $request ...
+        $provinceId = $request->get('q');
+        return Docter::where('is_then', 1)->get(['id', DB::raw('name as text')]);
+    }
+}

+ 45 - 0
app/Admin/Controllers/OpenPackController.php

xqd
@@ -0,0 +1,45 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Models\Team;
+use App\Models\Order;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Grid;
+
+class OpenPackController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = 'Order';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Order());
+
+        $grid->model()->where('product_type','6');
+        $grid->column('id', __('订单ID'));
+        $grid->column('user_id', __('用户ID'));
+        $grid->column('user.name','用户姓名');
+        $grid->column('patients.name', __('患者名称'));
+        $grid->column('orderPack.service_pack_id', __('服务包ID'));
+        $grid->column('orderPack.pack_name', __('服务包名称'));
+        $grid->column('orderPack.pack_price', __('服务包价格'));
+        $grid->column('orderPack.team_id', __('所属团队'))->display(function ($model){
+            $name = Team::where('id',$model)->value('name');
+            return $name;
+        });
+        $grid->column('created_at', __('Created at'));
+        $grid->column('updated_at', __('Updated at'));
+
+        return $grid;
+    }
+}

+ 3 - 3
app/Admin/Controllers/ServicePacksController.php

xqd xqd
@@ -44,7 +44,7 @@ class ServicePacksController extends AdminController
             return 0;
         })->label('info');
         $grid->column('price', __('价格'));
-        $grid->column('team_id', __('团队名称'));
+        $grid->column('team.name', __('团队名称'));
         $grid->column('image','图片')->image('','50','50');
         $grid->column('phone_minutes', __('电话次数(分钟)'));
         $grid->column('chat_num', __('图文次数'));
@@ -100,8 +100,8 @@ class ServicePacksController extends AdminController
 //        $form->number('vaccine_limit_amount', __('计免次数'))->default(0);
 //        $form->number('nurses_limit_amount', __('儿保次数'))->default(0);
         $form->text('effective_days', __('服务时长(秒)'))->default(0);
-        $form->text('insurance_policy', __('保单名称'))->rules('required' ,['required'=>'请填写保单名称!']);;
-        $form->text('insurance_img_url', __('保单图片链接'))->rules('required' ,['required'=>'请填写保单图片链接!']);;
+        $form->text('insurance_policy', __('保单名称'))->rules('required' ,['required'=>'请填写保单名称!']);
+        $form->text('insurance_img_url', __('保单图片链接'))->rules('required' ,['required'=>'请填写保单图片链接!']);
 
         return $form;
     }

+ 80 - 0
app/Admin/Controllers/TeamController.php

xqd
@@ -0,0 +1,80 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Admin\Actions\Serve\Addmember;
+use App\Models\Docter;
+use App\Models\Team;
+use App\Models\TeamDocter;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+use Encore\Admin\Widgets\Table;
+
+class TeamController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = 'Team';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new Team());
+
+        $grid->column('id', __('Id'));
+        $grid->column('name', __('团队名称'));
+        $grid->column('introduction','简介')->limit(15,'...')->width(200);
+        $grid->column('member','成员查看')->display(function (){
+            return '点击查看';
+        })->modal('成员列表', function ($model){
+            $docters = $model->docter()->get()->map(function ($docter) {
+                return $docter->only(['id', 'name']);
+            });
+            return new Table(['医生ID', '医生名称'], $docters->toArray());
+        });
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+        $status = [
+            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'success'],
+        ];
+        $grid->column('status', __('状态'))->switch($status);
+        $grid->actions(function ($actions) {
+            // 去掉查看
+            $actions->disableView();
+        });
+        $grid->actions(function ($actions) {
+            $actions->add(new Addmember);
+        });
+
+        return $grid;
+    }
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new Team());
+        $form->text('name', __('团队名称'))->rules('required' ,['required'=>'请填写团队名称!']);
+        $form->text('introduction','简介')->rules('required' ,['required'=>'请填写团队简介!']);
+        $status = [
+            'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
+            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'success'],
+        ];
+        $form->switch('status', __('Status'))->states($status);
+
+        return $form;
+    }
+
+}

+ 63 - 0
app/Admin/Controllers/TeamDocterController.php

xqd
@@ -0,0 +1,63 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Models\TeamDocter;
+use App\Models\Docter;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class TeamDocterController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = 'TeamDocter';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new TeamDocter());
+
+        $grid->filter(function ($filter){
+            $filter->disableIdFilter();
+            $filter->equal('team_id','团队');
+        });
+        $grid->column('id', __('Id'));
+        $grid->column('docter_id', __('医生ID'));
+        $grid->column('docter.name', __('医生姓名'));
+        $grid->column('team.name', __('团队名称'));
+        $grid->column('team.introduction', __('团队简介'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new TeamDocter());
+        $form->select('docter_id', __('医生名称'))->options(function (){
+            return Docter::where('is_then', 1)->pluck('name', 'id');
+        });
+//        $form->saving(function (Form $form){
+//           $form -> team_id = $form ->
+//        });
+        $form->text('team_id', __('Team id'));
+
+        return $form;
+    }
+}

+ 1 - 1
app/Admin/routes.php

xqd
@@ -51,7 +51,7 @@ Route::group([
     $router->resource('service_packs', ServicePacksController::class);
     $router->resource('team_docter',TeamDocterController::class);
     //服务包管理->开通记录
-    $router->resource('open_Pack', OpenPackController::class);
+    $router->resource('open_pack', OpenPackController::class);
 
     $router->resource('/setting', 'Config\ConfigController');
     $router->get('/setting_form', 'Config\FormController@form');

+ 3 - 0
app/Models/Order.php

xqd
@@ -31,6 +31,9 @@ class Order extends BaseModel
         return $this->belongsTo(Docter::class);
     }
 
+    public function patients(){
+        return $this->belongsTo(Patient::class);
+    }
     public function orderPatient()
     {
         return $this->hasOne(OrderPatient::class);

+ 3 - 0
app/Models/Patient.php

xqd
@@ -45,4 +45,7 @@ class Patient extends BaseModel
     public function users(){
         return $this->hasOne(User::class,'id','user_id');
     }
+    public function order(){
+        return $this->hasMany(Order::class);
+    }
 }