123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- <?php
- namespace App\Admin\Controllers;
- use App\Services\SettingItemService;
- use Slowlyo\OwlAdmin\Controllers\AdminController;
- /**
- * @group 后台
- *
- * 设置项
- *
- * @property SettingItemService $service
- */
- class SettingItemController extends AdminController
- {
- protected string $serviceName = SettingItemService::class;
- public function list()
- {
- $crud = $this->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)
- );
- }
- }
|