From 93996d73786bcb2ca82a26d963347d63c6a4565c Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 9 Dec 2022 10:19:26 +0800 Subject: [PATCH] no message --- app/Http/Controllers/Api/FileController.php | 7 +- app/Models/File.php | 23 ++++++ app/Models/WebSocketDialogMsg.php | 2 +- .../pages/manage/components/DialogSelect.vue | 78 +++++++++++++++++++ .../pages/manage/components/DialogWrapper.vue | 40 +--------- resources/assets/sass/pages/components/_.scss | 1 + .../sass/pages/components/dialog-select.scss | 64 +++++++++++++++ .../sass/pages/components/dialog-wrapper.scss | 65 ---------------- 8 files changed, 172 insertions(+), 108 deletions(-) create mode 100644 resources/assets/js/pages/manage/components/DialogSelect.vue create mode 100644 resources/assets/sass/pages/components/dialog-select.scss diff --git a/app/Http/Controllers/Api/FileController.php b/app/Http/Controllers/Api/FileController.php index 257ac5632..899bc0f9c 100755 --- a/app/Http/Controllers/Api/FileController.php +++ b/app/Http/Controllers/Api/FileController.php @@ -1098,11 +1098,8 @@ class FileController extends AbstractController $refresh = Request::input('refresh', 'no'); // $file = File::permissionFind($id); - if ($file->type == 'folder') { - return Base::retError('文件夹暂不支持此功能'); - } + $fileLink = $file->getShareLink($user->userid, $refresh == 'yes'); // - $data = FileLink::generateLink($file->id, $user->userid, $refresh == 'yes'); - return Base::retSuccess('success', $data); + return Base::retSuccess('success', $fileLink); } } diff --git a/app/Models/File.php b/app/Models/File.php index d9515d699..a28a8e8e8 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -290,6 +290,29 @@ class File extends AbstractModel return true; } + /** + * 获取文件分享链接 + * @param $userid + * @param $refresh + * @return array + */ + public function getShareLink($userid, $refresh = false) + { + if ($this->type == 'folder') { + throw new ApiException('文件夹不支持分享'); + } + return FileLink::generateLink($this->id, $userid, $refresh); + } + + /** + * 获取文件名称加后缀 + * @return string|null + */ + public function getNameAndExt() + { + return $this->ext ? "{$this->name}.{$this->ext}" : $this->name; + } + /** * 推送消息 * @param $action diff --git a/app/Models/WebSocketDialogMsg.php b/app/Models/WebSocketDialogMsg.php index e5a799f71..02991e6a6 100644 --- a/app/Models/WebSocketDialogMsg.php +++ b/app/Models/WebSocketDialogMsg.php @@ -660,7 +660,7 @@ class WebSocketDialogMsg extends AbstractModel if ($file->type == 'folder') { throw new ApiException('文件夹不支持分享'); } - $fileLink = FileLink::generateLink($file->id, User::userid()); + $fileLink = $file->getShareLink(User::userid()); $keyId = $fileLink['code']; } else { preg_match("/\/single\/file\/(.*?)$/i", $keyId, $match); diff --git a/resources/assets/js/pages/manage/components/DialogSelect.vue b/resources/assets/js/pages/manage/components/DialogSelect.vue new file mode 100644 index 000000000..6cc7cc784 --- /dev/null +++ b/resources/assets/js/pages/manage/components/DialogSelect.vue @@ -0,0 +1,78 @@ + + + diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index ccb681caf..2658b2da7 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -293,43 +293,7 @@ v-model="forwardShow" :title="$L('转发')" :mask-closable="false"> -
- - - - - - -
+
@@ -446,10 +410,12 @@ import ChatInput from "./ChatInput"; import VirtualList from 'vue-virtual-scroll-list-hi' import {Store} from "le5le-store"; +import DialogSelect from "./DialogSelect"; export default { name: "DialogWrapper", components: { + DialogSelect, DialogRespond, DialogItem, VirtualList, diff --git a/resources/assets/sass/pages/components/_.scss b/resources/assets/sass/pages/components/_.scss index 746c75775..decc8036a 100755 --- a/resources/assets/sass/pages/components/_.scss +++ b/resources/assets/sass/pages/components/_.scss @@ -1,6 +1,7 @@ @import "chat-input"; @import "dialog-group-info"; @import "dialog-respond"; +@import "dialog-select"; @import "dialog-wrapper"; @import "file-content"; @import "meeting-manager"; diff --git a/resources/assets/sass/pages/components/dialog-select.scss b/resources/assets/sass/pages/components/dialog-select.scss new file mode 100644 index 000000000..b22d4476b --- /dev/null +++ b/resources/assets/sass/pages/components/dialog-select.scss @@ -0,0 +1,64 @@ +.dialog-wrapper-dialogids { + .ivu-select-arrow { + display: none !important; + } +} + +.dialog-wrapper-forward { + .forward-option { + max-width: 100%; + display: flex; + align-items: center; + .forward-avatar { + display: flex; + align-items: center; + .icon-avatar { + width: 26px; + height: 26px; + flex-grow: 0; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + font-size: 18px; + background-color: #61B2F9; + color: #ffffff; + &.department { + background-color: #5BC7B0; + } + &.project { + background-color: #6E99EB; + } + &.task { + background-color: #9B96DF; + font-size: 16px; + } + } + } + .forward-name { + margin-left: 10px; + flex: 1; + width: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } + } + .ivu-select-item { + &.ivu-select-item-selected { + &:after { + top: 8px; + } + } + } + .forward-drop-prepend { + text-align: center; + color: #c5c8ce; + line-height: 20px; + padding-bottom: 5px; + font-size: 12px; + border-bottom: 1px solid #f1f1f1; + margin-bottom: 5px; + } +} diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss index 4e349f1a0..9e465008e 100644 --- a/resources/assets/sass/pages/components/dialog-wrapper.scss +++ b/resources/assets/sass/pages/components/dialog-wrapper.scss @@ -1416,71 +1416,6 @@ overflow: hidden !important; } -.dialog-wrapper-dialogids { - .ivu-select-arrow { - display: none !important; - } -} - -.dialog-wrapper-forward { - .forward-option { - max-width: 100%; - display: flex; - align-items: center; - .forward-avatar { - display: flex; - align-items: center; - .icon-avatar { - width: 26px; - height: 26px; - flex-grow: 0; - flex-shrink: 0; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - font-size: 18px; - background-color: #61B2F9; - color: #ffffff; - &.department { - background-color: #5BC7B0; - } - &.project { - background-color: #6E99EB; - } - &.task { - background-color: #9B96DF; - font-size: 16px; - } - } - } - .forward-name { - margin-left: 10px; - flex: 1; - width: 0; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - } - } - .ivu-select-item { - &.ivu-select-item-selected { - &:after { - top: 8px; - } - } - } - .forward-drop-prepend { - text-align: center; - color: #c5c8ce; - line-height: 20px; - padding-bottom: 5px; - font-size: 12px; - border-bottom: 1px solid #f1f1f1; - margin-bottom: 5px; - } -} - @media (max-width: 768px) { .dialog-wrapper { background-color: #f8f8f8;