formUsedTrait.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxUsedTraits;
  3. use App\Admin\Renderable\BannerRender;
  4. use App\Admin\Renderable\IconRender;
  5. use App\Jobs\System\SettingImgToJpgJob;
  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 formUsedTrait{
  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. $res30 = __system__paycode__tip__(30);
  37. Tooltip::make('.mini_global_admin_open_not_support_tip')
  38. ->bottom()
  39. ->title($res30['tip']);
  40. $form->html(function () use ($res30){
  41. return '<div>闲置系统 '.$res30['text'].'</div>';
  42. }, '');
  43. $form->html(function () use ($res30){
  44. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">一、订单分成</div>';
  45. }, '');
  46. $form->rate('app_used_order_division', '闲置订单平台分成')->default(Settings::get('app_used_order_division', 1.0));
  47. $form->divider();
  48. $form->html(function () use ($res30){
  49. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">二、审核相关</div>';
  50. }, '');
  51. $form->radio('is_audit_used_good', '商品是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_used_good', 0))->when('!=', 1, function (Form $form){
  52. $form->checkbox('audit_used_good_white_list', '闲置商品审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_used_good_white_list', ''));
  53. });
  54. $form->divider();
  55. $form->radio('is_audit_used_comment', '留言是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_used_comment', 0))->when('!=', 1, function (Form $form){
  56. $form->checkbox('audit_used_comment_white_list', '留言审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_used_comment_white_list', ''));
  57. });
  58. $form->divider();
  59. $form->html(function () {
  60. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">三、首页左右侧,轮播</div>';
  61. }, '');
  62. $form->multipleSelectTable('app_used_header_icon', '头部左右侧')
  63. ->title('图标库')
  64. ->max(2)
  65. ->from(IconRender::make())
  66. ->model(WxIcon::class, 'id', 'name', 'selectTable:formUsedTrait:app_used_header_icon')
  67. ->help('添加两个,若把闲置设置为tabbar,则可以显示, <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>')
  68. ->default(Settings::get('app_used_header_icon', '', true));
  69. $form->multipleSelectTable('used_mall_index_banner', '轮播图')
  70. ->title('轮播图库')
  71. ->max(10)
  72. ->from(BannerRender::make())
  73. ->model(WxSlideshow::class, 'id', 'id', 'selectTable:formUsedTrait:used_mall_index_banner')
  74. ->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('used_mall_index_banner', ''));
  75. $form->divider();
  76. $form->html(function () {
  77. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">四、分享</div>';
  78. }, '');
  79. $form->text('used_mall_index_share_title', '首页分享标题')->default(Settings::get('used_mall_index_share_title', '超超超强大的闲置系统'));
  80. $form->image('used_mall_index_share_image', '首页分享海报')->help('<a href="https://img.mini.minisns.cn/images/bg/ershou.png" download="members_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('used_mall_index_share_image', 'https://img.mini.minisns.cn/images/bg/ershou.png'));
  81. $form->text('used_mall_detail_share_title', '闲置商品分享标题')->help('[good_title]将被替换成商品标题')->default(Settings::get('used_mall_detail_share_title', '[good_title] - 闲置'));
  82. });
  83. $form->tab('发布', function (Form $form) {
  84. $form->radio('used_mall_push_force_bind_phone', '强制绑定手机号')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('used_mall_push_force_bind_phone', 0, true));
  85. $form->radio('used_mall_push_force_real_name', '强制实名')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('used_mall_push_force_real_name', 0, true));
  86. $form->divider();
  87. $form->radio('used_mall_push_force_classify', '强制选择分类')->options([0=>'不强制', 1=>'强制'])->default(Settings::get('used_mall_push_force_classify', 0, true));
  88. global $__MINI_GLOBAL_TENANT_ID__;
  89. $form->radio('used_mall_push_force_subscribe_mp', '强制关注公众号')->options([0=>'不强制', 1=>'强制'])->help($__MINI_GLOBAL_TENANT_ID__ > 0 ? '必须开启服务器地址' : '必须开启服务器地址,具体请去[全局配置-支付-微信-公众号]')->default(Settings::get('used_mall_push_force_subscribe_mp', 0, true));
  90. });
  91. $form->tab('详情', function (Form $form) {
  92. $form->switch('used_mall_detail_self_pick_show_map', '自提是否显示地图')->default(Settings::get('used_mall_detail_self_pick_show_map', 1, true));
  93. $form->switch('used_mall_detail_can_buy', '显示购买按钮')->help('多商户商城,闲鱼等类型需要 <span style="color: red;">EDI经营许可证</span>,你若没有,可以关闭该按钮')->default(Settings::get('used_mall_detail_can_buy', 1, true));
  94. });
  95. $form->action('used/action/config');
  96. return $form;
  97. }
  98. public function config(Request $request){
  99. SiteUtils::forget_config_data();
  100. $audit_used_good_white_list = $request->input('audit_used_good_white_list');
  101. $audit_used_good_white_list_ = [];
  102. if($audit_used_good_white_list){
  103. foreach ($audit_used_good_white_list as $i){
  104. if($i === null){
  105. continue;
  106. }
  107. $audit_used_good_white_list_[] = (int)$i;
  108. }
  109. }
  110. Settings::set('audit_used_good_white_list', $audit_used_good_white_list_, true);
  111. $audit_used_comment_white_list = $request->input('audit_used_comment_white_list');
  112. $audit_used_comment_white_list_ = [];
  113. if($audit_used_comment_white_list){
  114. foreach ($audit_used_comment_white_list as $i){
  115. if($i === null){
  116. continue;
  117. }
  118. $audit_used_comment_white_list_[] = (int)$i;
  119. }
  120. }
  121. Settings::set('audit_used_comment_white_list', $audit_used_comment_white_list_, true);
  122. Settings::set('app_used_header_icon', AdminUtils::_multipleSelectTable_order_process( 'selectTable:formUsedTrait:app_used_header_icon', $request->input('app_used_header_icon') ), true, true);
  123. Settings::set('used_mall_index_banner', AdminUtils::_multipleSelectTable_order_process('selectTable:formUsedTrait:used_mall_index_banner', $request->input('used_mall_index_banner')) , true);
  124. Settings::set('is_audit_used_good', $request->input('is_audit_used_good'), true);
  125. Settings::set('is_audit_used_comment', $request->input('is_audit_used_comment'), true);
  126. Settings::set('used_mall_detail_share_title', $request->input('used_mall_detail_share_title'), true);
  127. Settings::set('used_mall_index_share_title', $request->input('used_mall_index_share_title'), true);
  128. Settings::set('used_mall_index_share_image', $request->input('used_mall_index_share_image'), true);
  129. Settings::set('used_mall_push_force_bind_phone', $request->input('used_mall_push_force_bind_phone'), true, true);
  130. Settings::set('used_mall_push_force_real_name', $request->input('used_mall_push_force_real_name'), true, true);
  131. Settings::set('used_mall_push_force_classify', $request->input('used_mall_push_force_classify'), true, true);
  132. Settings::set('used_mall_push_force_subscribe_mp', $request->input('used_mall_push_force_subscribe_mp'), true, true);
  133. Settings::set('app_used_order_division', _between_($request->input('app_used_order_division'), 0, 100), true);
  134. Settings::set('used_mall_detail_self_pick_show_map', $request->input('used_mall_detail_self_pick_show_map'), true, true);
  135. Settings::set('used_mall_detail_can_buy', $request->input('used_mall_detail_can_buy'), true, true);
  136. SettingImgToJpgJob::dispatch(['used_mall_index_share_image']);
  137. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  138. Settings::set('__global_config_version__', $__global_config_version__);
  139. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  140. return $this->response()->success('成功!');
  141. }
  142. }