formAppTrait.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxSettingTraits;
  3. use App\Wen\Utils\AdminUtils;
  4. use App\Wen\Utils\GatewayUtils;
  5. use App\Wen\Utils\Settings;
  6. use App\Wen\Utils\SiteUtils;
  7. use Dcat\Admin\Form\NestedForm;
  8. use Dcat\Admin\Layout\Content;
  9. use Dcat\Admin\Widgets\Form;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\Cache;
  12. trait formAppTrait{
  13. public function index_app(Content $content)
  14. {
  15. return $content->title('App相关')
  16. // ->body($this->buildPreviewButton())
  17. // ->body($this->newline())
  18. ->body(
  19. <<<HTML
  20. <div class="card">{$this->form_app()->render()}</div>
  21. HTML
  22. );
  23. }
  24. protected function form_app(){
  25. $form = new Form();
  26. $form->confirm('您确定要提交表单吗?', 'content');
  27. $form->disableResetButton();
  28. $form->tab('基本', function (Form $form) {
  29. $form->text('admin_app_introduce_page', 'App介绍页面地址')->default(Settings::get('admin_app_introduce_page', 'https://www.minisns.cn'));
  30. $form->text('admin_app_url_schemes', 'urlSchemes')->help('查看<a href="https://img.mini.minisns.cn/images/urlSchemes.jpg" target="_blank">配置说明</a>')->default(Settings::get('admin_app_url_schemes', 'chongyeapp'));
  31. $form->divider();
  32. $form->html(function () {
  33. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">说明: h5状态下,只有微信浏览器才能登录,所以在普通浏览器时,推荐用户浏览一定的页面数就跳转到下载App页</div>';
  34. }, '');
  35. $form->radio('h5_normal_browser_redirect', '非微信浏览器跳转下载页')->options([1=>'开启', 0=>'关闭'])->default(Settings::get('h5_normal_browser_redirect', 0));
  36. $form->number('h5_normal_browser_redirect_pages', '浏览页面数')->help('默认用户浏览了4页,在第五页时立即跳转')->default(Settings::get('h5_normal_browser_redirect_pages', 5));
  37. $form->divider();
  38. });
  39. $form->tab('版本', function (Form $form) {
  40. $form->html(function () {
  41. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">Tips:<br> 1、是否更新取决于版本号,版本号必须是三个数字,中间两个点,类似 1.0.1<br/>2、最下面新添加的代表当前版本,以前的老版本理论可以删除,仅做备注<br/>3、版本描述的换行使用 \n,不是你电脑的回车<br>4、IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接</div>';
  42. }, '');
  43. $form->table('admin_app_android_update','安卓更新', function (NestedForm $table) {
  44. $table->text('version', '版本号')->placeholder('1.0.1')->required();
  45. $table->textarea('desc', '版本描述')->placeholder('1、修复了xx\n2、增加了xx')->required();
  46. $table->select('type', '更新方式')->options(['forcibly'=>'强制更新', 'solicit'=>'弹窗确认更新', 'silent'=>'静默更新'])->default('forcibly')->required();
  47. $table->text('url', '下载地址')->placeholder('https://www.minisns.cn/chongye.apk')->required();
  48. })->default(Settings::get('admin_app_android_update', ''));
  49. $form->table('admin_app_ios_update','IOS更新', function (NestedForm $table) {
  50. $table->text('version', '版本号')->placeholder('1.0.1')->required();
  51. $table->textarea('desc', '版本描述')->placeholder('1、修复了xx\n2、增加了xx')->required();
  52. $table->select('type', '更新方式')->options(['forcibly'=>'强制更新', 'solicit'=>'弹窗确认更新', 'silent'=>'静默更新'])->default('forcibly')->required();
  53. $table->text('url', '下载地址')->placeholder('https://apps.apple.com/cn/app/%')->required();
  54. })->default(Settings::get('admin_app_ios_update', ''));
  55. });
  56. $form->tab('引导图', function (Form $form) {
  57. $form->html(function () {
  58. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">Tips:<br> 1、必须是三页,如果你不需要引导图,就一个都不要添加<br>2、引导图是首次启用App进行展现的,和启动图区分开,一般介绍你的App主要作用<br>3、点击查看<a href="https://img.mini.minisns.cn/images/guide/example.jpg" target="_blank" style="color: blue;">示例配置</a>,<a href="https://img.mini.minisns.cn/images/guide/guide.gif" target="_blank" style="color: blue;">示例效果</a></div>';
  59. }, '');
  60. $form->table('admin_app_guide','引导图', function (NestedForm $table) {
  61. $table->text('title', '标题')->default('')->required();
  62. $table->text('desc', '描述')->default('');
  63. $table->image('img', '图片')->help('建议和默认图片大小。 <a href="https://img.mini.minisns.cn/images/guide/01_c.png" download="pc_index_right_banner.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default('');
  64. })->default(Settings::get('admin_app_guide', ''));
  65. });
  66. $form->action('settings/action/app');
  67. return $form;
  68. }
  69. public function app(Request $request)
  70. {
  71. SiteUtils::forget_config_data();
  72. $admin_app_android_update = AdminUtils::_table_data($request->input('admin_app_android_update'));
  73. $admin_app_ios_update = AdminUtils::_table_data($request->input('admin_app_ios_update'));
  74. $admin_app_guide = AdminUtils::_table_data($request->input('admin_app_guide'));
  75. Settings::set('admin_app_android_update', $admin_app_android_update, true);
  76. Settings::set('admin_app_ios_update', $admin_app_ios_update, true);
  77. Settings::set('admin_app_guide', $admin_app_guide, true);
  78. Settings::set('admin_app_introduce_page', $request->input('admin_app_introduce_page'), true);
  79. Settings::set('admin_app_url_schemes', $request->input('admin_app_url_schemes'), true);
  80. Settings::set('h5_normal_browser_redirect', $request->input('h5_normal_browser_redirect'), true);
  81. Settings::set('h5_normal_browser_redirect_pages', $request->input('h5_normal_browser_redirect_pages'), true);
  82. $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
  83. Settings::set('__global_config_version__', $__global_config_version__);
  84. GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
  85. return $this->response()->success('成功!');
  86. }
  87. }