调整搜索排版,以及添加阿里云OSS切换
parent
038427493c
commit
2872d54f6f
|
|
@ -29,22 +29,21 @@ class AdController extends AdminController
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->filter($this->baseFilter()->labelWidth('80px')->body([
|
->filter($this->baseFilter()->labelWidth('80px')->body([
|
||||||
amis()->TextControl('id', __('admin.ads.id'))
|
amis()->GroupControl()->mode('horizontal')->body([
|
||||||
->size('md')
|
amis()->TextControl('id', __('admin.ads.id'))
|
||||||
->placeholder(__('admin.id')),
|
->placeholder(__('admin.id')),
|
||||||
amis()->TextControl('remark', __('admin.ads.remark'))
|
amis()->TextControl('remark', __('admin.ads.remark'))
|
||||||
->size('md')
|
->placeholder(__('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'),
|
||||||
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'))
|
||||||
->size('md'),
|
->options([
|
||||||
amis()->InputDatetimeRange()->label(__('admin.ads.published_at'))->name('published_at'),
|
1=>'开启',0=>'关闭'
|
||||||
|
]),
|
||||||
amis()->SelectControl('enable', __('admin.ads.is_enable'))
|
]),
|
||||||
->options([
|
amis()->GroupControl()->mode('horizontal')->body([
|
||||||
1=>'开启',0=>'关闭'
|
amis()->InputDatetimeRange()->label(__('admin.ads.published_at'))->name('published_at'),
|
||||||
])
|
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
||||||
->size('md'),
|
]),
|
||||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
|
||||||
]))
|
]))
|
||||||
->columns([
|
->columns([
|
||||||
amis()->TableColumn('id', __('admin.ads.id'))->width('50px')->sortable(),
|
amis()->TableColumn('id', __('admin.ads.id'))->width('50px')->sortable(),
|
||||||
|
|
|
||||||
|
|
@ -22,30 +22,31 @@ class ArticleController extends AdminController
|
||||||
$this->createButton(),
|
$this->createButton(),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->filter($this->baseFilter()->labelWidth('80px')->body([
|
->filter($this->baseFilter()->body([
|
||||||
amis()->TextControl('id', __('admin.articles.id'))
|
amis()->GroupControl()->mode('horizontal')->body([
|
||||||
->size('md')
|
amis()->TextControl('id', __('admin.articles.id'))
|
||||||
->placeholder(__('admin.id')),
|
->placeholder(__('admin.id')),
|
||||||
amis()->TextControl('title', __('admin.articles.title'))
|
amis()->TextControl('title', __('admin.articles.title'))
|
||||||
->size('md')
|
->placeholder(__('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()->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'),
|
||||||
->size('md'),
|
]),
|
||||||
amis()->InputDatetimeRange()->label(__('admin.articles.published_at'))->name('published_at'),
|
amis()->GroupControl()->mode('horizontal')->body([
|
||||||
|
amis()->SelectControl('enable', __('admin.articles.is_enable'))
|
||||||
Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag')
|
->columnRatio(3)
|
||||||
->size('md'),
|
|
||||||
amis()->SelectControl('enable', __('admin.articles.is_enable'))
|
|
||||||
->options([
|
->options([
|
||||||
1=>'开启',0=>'关闭'
|
1=>'开启',0=>'关闭'
|
||||||
])
|
]),
|
||||||
->size('md'),
|
amis()->SelectControl('recommend', __('admin.articles.is_recommend'))
|
||||||
amis()->SelectControl('recommend', __('admin.articles.is_recommend'))
|
->columnRatio(3)
|
||||||
->options([
|
->options([
|
||||||
1=>'开启',0=>'关闭'
|
1=>'开启',0=>'关闭'
|
||||||
])
|
]),
|
||||||
->size('md'),
|
amis()->InputDatetimeRange()->label(__('admin.articles.published_at'))->name('published_at'),
|
||||||
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at'),
|
]),
|
||||||
|
amis()->GroupControl()->mode('horizontal')->body([
|
||||||
|
amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at')->columnRatio(6),
|
||||||
|
]),
|
||||||
]))
|
]))
|
||||||
->itemBadge([//行角标
|
->itemBadge([//行角标
|
||||||
'text' => __('admin.articles.is_recommend'),
|
'text' => __('admin.articles.is_recommend'),
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Admin\Controllers;
|
namespace App\Admin\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Tab;
|
use Slowlyo\OwlAdmin\Renderers\Tab;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Tabs;
|
use Slowlyo\OwlAdmin\Renderers\Tabs;
|
||||||
|
|
@ -15,7 +16,6 @@ class SettingController extends AdminController
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$page = $this->basePage()->body([
|
$page = $this->basePage()->body([
|
||||||
Alert::make()->showIcon(true)->body("此处内容仅供演示, 设置项无实际意义,实际开发中请根据实际情况进行修改。"),
|
|
||||||
$this->form(),
|
$this->form(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -25,19 +25,23 @@ class SettingController extends AdminController
|
||||||
public function form()
|
public function form()
|
||||||
{
|
{
|
||||||
return $this->baseForm(false)
|
return $this->baseForm(false)
|
||||||
->redirect('')
|
->redirect('')->labelWidth('200px')
|
||||||
->api($this->getStorePath())
|
->api($this->getStorePath())
|
||||||
->data(settings()->all())
|
->data(settings()->all())
|
||||||
->body(
|
->body(
|
||||||
Tabs::make()->tabs([
|
Tabs::make()->tabs([
|
||||||
Tab::make()->title('基本设置')->body([
|
|
||||||
TextControl::make()->label('网站名称')->name('site_name'),
|
|
||||||
InputKV::make()->label('附加配置')->name('addition_config'),
|
|
||||||
]),
|
|
||||||
Tab::make()->title('上传设置')->body([
|
Tab::make()->title('上传设置')->body([
|
||||||
TextControl::make()->label('上传域名')->name('upload_domain'),
|
amis()->RadiosControl('upload_disk', '上传驱动')->options([
|
||||||
TextControl::make()->label('上传路径')->name('upload_path'),
|
'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)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$data = $request->only([
|
$data = $request->only([
|
||||||
'site_name',
|
'upload_disk',
|
||||||
'addition_config',
|
'oss_config'
|
||||||
'upload_domain',
|
|
||||||
'upload_path',
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
//上传设置-修改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);
|
return settings()->adminSetMany($data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.1",
|
"php": "^8.1",
|
||||||
|
"alphasnow/aliyun-oss-laravel": "^4.7",
|
||||||
"guzzlehttp/guzzle": "^7.2",
|
"guzzlehttp/guzzle": "^7.2",
|
||||||
"laravel/framework": "^10.10",
|
"laravel/framework": "^10.10",
|
||||||
"laravel/sanctum": "^3.3",
|
"laravel/sanctum": "^3.3",
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,143 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "ec2cedc62465f8a6d60ba0b0f78581dd",
|
"content-hash": "b2333ae7a977ba073ff6ef0f01f5de43",
|
||||||
"packages": [
|
"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",
|
"name": "brick/math",
|
||||||
"version": "0.11.0",
|
"version": "0.11.0",
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ return [
|
||||||
],
|
],
|
||||||
|
|
||||||
'upload' => [
|
'upload' => [
|
||||||
'disk' => 'public',
|
'disk' => env("FILESYSTEM_DISK", 'public'),
|
||||||
// 文件上传目录
|
// 文件上传目录
|
||||||
'directory' => [
|
'directory' => [
|
||||||
'image' => 'images',
|
'image' => 'images',
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,22 @@ return [
|
||||||
'throw' => false,
|
'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