formAskTrait.php 5.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace App\Admin\Controllers\Traits\AskTraits;
  3. use App\Admin\Renderable\BannerRender;
  4. use App\Admin\Renderable\IconRender;
  5. use App\Models\Ask\AskTemplate;
  6. use App\Models\WxIcon;
  7. use App\Models\WxSlideshow;
  8. use App\Wen\Utils\AdminUtils;
  9. use App\Wen\Utils\FieldUtils;
  10. use App\Wen\Utils\GatewayUtils;
  11. use App\Wen\Utils\Settings;
  12. use App\Wen\Utils\SiteUtils;
  13. use Dcat\Admin\Form\NestedForm;
  14. use Dcat\Admin\Layout\Content;
  15. use Dcat\Admin\Widgets\Form;
  16. use Dcat\Admin\Widgets\Tooltip;
  17. use Illuminate\Http\Request;
  18. use Illuminate\Support\Facades\Cache;
  19. trait formAskTrait{
  20. public function index_config(Content $content)
  21. {
  22. return $content->title('知识付费配置')
  23. // ->body($this->buildPreviewButton())
  24. // ->body($this->newline())
  25. ->body(
  26. <<<HTML
  27. <div class="card">{$this->form_config()->render()}</div>
  28. HTML
  29. );
  30. }
  31. protected function form_config(){
  32. $form = new Form();
  33. $form->confirm('您确定要提交表单吗?', 'content');
  34. $form->disableResetButton();
  35. $form->tab('首页', function (Form $form) {
  36. $form->multipleSelectTable('app_ask_banner', '轮播图')
  37. ->title('轮播图库')
  38. ->max(10)
  39. ->from(BannerRender::make())
  40. ->model(WxSlideshow::class, 'id', 'id', 'selectTable:formAskTrait:app_ask_banner')
  41. ->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>')
  42. ->default(Settings::get('app_ask_banner', '',true));
  43. $form->image('blogger_info_audit_image', '答主招募图片')->url('files/uploads')->autoUpload()->uniqueName()->default(Settings::get('blogger_info_audit_image'));
  44. $form->text('blogger_info_audit_clause_url', '答主招募图片的链接')->default(Settings::get('blogger_info_audit_clause_url',''));
  45. $form->number('askorder_blogger_balance_rate', '咨询订单给答主的收益比例百分比')->help('0-100之间')->default(Settings::get('askorder_blogger_balance_rate', 0));
  46. $form->number('sitorder_user_balance_rate', '旁听订单给咨询者的收益比例百分比')->help('0-100之间')->default(Settings::get('sitorder_user_balance_rate', 0));
  47. $form->image('askorder_hidden_user_avatar', '匿名用户的头像')->url('files/uploads')->autoUpload()->uniqueName()->default(Settings::get('askorder_hidden_user_avatar'));
  48. $form->text('askorder_blogger_clause_url', '答主认证条款链接')->default(Settings::get('askorder_blogger_clause_url',''));
  49. });
  50. $form->tab('咨询提交', function (Form $form) {
  51. $form->textarea('askorder_default_question', '咨询问题提醒')->default(Settings::get('askorder_default_question', ''));
  52. $form->text('askorder_default_hidden', '匿名提醒')->default(Settings::get('askorder_default_hidden', ''));
  53. $form->text('askorder_default_public', '公开提醒')->default(Settings::get('askorder_default_public', ''));
  54. $form->textarea('askorder_default_rule', '底部规则提醒')->default(Settings::get('askorder_default_rule', ''));
  55. });
  56. $form->action('ask/action/config');
  57. return $form;
  58. }
  59. public function config(Request $request){
  60. SiteUtils::forget_config_data();
  61. Settings::set('app_ask_banner', AdminUtils::_multipleSelectTable_order_process('selectTable:formAdkTrait:app_ask_banner', $request->input('app_ask_banner')), true, true);
  62. Settings::set('blogger_info_audit_image', $request->input('blogger_info_audit_image'), true);
  63. Settings::set('blogger_info_audit_clause_url', $request->input('blogger_info_audit_clause_url'), true);
  64. Settings::set('askorder_blogger_balance_rate', $request->input('askorder_blogger_balance_rate'), true);
  65. Settings::set('sitorder_user_balance_rate', $request->input('sitorder_user_balance_rate'), true);
  66. Settings::set('askorder_hidden_user_avatar', $request->input('askorder_hidden_user_avatar'), true);
  67. Settings::set('askorder_blogger_clause_url', $request->input('askorder_blogger_clause_url'), true);
  68. Settings::set('askorder_default_question', $request->input('askorder_default_question'), true);
  69. Settings::set('askorder_default_hidden', $request->input('askorder_default_hidden'), true);
  70. Settings::set('askorder_default_public', $request->input('askorder_default_public'), true);
  71. Settings::set('askorder_default_rule', $request->input('askorder_default_rule'), true);
  72. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  73. Settings::set('__global_config_version__', $__global_config_version__);
  74. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  75. return $this->response()->success('成功!');
  76. }
  77. }