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()->ImageControl('website.download_page_background', '下载页背景图') ->accept('.png,.jpg,.jpeg') ->receiver($this->uploadImagePath().'?full-url=1') ->value('${website.download_page_background}'), ]), 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([ amis()->NumberControl()->min(0)->name('sign.distance')->label('允许打卡的距离(米)'), ]), ]) ); } public function store(Request $request) { $data = $request->only([ 'upload_disk', 'oss_config', 'sign', 'website', ]); //上传设置-修改env文件内配置; // if (! empty($data['upload_disk'])) { // $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); // } return settings()->adminSetMany($data); } }