baseCRUD() ->headerToolbar([ $this->createButton(true), ...$this->baseHeaderToolBar(), ]) ->filter($this->baseFilter()->body( amisMake()->TextControl('keyword', __('admin.keyword')) ->size('md') ->placeholder(__('admin.admin_user.search_username')) )) ->quickSaveItemApi(admin_url('quick-edit/admin_users/$id')) ->itemCheckableOn('${id !== 1}') ->columns([ amisMake()->TableColumn('id', 'ID')->sortable(), amisMake()->TableColumn('avatar', __('admin.admin_user.avatar'))->type('avatar')->src('${avatar}'), amisMake()->TableColumn('username', __('admin.username')), amisMake()->TableColumn('name', __('admin.admin_user.name')), amisMake()->TableColumn('roles', __('admin.admin_user.roles'))->type('each')->items( amisMake()->Tag()->label('${name}')->className('my-1') ), amisMake()->TableColumn('lock', __('admin.admin_user.lock'))->quickEdit(SwitchControl::make()->saveImmediately(true)->mode('inline')->disabledOn('${id === 1}')), amisMake()->TableColumn('created_at', __('admin.created_at'))->type('datetime')->sortable(true), Operation::make()->label(__('admin.actions'))->buttons([ $this->rowEditButton(true)->visibleOn('${id != 1}'), //单独修改密码 $this->editPassword()->visibleOn('${id != 1}'), $this->rowDeleteButton()->visibleOn('${id != 1}'), ]), ]); return $this->baseList($crud); } public function form(): Form { return $this->baseForm()->body([ amisMake()->ImageControl('avatar', __('admin.admin_user.avatar'))->receiver($this->uploadImagePath()), amisMake()->TextControl('name', __('admin.admin_user.name'))->required(), amisMake()->TextControl('username', __('admin.username'))->required(), amisMake()->TextControl('password', __('admin.password'))->type('input-password')->required()->validations(['minLength' => 6])->hiddenOn('${id > 0}'), amisMake()->TextControl('confirm_password', __('admin.confirm_password'))->type('input-password')->required()->validations(['minLength' => 6])->hiddenOn('${id > 0}'), amisMake()->SelectControl('roles', __('admin.admin_user.roles')) ->searchable() ->multiple() ->labelField('name') ->valueField('id') ->joinValues(false) ->extractValue() ->options(AdminRoleService::make()->query()->get(['id', 'name'])), SwitchControl::make()->name('lock')->label(__('admin.admin_user.lock'))->value(false), ]); } public function detail(): Form { return $this->baseDetail()->body([]); } public function editPassword() { return amisMake()->DialogAction()->icon('fa-regular fa-lightbulb')->label(__('admin.admin_user.edit_password'))->level('link')->dialog( amisMake()->Dialog()->title(__('admin.admin_user.edit_password'))->body([ amisMake()->Form()->title('') ->api([ 'method'=>'PUT', 'url'=> admin_url('system/admin_users/$id') ]) ->body([ amisMake()->TextControl('id')->value('${id}')->hidden(true), amisMake()->TextControl('username')->value('${username}')->hidden(true), amisMake()->TextControl('password', __('admin.password'))->type('input-password')->required()->validations(['minLength' => 6]), amisMake()->TextControl('confirm_password', __('admin.confirm_password'))->type('input-password')->required()->validations(['minLength' => 6]), ]), ])->size('md') ); } }