formPageSearchTrait.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Admin\Renderable\SearchRender;
  4. use App\Models\WxSearch;
  5. use App\Wen\Utils\AdminUtils;
  6. use App\Wen\Utils\FieldUtils;
  7. use App\Wen\Utils\GatewayUtils;
  8. use App\Wen\Utils\Settings;
  9. use App\Wen\Utils\SiteUtils;
  10. use Dcat\Admin\Form\NestedForm;
  11. use Dcat\Admin\Layout\Content;
  12. use Dcat\Admin\Widgets\Form;
  13. use Dcat\Admin\Widgets\Tooltip;
  14. use Illuminate\Http\Request;
  15. trait formPageSearchTrait{
  16. public function index_pagesearch(Content $content)
  17. {
  18. return $content->title('搜索配置')->description('移动端')
  19. // ->body($this->buildPreviewButton())
  20. // ->body($this->newline())
  21. ->body(
  22. <<<HTML
  23. <div class="card">{$this->form_pagesearch()->render()}</div>
  24. HTML
  25. );
  26. }
  27. protected function form_pagesearch(){
  28. $form = new Form();
  29. $form->confirm('您确定要提交表单吗?', 'content');
  30. $form->disableResetButton();
  31. global $__MINI_GLOBAL_TENANT_ID__;
  32. if($__MINI_GLOBAL_TENANT_ID__ === 0){
  33. $res1 = __system__paycode__tip__(1);
  34. Tooltip::make('.mini_global_admin_open_not_support_tip')
  35. ->bottom()
  36. ->title($res1['tip']);
  37. $form->color('app_search_highlight_color', '搜索高亮颜色')->help($res1['text'])->default(Settings::get('app_search_highlight_color', '#fc3a72'));
  38. }
  39. $form->multipleSelectTable('app_hot_search', '移动端热搜')
  40. ->title('搜索记录库')
  41. ->max(16)
  42. ->from(SearchRender::make())
  43. ->model(WxSearch::class, 'id', 'search_content', 'selectTable:formMiniTrait:app_hot_search')
  44. ->help('<a href="'.admin_url('search').'" target="_blank">搜索记录</a>:如果为空,则选择标记为热门的搜索记录。<a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">(ps:如何控制顺序?)&nbsp;</a>')
  45. ->default(Settings::get('app_hot_search', '2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068', true));
  46. $form->divider();
  47. $form->html(function () {
  48. return '<img src="https://img.mini.minisns.cn/images/hbx/search-hit-word.jpg" style="width: 300px;" />';
  49. }, '');
  50. $form->html(function () {
  51. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">解释:1、包含匹配是指 搜索关键词包含了触发词 2、一次只会触发一个</div>';
  52. }, '');
  53. $form->table('app_search_trigger_word','搜索触发词', function (NestedForm $table) {
  54. $table->text('text', '触发字')->required();
  55. $table->select('match', '匹配关系')->options([1=>'绝对匹配', 2=>'包含匹配']);
  56. $table->image('img', '图片')->help('<a href="https://img.mini.minisns.cn/images/nav/nav.png" download="app_share_vip_img.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload();
  57. $table->text('title', '标题')->required();
  58. $table->text('desc', '描述');
  59. $table->radio('type', '类型')->options(FieldUtils::getUrlTypes())->default(0);
  60. $table->text('target', '跳转id')->help('怎么填请看<a href="https://doc.minisns.cn/doc/44/" target="_blank">路径大全</a>');
  61. // $table->sw
  62. })->default(Settings::get('app_search_trigger_word', '',true));
  63. $form->action('settings/action/pagesearch');
  64. return $form;
  65. }
  66. public function pagesearch(Request $request){
  67. global $__MINI_GLOBAL_TENANT_ID__;
  68. SiteUtils::forget_config_data();
  69. if($__MINI_GLOBAL_TENANT_ID__ === 0){
  70. Settings::set('app_search_highlight_color', $request->input('app_search_highlight_color'), true, true);
  71. }
  72. Settings::set('app_hot_search', AdminUtils::_multipleSelectTable_order_process('selectTable:formMiniTrait:app_hot_search', $request->input('app_hot_search')) , true, true);
  73. Settings::set('app_search_trigger_word', AdminUtils::_table_data($request->input('app_search_trigger_word')), true, true);
  74. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  75. Settings::set('__global_config_version__', $__global_config_version__);
  76. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  77. return $this->response()->success('成功!');
  78. }
  79. }