ProjectController.php 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Services\ProjectService;
  5. use Illuminate\Http\JsonResponse;
  6. use Slowlyo\OwlAdmin\Controllers\AdminController;
  7. /**
  8. * @group 后台
  9. * 项目服务
  10. * @property ProjectService $service
  11. */
  12. class ProjectController extends AdminController
  13. {
  14. protected string $serviceName = ProjectService::class;
  15. public function getProjects()
  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('cate_id', '项目分类编号'),
  26. amis()->TableColumn('cover', '项目封面'),
  27. amis()->TableColumn('title', '项目标题'),
  28. amis()->TableColumn('subtitle', '项目副标题'),
  29. amis()->TableColumn('price', '项目金额'),
  30. amis()->TableColumn('original_price', '项目原价'),
  31. amis()->TableColumn('sales', '虚拟销量')->sortable(),
  32. amis()->TableColumn('duration', '服务时长')->sortable(),
  33. amis()->TableColumn('project_desc', '项目介绍'),
  34. amis()->TableColumn('service_desc', '服务说明'),
  35. amis()->TableColumn('type', '服务类型')->sortable(),
  36. amis()->TableColumn('state', '状态')->sortable(),
  37. amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
  38. amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
  39. $this->rowActions('dialog'),
  40. ]);
  41. return $this->baseList($crud);
  42. }
  43. public function getProject($id)
  44. {
  45. return $this->baseDetail()->body([
  46. amis()->TextControl('id', 'ID')->static(),
  47. amis()->TextControl('cate_id', '项目分类编号')->static(),
  48. amis()->TextControl('cover', '项目封面')->static(),
  49. amis()->TextControl('title', '项目标题')->static(),
  50. amis()->TextControl('subtitle', '项目副标题')->static(),
  51. amis()->TextControl('price', '项目金额')->static(),
  52. amis()->TextControl('original_price', '项目原价')->static(),
  53. amis()->TextControl('sales', '虚拟销量')->static(),
  54. amis()->TextControl('duration', '服务时长')->static(),
  55. amis()->TextControl('project_desc', '项目介绍')->static(),
  56. amis()->TextControl('service_desc', '服务说明')->static(),
  57. amis()->TextControl('type', '服务类型')->static(),
  58. amis()->TextControl('state', '状态')->static(),
  59. amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
  60. amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
  61. ]);
  62. }
  63. public function createProject($isEdit = false)
  64. {
  65. return $this->baseForm()->body([
  66. amis()->TextControl('cate_id', '项目分类编号'),
  67. amis()->TextControl('cover', '项目封面'),
  68. amis()->TextControl('title', '项目标题'),
  69. amis()->TextControl('subtitle', '项目副标题'),
  70. amis()->TextControl('price', '项目金额'),
  71. amis()->TextControl('original_price', '项目原价'),
  72. amis()->TextControl('sales', '虚拟销量'),
  73. amis()->TextControl('duration', '服务时长'),
  74. amis()->TextControl('project_desc', '项目介绍'),
  75. amis()->TextControl('service_desc', '服务说明'),
  76. amis()->TextControl('type', '服务类型'),
  77. amis()->TextControl('state', '状态'),
  78. ]);
  79. }
  80. public function deleteProject($id)
  81. {
  82. // 假设有一个服务方法来处理删除逻辑
  83. $this->service->delete($id);
  84. return response()->json(['message' => '项目已成功删除'], JsonResponse::HTTP_OK);
  85. }
  86. }