diff --git a/app/Admin/Controllers/AdController.php b/app/Admin/Controllers/AdController.php index a67ac73..352c169 100644 --- a/app/Admin/Controllers/AdController.php +++ b/app/Admin/Controllers/AdController.php @@ -34,7 +34,9 @@ class AdController extends AdminController amis()->TableColumn('address', __('admin.ads.address'))->type('mapping') ->map(Keyword::allChildrenOfKey('banner_address')->pluck('name', 'key')->toArray()) ->itemSchema(amis()->Tag()->label('${item}')->color(Admin::setting()->get('system_theme_setting')['theme_color'] ?? '#1677ff')), - amis()->TableColumn('sort', __('admin.ads.sort')), + amis()->TableColumn('sort', __('admin.ads.sort'))->quickEdit( + amis()->NumberControl()->min(0)->saveImmediately(true) + ), amis()->TableColumn('resource', __('admin.ads.resource'))->type('image')->height('50px')->width('150px')->enlargeAble(true), amis()->TableColumn('remark', __('admin.ads.remark')), amis()->TableColumn('published_at', __('admin.ads.published_at'))->remark(__('admin.ads.published_at_remark')), diff --git a/app/Casts/Storage.php b/app/Casts/Storage.php index 404f9b5..c8b7c83 100644 --- a/app/Casts/Storage.php +++ b/app/Casts/Storage.php @@ -26,7 +26,7 @@ class Storage implements CastsAttributes */ public function get($model, $key, $value, $attributes) { - return $value ? (Str::startsWith($value, ['http://', 'https://']) ? $value : StorageFacades::disk(Admin::config('admin.upload.disk'))->url($value)).'?time='.time() : ''; + return $value ? (Str::startsWith($value, ['http://', 'https://']) ? $value : StorageFacades::disk(Admin::config('admin.upload.disk'))->url($value)) : ''; } /** diff --git a/app/Models/Ad.php b/app/Models/Ad.php index 6be8487..6311db2 100644 --- a/app/Models/Ad.php +++ b/app/Models/Ad.php @@ -27,7 +27,6 @@ class Ad extends Model 'updated_at' => 'datetime', 'published_at' => 'datetime', 'is_enable' => 'boolean', - 'resource' => Storage::class, 'jump_config' => 'array', ]; diff --git a/app/Models/Article.php b/app/Models/Article.php index 66576b2..26a95cd 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -26,7 +26,6 @@ class Article extends Model 'published_at' => 'datetime:Y-m-d H:i:s', 'is_enable' => 'boolean', 'is_recommend' => 'boolean', - 'cover' => Storage::class, 'appendixes' => 'array', ]; diff --git a/app/Services/Admin/AdService.php b/app/Services/Admin/AdService.php index c1feaf6..84fa949 100644 --- a/app/Services/Admin/AdService.php +++ b/app/Services/Admin/AdService.php @@ -32,7 +32,9 @@ class AdService extends BaseService $data['published_at'] = now(); } - $data['resource'] = $this->saveImage('resource', 'ads/resource')[0]; + if(isset($data['resource'])){ + $data['resource'] = $this->saveImage('resource', 'ads/resource')[0]; + } //处理跳转配置 $jumpType = Arr::get($data, 'jump_type'); diff --git a/app/Services/Admin/ArticleService.php b/app/Services/Admin/ArticleService.php index 69682d2..14c4913 100644 --- a/app/Services/Admin/ArticleService.php +++ b/app/Services/Admin/ArticleService.php @@ -57,6 +57,7 @@ class ArticleService extends BaseService if ($isEnable && empty($publishedAt) && empty($model->published_at)) { $data['published_at'] = now(); } + if(isset($data['cover'])){ $data['cover'] = $this->saveImage('cover', 'articles/cover')[0]; } diff --git a/app/Traits/UploadTrait.php b/app/Traits/UploadTrait.php index a39ee02..131b91e 100644 --- a/app/Traits/UploadTrait.php +++ b/app/Traits/UploadTrait.php @@ -70,7 +70,7 @@ trait UploadTrait } /** - * 表单提交时,转存实际目录,并保留上传时文件名称; + * 表单提交时,转存实际目录,并保留上传时文件名称;文件保存全路径 */ public function saveFile($field = 'file', $path) { @@ -82,24 +82,38 @@ trait UploadTrait $fileArr = []; //判断是否多个文件; - if(isset($file['name'])){ + if(is_string($file) || isset($file['id'])){ $files = [$file]; }else{ - $files =$file; + $files = $file; } - foreach($files as $file){ - if(is_array($file)){ - if(isset($file['name'])){ - $filePath = $path.'/'.$file['name']; - Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath); - $fileArr[] = $filePath; + if($files){ + foreach($files as $file){ + if(is_array($file) && isset($file['state'])){ + switch($file['state']){ + case 'init': + if(strpos($file['value'], 'temporary') !== false){ + $filePath = $path.'/'.$file['name']; + Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath); + $fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath); + }else{ + $fileArr[] = $file['value']; + } + break; + case 'uploaded': + if(isset($file['name'])){ + $filePath = $path.'/'.$file['name']; + Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath); + $fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath); + } + break; + } + }else{ + $fileArr[] = $file; } - }else{ - $fileArr[] = $file; } } - return $fileArr; } } \ No newline at end of file