store-manage/app/Admin/Controllers/SettingController.php

98 lines
4.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace App\Admin\Controllers;
use Illuminate\Http\Request;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use Slowlyo\OwlAdmin\Renderers\Tab;
use Slowlyo\OwlAdmin\Renderers\Tabs;
class SettingController extends AdminController
{
public function index()
{
$page = $this->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);
}
}