basePage()->body([ $this->form(), ]); return $this->response()->success($page); } public function form() { return $this->baseForm(false) ->redirect('')->labelWidth('200px') ->api($this->getStorePath()) ->data(settings()->all()) ->body( Tabs::make()->tabs([ Tab::make()->title('上传设置')->body([ amis()->RadiosControl('upload_disk', '上传驱动')->options([ 'public'=>'本地存储', 'oss' => '阿里云OSS', ])->value('public')->required(true), amis()->TextControl('oss_config.access_key_id', '阿里云AccessKeyId')->required(true)->size('lg')->visibleOn('${upload_disk == "oss"}'), amis()->TextControl('oss_config.access_key_secret', '阿里云AccessKeySecret')->required(true)->size('lg')->visibleOn('${upload_disk == "oss"}'), amis()->TextControl('oss_config.bucket', '对象存储Bucket')->required(true)->size('lg')->visibleOn('${upload_disk == "oss"}')->remark('示例: my-bucket'), amis()->TextControl('oss_config.endpoint', '对象存储endpoint')->required(true)->size('lg')->visibleOn('${upload_disk == "oss"}')->remark('示例: oss-cn-shanghai.aliyuncs.com'), amis()->TextControl('oss_config.domain', '自有域名')->size('lg')->visibleOn('${upload_disk == "oss"}')->remark('填写即启用 示例: my-domain.com'), amis()->SwitchControl('oss_config.use_ssl', '开启SSL')->value(false)->visibleOn('${upload_disk == "oss"}'), ]), Tab::make()->title('小程序配置')->body([ Components::make()->cropImageControl('mini_logo', '小程序logo'), Components::make()->fuEditorControl('user_agreement', '用户协议'), // Components::make()->fuEditorControl('privacy_policy', '隐私政策'), ]), ]) ); } public function store(Request $request) { $data = $request->only([ 'upload_disk', 'oss_config', 'mini_logo', 'user_agreement', // 'privacy_policy' ]); //上传设置-修改env文件内配置; if(!empty($data['upload_disk'])){ $envData = array(); $envData['FILESYSTEM_DISK'] = $data['upload_disk']; if($envData['FILESYSTEM_DISK'] == 'oss'){//如果设置为OSS驱动,则配置env变量 $envData['OSS_ACCESS_KEY_ID'] = Arr::get($data['oss_config'], 'access_key_id'); $envData['OSS_ACCESS_KEY_SECRET'] = Arr::get($data['oss_config'], 'access_key_secret'); $envData['OSS_BUCKET'] = Arr::get($data['oss_config'], 'bucket'); $envData['OSS_ENDPOINT'] = Arr::get($data['oss_config'], 'endpoint'); $envData['OSS_DOMAIN'] = Arr::get($data['oss_config'], 'domain'); if(!empty($envData['OSS_DOMAIN'])){ $envData['OSS_CNAME'] = 'true'; }else{ $envData['OSS_CNAME'] = 'false'; } $envData['OSS_SSL'] = Arr::get($data['oss_config'], 'use_ssl') ? 'true':'false'; } $envPath = base_path() . DIRECTORY_SEPARATOR . '.env'; $contentArray = collect(file($envPath, FILE_IGNORE_NEW_LINES)); $contentArray->transform(function ($item) use ($envData){ foreach ($envData as $key => $value){ if(str_contains($item, $key)){ return $key . '=' . $value; } } return $item; }); $content = implode("\n", $contentArray->toArray()); \File::put($envPath, $content); } //处理图片上传 if(!empty($data['mini_logo'])){ $data['mini_logo'] = $this->saveImage('mini_logo', 'settings')[0] ?? ''; } return settings()->adminSetMany($data); } }