Commit 1fe5a024 by lujunyi

药店权限

parent f4a611f2
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
namespace App\Admin\Controllers; namespace App\Admin\Controllers;
use App\Admin\Repositories\DosageRepository; use App\Admin\Repositories\DosageRepository;
use App\Models\PharmacyModel; use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show; use Dcat\Admin\Show;
// 用法用量 // 用法用量
...@@ -20,8 +21,14 @@ class DosageController extends AdminController ...@@ -20,8 +21,14 @@ class DosageController extends AdminController
protected function grid() protected function grid()
{ {
return Grid::make(new DosageRepository('pharmacy'), function (Grid $grid) { return Grid::make(new DosageRepository('pharmacy'), function (Grid $grid) {
// 权限判断和数据过滤
if (! Admin::user()->pharmacy_id) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
$grid->model()->orderBy('id', 'DESC'); $grid->model()->orderBy('id', 'DESC');
$grid->model()->where('pharmacy_id', Admin::user()->pharmacy_id);
$grid->column('id')->sortable(); $grid->column('id')->sortable();
$grid->column('pharmacy.name', '药店'); $grid->column('pharmacy.name', '药店');
$grid->column('dosage_desc'); $grid->column('dosage_desc');
...@@ -50,6 +57,8 @@ protected function grid() ...@@ -50,6 +57,8 @@ protected function grid()
*/ */
protected function detail($id) protected function detail($id)
{ {
admin_exit(Content::make()->withError(trans('admin.deny')));
return Show::make($id, new DosageRepository(), function (Show $show) { return Show::make($id, new DosageRepository(), function (Show $show) {
$show->field('id'); $show->field('id');
$show->field('dosage_desc'); $show->field('dosage_desc');
...@@ -71,14 +80,25 @@ protected function detail($id) ...@@ -71,14 +80,25 @@ protected function detail($id)
protected function form() protected function form()
{ {
return Form::make(new DosageRepository(), function (Form $form) { return Form::make(new DosageRepository(), function (Form $form) {
// 权限判断和数据过滤
if (! Admin::user()->pharmacy_id) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
if ($form->isEditing() && (Admin::user()->pharmacy_id != $form->model()->pharmacy_id)) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
$form->display('id')->width(4); $form->display('id')->width(4);
$form->select('pharmacy_id')->options(PharmacyModel::all()->pluck('name', 'id'))->width(4)->required(); $form->hidden('pharmacy_id');
$form->text('dosage_desc')->width(4)->required(); $form->text('dosage_desc')->width(4)->required();
$form->textarea('dosage_show')->width(4)->required(); $form->textarea('dosage_show')->width(4)->required();
$form->display('created_at')->width(4); $form->display('created_at')->width(4);
$form->display('updated_at')->width(4); $form->display('updated_at')->width(4);
$form->saving(function (Form $form) {
// 不能动
$form->pharmacy_id = Admin::user()->pharmacy_id;
});
// 右上角按钮控制 // 右上角按钮控制
$form->disableDeleteButton(); // 去掉删除按钮 $form->disableDeleteButton(); // 去掉删除按钮
}); });
......
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
use App\Models\DosageModel; use App\Models\DosageModel;
use App\Models\DrugModel; use App\Models\DrugModel;
use App\Models\DrugUnitModel; use App\Models\DrugUnitModel;
use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show; use Dcat\Admin\Show;
// 药店-药品 // 药店-药品
...@@ -23,8 +25,14 @@ class PharmacyDrugController extends AdminController ...@@ -23,8 +25,14 @@ class PharmacyDrugController extends AdminController
protected function grid() protected function grid()
{ {
return Grid::make(new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Grid $grid) { return Grid::make(new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Grid $grid) {
// 权限判断和数据过滤
if (! Admin::user()->pharmacy_id) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
$grid->model()->orderBy('id', 'DESC'); $grid->model()->orderBy('id', 'DESC');
$grid->model()->where('pharmacy_id', Admin::user()->pharmacy_id);
$grid->column('id')->sortable(); $grid->column('id')->sortable();
$grid->column('pharmacy.name', '药店'); $grid->column('pharmacy.name', '药店');
// $grid->column('drug_id'); // $grid->column('drug_id');
...@@ -74,6 +82,8 @@ protected function grid() ...@@ -74,6 +82,8 @@ protected function grid()
*/ */
protected function detail($id) protected function detail($id)
{ {
admin_exit(Content::make()->withError(trans('admin.deny')));
return Show::make($id, new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Show $show) { return Show::make($id, new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Show $show) {
$show->field('id')->width(4); $show->field('id')->width(4);
$show->field('pharmacy.name', '药店')->width(4); $show->field('pharmacy.name', '药店')->width(4);
...@@ -97,7 +107,15 @@ protected function detail($id) ...@@ -97,7 +107,15 @@ protected function detail($id)
protected function form() protected function form()
{ {
return Form::make(new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Form $form) { return Form::make(new PharmacyDrugRepository(['drug', 'dosage', 'pharmacy']), function (Form $form) {
// 权限判断和数据过滤
if (! Admin::user()->pharmacy_id) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
if ($form->isEditing() && (Admin::user()->pharmacy_id != $form->model()->pharmacy_id)) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
$form->display('id')->width(4); $form->display('id')->width(4);
$form->hidden('pharmacy_id');
$form->text('pharmacy.name', '药店')->disable()->width(4); $form->text('pharmacy.name', '药店')->disable()->width(4);
$form->text('drug.name', '药品名称')->disable()->width(4); $form->text('drug.name', '药品名称')->disable()->width(4);
$form->select('unit')->options(DrugUnitModel::all()->pluck('name', 'id'))->width(4)->required(); $form->select('unit')->options(DrugUnitModel::all()->pluck('name', 'id'))->width(4)->required();
...@@ -108,6 +126,11 @@ protected function form() ...@@ -108,6 +126,11 @@ protected function form()
$form->display('created_at')->width(4); $form->display('created_at')->width(4);
$form->display('updated_at')->width(4); $form->display('updated_at')->width(4);
$form->saving(function (Form $form) {
// 不能动
$form->pharmacy_id = Admin::user()->pharmacy_id;
});
// 右上角按钮控制 // 右上角按钮控制
$form->disableDeleteButton(); // 去掉删除按钮 $form->disableDeleteButton(); // 去掉删除按钮
}); });
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
use App\Admin\Renderable\DrugTable; use App\Admin\Renderable\DrugTable;
use App\Models\DrugModel; use App\Models\DrugModel;
use App\Models\PharmacyDrugModel; use App\Models\PharmacyDrugModel;
use Dcat\Admin\Admin;
use Dcat\Admin\Contracts\LazyRenderable; use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Traits\LazyWidget; use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form; use Dcat\Admin\Widgets\Form;
...@@ -24,6 +26,9 @@ public function form() ...@@ -24,6 +26,9 @@ public function form()
public function handle(array $input) public function handle(array $input)
{ {
if (! Admin::user()->isRole('pharmacy') || ! Admin::user()->pharmacy_id) {
admin_exit(Content::make()->withError(trans('admin.deny')));
}
$ids = $input['ids']; $ids = $input['ids'];
if (! $ids) { if (! $ids) {
...@@ -33,9 +38,8 @@ public function handle(array $input) ...@@ -33,9 +38,8 @@ public function handle(array $input)
// $drug = DrugModel::find($id); // $drug = DrugModel::find($id);
$where = ['drug_id' => $id]; $where = ['drug_id' => $id];
$data = [ $data = [
'pharmacy_id' => $id, 'pharmacy_id' => Admin::user()->pharmacy_id,
'drug_id' => $id, 'drug_id' => $id,
'dosage_id' => 0,
]; ];
PharmacyDrugModel::updateOrCreate($where, $data); PharmacyDrugModel::updateOrCreate($where, $data);
} }
......
...@@ -54,12 +54,16 @@ ...@@ -54,12 +54,16 @@
/** 平台菜单-end **/ /** 平台菜单-end **/
/** 药店菜单-start **/ /** 药店菜单-start **/
// 药品管理 // 默认判断只有药店管理员角色才能访问
$router->resource('pharmacy-drug', 'PharmacyDrugController'); Route::group([
// 处方打印 'middleware' => 'admin.permission:allow,pharmacy',
$router->resource('prescription-print', 'PrescriptionPrintController'); ], function ($router) {
// 用法用量 // 药品管理
$router->resource('dosage', 'DosageController'); $router->resource('pharmacy-drug', 'PharmacyDrugController');
// 处方打印
$router->resource('prescription-print', 'PrescriptionPrintController');
// 用法用量
$router->resource('dosage', 'DosageController');
});
/** 药店菜单-end **/ /** 药店菜单-end **/
}); });
...@@ -17,7 +17,7 @@ public function up(): void ...@@ -17,7 +17,7 @@ public function up(): void
$table->bigInteger('pharmacy_id')->comment('药店ID'); $table->bigInteger('pharmacy_id')->comment('药店ID');
$table->bigInteger('drug_id')->comment('药品池ID'); $table->bigInteger('drug_id')->comment('药品池ID');
$table->integer('unit')->nullable()->comment('单位'); $table->integer('unit')->nullable()->comment('单位');
$table->bigInteger('dosage_id')->default(0)->comment('用法用量表ID'); $table->bigInteger('dosage_id')->nullable()->comment('用法用量表ID');
$table->string('batch_no', 64)->nullable()->comment('批次号'); $table->string('batch_no', 64)->nullable()->comment('批次号');
$table->unique(['pharmacy_id', 'drug_id'], 'uk_pharmacyid_drugid'); $table->unique(['pharmacy_id', 'drug_id'], 'uk_pharmacyid_drugid');
$table->timestamps(); $table->timestamps();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment