SettingsController.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Distributor\Controllers;
  3. use App\Distributor\Repositories\DistAdminDistributor;
  4. use App\Http\Controllers\Controller;
  5. use Dcat\Admin\Layout\Column;
  6. use Dcat\Admin\Layout\Content;
  7. use Dcat\Admin\Layout\Row;
  8. use Dcat\Admin\Widgets\Form;
  9. use Illuminate\Http\Request;
  10. class SettingsController extends Controller
  11. {
  12. public function index(Content $content)
  13. {
  14. return $content->title(admin_trans( 'admin.settings'))
  15. ->body(
  16. <<<HTML
  17. <div class="card">{$this->form()->render()}</div>
  18. HTML
  19. );
  20. }
  21. protected function form()
  22. {
  23. $distInfo = DistAdminDistributor::getInfo();
  24. $form = new Form();
  25. $form->tab('domain', function (Form $form) use ($distInfo) {
  26. //查分销商信息
  27. $secondaryDomain = $distInfo->secondary_domain ? $distInfo->secondary_domain : '';
  28. $customDomain = $distInfo->custom_domain ? $distInfo->custom_domain : '';
  29. $form->radio('domain_type')
  30. ->when(0, function (Form $form) use ($secondaryDomain) {
  31. $form->text('secondary_domain')->width(4,2)->value($secondaryDomain)->readOnly();
  32. })
  33. ->when(1, function (Form $form) use ($customDomain){
  34. $form->text('custom_domain')->width(4,2)->value($customDomain)->required()->help('Please enter the domain name, such as www.example.com,and bind the domain name to the IP address '.env('DIST_SITE_IP'));
  35. })
  36. ->options([0=>admin_trans_field('secondary_domain'),1=>admin_trans_field('custom_domain')])
  37. ->value($distInfo->domain_type)
  38. ->required();
  39. });
  40. $form->tab('site', function (Form $form) use ($distInfo) {
  41. $form->text('site_name')->value($distInfo->site_name)->required();
  42. $form->text('company_name')->value($distInfo->company_name)->required();
  43. $form->text('company_address')->value($distInfo->company_address);
  44. $form->text('contact_number')->value($distInfo->contact_number);
  45. $form->text('service_hotline')->value($distInfo->service_hotline);
  46. $form->text('whats_app')->value($distInfo->whats_app);
  47. $form->text('seo_title')->value($distInfo->seo_title)->required();
  48. $form->text('seo_keywords')->value($distInfo->seo_keywords);
  49. $form->textarea('seo_description')->value($distInfo->seo_description);
  50. });
  51. return $form;
  52. }
  53. /*
  54. * 保存配置
  55. */
  56. public function store(Request $request) {
  57. $form = new Form();
  58. $domainType = $request->input('domain_type');
  59. $customDomain = $request->input('custom_domain');
  60. if (!in_array($domainType, [0,1])) {
  61. return $form->response()->error('Invalid argument');
  62. }
  63. if ($domainType == 1) {
  64. if (str_starts_with($customDomain,env('TOP_DOMAIN'))) {
  65. return $form->response()->error('Error in domain format');
  66. }
  67. if (!isDomainOnly($customDomain)) {
  68. return $form->response()->error('Error in domain format');
  69. }
  70. }
  71. DistAdminDistributor::updateDomain($domainType,$customDomain);
  72. //站点配置
  73. DistAdminDistributor::updateInfo($request->all());
  74. return $form->response()->success('Success');
  75. }
  76. }