formPetsTrait.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxPetTraits;
  3. use App\Admin\Renderable\BannerRender;
  4. use App\Admin\Renderable\IconRender;
  5. use App\Models\WxIcon;
  6. use App\Models\WxSlideshow;
  7. use App\Wen\Utils\AdminUtils;
  8. use App\Wen\Utils\FieldUtils;
  9. use App\Wen\Utils\GatewayUtils;
  10. use App\Wen\Utils\Settings;
  11. use App\Wen\Utils\SiteUtils;
  12. use Dcat\Admin\Form\NestedForm;
  13. use Dcat\Admin\Layout\Content;
  14. use Dcat\Admin\Widgets\Form;
  15. use Illuminate\Http\Request;
  16. use Illuminate\Support\Facades\Cache;
  17. trait formPetsTrait{
  18. public function index_config(Content $content)
  19. {
  20. return $content->title('宠物系统配置')
  21. // ->body($this->buildPreviewButton())
  22. // ->body($this->newline())
  23. ->body(
  24. <<<HTML
  25. <div class="card">{$this->form_config()->render()}</div>
  26. HTML
  27. );
  28. }
  29. protected function form_config(){
  30. $form = new Form();
  31. $form->confirm('您确定要提交表单吗?', 'content');
  32. $form->disableResetButton();
  33. $form->tab('领养首页', function (Form $form) {
  34. $form->html(function (){
  35. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">一、审核相关</div>';
  36. }, '');
  37. $form->radio('is_audit_pets_adoption', '发布领养是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_pets_adoption', 0))->when('!=', 1, function (Form $form){
  38. $form->checkbox('audit_pets_adoption_white_list', '发布领养审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_pets_adoption_white_list', ''));
  39. });
  40. $form->divider();
  41. $form->radio('is_audit_pets_comment', '留言是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_pets_comment', 0))->when('!=', 1, function (Form $form){
  42. $form->checkbox('audit_pets_comment_white_list', '留言审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_pets_comment_white_list', ''));
  43. });
  44. $form->divider();
  45. $form->html(function (){
  46. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">二、首页</div>';
  47. }, '');
  48. $form->html(function () {
  49. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">注意:需要先配置高得web服务key,<a href="'.admin_url('settings/api').'" target="_blank">点击跳转</a></div>';
  50. }, '');
  51. $form->multipleSelectTable('pets_adoption_index_banner', '轮播图')
  52. ->title('轮播图库')
  53. ->max(10)
  54. ->from(BannerRender::make())
  55. ->model(WxSlideshow::class, 'id', 'id', 'selectTable:formPetsTrait:pets_adoption_index_banner')
  56. ->help('<a href="'.admin_url('slideshow').'" target="_blank">运营管理-轮播图中心</a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')->default(Settings::get('pets_adoption_index_banner', ''));
  57. // $form->table('pets_adoption_index_notice','垂直滚动通知', function (NestedForm $table) {
  58. // $table->text('text', '文本')->default('文字');
  59. // $table->image('img', '左侧图')->help('<a href="https://img.mini.minisns.cn/2023/06/23/c8186968da891a2dac10ff5d4fbe0351.png" download="app_share_vip_img.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->default('https://img.mini.minisns.cn/2023/06/23/c8186968da891a2dac10ff5d4fbe0351.png')->uniqueName()->url('files/uploads')->autoUpload();
  60. // $table->radio('type', '类型')->options(FieldUtils::getUrlTypes())->default(0);
  61. // $table->text('target', '跳转id')->help('怎么填请看<a href="https://doc.minisns.cn/doc/44/" target="_blank">路径大全</a>');
  62. // })->default(Settings::get('pets_adoption_index_notice', ''));
  63. $form->multipleSelectTable('pets_adoption_index_nav', '格子菜单')
  64. ->title('图标库')
  65. ->max(10)
  66. ->from(IconRender::make())
  67. ->model(WxIcon::class, 'id', 'name', 'selectTable:formPetsTrait:pets_adoption_index_nav')
  68. ->help('领养首页的格子菜单, <a href="'.admin_url('settings/icons').'" target="_blank">管理图标库>></a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')
  69. ->default(Settings::get('pets_adoption_index_nav', ''));
  70. });
  71. $form->tab('发布', function (Form $form) {
  72. $form->radio('pets_adoption_add_force_bind_phone', '强制绑定手机号')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('pets_adoption_add_force_bind_phone', 0, true));
  73. $form->radio('pets_adoption_add_force_real_name', '强制实名')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('pets_adoption_add_force_real_name', 0, true));
  74. });
  75. $form->tab('详情页', function (Form $form) {
  76. $form->multipleSelectTable('pets_adoption_detail_user_info_img', '关注公众号')
  77. ->title('图标库')
  78. ->max(1)
  79. ->from(IconRender::make())
  80. ->model(WxIcon::class, 'id', 'name', 'selectTable:formPetsTrait:pets_adoption_detail_user_info_img')
  81. ->help('在用户信息的下边, <a href="'.admin_url('settings/icons').'" target="_blank">管理图标库>></a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')
  82. ->default(Settings::get('pets_adoption_detail_user_info_img', ''));
  83. });
  84. $form->action('pets/action/config');
  85. return $form;
  86. }
  87. public function config(Request $request){
  88. SiteUtils::forget_config_data();
  89. $audit_pets_adoption_white_list = $request->input('audit_pets_adoption_white_list');
  90. $audit_pets_adoption_white_list_ = [];
  91. if($audit_pets_adoption_white_list){
  92. foreach ($audit_pets_adoption_white_list as $i){
  93. if($i === null){
  94. continue;
  95. }
  96. $audit_pets_adoption_white_list_[] = (int)$i;
  97. }
  98. }
  99. Settings::set('audit_pets_adoption_white_list', $audit_pets_adoption_white_list_, true);
  100. $audit_pets_comment_white_list = $request->input('audit_pets_comment_white_list');
  101. $audit_pets_comment_white_list_ = [];
  102. if($audit_pets_comment_white_list){
  103. foreach ($audit_pets_comment_white_list as $i){
  104. if($i === null){
  105. continue;
  106. }
  107. $audit_pets_comment_white_list_[] = (int)$i;
  108. }
  109. }
  110. Settings::set('audit_pets_comment_white_list', $audit_pets_comment_white_list_, true);
  111. Settings::set('is_audit_pets_adoption', $request->input('is_audit_pets_adoption'), true);
  112. Settings::set('is_audit_pets_comment', $request->input('is_audit_pets_comment'), true);
  113. Settings::set('pets_adoption_index_banner', AdminUtils::_multipleSelectTable_order_process('selectTable:formPetsTrait:pets_adoption_index_banner', $request->input('pets_adoption_index_banner')), true);
  114. // Settings::set('pets_adoption_index_notice', AdminUtils::_table_data($request->input('pets_adoption_index_notice')), true);
  115. Settings::set('pets_adoption_index_nav', AdminUtils::_multipleSelectTable_order_process('selectTable:formPetsTrait:pets_adoption_index_nav', $request->input('pets_adoption_index_nav')), true);
  116. Settings::set('pets_adoption_detail_user_info_img', AdminUtils::_multipleSelectTable_order_process('selectTable:formPetsTrait:pets_adoption_detail_user_info_img', $request->input('pets_adoption_detail_user_info_img')), true);
  117. Settings::set('pets_adoption_add_force_bind_phone', $request->input('pets_adoption_add_force_bind_phone'), true, true);
  118. Settings::set('pets_adoption_add_force_real_name', $request->input('pets_adoption_add_force_real_name'), true, true);
  119. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  120. Settings::set('__global_config_version__', $__global_config_version__);
  121. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  122. return $this->response()->success('成功!');
  123. }
  124. }