record
parent
32c8d2cae3
commit
9e3812f051
|
|
@ -57,7 +57,6 @@ class CategoryController extends AdminController
|
||||||
amisMake()->TableColumn()->name('key')->label(__('category.key')),
|
amisMake()->TableColumn()->name('key')->label(__('category.key')),
|
||||||
amisMake()->TableColumn()->name('name')->label(__('category.name')),
|
amisMake()->TableColumn()->name('name')->label(__('category.name')),
|
||||||
// amisMake()->TableColumn()->name('content')->label(__('category.content')),
|
// amisMake()->TableColumn()->name('content')->label(__('category.content')),
|
||||||
amisMake()->TextareaControl()->static()->name('content')->label(__('category.content')),
|
|
||||||
$this->rowActions(true, 'lg'),
|
$this->rowActions(true, 'lg'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ use Slowlyo\OwlAdmin\Renderers\Form;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||||
use App\Models\{Keyword, Patient};
|
use App\Models\{Keyword, Patient};
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 病人管理
|
* 病人管理
|
||||||
|
|
@ -57,6 +58,7 @@ class PatientController extends AdminController
|
||||||
amisMake()->DateControl()->name('birthday')->label(__('patient.birthday')),
|
amisMake()->DateControl()->name('birthday')->label(__('patient.birthday')),
|
||||||
amisMake()->DateControl()->name('treat_at')->label(__('patient.treat_at')),
|
amisMake()->DateControl()->name('treat_at')->label(__('patient.treat_at')),
|
||||||
Components::make()->adminUserSelectControl()->name('doctor_id')->label(__('patient.doctor_id')),
|
Components::make()->adminUserSelectControl()->name('doctor_id')->label(__('patient.doctor_id')),
|
||||||
|
amisMake()->ImageControl()->multiple()->receiver(admin_url('upload_image') . '?full-url=1')->name('images')->label(__('patient.images')),
|
||||||
Components::make()->fuEditorControl()->name('illness')->label(__('patient.illness')),
|
Components::make()->fuEditorControl()->name('illness')->label(__('patient.illness')),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
@ -118,6 +120,7 @@ class PatientController extends AdminController
|
||||||
amisMake()->TextControl()->name('address')->label(__('patient.address'))->static(),
|
amisMake()->TextControl()->name('address')->label(__('patient.address'))->static(),
|
||||||
amisMake()->DateControl()->name('birthday')->label(__('patient.birthday'))->static(),
|
amisMake()->DateControl()->name('birthday')->label(__('patient.birthday'))->static(),
|
||||||
amisMake()->DateControl()->name('treat_format')->label(__('patient.treat_at'))->static(),
|
amisMake()->DateControl()->name('treat_format')->label(__('patient.treat_at'))->static(),
|
||||||
|
amisMake()->TextControl()->name('images')->label(__('patient.images'))->static()->staticSchema(amisMake()->Images()),
|
||||||
amisMake()->TextControl()->name('doctor.name')->label(__('patient.doctor_id'))->static(),
|
amisMake()->TextControl()->name('doctor.name')->label(__('patient.doctor_id'))->static(),
|
||||||
Components::make()->fuEditorControl()->name('illness')->label(__('patient.illness'))->static(),
|
Components::make()->fuEditorControl()->name('illness')->label(__('patient.illness'))->static(),
|
||||||
amisMake()->TextControl()->name('created_at')->label(__('patient.created_at'))->static(),
|
amisMake()->TextControl()->name('created_at')->label(__('patient.created_at'))->static(),
|
||||||
|
|
@ -125,11 +128,11 @@ class PatientController extends AdminController
|
||||||
amisMake()->Tab()->title('病历记录')->body(amisMake()->Service()
|
amisMake()->Tab()->title('病历记录')->body(amisMake()->Service()
|
||||||
->api(admin_url('/record?_action=getData&page=1&patient_id='.$id.'&perPage=20'))
|
->api(admin_url('/record?_action=getData&page=1&patient_id='.$id.'&perPage=20'))
|
||||||
->body(amisMake()->Table()->columns([
|
->body(amisMake()->Table()->columns([
|
||||||
amisMake()->TableColumn()->name('id')->label(__('patient_record.id')),
|
amisMake()->TableColumn()->name('id')->label(__('patient-record.id')),
|
||||||
amisMake()->Mapping()->map($this->getTypeOptions()->pluck('label', 'value'))->name('type_id')->label(__('patient_record.type_id')),
|
amisMake()->Mapping()->map($this->getTypeOptions()->pluck('label', 'value'))->name('type_id')->label(__('patient-record.type_id')),
|
||||||
amisMake()->TableColumn()->name('treat_at')->label(__('patient_record.treat_at')),
|
amisMake()->TableColumn()->name('treat_at')->label(__('patient-record.treat_at')),
|
||||||
amisMake()->TableColumn()->name('next_treat_at')->label(__('patient_record.next_treat_at')),
|
amisMake()->TableColumn()->name('next_treat_at')->label(__('patient-record.next_treat_at')),
|
||||||
amisMake()->TableColumn()->name('doctor.name')->label(__('patient_record.doctor_id')),
|
amisMake()->TableColumn()->name('doctor.name')->label(__('patient-record.doctor_id')),
|
||||||
])->affixRow([
|
])->affixRow([
|
||||||
amisMake()->Button()->level('link')->label('查看更多')->colSpan(5)->actionType('link')->link(admin_url('/record?patient_id=' . $id)),
|
amisMake()->Button()->level('link')->label('查看更多')->colSpan(5)->actionType('link')->link(admin_url('/record?patient_id=' . $id)),
|
||||||
])
|
])
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ class PatientRecordController extends AdminController
|
||||||
amisMake()->NumberControl()->name('origin_price')->label(__('patient-record.origin_price'))->required(),
|
amisMake()->NumberControl()->name('origin_price')->label(__('patient-record.origin_price'))->required(),
|
||||||
amisMake()->NumberControl()->name('sell_price')->label(__('patient-record.sell_price'))->required(),
|
amisMake()->NumberControl()->name('sell_price')->label(__('patient-record.sell_price'))->required(),
|
||||||
amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->default(OrderStatus::Success->value)->required(),
|
amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->default(OrderStatus::Success->value)->required(),
|
||||||
|
amisMake()->ImageControl()->multiple()->receiver(admin_url('upload_image') . '?full-url=1')->name('images')->label(__('patient-record.images')),
|
||||||
amisMake()->Service()
|
amisMake()->Service()
|
||||||
->className('cxd-Form-item')
|
->className('cxd-Form-item')
|
||||||
->id('patient_record_form_content_service')
|
->id('patient_record_form_content_service')
|
||||||
|
|
@ -98,6 +99,7 @@ class PatientRecordController extends AdminController
|
||||||
amisMake()->TextControl()->name('origin_price')->label(__('patient-record.origin_price'))->static(),
|
amisMake()->TextControl()->name('origin_price')->label(__('patient-record.origin_price'))->static(),
|
||||||
amisMake()->TextControl()->name('sell_price')->label(__('patient-record.sell_price'))->static(),
|
amisMake()->TextControl()->name('sell_price')->label(__('patient-record.sell_price'))->static(),
|
||||||
amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->static(),
|
amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->static(),
|
||||||
|
amisMake()->TextControl()->name('images')->label(__('patient.images'))->static()->staticSchema(amisMake()->Images()),
|
||||||
Components::make()->fuEditorControl()->name('content')->label(__('patient-record.content'))->static(),
|
Components::make()->fuEditorControl()->name('content')->label(__('patient-record.content'))->static(),
|
||||||
amisMake()->DateTimeControl()->name('next_treat_at')->label(__('patient-record.next_treat_at'))->static(),
|
amisMake()->DateTimeControl()->name('next_treat_at')->label(__('patient-record.next_treat_at'))->static(),
|
||||||
amisMake()->TextControl()->name('notify_user.name')->label(__('patient-record.notify_user_id'))->static(),
|
amisMake()->TextControl()->name('notify_user.name')->label(__('patient-record.notify_user_id'))->static(),
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,9 @@ class PatientRecordService extends BaseService
|
||||||
if (!$creator_id) {
|
if (!$creator_id) {
|
||||||
$data['creator_id'] = data_get(Admin::user(), 'id');
|
$data['creator_id'] = data_get(Admin::user(), 'id');
|
||||||
}
|
}
|
||||||
|
if ($images = data_get($data, 'images')) {
|
||||||
|
$data['images'] = is_array($images) ? $images : explode(',', $images);
|
||||||
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
namespace App\Admin\Services;
|
namespace App\Admin\Services;
|
||||||
|
|
||||||
use App\ModelFilters\PatientFilter;
|
use App\ModelFilters\PatientFilter;
|
||||||
use App\Models\Patient;
|
use App\Models\{Patient, PatientRecord};
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
class PatientService extends BaseService
|
class PatientService extends BaseService
|
||||||
|
|
@ -39,6 +39,9 @@ class PatientService extends BaseService
|
||||||
*/
|
*/
|
||||||
public function resloveData($data)
|
public function resloveData($data)
|
||||||
{
|
{
|
||||||
|
if ($images = data_get($data, 'images')) {
|
||||||
|
$data['images'] = is_array($images) ? $images : explode(',', $images);
|
||||||
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,6 +73,8 @@ class PatientService extends BaseService
|
||||||
*/
|
*/
|
||||||
public function preDelete(array $ids)
|
public function preDelete(array $ids)
|
||||||
{
|
{
|
||||||
|
// 删除就诊记录
|
||||||
|
PatientRecord::whereIn('patient_id', $ids)->delete();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ class Patient extends Model
|
||||||
{
|
{
|
||||||
use HasDateTimeFormatter, Filterable;
|
use HasDateTimeFormatter, Filterable;
|
||||||
|
|
||||||
protected $fillable = ['name', 'sex', 'phone', 'address', 'birthday', 'treat_at', 'illness', 'doctor_id', 'remarks'];
|
protected $fillable = ['name', 'sex', 'phone', 'address', 'birthday', 'treat_at', 'illness', 'doctor_id', 'remarks', 'images'];
|
||||||
|
|
||||||
protected $appends = ['age', 'sex_text', 'treat_format', 'birthday_format'];
|
protected $appends = ['age', 'sex_text', 'treat_format', 'birthday_format'];
|
||||||
|
|
||||||
|
|
@ -24,6 +24,7 @@ class Patient extends Model
|
||||||
'sex' => Gender::class,
|
'sex' => Gender::class,
|
||||||
'treat_at' => 'date',
|
'treat_at' => 'date',
|
||||||
'birthday' => 'date',
|
'birthday' => 'date',
|
||||||
|
'images' => 'json',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected function age(): Attribute
|
protected function age(): Attribute
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ class PatientRecord extends Model
|
||||||
{
|
{
|
||||||
use HasDateTimeFormatter, Filterable;
|
use HasDateTimeFormatter, Filterable;
|
||||||
|
|
||||||
protected $fillable = ['patient_id', 'type_id', 'treat_at', 'doctor_id', 'content', 'origin_price', 'sell_price', 'order_status', 'notify_at', 'notify_user_id', 'notify_remarks', 'is_notified', 'next_treat_at', 'creator_id'];
|
protected $fillable = ['patient_id', 'type_id', 'treat_at', 'doctor_id', 'content', 'origin_price', 'sell_price', 'order_status', 'notify_at', 'notify_user_id', 'notify_remarks', 'is_notified', 'next_treat_at', 'creator_id', 'images'];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'order_status' => OrderStatus::class,
|
'order_status' => OrderStatus::class,
|
||||||
|
|
@ -25,6 +25,7 @@ class PatientRecord extends Model
|
||||||
'next_treat_at' => 'datetime',
|
'next_treat_at' => 'datetime',
|
||||||
'origin_price' => 'float',
|
'origin_price' => 'float',
|
||||||
'sell_price' => 'float',
|
'sell_price' => 'float',
|
||||||
|
'images' => 'json',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function patient()
|
public function patient()
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ return new class extends Migration
|
||||||
$table->date('birthday')->nullable()->comment('出生年月');
|
$table->date('birthday')->nullable()->comment('出生年月');
|
||||||
$table->dateTime('treat_at')->nullable()->comment('初诊时间');
|
$table->dateTime('treat_at')->nullable()->comment('初诊时间');
|
||||||
$table->text('illness')->nullable()->comment('病情描述');
|
$table->text('illness')->nullable()->comment('病情描述');
|
||||||
|
$table->json('images')->nullable()->comment('图片');
|
||||||
$table->unsignedBigInteger('doctor_id')->nullable()->comment('坐诊医生, admin_users.id');
|
$table->unsignedBigInteger('doctor_id')->nullable()->comment('坐诊医生, admin_users.id');
|
||||||
$table->string('remarks')->nullable()->comment('备注');
|
$table->string('remarks')->nullable()->comment('备注');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ return new class extends Migration
|
||||||
$table->timestamp('treat_at')->comment('就诊时间');
|
$table->timestamp('treat_at')->comment('就诊时间');
|
||||||
$table->unsignedBigInteger('doctor_id')->comment('医生, admin_users.id');
|
$table->unsignedBigInteger('doctor_id')->comment('医生, admin_users.id');
|
||||||
$table->text('content')->comment('就诊情况');
|
$table->text('content')->comment('就诊情况');
|
||||||
|
$table->json('images')->nullable()->comment('图片');
|
||||||
$table->decimal('origin_price')->default(0)->comment('划线价');
|
$table->decimal('origin_price')->default(0)->comment('划线价');
|
||||||
$table->decimal('sell_price')->default(0)->comment('实收价');
|
$table->decimal('sell_price')->default(0)->comment('实收价');
|
||||||
$table->unsignedTinyInteger('order_status')->default(0)->comment('状态(0: 未收, 1: 已收)');
|
$table->unsignedTinyInteger('order_status')->default(0)->comment('状态(0: 未收, 1: 已收)');
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,5 @@ return [
|
||||||
'next_treat_at' => '下次就诊时间',
|
'next_treat_at' => '下次就诊时间',
|
||||||
'creator_id' => '操作人',
|
'creator_id' => '操作人',
|
||||||
'created_at' => '录入时间',
|
'created_at' => '录入时间',
|
||||||
|
'images' => '图片资料',
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,5 @@ return [
|
||||||
'age' => '年龄',
|
'age' => '年龄',
|
||||||
'remarks' => '备注',
|
'remarks' => '备注',
|
||||||
'created_at' => '录入时间',
|
'created_at' => '录入时间',
|
||||||
|
'images' => '图片资料',
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>宝芝堂</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
|
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>宝芝堂</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
|
||||||
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/h5/static/index.5841170f.css"/><script defer="defer" src="/h5/static/js/chunk-vendors.7032a432.js"></script><script defer="defer" src="/h5/static/js/index.8da149ba.js"></script></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div></body></html>
|
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/h5/static/index.5841170f.css"/><script defer="defer" src="/h5/static/js/chunk-vendors.7eabb1da.js"></script><script defer="defer" src="/h5/static/js/index.fbd5122b.js"></script></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div></body></html>
|
||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue