SettingGroupController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Services\SettingGroupService;
  4. use Slowlyo\OwlAdmin\Controllers\AdminController;
  5. /**
  6. * @group 后台
  7. *
  8. * [后台]设置分组管理
  9. *
  10. * @property SettingGroupService $service
  11. */
  12. class SettingGroupController extends AdminController
  13. {
  14. protected string $serviceName = SettingGroupService::class;
  15. public function list()
  16. {
  17. $crud = $this->baseCRUD()
  18. ->filterTogglable(false)
  19. ->headerToolbar([
  20. $this->createButton('dialog'),
  21. ...$this->baseHeaderToolBar(),
  22. ])
  23. ->columns([
  24. amis()->TableColumn('id', 'ID')->sortable(),
  25. amis()->TableColumn('code', 'Code'),
  26. amis()->TableColumn('name', 'Name'),
  27. amis()->TableColumn('description', 'Description'),
  28. amis()->TableColumn('sort', 'Sort')->sortable(),
  29. amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
  30. amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
  31. $this->rowActions('dialog'),
  32. ]);
  33. return $this->baseList($crud);
  34. }
  35. public function form($isEdit = false)
  36. {
  37. return $this->baseForm()->body([
  38. amis()->TextControl('code', 'Code'),
  39. amis()->TextControl('name', 'Name'),
  40. amis()->TextControl('description', 'Description'),
  41. amis()->TextControl('sort', 'Sort'),
  42. ]);
  43. }
  44. public function detail()
  45. {
  46. return $this->baseDetail()->body([
  47. amis()->TextControl('id', 'ID')->static(),
  48. amis()->TextControl('code', 'Code')->static(),
  49. amis()->TextControl('name', 'Name')->static(),
  50. amis()->TextControl('description', 'Description')->static(),
  51. amis()->TextControl('sort', 'Sort')->static(),
  52. amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
  53. amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
  54. ]);
  55. }
  56. /**
  57. * [分组]获取设置分组列表
  58. *
  59. * @description 获取所有设置分组列表
  60. *
  61. * @param string keyword 关键词搜索
  62. * @param int perPage 每页数量
  63. *
  64. * @response {
  65. * "data": [
  66. * {
  67. * "id": 1,
  68. * "code": "basic",
  69. * "name": "基础设置",
  70. * "description": "系统基础配置",
  71. * "sort": 0,
  72. * "created_at": "2023-01-01 00:00:00",
  73. * "updated_at": "2023-01-01 00:00:00"
  74. * }
  75. * ]
  76. * }
  77. */
  78. public function getList()
  79. {
  80. return $this->service->getList(request()->all());
  81. }
  82. /**
  83. * [分组]创建设置分组
  84. *
  85. * @description 创建新的设置分组
  86. *
  87. * @param string code 分组代码
  88. * @param string name 分组名称
  89. * @param string description 分组描述
  90. * @param int sort 排序值
  91. *
  92. * @response {
  93. * "code": "basic",
  94. * "name": "基础设置",
  95. * "description": "系统基础配置",
  96. * "sort": 0
  97. * }
  98. */
  99. public function createGroup()
  100. {
  101. return $this->response()->success(
  102. $this->service->createGroup(request()->all())
  103. );
  104. }
  105. /**
  106. * [分组]更新设置分组
  107. *
  108. * @description 更新指定ID的设置分组
  109. *
  110. * @param int id 分组ID
  111. * @param string code 分组代码
  112. * @param string name 分组名称
  113. * @param string description 分组描述
  114. * @param int sort 排序值
  115. *
  116. * @response true
  117. */
  118. public function updateGroup($id)
  119. {
  120. return $this->response()->success(
  121. $this->service->updateGroup($id, request()->all())
  122. );
  123. }
  124. /**
  125. * [分组]删除设置分组
  126. *
  127. * @description 删除指定ID的设置分组
  128. *
  129. * @param int id 分组ID
  130. *
  131. * @response true
  132. */
  133. public function deleteGroup($id)
  134. {
  135. return $this->response()->success(
  136. $this->service->deleteGroup($id)
  137. );
  138. }
  139. /**
  140. * [分组]获取设置分组详情
  141. *
  142. * @description 获取指定ID的设置分组详情
  143. *
  144. * @param int id 分组ID
  145. *
  146. * @response {
  147. * "id": 1,
  148. * "code": "basic",
  149. * "name": "基础设置",
  150. * "description": "系统基础配置",
  151. * "sort": 0,
  152. * "created_at": "2023-01-01 00:00:00",
  153. * "updated_at": "2023-01-01 00:00:00"
  154. * }
  155. */
  156. public function groupDetail($id)
  157. {
  158. return $this->response()->success(
  159. $this->service->groupDetail($id)
  160. );
  161. }
  162. }