formTrait.php 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Jobs\System\SettingImgToJpgJob;
  4. use App\Wen\Utils\AdminUtils;
  5. use App\Wen\Utils\FieldUtils;
  6. use App\Wen\Utils\GatewayUtils;
  7. use App\Wen\Utils\Settings;
  8. use App\Models\Posts\WxPost;
  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. use Illuminate\Support\Facades\Artisan;
  16. use Illuminate\Support\Facades\Cache;
  17. trait formTrait{
  18. protected $audit_options = [
  19. 0 => '人工审核',
  20. 1 => '不审',
  21. 2 => 'AI先审,若疑似,则人工'
  22. ];
  23. public function index(Content $content)
  24. {
  25. return $content->title('全局配置')
  26. // ->body($this->buildPreviewButton())
  27. // ->body($this->newline())
  28. ->body(
  29. <<<HTML
  30. <div class="card">{$this->form()->render()}</div>
  31. HTML
  32. );
  33. }
  34. protected function form()
  35. {
  36. // Since v1.6.5 弹出确认弹窗
  37. $form = new Form();
  38. $form->confirm('您确定要提交表单吗?', 'content');
  39. $form->disableResetButton();
  40. $form->tab('开关', function (Form $form) {
  41. $is_multi_site = Settings::get('is_multi_site', 0);
  42. if(env('APP_IS_MULTI_SITE', 0) != $is_multi_site){
  43. _update_env([
  44. 'APP_IS_MULTI_SITE' => $is_multi_site,
  45. ], [], 1);
  46. }
  47. $form->radio('is_multi_site', '多应用模式')->help('开启之后,则会强制选取分站(每次更改左上角可以立即生效,但还有部分需要重新下载前端代码才能生效)')->options([ 0=>'关闭', 1=>'主站+分站', 2=>'主站+分站+测试', 3=>'分站'])->default($is_multi_site)->when('!=',0, function (Form $form){
  48. $form->text('multi_site_name', '分站统称')->help('每次更改,需要重新下载前端上线生效')->default(Settings::get('multi_site_name', '学校'));
  49. });
  50. $form->html(function () {
  51. return '';
  52. }, '<b>一、审核开关</b>');
  53. $form->radio('is_image_detection', '图片安全检测(暂时免费)')->help('<span style="color: red;">需要上线了小程序</span>,并在<a href="'.admin_url('settings/pay').'" target="_blank">[支付_微信]</a>配置好小程序appid和secret')->options([ 1=>'是', 0=>'否'])->default(Settings::get('is_image_detection', 0));
  54. $form->divider();
  55. $form->radio('is_xiangqin_audit_posts', '相亲补充内容是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_xiangqin_audit_posts', 0))->when('!=',1, function (Form $form){
  56. $form->checkbox('xiangqin_audit_posts_white_list', '相亲补充内容审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('xiangqin_audit_posts_white_list', ''));
  57. });
  58. $form->divider();
  59. $form->radio('is_audit_posts', '笔记是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_posts', 0))->when('!=',1, function (Form $form){
  60. $form->checkbox('audit_posts_white_list', '笔记审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_posts_white_list', ''));
  61. });
  62. $form->divider();
  63. $form->radio('is_audit_comment', '评论是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_comment', 0))->when('!=',1, function (Form $form){
  64. $form->checkbox('audit_comment_white_list', '评论审核白名单')->options(FieldUtils::userPermissions())->default(Settings::get('audit_comment_white_list', ''));
  65. });
  66. $form->divider();
  67. $form->radio('is_audit_user_info', '用户修改资料是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_user_info', 0));
  68. $form->radio('is_audit_create_cirlce', '新增'.env('circle_call', '圈子').'审核模式')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_create_cirlce', 0));
  69. $form->radio('is_audit_create_tag', '新增话题是否需要审核')->help('AI审核需要配置百度文字审核API,<a href="'.admin_url('settings/api').'" target="_blank">点击进入</a>')->options($this->audit_options)->default(Settings::get('is_audit_create_tag', 0));
  70. $form->divider();
  71. $form->html(function () {
  72. return '';
  73. }, '<b>二、运营相关</b>');
  74. $form->radio('is_tag_match_img', '话题自动匹配头像和背景')->options([0=>'关闭', 1=>'开启'])->help('开启后,你访问了一个没有头像或者背景的话题,会自动给他匹配头像或背景')->default(Settings::get('is_tag_match_img', 1));
  75. $form->divider();
  76. $version_arr = [
  77. 'all' => '所有版本'
  78. ];
  79. $download_front_versions = get_site_meta('my_download_front_versions', 'j');
  80. foreach ($download_front_versions as $front_version){
  81. $version_arr[$front_version] = 'V'.$front_version.' +';
  82. }
  83. if(env('APP_URL', '') == 'https://mini.minisns.cn'){
  84. $version_arr[get_mini_version_code()] = get_mini_version_code();
  85. }
  86. $form->html(function () {
  87. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">上线审核模式?:为了上线时安全的过审,开启审核模式后<span style="font-weight: 600;">不会显示[视频,举报页面的联系方式,提现,充电]等功能<span/></div>';
  88. }, '');
  89. $form->html(function () {
  90. return '<div>---------------------------------------------------------------------------------</div>';
  91. }, '<b>小程序</b>');
  92. $form->radio('is_examine_mode', '审核模式')->options([0=>'否', 1=>'是'])->default(Settings::get('is_examine_mode', 0))->when(1, function (Form $form) use (&$version_arr){
  93. $form->checkbox('app_examine_mode_white_list', '白名单')->options(FieldUtils::userPermissions())->default(Settings::get('app_examine_mode_white_list', ''));
  94. $form->select('app_examine_mode_effective_version', '作用版本')->options($version_arr)->default(Settings::get('app_examine_mode_effective_version', 'all'));
  95. });
  96. $form->html(function () {
  97. return '<div>---------------------------------------------------------------------------------</div>';
  98. }, '<b>H5</b>');
  99. $form->radio('is_h5_examine_mode', '审核模式')->options([0=>'否', 1=>'是'])->default(Settings::get('is_h5_examine_mode', 0))->when(1, function (Form $form) use (&$version_arr){
  100. $form->checkbox('app_h5_examine_mode_white_list', '白名单')->options(FieldUtils::userPermissions())->default(Settings::get('app_h5_examine_mode_white_list', ''));
  101. $form->select('app_h5_examine_mode_effective_version', '作用版本')->options($version_arr)->default(Settings::get('app_h5_examine_mode_effective_version', 'all'));
  102. });
  103. $form->html(function () {
  104. return '<div>---------------------------------------------------------------------------------</div>';
  105. }, '<b>安卓 APP</b>');
  106. $form->radio('is_app_android_examine_mode', '审核模式')->options([0=>'否', 1=>'是'])->default(Settings::get('is_app_android_examine_mode', 0))->when(1, function (Form $form) use (&$version_arr){
  107. $form->checkbox('app_app_android_examine_mode_white_list', '白名单')->options(FieldUtils::userPermissions())->default(Settings::get('app_app_android_examine_mode_white_list', ''));
  108. $form->select('app_app_android_examine_mode_effective_version', '作用版本')->options($version_arr)->default(Settings::get('app_app_android_examine_mode_effective_version', 'all'));
  109. });
  110. $form->html(function () {
  111. return '<div>---------------------------------------------------------------------------------</div>';
  112. }, '<b>IOS APP</b>');
  113. $form->radio('is_app_ios_examine_mode', '审核模式')->options([0=>'否', 1=>'是'])->default(Settings::get('is_app_ios_examine_mode', 0))->when(1, function (Form $form) use (&$version_arr){
  114. $form->checkbox('app_app_ios_examine_mode_white_list', '白名单')->options(FieldUtils::userPermissions())->default(Settings::get('app_app_ios_examine_mode_white_list', ''));
  115. $form->select('app_app_ios_examine_mode_effective_version', '作用版本')->options($version_arr)->default(Settings::get('app_app_ios_examine_mode_effective_version', 'all'));
  116. });
  117. });
  118. $form->tab('关于', function (Form $form) {
  119. $form->text('app_title', '品牌名')->default(Settings::get('app_title', '宠也'));
  120. $form->text('app_intro', '简介')->default(Settings::get('app_intro', '养宠上宠也'));
  121. $form->image('about_logo', '图标')->help('<a href="https://img.mini.minisns.cn/icons/logo.png" download="about_logo.jpg" target="_blank">点击下载默认图</a>')->url('files/uploads')->autoUpload()->uniqueName()->default(Settings::get('about_logo', 'https://img.mini.minisns.cn/icons/logo.pn'));
  122. $form->text('about_title', '标识语')->default(Settings::get('about_title', '宠也,养宠上宠也'));
  123. $form->text('about_adjunct_word', '行业修饰词')->help('关于这个在一些特殊的场合会用到,比如自动上传话题的头像,是利用搜索关键词,比如:疫苗,如果配置了修饰词“宠物”,则搜索“疫苗 宠物”,会相对接近自己的领域,不宜太长,否则适得其反,自己领悟')->default(Settings::get('about_adjunct_word', ''));
  124. $form->text('about_user_called', '用户统称')->default(Settings::get('about_user_called', '铲屎官'));
  125. $form->text('about_copyright', '版权')->default(Settings::get('about_copyright', 'Copyright © 2020 - 现在,东莞市东城友看网络科技有限公司'));
  126. $form->text('about_icp', 'icp备案号')->default(Settings::get('about_icp', '粤ICP备2022011211号-1'));
  127. $form->text('about_gwab', '公网安备')->default(Settings::get('about_gwab', '京公网安备11010802020088号'));
  128. $form->text('about_sms', '邮箱')->default(Settings::get('about_sms', '863627472@qq.com'));
  129. $form->text('about_address', '地址')->default(Settings::get('about_address', '东莞市东城区xxx'));
  130. $form->text('about_phone', '电话')->default(Settings::get('about_phone', '176-xxxx-8804(同微信)'));
  131. $form->text('about_qq', 'QQ')->default(Settings::get('about_qq', '863627472'));
  132. $form->table('app_document_list','证件', function (NestedForm $table) {
  133. $table->text('name', '证件名')->required()->placeholder('增值电信许可证');
  134. $table->image('img', '图片')->uniqueName()->url('files/uploads')->autoUpload();
  135. })->default(Settings::get('app_document_list', ''));
  136. });
  137. $form->tab('二维码', function (Form $form) {
  138. $form->image('app_mini_code', '小程序二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/minipro.jpg" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_mini_code', 'https://img.minisns.cn/qrcode/minipro.jpg'));
  139. $form->image('app_mp_code', '公众号二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/pc/gzh_code.jpg" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_mp_code', 'https://img.minisns.cn/pc/gzh_code.jpg'));
  140. $form->image('app_app_code', 'App二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_app_code', 'https://img.minisns.cn/qrcode/app.png'));
  141. $form->image('app_douyin_code', '抖音二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_douyin_code', 'https://img.minisns.cn/qrcode/app.png'));
  142. });
  143. $form->tab('标识', function (Form $form) {
  144. $form->image('official_popup_poster', '官方弹窗海报')->help('建议图片大小为500px。 <a href="https://img.mini.minisns.cn/images/guanfangpopup.png" download="official_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('official_popup_poster', 'https://img.mini.minisns.cn/images/guanfangpopup.png'));
  145. $form->image('authentication_popup_poster', '认证弹窗海报')->help('<a href="https://img.mini.minisns.cn/icons/auth.png" download="authentication_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('authentication_popup_poster', 'https://img.mini.minisns.cn/icons/auth.png'));
  146. $form->image('popup_reward_select_img', '充电弹窗图片')->help('<a href="https://img.mini.minisns.cn/icons/rain.png" download="authentication_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('popup_reward_select_img', 'https://img.mini.minisns.cn/icons/rain.png'));
  147. $form->image('popup_beliked_count_img', '被喜欢数弹窗图片')->help('<a href="https://img.mini.minisns.cn/icons/collect-likes.png" download="authentication_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('popup_beliked_count_img', 'https://img.mini.minisns.cn/icons/collect-likes.png'));
  148. });
  149. $form->tab('浏览器', function (Form $form) {
  150. $form->image('browser_favicon_ico', 'favicon')->help('<a href="https://img.mini.minisns.cn/icons/favicon.ico" download="members_popup_poster.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('browser_favicon_ico', 'https://img.mini.minisns.cn/icons/favicon.ico'));
  151. });
  152. $form->tab('图片', function (Form $form) {
  153. $form->image('img_empty', '空')->help('<a href="https://img.mini.minisns.cn/icons/abp.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('img_empty', 'https://img.mini.minisns.cn/icons/abp.png'));
  154. $form->image('img_default', '默认图片')->help('<a href="https://img.mini.minisns.cn/icons/dafault.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('img_default', 'https://img.mini.minisns.cn/icons/dafault.png'));
  155. $form->image('img_share_default', '默认分享图片')->help('<a href="https://img.mini.minisns.cn/2023/05/22/17f31da7ce65a148b7c879c066f56f71.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('img_share_default', 'https://img.mini.minisns.cn/2023/05/22/17f31da7ce65a148b7c879c066f56f71.png'));
  156. $form->image('img_post_poster_default', '笔记默认海报图')->help('<a href="https://img.mini.minisns.cn/images/hbx/post_poster.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('img_post_poster_default', 'https://img.mini.minisns.cn/images/hbx/post_poster.png'));
  157. $form->image('img_video_default', '视频封面')->help('<a href="https://img.mini.minisns.cn/images/video/video_thumbel.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>,App上传的视频获取不到封面,后面使用cos处理')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('img_video_default', 'https://img.mini.minisns.cn/images/video/video_thumbel.png'));
  158. $form->image('img_default_avatar', '默认头像')->help('建议和默认图片大小。 <a href="https://img.mini.minisns.cn/images/avatar.png" download="img_default_avatar.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_default_avatar', 'https://img.mini.minisns.cn/images/avatar.png'));
  159. $form->image('img_default_circle_bg', env('circle_call', '圈子').'背景')->help('默认的话题移动端背景:<a href="https://img.mini.minisns.cn/images/topci/bg.jpg" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_default_circle_bg', 'https://img.mini.minisns.cn/images/topci/bg.jpg'));
  160. $form->image('img_default_topic_avatar', '话题头像')->help('默认的话题头像:<a href="https://img.mini.minisns.cn/images/topci/avatar.png" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_default_topic_avatar', 'https://img.mini.minisns.cn/images/topci/avatar.png'));
  161. $form->image('img_default_topic_bg', '话题背景')->help('默认的话题移动端背景:<a href="https://img.mini.minisns.cn/images/topci/bg.jpg" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_default_topic_bg', 'https://img.mini.minisns.cn/images/topci/bg.jpg'));
  162. $form->image('img_default_topic_pc_bg', '话题pc背景')->help('默认的话题pc端背景:<a href="https://img.mini.minisns.cn/images/topci/bg.jpg" download="dafault.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->uniqueName()->url('files/uploads')->autoUpload()->default(Settings::get('img_default_topic_pc_bg', 'https://img.mini.minisns.cn/images/topci/bg.jpg'));
  163. $form->radio('img_style_action', '图片加速方案')->options([0=>'不处理(加载慢)', 1=>'系统处理(官网)', 2=>'手动配置(自定义)'])->when(2, function (Form $form){
  164. $form->html(function () {
  165. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">简单说明一下:<br>1、样式用英文逗号隔开,比如:样式一,样式二,样式三,样式四<br>2、样式一: 列表图片;样式二: 瀑布流样式;样式三:小方格;样式四:未定;<br>3、官方配置<span style="color: red;">【强烈推荐】</span>:<a href="https://img.mini.minisns.cn/images/style_4.txt" download="style_4.txt">点击下载</a>,下载后可直接导入,<a href="https://doc.minisns.cn/doc/62/" target="_blank">具体看教程</a>,然后配置填写:/20220303500.jpg,/waterfall,/grid,/xxx</div>';
  166. }, '');
  167. $form->table('img_style','图片样式', function (NestedForm $table) {
  168. $table->text('domain', '域名')->default('https://img.minisns.cn');
  169. $table->text('style', '样式')->default('样式1,样式2,样式3,样式4');
  170. })->default(Settings::get('img_style', ''));
  171. })->default(Settings::get('img_style_action', 1));
  172. });
  173. $form->tab('举报', function (Form $form) {
  174. $form->html(function () {
  175. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">被举报安全次数:每个普通用户对某个对象只能举报一次,当某个对象被举报总次数超过了安全次数,该对象被自动下架(对象包括:内容,评论,用户,商品等),如果举报人是管理员,则会立即响应。</div>';
  176. }, '');
  177. $form->number('app_report_safe_times_post', '内容-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_post', 0));
  178. $form->number('app_report_safe_times_comment', '评论-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_comment', 0));
  179. $form->number('app_report_safe_times_user', '用户-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_user', 0));
  180. $form->number('app_report_safe_times_goods', '商品-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_goods', 0));
  181. $form->number('app_report_safe_times_circle', env('circle_call', '圈子').'-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_circle', 0));
  182. $form->divider();
  183. $form->number('app_report_safe_times_voter', '选票-被举报安全次数')->help('0代表无限制')->default(Settings::get('app_report_safe_times_voter', 0));
  184. });
  185. $form->tab('H5端', function (Form $form) {
  186. $form->text('app_h5_home', 'H5端域名')->help('H5端是你生成H5静态代码后,部署到服务器,什么域名能访问到。例如:https://mini.h5.minisns.cn')->placeholder('https://mini.h5.minisns.cn')->default(Settings::get('app_h5_home', ''));
  187. });
  188. $form->tab('相亲', function (Form $form) {
  189. $form->text('share_proportion', '礼物分成比例')->placeholder('1')->default(Settings::get('share_proportion', ''));
  190. $form->text('tuijian_price', '推荐价格')->placeholder('1')->default(Settings::get('tuijian_price', ''));
  191. $form->radio('is_city_wide', '同城')->options([ 1=>'开启', 0=>'关闭'])->default(Settings::get('is_city_wide', 0));
  192. $form->radio('is_new_list', '最新')->options([ 1=>'开启', 0=>'关闭'])->default(Settings::get('is_new_list', 0));
  193. $form->text('xiangqin_name', '红娘名称')->placeholder('红娘1号')->default(Settings::get('xiangqin_name', ''));
  194. $form->image('xiangqin_wx_code', '红娘微信二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('xiangqin_wx_code', 'https://img.minisns.cn/qrcode/app.png'));
  195. $form->image('xiangqin_wx_img', '红娘微信头像')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('xiangqin_wx_img', 'https://img.minisns.cn/qrcode/app.png'));
  196. $form->text('message_vip_name', '私信会员弹窗')->placeholder('私信需要会员,是否去开通')->default(Settings::get('message_vip_name', ''));
  197. $form->text('huji_vip_name', '户籍地会员弹窗')->placeholder('户籍地筛选需要会员,是否去开通')->default(Settings::get('huji_vip_name', ''));
  198. $form->text('jvzhu_vip_name', '居住地会员弹窗')->placeholder('居住地筛选需要会员,是否去开通')->default(Settings::get('jvzhu_vip_name', ''));
  199. $form->text('yincang_vip_name', '隐藏在线状态')->placeholder('隐藏在线状态需要会员,是否去开通')->default(Settings::get('yincang_vip_name', ''));
  200. // $form->text('xiangqin_one_name', '亿友名称')->placeholder('亿友名称')->default(Settings::get('xiangqin_one_name', ''));
  201. // $form->image('xiangqin_one_wx_code', '亿友微信二维码')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('xiangqin_one_wx_code', 'https://img.minisns.cn/qrcode/app.png'));
  202. // $form->image('xiangqin_one_wx_img', '亿友微信头像')->help('建议和默认图片大小。 <a href="https://img.minisns.cn/qrcode/app.png" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('xiangqin_one_wx_img', 'https://img.minisns.cn/qrcode/app.png'));
  203. });
  204. $form->tab('相亲需求', function (Form $form) {
  205. $form->table('xiangqin_question','相亲需求', function (NestedForm $table) {
  206. $table->text('name', '内容')->required()->placeholder('');
  207. })->default(Settings::get('xiangqin_question', ''));
  208. });
  209. $form->action('settings/wx');
  210. return $form;
  211. }
  212. public function wx(Request $request)
  213. {
  214. SiteUtils::forget_config_data();
  215. $is_multi_site = $request->input('is_multi_site');
  216. if(!in_array($is_multi_site, [0, 1, 2, 3])){
  217. $is_multi_site = 0;
  218. }
  219. _update_env([
  220. 'APP_IS_MULTI_SITE' => $is_multi_site,
  221. 'MINI_EXAMINE_VER' => $request->input('app_examine_mode_effective_version', ''),
  222. 'H5_EXAMINE_VER' => $request->input('app_h5_examine_mode_effective_version', ''),
  223. 'ANDROID_EXAMINE_VER' => $request->input('app_app_android_examine_mode_effective_version', ''),
  224. 'IOS_EXAMINE_VER' => $request->input('app_app_ios_examine_mode_effective_version', ''),
  225. ], [], 1);
  226. Settings::set('is_image_detection', $request->input('is_image_detection'), true);
  227. Settings::set('is_multi_site', $is_multi_site, true);
  228. Settings::set('multi_site_name', $request->input('multi_site_name'), true);
  229. Settings::set('is_audit_posts', $request->input('is_audit_posts'), true);
  230. Settings::set('is_xiangqin_audit_posts', $request->input('is_xiangqin_audit_posts'), true);
  231. Settings::set('is_audit_comment', $request->input('is_audit_comment'), true);
  232. Settings::set('is_audit_user_info', $request->input('is_audit_user_info'), true);
  233. Settings::set('is_audit_create_cirlce', $request->input('is_audit_create_cirlce'), true);
  234. Settings::set('is_audit_create_tag', $request->input('is_audit_create_tag'), true);
  235. Settings::set('is_tag_match_img', $request->input('is_tag_match_img'), true);
  236. $xiangqin_audit_posts_white_list = $request->input('xiangqin_audit_posts_white_list');
  237. $xiangqin_audit_posts_white_list_ = [];
  238. if($xiangqin_audit_posts_white_list){
  239. foreach ($xiangqin_audit_posts_white_list as $i){
  240. if($i === null){
  241. continue;
  242. }
  243. $xiangqin_audit_posts_white_list_[] = (int)$i;
  244. }
  245. }
  246. $audit_posts_white_list = $request->input('audit_posts_white_list');
  247. $audit_posts_white_list_ = [];
  248. if($audit_posts_white_list){
  249. foreach ($audit_posts_white_list as $i){
  250. if($i === null){
  251. continue;
  252. }
  253. $audit_posts_white_list_[] = (int)$i;
  254. }
  255. }
  256. $audit_comment_white_list = $request->input('audit_comment_white_list');
  257. $audit_comment_white_list_ = [];
  258. if($audit_comment_white_list){
  259. foreach ($audit_comment_white_list as $i){
  260. if($i === null){
  261. continue;
  262. }
  263. $audit_comment_white_list_[] = (int)$i;
  264. }
  265. }
  266. $app_examine_mode_white_list = $request->input('app_examine_mode_white_list');
  267. $app_examine_mode_white_list_ = [];
  268. if($app_examine_mode_white_list){
  269. foreach ($app_examine_mode_white_list as $i){
  270. if($i === null){
  271. continue;
  272. }
  273. $app_examine_mode_white_list_[] = (int)$i;
  274. }
  275. }
  276. $app_h5_examine_mode_white_list = $request->input('app_h5_examine_mode_white_list');
  277. $app_h5_examine_mode_white_list_ = [];
  278. if($app_h5_examine_mode_white_list){
  279. foreach ($app_h5_examine_mode_white_list as $i){
  280. if($i === null){
  281. continue;
  282. }
  283. $app_h5_examine_mode_white_list_[] = (int)$i;
  284. }
  285. }
  286. $app_app_android_examine_mode_white_list = $request->input('app_app_android_examine_mode_white_list');
  287. $app_app_android_examine_mode_white_list_ = [];
  288. if($app_app_android_examine_mode_white_list){
  289. foreach ($app_app_android_examine_mode_white_list as $i){
  290. if($i === null){
  291. continue;
  292. }
  293. $app_app_android_examine_mode_white_list_[] = (int)$i;
  294. }
  295. }
  296. $app_app_ios_examine_mode_white_list = $request->input('app_app_ios_examine_mode_white_list');
  297. $app_app_ios_examine_mode_white_list_ = [];
  298. if($app_app_ios_examine_mode_white_list){
  299. foreach ($app_app_ios_examine_mode_white_list as $i){
  300. if($i === null){
  301. continue;
  302. }
  303. $app_app_ios_examine_mode_white_list_[] = (int)$i;
  304. }
  305. }
  306. Settings::set('audit_posts_white_list', $audit_posts_white_list_, true);
  307. Settings::set('audit_comment_white_list', $audit_comment_white_list_, true);
  308. Settings::set('app_examine_mode_white_list', $app_examine_mode_white_list_, true);
  309. Settings::set('xiangqin_audit_posts_white_list', $xiangqin_audit_posts_white_list_, true);
  310. Settings::set('app_examine_mode_effective_version', $request->input('app_examine_mode_effective_version'), true);
  311. Settings::set('app_h5_examine_mode_effective_version', $request->input('app_h5_examine_mode_effective_version'), true);
  312. Settings::set('app_app_android_examine_mode_effective_version', $request->input('app_app_android_examine_mode_effective_version'), true);
  313. Settings::set('app_app_ios_examine_mode_effective_version', $request->input('app_app_ios_examine_mode_effective_version'), true);
  314. Settings::set('app_h5_examine_mode_white_list', $app_h5_examine_mode_white_list_, true);
  315. Settings::set('app_app_android_examine_mode_white_list', $app_app_android_examine_mode_white_list_, true);
  316. Settings::set('app_app_ios_examine_mode_white_list', $app_app_ios_examine_mode_white_list_, true);
  317. Settings::set('is_examine_mode', $request->input('is_examine_mode'), true);
  318. Settings::set('is_h5_examine_mode', $request->input('is_h5_examine_mode'), true);
  319. Settings::set('is_app_android_examine_mode', $request->input('is_app_android_examine_mode'), true);
  320. Settings::set('is_app_ios_examine_mode', $request->input('is_app_ios_examine_mode'), true);
  321. // 二维码
  322. Settings::set('app_mini_code', $request->input('app_mini_code'), true);
  323. Settings::set('app_mp_code', $request->input('app_mp_code'), true);
  324. Settings::set('app_app_code', $request->input('app_app_code'), true);
  325. Settings::set('app_douyin_code', $request->input('app_douyin_code'), true);
  326. // 关于
  327. Settings::set('app_title', $request->input('app_title'), true);
  328. Settings::set('app_intro', $request->input('app_intro'), true);
  329. Settings::set('about_logo', $request->input('about_logo'), true);
  330. Settings::set('about_title', $request->input('about_title'), true);
  331. Settings::set('about_copyright', $request->input('about_copyright'), true);
  332. Settings::set('about_icp', $request->input('about_icp'), true);
  333. Settings::set('about_gwab', $request->input('about_gwab'), true);
  334. Settings::set('about_sms', $request->input('about_sms'), true);
  335. Settings::set('about_address', $request->input('about_address'), true);
  336. Settings::set('about_phone', $request->input('about_phone'), true);
  337. Settings::set('about_qq', $request->input('about_qq'), true);
  338. Settings::set('about_adjunct_word', $request->input('about_adjunct_word'), true);
  339. Settings::set('about_user_called', $request->input('about_user_called'), true);
  340. Settings::set('app_document_list', AdminUtils::_table_data($request->input('app_document_list')), true);
  341. // 标识
  342. Settings::set('authentication_popup_poster', $request->input('authentication_popup_poster'), true);
  343. Settings::set('official_popup_poster', $request->input('official_popup_poster'), true);
  344. Settings::set('popup_reward_select_img', $request->input('popup_reward_select_img'), true);
  345. Settings::set('popup_beliked_count_img', $request->input('popup_beliked_count_img'), true);
  346. // 图片
  347. Settings::set('img_empty', $request->input('img_empty'), true);
  348. Settings::set('img_default', $request->input('img_default'), true);
  349. Settings::set('img_share_default', $request->input('img_share_default'), true);
  350. Settings::set('img_post_poster_default', $request->input('img_post_poster_default'), true);
  351. Settings::set('img_sounds_default', $request->input('img_sounds_default'), true);
  352. Settings::set('img_video_default', $request->input('img_video_default'), true);
  353. Settings::set('img_default_circle_bg', $request->input('img_default_circle_bg'), true);
  354. Settings::set('img_default_avatar', $request->input('img_default_avatar'), true);
  355. Settings::set('img_default_topic_avatar', $request->input('img_default_topic_avatar'), true);
  356. Settings::set('img_default_topic_bg', $request->input('img_default_topic_bg'), true);
  357. Settings::set('img_default_topic_pc_bg', $request->input('img_default_topic_pc_bg'), true);
  358. // 举报
  359. Settings::set('app_report_safe_times_post', $request->input('app_report_safe_times_post'), true);
  360. Settings::set('app_report_safe_times_comment', $request->input('app_report_safe_times_comment'), true);
  361. Settings::set('app_report_safe_times_user', $request->input('app_report_safe_times_user'), true);
  362. Settings::set('app_report_safe_times_goods', $request->input('app_report_safe_times_goods'), true);
  363. Settings::set('app_report_safe_times_circle', $request->input('app_report_safe_times_circle'), true);
  364. Settings::set('app_report_safe_times_voter', $request->input('app_report_safe_times_voter'), true);
  365. Cache::forget('img_all_style_names');
  366. $img_style_str = AdminUtils::_table_data($request->input('img_style'));
  367. $img_style_arr = json_decode($img_style_str, true);
  368. if($img_style_arr){
  369. $style_ = [];
  370. foreach ($img_style_arr as $img_style){
  371. $style_ = array_merge($style_, explode(',', $img_style['style']));
  372. }
  373. Cache::put('img_all_style_names', json_encode(array_unique($style_)));
  374. }
  375. Settings::set('img_style', $img_style_str, true);
  376. Settings::set('img_style_action', $request->input('img_style_action'), true);
  377. // 浏览器
  378. Settings::set('browser_favicon_ico', $request->input('browser_favicon_ico'), true);
  379. // H5
  380. Settings::set('share_proportion', rtrim($request->input('share_proportion') ?? '', '/'), true);
  381. Settings::set('app_h5_home', rtrim($request->input('app_h5_home') ?? '', '/'), true);
  382. Settings::set('tuijian_price', rtrim($request->input('tuijian_price') ?? '', '/'), true);
  383. Settings::set('xiangqin_name', rtrim($request->input('xiangqin_name') ?? '', '/'), true);
  384. Settings::set('xiangqin_wx_code', rtrim($request->input('xiangqin_wx_code') ?? '', '/'), true);
  385. Settings::set('xiangqin_wx_img', rtrim($request->input('xiangqin_wx_img') ?? '', '/'), true);
  386. Settings::set('message_vip_name', rtrim($request->input('message_vip_name') ?? '', '/'), true);
  387. Settings::set('huji_vip_name', rtrim($request->input('huji_vip_name') ?? '', '/'), true);
  388. Settings::set('jvzhu_vip_name', rtrim($request->input('jvzhu_vip_name') ?? '', '/'), true);
  389. Settings::set('yincang_vip_name', rtrim($request->input('yincang_vip_name') ?? '', '/'), true);
  390. Settings::set('xiangqin_one_name', rtrim($request->input('xiangqin_one_name') ?? '', '/'), true);
  391. Settings::set('xiangqin_one_wx_code', rtrim($request->input('xiangqin_one_wx_code') ?? '', '/'), true);
  392. Settings::set('xiangqin_one_wx_img', rtrim($request->input('xiangqin_one_wx_img') ?? '', '/'), true);
  393. Settings::set('is_city_wide', $request->input('is_city_wide'), true);
  394. Settings::set('is_new_list', $request->input('is_new_list'), true);
  395. Settings::set('xiangqin_question', AdminUtils::_table_data($request->input('xiangqin_question')), true);
  396. SettingImgToJpgJob::dispatch(['img_share_default']);
  397. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  398. Settings::set('__global_config_version__', $__global_config_version__);
  399. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  400. return $this->response()->success('成功!');
  401. }
  402. }