调整搜索排版,以及添加阿里云OSS切换
parent
038427493c
commit
2872d54f6f
|
|
@ -29,22 +29,21 @@ class AdController extends AdminController
|
|||
...$this->baseHeaderToolBar(),
|
||||
])
|
||||
->filter($this->baseFilter()->labelWidth('80px')->body([
|
||||
amis()->TextControl('id', __('admin.ads.id'))
|
||||
->size('md')
|
||||
->placeholder(__('admin.id')),
|
||||
amis()->TextControl('remark', __('admin.ads.remark'))
|
||||
->size('md')
|
||||
->placeholder(__('admin.ads.remark')),
|
||||
Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=banner_address&has_owner=0'), 'address', __('admin.ads.address'), 'name', 'key')
|
||||
->size('md'),
|
||||
amis()->InputDatetimeRange()->label(__('admin.ads.published_at'))->name('published_at'),
|
||||
|
||||
amis()->SelectControl('enable', __('admin.ads.is_enable'))
|
||||
->options([
|
||||
1=>'开启',0=>'关闭'
|
||||
])
|
||||
->size('md'),
|
||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amis()->TextControl('id', __('admin.ads.id'))
|
||||
->placeholder(__('admin.id')),
|
||||
amis()->TextControl('remark', __('admin.ads.remark'))
|
||||
->placeholder(__('admin.ads.remark')),
|
||||
Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=banner_address&has_owner=0'), 'address', __('admin.ads.address'), 'name', 'key'),
|
||||
amis()->SelectControl('enable', __('admin.ads.is_enable'))
|
||||
->options([
|
||||
1=>'开启',0=>'关闭'
|
||||
]),
|
||||
]),
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amis()->InputDatetimeRange()->label(__('admin.ads.published_at'))->name('published_at'),
|
||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
||||
]),
|
||||
]))
|
||||
->columns([
|
||||
amis()->TableColumn('id', __('admin.ads.id'))->width('50px')->sortable(),
|
||||
|
|
|
|||
|
|
@ -22,30 +22,31 @@ class ArticleController extends AdminController
|
|||
$this->createButton(),
|
||||
...$this->baseHeaderToolBar(),
|
||||
])
|
||||
->filter($this->baseFilter()->labelWidth('80px')->body([
|
||||
amis()->TextControl('id', __('admin.articles.id'))
|
||||
->size('md')
|
||||
->placeholder(__('admin.id')),
|
||||
amis()->TextControl('title', __('admin.articles.title'))
|
||||
->size('md')
|
||||
->placeholder(__('admin.articles.title')),
|
||||
Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key')
|
||||
->size('md'),
|
||||
amis()->InputDatetimeRange()->label(__('admin.articles.published_at'))->name('published_at'),
|
||||
|
||||
Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag')
|
||||
->size('md'),
|
||||
amis()->SelectControl('enable', __('admin.articles.is_enable'))
|
||||
->filter($this->baseFilter()->body([
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amis()->TextControl('id', __('admin.articles.id'))
|
||||
->placeholder(__('admin.id')),
|
||||
amis()->TextControl('title', __('admin.articles.title'))
|
||||
->placeholder(__('admin.articles.title')),
|
||||
Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key'),
|
||||
Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag'),
|
||||
]),
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amis()->SelectControl('enable', __('admin.articles.is_enable'))
|
||||
->columnRatio(3)
|
||||
->options([
|
||||
1=>'开启',0=>'关闭'
|
||||
])
|
||||
->size('md'),
|
||||
amis()->SelectControl('recommend', __('admin.articles.is_recommend'))
|
||||
]),
|
||||
amis()->SelectControl('recommend', __('admin.articles.is_recommend'))
|
||||
->columnRatio(3)
|
||||
->options([
|
||||
1=>'开启',0=>'关闭'
|
||||
])
|
||||
->size('md'),
|
||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
||||
]),
|
||||
amis()->InputDatetimeRange()->label(__('admin.articles.published_at'))->name('published_at'),
|
||||
]),
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at')->columnRatio(6),
|
||||
]),
|
||||
]))
|
||||
->itemBadge([//行角标
|
||||
'text' => __('admin.articles.is_recommend'),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Http\Request;
|
||||
use Slowlyo\OwlAdmin\Renderers\Tab;
|
||||
use Slowlyo\OwlAdmin\Renderers\Tabs;
|
||||
|
|
@ -15,7 +16,6 @@ class SettingController extends AdminController
|
|||
public function index()
|
||||
{
|
||||
$page = $this->basePage()->body([
|
||||
Alert::make()->showIcon(true)->body("此处内容仅供演示, 设置项无实际意义,实际开发中请根据实际情况进行修改。"),
|
||||
$this->form(),
|
||||
]);
|
||||
|
||||
|
|
@ -25,19 +25,23 @@ class SettingController extends AdminController
|
|||
public function form()
|
||||
{
|
||||
return $this->baseForm(false)
|
||||
->redirect('')
|
||||
->redirect('')->labelWidth('200px')
|
||||
->api($this->getStorePath())
|
||||
->data(settings()->all())
|
||||
->body(
|
||||
Tabs::make()->tabs([
|
||||
Tab::make()->title('基本设置')->body([
|
||||
TextControl::make()->label('网站名称')->name('site_name'),
|
||||
InputKV::make()->label('附加配置')->name('addition_config'),
|
||||
]),
|
||||
Tab::make()->title('上传设置')->body([
|
||||
TextControl::make()->label('上传域名')->name('upload_domain'),
|
||||
TextControl::make()->label('上传路径')->name('upload_path'),
|
||||
]),
|
||||
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"}'),
|
||||
]),
|
||||
])
|
||||
);
|
||||
}
|
||||
|
|
@ -45,12 +49,43 @@ class SettingController extends AdminController
|
|||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->only([
|
||||
'site_name',
|
||||
'addition_config',
|
||||
'upload_domain',
|
||||
'upload_path',
|
||||
'upload_disk',
|
||||
'oss_config'
|
||||
]);
|
||||
|
||||
//上传设置-修改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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"alphasnow/aliyun-oss-laravel": "^4.7",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"laravel/framework": "^10.10",
|
||||
"laravel/sanctum": "^3.3",
|
||||
|
|
|
|||
|
|
@ -4,8 +4,143 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "ec2cedc62465f8a6d60ba0b0f78581dd",
|
||||
"content-hash": "b2333ae7a977ba073ff6ef0f01f5de43",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aliyuncs/oss-sdk-php",
|
||||
"version": "v2.6.0",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.cloud.tencent.com/repository/composer/aliyuncs/oss-sdk-php/v2.6.0/aliyuncs-oss-sdk-php-v2.6.0.zip",
|
||||
"reference": "572d0f8e099e8630ae7139ed3fdedb926c7a760f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "*",
|
||||
"satooshi/php-coveralls": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"OSS\\": "src/OSS"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Aliyuncs",
|
||||
"homepage": "http://www.aliyun.com"
|
||||
}
|
||||
],
|
||||
"description": "Aliyun OSS SDK for PHP",
|
||||
"homepage": "http://www.aliyun.com/product/oss/",
|
||||
"time": "2022-08-03T08:06:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "alphasnow/aliyun-oss-flysystem",
|
||||
"version": "3.3.3",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.cloud.tencent.com/repository/composer/alphasnow/aliyun-oss-flysystem/3.3.3/alphasnow-aliyun-oss-flysystem-3.3.3.zip",
|
||||
"reference": "ac62f862cb743ca76f7c3c146ffdd8d52af86153",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"aliyuncs/oss-sdk-php": "^2.5",
|
||||
"league/flysystem": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.6",
|
||||
"mockery/mockery": "^1.5",
|
||||
"php-coveralls/php-coveralls": "*",
|
||||
"phpstan/phpstan": "^1.4",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"vlucas/phpdotenv": "^5.4"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"AlphaSnow\\Flysystem\\Aliyun\\": "src/"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Alpha Snow",
|
||||
"email": "wind91@foxmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Flysystem adapter for the Aliyun storage",
|
||||
"homepage": "https://alphasnow.github.io/aliyun-oss-flysystem/",
|
||||
"keywords": [
|
||||
"adapter",
|
||||
"aliyun",
|
||||
"filesystem",
|
||||
"oss"
|
||||
],
|
||||
"time": "2023-06-29T08:45:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "alphasnow/aliyun-oss-laravel",
|
||||
"version": "4.7.1",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://mirrors.cloud.tencent.com/repository/composer/alphasnow/aliyun-oss-laravel/4.7.1/alphasnow-aliyun-oss-laravel-4.7.1.zip",
|
||||
"reference": "d4f5885bcff8c7a5c43be118e749a85fe5eb6a99",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"alphasnow/aliyun-oss-flysystem": "^3.3",
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.12",
|
||||
"mockery/mockery": "^1.5",
|
||||
"orchestra/testbench": "^7.13",
|
||||
"php-coveralls/php-coveralls": "*",
|
||||
"phpstan/phpstan": "^1.9",
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"AlphaSnow\\LaravelFilesystem\\Aliyun\\AliyunServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"AlphaSnow\\LaravelFilesystem\\Aliyun\\": "src/"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "alphasnow",
|
||||
"email": "wind91@foxmail.com"
|
||||
}
|
||||
],
|
||||
"description": "alibaba cloud object storage service for laravel",
|
||||
"homepage": "https://alphasnow.github.io/aliyun-oss-laravel/",
|
||||
"keywords": [
|
||||
"aliyun",
|
||||
"filesystems",
|
||||
"laravel",
|
||||
"oss",
|
||||
"storage"
|
||||
],
|
||||
"time": "2022-12-03T14:27:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "brick/math",
|
||||
"version": "0.11.0",
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ return [
|
|||
],
|
||||
|
||||
'upload' => [
|
||||
'disk' => 'public',
|
||||
'disk' => env("FILESYSTEM_DISK", 'public'),
|
||||
// 文件上传目录
|
||||
'directory' => [
|
||||
'image' => 'images',
|
||||
|
|
|
|||
|
|
@ -56,6 +56,22 @@ return [
|
|||
'throw' => false,
|
||||
],
|
||||
|
||||
"oss" => [
|
||||
"driver" => "oss",
|
||||
"access_key_id" => env("OSS_ACCESS_KEY_ID"), // 必填, 阿里云的AccessKeyId
|
||||
"access_key_secret" => env("OSS_ACCESS_KEY_SECRET"), // 必填, 阿里云的AccessKeySecret
|
||||
"bucket" => env("OSS_BUCKET"), // 必填, 对象存储的Bucket, 示例: my-bucket
|
||||
"endpoint" => env("OSS_ENDPOINT"), // 必填, 对象存储的Endpoint, 示例: oss-cn-shanghai.aliyuncs.com
|
||||
"internal" => env("OSS_INTERNAL", null), // 选填, 内网上传地址,填写即启用 示例: oss-cn-shanghai-internal.aliyuncs.com
|
||||
"domain" => env("OSS_DOMAIN", null), // 选填, 绑定域名,填写即启用 示例: oss.my-domain.com
|
||||
"is_cname" => env("OSS_CNAME", false), // 选填, 若Endpoint为自定义域名,此项要为true,见:https://github.com/aliyun/aliyun-oss-php-sdk/blob/572d0f8e099e8630ae7139ed3fdedb926c7a760f/src/OSS/OssClient.php#L113C1-L122C78
|
||||
"prefix" => env("OSS_PREFIX", ""), // 选填, 统一存储地址前缀
|
||||
"use_ssl" => env("OSS_SSL", false), // 选填, 是否使用HTTPS
|
||||
"reverse_proxy" => env("OSS_REVERSE_PROXY", false), // 选填, 域名是否使用NGINX代理绑定
|
||||
"throw" => env("OSS_THROW", true), // 选填, 是否抛出引起错误的异常,默认出现错误时,不抛出异常仅返回false
|
||||
"options" => [], // 选填, 添加全局配置参数, 示例: [\OSS\OssClient::OSS_CHECK_MD5 => false]
|
||||
"macros" => [] // 选填, 添加自定义Macro, 示例: [\App\Macros\ListBuckets::class, \App\Macros\CreateBucket::class]
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue