diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 98ee6b2f0..2738117d4 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -466,89 +466,14 @@ - - + - - - - -
-
-
- - - -
-
- - -
-
-
- -
+ :confirm-title="$L('转发确认')" + :multiple-max="50" + :msg-detail="operateItem" + :before-submit="onForward"/> { - this.forwardData = this.$refs.forwardSelect.formatSelect(this.$refs.forwardSelect.selects); - if (this.forwardData.length === 0) { - $A.messageError("请选择转发对话或成员"); - } else { - this.forwardDialogId = 0; - if (this.forwardData.length === 1) { - const {type, userid} = this.forwardData[0]; - if (type === "group" && /^d:/.test(userid)) { - this.forwardDialogId = parseInt(userid.replace(/^d:/, '')); - } + this.$store.dispatch("call", { + url: 'dialog/msg/forward', + data: { + dialogids: forwardData.dialogids, + userids: forwardData.userids, + msg_id: forwardData.msg_id, + show_source: forwardData.sender ? 1 : 0, + leave_message: forwardData.message } - this.forwardMessage = ''; - this.forwardSource = true; - this.forwardhow = true; - } - reject(); - }) - }, - - onForwardAffirm() { - const selects = this.$refs.forwardSelect.selects; - if (selects.length === 0) { - $A.messageError("请选择转发对话或成员"); - return - } - const dialogids = selects.filter(value => $A.leftExists(value, 'd:')).map(value => value.replace('d:', '')); - const userids = selects.filter(value => !$A.leftExists(value, 'd:')); - this.forwardLoad++; - this.$store.dispatch("call", { - url: 'dialog/msg/forward', - data: { - dialogids, - userids, - msg_id: this.operateItem.id, - show_source: this.forwardSource ? 1 : 0, - leave_message: this.forwardMessage - } - }).then(({data, msg}) => { - this.$store.dispatch("saveDialogMsg", data.msgs); - this.$store.dispatch("updateDialogLastMsg", data.msgs); - $A.messageSuccess(msg); - this.$refs.forwardSelect.hide() - this.forwardhow = false; - }).catch(({msg}) => { - $A.modalError(msg); - }).finally(_ => { - this.forwardLoad--; + }).then(({data, msg}) => { + this.$store.dispatch("saveDialogMsg", data.msgs); + this.$store.dispatch("updateDialogLastMsg", data.msgs); + $A.messageSuccess(msg); + resolve() + }).catch(({msg}) => { + $A.modalError(msg); + reject() + }); }); }, @@ -3240,7 +3131,7 @@ export default { break; case "forward": - this.$refs.forwardSelect.onSelection() + this.$refs.forwarder.onSelection() break; case "withdraw": diff --git a/resources/assets/js/pages/manage/components/Forwarder/confirm.vue b/resources/assets/js/pages/manage/components/Forwarder/confirm.vue new file mode 100644 index 000000000..9933a13b6 --- /dev/null +++ b/resources/assets/js/pages/manage/components/Forwarder/confirm.vue @@ -0,0 +1,203 @@ + + + diff --git a/resources/assets/js/pages/manage/components/Forwarder/index.vue b/resources/assets/js/pages/manage/components/Forwarder/index.vue new file mode 100644 index 000000000..c62bfc69e --- /dev/null +++ b/resources/assets/js/pages/manage/components/Forwarder/index.vue @@ -0,0 +1,128 @@ + + + diff --git a/resources/assets/sass/pages/components/_.scss b/resources/assets/sass/pages/components/_.scss index b2b6c1cce..f4f826f24 100755 --- a/resources/assets/sass/pages/components/_.scss +++ b/resources/assets/sass/pages/components/_.scss @@ -5,6 +5,7 @@ @import "dialog-session-history"; @import "dialog-wrapper"; @import "file-content"; +@import "forwarder"; @import "general-operation"; @import "meeting-manager"; @import "project-archived"; diff --git a/resources/assets/sass/pages/components/dialog-select.scss b/resources/assets/sass/pages/components/dialog-select.scss index b22d4476b..9a8ed50ac 100644 --- a/resources/assets/sass/pages/components/dialog-select.scss +++ b/resources/assets/sass/pages/components/dialog-select.scss @@ -3,62 +3,3 @@ 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 6b39af888..16008e48d 100644 --- a/resources/assets/sass/pages/components/dialog-wrapper.scss +++ b/resources/assets/sass/pages/components/dialog-wrapper.scss @@ -2235,136 +2235,6 @@ body:not(.window-touch) { } } -.dialog-forward-message-modal { - .ivu-modal { - margin: 10px auto; - - .ivu-modal-body { - .user-modal-search { - padding-bottom: 16px; - - .search-selected { - max-width: 100%; - } - - .user-modal-avatar { - display: flex; - align-items: center; - gap: 5px; - - .avatar-name { - max-width: 90%; - } - } - } - - .twice-affirm-body-extend { - margin: 0 24px; - - .dialog-wrapper-forward-body { - .dialog-wrapper { - position: relative; - z-index: 1; - - &.inde-list { - border-radius: 0; - } - - .dialog-scroller { - position: relative; - padding: 0; - - .dialog-item { - .dialog-view { - width: 100%; - max-width: 100%; - margin: 0; - - &.record { - width: auto; - } - - .dialog-head { - width: 100%; - border-radius: 8px; - - .dialog-content { - .content-file.file { - width: 100%; - - .file-box { - width: 100%; - } - } - } - - .dialog-emoji { - display: none; - } - } - - .dialog-foot { - display: none; - } - } - - .dialog-avatar { - display: none; - } - - } - } - } - - .leave-message { - position: relative; - z-index: 2; - padding-bottom: 16px; - - textarea { - background: #f7f7f7; - } - } - } - } - } - - .ivu-modal-footer { - display: flex; - justify-content: flex-end; - gap: 20px; - - .dialog-wrapper-forward-footer { - flex: 1; - width: 0; - display: flex; - line-height: 34px; - cursor: pointer; - - .user-modal-icon { - flex-shrink: 0; - font-size: 22px; - margin-right: 5px; - color: rgba($primary-desc-color, 0.7); - margin-top: 6px; - } - - .forward-text-tip { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - &.selected { - .user-modal-icon { - color: $primary-color; - } - } - } - } - } -} - .dialog-wrapper-read-poptip { width: 360px; max-width: 72%; diff --git a/resources/assets/sass/pages/components/forwarder.scss b/resources/assets/sass/pages/components/forwarder.scss new file mode 100644 index 000000000..f885ab1a9 --- /dev/null +++ b/resources/assets/sass/pages/components/forwarder.scss @@ -0,0 +1,129 @@ +.forwarder-message-modal { + .ivu-modal { + margin: 10px auto; + + .ivu-modal-body { + .user-modal-search { + padding-bottom: 16px; + + .search-selected { + max-width: 100%; + } + + .user-modal-avatar { + display: flex; + align-items: center; + gap: 5px; + + .avatar-name { + max-width: 90%; + } + } + } + + .twice-affirm-body-extend { + margin: 0 24px; + + .forwarder-wrapper-body { + .dialog-wrapper { + position: relative; + z-index: 1; + + &.inde-list { + border-radius: 0; + } + + .dialog-scroller { + position: relative; + padding: 0; + + .dialog-item { + .dialog-view { + width: 100%; + max-width: 100%; + margin: 0; + + &.record { + width: auto; + } + + .dialog-head { + width: 100%; + border-radius: 8px; + + .dialog-content { + .content-file.file { + width: 100%; + + .file-box { + width: 100%; + } + } + } + + .dialog-emoji { + display: none; + } + } + + .dialog-foot { + display: none; + } + } + + .dialog-avatar { + display: none; + } + + } + } + } + + .leave-message { + position: relative; + z-index: 2; + padding-bottom: 16px; + + textarea { + background: #f7f7f7; + } + } + } + } + } + + .ivu-modal-footer { + display: flex; + justify-content: flex-end; + gap: 20px; + + .forwarder-wrapper-footer { + flex: 1; + width: 0; + display: flex; + line-height: 34px; + cursor: pointer; + + .user-modal-icon { + flex-shrink: 0; + font-size: 22px; + margin-right: 5px; + color: rgba($primary-desc-color, 0.7); + margin-top: 6px; + } + + .forward-text-tip { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.selected { + .user-modal-icon { + color: $primary-color; + } + } + } + } + } +}