完善入住表单样式逻辑
parent
387d78522e
commit
2a00cf2dd6
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Admin\Components;
|
||||
use App\Models\Keyword;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
|
|
@ -54,4 +55,209 @@ class LiveInController extends AdminController
|
|||
|
||||
]);
|
||||
}
|
||||
|
||||
public function doForm(){
|
||||
|
||||
$feeArr = $helpMsg = $feeKeys =[];
|
||||
$targetStr = '';
|
||||
|
||||
$targetStr .= 'add_extends=${add_extends}';
|
||||
$feeKeys['add_extends'] = '${add_extends}';
|
||||
|
||||
$targetStr .= '&del_extends=${del_extends}';
|
||||
$feeKeys['del_extends'] = '${del_extends}';
|
||||
|
||||
foreach(Keyword::getByParentKey('live_fee') as $fee){
|
||||
$targetStr .= '&'.$fee->key.'=${'.$fee->key.'}';
|
||||
$feeKeys[$fee->key] = '${'.$fee->key.'}';
|
||||
}
|
||||
$page = $this->basePage()->body([
|
||||
amisMake()->Card()->className('border-0')->body(
|
||||
amisMake()->Wrapper()->className('p-0')->body(
|
||||
amisMake()->Grid()->columns([
|
||||
amisMake()->Wrapper()->sm(8)->body([
|
||||
amisMake()->Panel()->title('入住表单')->body(
|
||||
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')
|
||||
->data(array_merge([
|
||||
|
||||
], $helpMsg))
|
||||
->api(admin_url('live-in-do'))
|
||||
->body([
|
||||
amisMake()->FieldSetControl()->title('入住人信息')->collapsable(true)->body([
|
||||
amisMake()->Service()->api([
|
||||
"method"=>'get',
|
||||
"url" => admin_url('oldmen/${oldman_id}/edit'),
|
||||
"data"=>[
|
||||
'_action' => 'getData',
|
||||
],
|
||||
"sendOn" => "this.oldman_id > 0 "
|
||||
]),
|
||||
amisMake()->GroupControl()->body([
|
||||
amisMake()->PickerControl('oldman_id', '姓名')
|
||||
->valueField('id')
|
||||
->labelField('name')
|
||||
->joinValues(false)->extractValue(true)
|
||||
->size('lg')
|
||||
->source([
|
||||
'method' => 'get',
|
||||
'url' => admin_url('oldmen?_action=getData'),
|
||||
'data' => [
|
||||
'name'=>'${term}',
|
||||
]
|
||||
])
|
||||
->pickerSchema(
|
||||
[
|
||||
'mode' => 'table',
|
||||
'name' => 'monitor_list',
|
||||
'headerToolbar' => amisMake()->form()
|
||||
->wrapWithPanel(false)
|
||||
->className('text-right')
|
||||
->target('monitor_list')
|
||||
->mode('inline')
|
||||
->body([
|
||||
amisMake()->TextControl('term', '姓名/身份证号')->addOn(
|
||||
amis('submit')->label(__('admin.search'))->level('primary')
|
||||
)
|
||||
]),
|
||||
'columns' => [
|
||||
TableColumn::make()->name('name')->label('姓名'),
|
||||
TableColumn::make()->name('card_no')->label('身份证号码'),
|
||||
]
|
||||
]
|
||||
)->value(0)
|
||||
->required(true),
|
||||
|
||||
amisMake()->RadiosControl('sex', '性别')->options([
|
||||
1=>'男',2=>'女'
|
||||
])->disabled(true),
|
||||
]),
|
||||
amisMake()->GroupControl()->body([
|
||||
amisMake()->TextControl('card_no', '身份证号码')->disabled(true),
|
||||
amisMake()->DateControl('birthday', '出生日期')->format('YYYY-MM-DD')->disabled(true),
|
||||
]),
|
||||
|
||||
amisMake()->GroupControl()->body([
|
||||
amisMake()->TextControl('floor_name', '楼栋')->disabled(true),
|
||||
amisMake()->TextControl('agreement_no', '协议号码')->disabled(true),
|
||||
]),
|
||||
amisMake()->RadiosControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->disabled(true),
|
||||
amisMake()->DateRangeControl('live_in_date', '入住时间')->format('YYYY-MM-DD')->ranges([])->required(true),
|
||||
]),
|
||||
|
||||
|
||||
amisMake()->FieldSetControl()->className('mt-10')->title('费用明细')->collapsable(true)->body(
|
||||
amisMake()->Service()->schemaApi([
|
||||
"method"=>'get',
|
||||
"url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}',
|
||||
])
|
||||
),
|
||||
|
||||
amisMake()->FieldSetControl()->className('mt-10')->title('附加项')->collapsable(true)->body([
|
||||
amisMake()->ComboControl('add_extends','收费项')->multiple(true)->items([
|
||||
amisMake()->TextControl('name', '名称'),
|
||||
Components::make()->decimalControl('fee', '金额')
|
||||
]),
|
||||
amisMake()->ComboControl('del_extends','抵扣项')->multiple(true)->items([
|
||||
amisMake()->TextControl('name', '名称'),
|
||||
Components::make()->decimalControl('fee', '金额')
|
||||
]),
|
||||
]),
|
||||
])
|
||||
->actions([
|
||||
amis('button')->label("生成清单")->level('primary')
|
||||
->onEvent([
|
||||
'click'=>[
|
||||
'actions'=>[
|
||||
[
|
||||
'actionType'=>'reload',
|
||||
'componentId'=>'fee_table'
|
||||
],
|
||||
[
|
||||
'actionType'=>'setValue',
|
||||
'componentId'=>'fee_table',
|
||||
'args'=>[
|
||||
'value'=> $feeKeys
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]),
|
||||
amis('submit')->label('确认入住')->level('danger'),
|
||||
]),
|
||||
),
|
||||
]),
|
||||
amisMake()->Wrapper()->sm(4)->body([
|
||||
amisMake()->Panel()->title('结算清单')->body([
|
||||
amisMake()->Service()->name('fee_table_name')->id('fee_table')
|
||||
->data($feeKeys)
|
||||
->body(
|
||||
amisMake()->table()->affixHeader(false)
|
||||
->title('')
|
||||
->source('${rows}')
|
||||
->combineNum(2)
|
||||
->columns([
|
||||
amisMake()->TableColumn()->name('name')->label('名称'),
|
||||
amisMake()->TableColumn()->name('fee_name')->label('费用项'),
|
||||
amisMake()->TableColumn()->name('fee_value')->label('费用'),
|
||||
])->affixRow([
|
||||
amis('text')->text('合计')->colSpan(2),
|
||||
amis('tpl')->tpl('${SUM(ARRAYMAP(rows, item => item.fee_value))}')
|
||||
]),
|
||||
)->api([
|
||||
'method'=>'get',
|
||||
'data'=> $feeKeys,
|
||||
'url' =>admin_url('live-in-feelist')
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
)
|
||||
),
|
||||
]);
|
||||
|
||||
return $this->response()->success($page);
|
||||
}
|
||||
|
||||
public function liveInFeelist(Request $request){
|
||||
$rows = $addFee = $delFee = [];
|
||||
foreach($request->input() as $key => $value){
|
||||
if($key == 'add_extends'){
|
||||
if(is_array($value)){
|
||||
$addFee = $value;
|
||||
}
|
||||
}elseif($key == 'del_extends'){
|
||||
if(is_array($value)){
|
||||
$delFee = $value;
|
||||
}
|
||||
}else{
|
||||
$_fee = Keyword::where('key', $key)->first();
|
||||
$rows[] = [
|
||||
'name' => $_fee->parent->name,
|
||||
'fee_name' => $_fee->name,
|
||||
'fee_value' => $value,
|
||||
];
|
||||
}
|
||||
}
|
||||
foreach($addFee as $item){
|
||||
$rows[] = [
|
||||
'name' => '收费项',
|
||||
'fee_name' => $item['name'],
|
||||
'fee_value' => $item['fee'],
|
||||
];
|
||||
}
|
||||
foreach($delFee as $item){
|
||||
$rows[] = [
|
||||
'name' => '抵扣项',
|
||||
'fee_name' => $item['name'],
|
||||
'fee_value' => 0-$item['fee'],
|
||||
];
|
||||
}
|
||||
return $this->response()->success([
|
||||
'rows'=> $rows,
|
||||
]);
|
||||
}
|
||||
|
||||
public function do(Request $request){
|
||||
dd($request);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ use Slowlyo\OwlAdmin\Renderers\TableColumn;
|
|||
use Slowlyo\OwlAdmin\Renderers\TextControl;
|
||||
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
||||
use App\Services\Admin\OldmenService;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Admin\Components;
|
||||
|
||||
/**
|
||||
* @property OldmenService $service
|
||||
|
|
@ -19,6 +21,12 @@ class OldmenController extends AdminController
|
|||
|
||||
protected string $pageTitle = '客人管理';
|
||||
|
||||
public function options(){
|
||||
$list = $this->service->listQuery()->select(['id as value', 'name as label'])->get();
|
||||
|
||||
return $this->response()->success($list);
|
||||
}
|
||||
|
||||
public function list(): Page
|
||||
{
|
||||
$crud = $this->baseCRUD()
|
||||
|
|
@ -80,7 +88,7 @@ class OldmenController extends AdminController
|
|||
amisMake()->TextControl('floor_name', '楼栋'),
|
||||
amisMake()->TextControl('agreement_no', '协议号码'),
|
||||
]),
|
||||
amisMake()->RadiosControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->required(true)->disabledOn('data.id > 0'),
|
||||
amisMake()->RadiosControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->required(true)->disabledOn('data.live_in > 0'),
|
||||
]),
|
||||
amisMake()->FieldSetControl()->className('mt-10')->title('委托人信息')->collapsable(true)->body([
|
||||
amisMake()->GroupControl()->body([
|
||||
|
|
@ -103,4 +111,54 @@ class OldmenController extends AdminController
|
|||
TextControl::make()->static()->name('updated_at')->label(__('admin.updated_at'))
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取编辑页面
|
||||
*
|
||||
* @param $id
|
||||
*
|
||||
* @return JsonResponse|JsonResource
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$this->isEdit = true;
|
||||
|
||||
if ($this->actionOfGetData()) {
|
||||
$data = null;
|
||||
if($id){
|
||||
$data = $this->service->getEditData($id);
|
||||
}
|
||||
return $this->response()->success($data);
|
||||
}
|
||||
|
||||
$form = amisMake()
|
||||
->Card()
|
||||
->className('base-form')
|
||||
->header(['title' => __('admin.edit')])
|
||||
->toolbar([$this->backButton()])
|
||||
->body(
|
||||
$this->form(true)->api($this->getUpdatePath())->initApi($this->getEditGetDataPath())
|
||||
);
|
||||
|
||||
$page = $this->basePage()->body($form);
|
||||
|
||||
return $this->response()->success($page);
|
||||
}
|
||||
|
||||
public function liveSchemaForm(Request $request)
|
||||
{
|
||||
$type = $request->input('type', 'live_fee');
|
||||
|
||||
foreach(Keyword::getByParentKey($type) as $fee){
|
||||
$_feeValue = 0;
|
||||
if($fee == 'live_base_fee'){
|
||||
|
||||
}
|
||||
$feeArr[] = Components::make()->decimalControl($fee->key, $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:'.$_feeValue));
|
||||
}
|
||||
|
||||
return $this->response()->success($feeArr);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use Illuminate\Http\Request;
|
|||
use Slowlyo\OwlAdmin\Renderers\Tab;
|
||||
use Slowlyo\OwlAdmin\Renderers\Tabs;
|
||||
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
||||
use App\Models\Oldmen;
|
||||
|
||||
class SettingController extends AdminController
|
||||
{
|
||||
|
|
@ -22,6 +23,12 @@ class SettingController extends AdminController
|
|||
|
||||
public function form()
|
||||
{
|
||||
// dd([
|
||||
// 'a'=>
|
||||
// amis('object')->title('养老费')->additionalProperties(false)->properties([
|
||||
// 'year'=>amis('number')->title('年')
|
||||
// ]),
|
||||
// ]);
|
||||
return $this->baseForm()
|
||||
->redirect('')
|
||||
->api($this->getStorePath())
|
||||
|
|
@ -32,8 +39,8 @@ class SettingController extends AdminController
|
|||
Tabs::make()->tabs([
|
||||
Tab::make()->title('基本设置')->body([
|
||||
amisMake()->NumberControl('live_continue_day','续住提醒')->value(0)->size('lg')->description('设置该项,提前对应天数在续住列表中显示提醒;0天则直到欠费才提醒'),
|
||||
])
|
||||
])
|
||||
]),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -45,4 +52,16 @@ class SettingController extends AdminController
|
|||
|
||||
return settings()->adminSetMany($data);
|
||||
}
|
||||
|
||||
public function queryFeeHelp($nurseLv, $dateRange, Request $request){
|
||||
$data = [];
|
||||
//入住推荐金额
|
||||
// $liveInSetting =
|
||||
$data['live_base_fee_help'] = 1000;
|
||||
$data['physical_help'] = 1000;
|
||||
$data['heating_help'] = 1000;
|
||||
$data['bedding_help'] = 1000;
|
||||
//续住推荐金额
|
||||
return $this->response()->success($data);
|
||||
}
|
||||
}
|
||||
|
|
@ -13,6 +13,7 @@ Route::group([
|
|||
'prefix' => 'api',
|
||||
], function (Router $router) {
|
||||
$router->get('keywords/tree-list', '\App\Admin\Controllers\KeywordController@getTreeList')->name('api.keywords.tree-list');
|
||||
$router->get('oldmen/options', [\App\Admin\Controllers\OldmenController::class, 'options'])->name('api.oldmen.options');
|
||||
});
|
||||
|
||||
$router->resource('dashboard', \App\Admin\Controllers\HomeController::class);
|
||||
|
|
@ -25,6 +26,12 @@ Route::group([
|
|||
$router->resource('oldmen', \App\Admin\Controllers\OldmenController::class)->names('oldmen');
|
||||
|
||||
$router->get('live-in', '\App\Admin\Controllers\LiveInController@index');
|
||||
$router->get('live-in-do', '\App\Admin\Controllers\LiveInController@doForm');
|
||||
$router->post('live-in-do', '\App\Admin\Controllers\LiveInController@do');
|
||||
$router->get('live-in-feelist', '\App\Admin\Controllers\LiveInController@liveInFeelist');
|
||||
|
||||
$router->get('live-fee-form', '\App\Admin\Controllers\OldmenController@liveSchemaForm');
|
||||
$router->get('query-fee-help/{oldmen}/{date_range}', '\App\Admin\Controllers\SettingController@queryFeeHelp');
|
||||
|
||||
$router->get('live-continue', '\App\Admin\Controllers\LiveContinueController@index');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -34,4 +34,11 @@ class OldmenFilter extends ModelFilter
|
|||
return $this->where('nurse_lv', $nurseLv);
|
||||
}
|
||||
}
|
||||
|
||||
public function term($term){
|
||||
return $this->where(function($q) use ($term) {
|
||||
return $q->where('name', 'like', '%'.$term.'%')
|
||||
->orWhere('card_no', 'like', $term.'%');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue