From 8f48d61cdeb849375206dcbdc36ed64ae05b6006 Mon Sep 17 00:00:00 2001 From: aipaw Date: Sat, 10 Jul 2021 23:08:00 +0800 Subject: [PATCH] no message --- app/Http/Controllers/Api/FileController.php | 22 ++----------------- app/Models/FileContent.php | 11 ++++++++-- resources/assets/js/components/OnlyOffice.vue | 1 + .../pages/manage/components/FileContent.vue | 2 +- resources/assets/js/pages/manage/file.vue | 3 ++- resources/assets/sass/pages/page-file.scss | 7 ++++++ 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Api/FileController.php b/app/Http/Controllers/Api/FileController.php index c20f64b8..47d57cbd 100755 --- a/app/Http/Controllers/Api/FileController.php +++ b/app/Http/Controllers/Api/FileController.php @@ -269,22 +269,8 @@ class FileController extends AbstractController // $file = File::allowFind($id); // - switch ($file->type) { - case "word": - return Response::download(resource_path('assets/statics/empty/empty.docx')); - - case "excel": - return Response::download(resource_path('assets/statics/empty/empty.xlsx')); - - case "ppt": - return Response::download(resource_path('assets/statics/empty/empty.pptx')); - - default: - $content = FileContent::whereFid($file->id)->orderByDesc('id')->first(); - return Base::retSuccess('success', [ - 'content' => FileContent::formatContent($file->type, $content ? $content->content : []) - ]); - } + $content = FileContent::whereFid($file->id)->orderByDesc('id')->first(); + return FileContent::formatContent($file->type, $content ? $content->content : []); } /** @@ -303,10 +289,6 @@ class FileController extends AbstractController // $file = File::allowFind($id); // - if (in_array($file->type, ['word', 'excel', 'ppt'])) { - return Base::retError($file->type . ' 不支持此方式保存'); - } - // $text = ''; if ($file->type == 'document') { $data = Base::json2array($content); diff --git a/app/Models/FileContent.php b/app/Models/FileContent.php index 7aaaff48..81f60c32 100644 --- a/app/Models/FileContent.php +++ b/app/Models/FileContent.php @@ -5,6 +5,7 @@ namespace App\Models; use App\Module\Base; use Illuminate\Database\Eloquent\SoftDeletes; +use Response; /** * Class FileContent @@ -44,11 +45,17 @@ class FileContent extends AbstractModel * 获取格式内容 * @param $type * @param $content - * @return array|array[]|mixed|string[] + * @return array|\Symfony\Component\HttpFoundation\BinaryFileResponse */ public static function formatContent($type, $content) { $content = Base::json2array($content); + if (in_array($type, ['word', 'excel', 'ppt'])) { + if (empty($content)) { + return Response::download(resource_path('assets/statics/empty/empty.' . str_replace(['word', 'excel', 'ppt'], ['docx', 'xlsx', 'pptx'], $type))); + } + return Response::download(public_path($content['url'])); + } if (empty($content)) { switch ($type) { case 'document': @@ -72,6 +79,6 @@ class FileContent extends AbstractModel break; } } - return $content; + return Base::retSuccess('success', [ 'content' => $content ]); } } diff --git a/resources/assets/js/components/OnlyOffice.vue b/resources/assets/js/components/OnlyOffice.vue index 4d6967d6..58b22171 100644 --- a/resources/assets/js/components/OnlyOffice.vue +++ b/resources/assets/js/components/OnlyOffice.vue @@ -109,6 +109,7 @@ export default { const config = { "document": { "fileType": this.fileType, + "key": this.fileType + '-' + this.value.id, "title": this.fileName + '.' + this.fileType, "url": this.fileUrl, }, diff --git a/resources/assets/js/pages/manage/components/FileContent.vue b/resources/assets/js/pages/manage/components/FileContent.vue index bd767c60..a5318ecc 100644 --- a/resources/assets/js/pages/manage/components/FileContent.vue +++ b/resources/assets/js/pages/manage/components/FileContent.vue @@ -1,6 +1,6 @@