baseCRUD() ->filterTogglable(false) ->headerToolbar([ $this->createButton('dialog'), ...$this->baseHeaderToolBar(), ]) ->columns([ amis()->TableColumn('id', 'ID')->sortable(), amis()->TableColumn('group_id', 'GroupId'), amis()->TableColumn('code', 'Code'), amis()->TableColumn('name', 'Name'), amis()->TableColumn('description', 'Description'), amis()->TableColumn('value_type', 'ValueType'), amis()->TableColumn('default_value', 'DefaultValue'), amis()->TableColumn('min_value', 'MinValue'), amis()->TableColumn('max_value', 'MaxValue'), amis()->TableColumn('options', 'Options'), amis()->TableColumn('sort', 'Sort')->sortable(), amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(), amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(), $this->rowActions('dialog'), ]); return $this->baseList($crud); } public function form($isEdit = false) { return $this->baseForm()->body([ amis()->TextControl('group_id', 'GroupId'), amis()->TextControl('code', 'Code'), amis()->TextControl('name', 'Name'), amis()->TextControl('description', 'Description'), amis()->TextControl('value_type', 'ValueType'), amis()->TextControl('default_value', 'DefaultValue'), amis()->TextControl('min_value', 'MinValue'), amis()->TextControl('max_value', 'MaxValue'), amis()->TextControl('options', 'Options'), amis()->TextControl('sort', 'Sort'), ]); } public function detail() { return $this->baseDetail()->body([ amis()->TextControl('id', 'ID')->static(), amis()->TextControl('group_id', 'GroupId')->static(), amis()->TextControl('code', 'Code')->static(), amis()->TextControl('name', 'Name')->static(), amis()->TextControl('description', 'Description')->static(), amis()->TextControl('value_type', 'ValueType')->static(), amis()->TextControl('default_value', 'DefaultValue')->static(), amis()->TextControl('min_value', 'MinValue')->static(), amis()->TextControl('max_value', 'MaxValue')->static(), amis()->TextControl('options', 'Options')->static(), amis()->TextControl('sort', 'Sort')->static(), amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(), amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(), ]); } /** * [项]获取设置项列表 * * @description 获取所有设置项列表 * * @param string keyword 关键词搜索 * @param int group_id 分组ID * * @response { * "data": [ * { * "id": 1, * "group_id": 1, * "code": "site_name", * "name": "网站名称", * "description": "网站的名称", * "value_type": "string", * "default_value": "示例网站", * "min_value": null, * "max_value": null, * "options": null, * "sort": 0, * "created_at": "2023-01-01 00:00:00", * "updated_at": "2023-01-01 00:00:00" * } * ] * } */ public function getItemList() { return $this->response()->success( $this->service->getItemList(request()->all()) ); } /** * [项]创建设置项 * * @description 创建新的设置项 * * @param int group_id 分组ID * @param string code 设置项代码 * @param string name 设置项名称 * @param string description 设置项描述 * @param string value_type 值类型 * @param string default_value 默认值 * @param string min_value 最小值 * @param string max_value 最大值 * @param string options 选项 * @param int sort 排序值 * * @response { * "group_id": 1, * "code": "site_name", * "name": "网站名称", * "description": "网站的名称", * "value_type": "string", * "default_value": "示例网站", * "sort": 0 * } */ public function createItem() { return $this->response()->success( $this->service->createItem(request()->all()) ); } /** * [项]更新设置项 * * @description 更新指定ID的设置项 * * @param int id 设置项ID * @param int group_id 分组ID * @param string code 设置项代码 * @param string name 设置项名称 * @param string description 设置项描述 * @param string value_type 值类型 * @param string default_value 默认值 * @param string min_value 最小值 * @param string max_value 最大值 * @param string options 选项 * @param int sort 排序值 * * @response true */ public function updateItem($id) { return $this->response()->success( $this->service->updateItem($id, request()->all()) ); } /** * [项]删除设置项 * * @description 删除指定ID的设置项 * * @param int id 设置项ID * * @response true */ public function deleteItem($id) { return $this->response()->success( $this->service->deleteItem($id) ); } /** * [项]获取设置项详情 * * @description 获取指定ID或code的设置项详情 * * @param string id_or_code 设置项ID或代码 * * @response { * "id": 1, * "group_id": 1, * "code": "site_name", * "name": "网站名称", * "description": "网站的名称", * "value_type": "string", * "default_value": "示例网站", * "min_value": null, * "max_value": null, * "options": null, * "sort": 0, * "created_at": "2023-01-01 00:00:00", * "updated_at": "2023-01-01 00:00:00" * } */ public function getItemDetail($id_or_code) { return $this->response()->success( $this->service->getItemDetail($id_or_code) ); } }