Browse Source

细节优化

master
xsx 6 months ago
parent
commit
f2ffda5e7a
  1. 5
      im-uniapp/components/chat-message-item/chat-message-item.vue
  2. 12
      im-uniapp/pages/chat/chat-box.vue
  3. 6
      im-web/src/components/chat/ChatBox.vue

5
im-uniapp/components/chat-message-item/chat-message-item.vue

@ -65,7 +65,7 @@
<text>{{ msgInfo.content }}</text> <text>{{ msgInfo.content }}</text>
</view> </view>
</long-press-menu> </long-press-menu>
<view v-if="sending&&isTextMessage" class="sending"> <view v-if="sending&&(isTextMessage||isAudioMessage)" class="sending">
<loading :size="40" icon-color="#656adf" :mask="false"></loading> <loading :size="40" icon-color="#656adf" :mask="false"></loading>
</view> </view>
<view v-else-if="sendFail" @click="onSendFail" <view v-else-if="sendFail" @click="onSendFail"
@ -228,6 +228,9 @@ export default {
isTextMessage() { isTextMessage() {
return this.msgInfo.type == this.$enums.MESSAGE_TYPE.TEXT return this.msgInfo.type == this.$enums.MESSAGE_TYPE.TEXT
}, },
isAudioMessage() {
return this.msgInfo.type == this.$enums.MESSAGE_TYPE.AUDIO
},
isAction() { isAction() {
return this.$msgType.isAction(this.msgInfo.type); return this.$msgType.isAction(this.msgInfo.type);
}, },

12
im-uniapp/pages/chat/chat-box.vue

@ -186,6 +186,7 @@ export default {
this.moveChatToTop(); this.moveChatToTop();
this.sendMessageRequest(msgInfo).then((m) => { this.sendMessageRequest(msgInfo).then((m) => {
// //
tmpMessage = JSON.parse(JSON.stringify(tmpMessage));
tmpMessage.id = m.id; tmpMessage.id = m.id;
tmpMessage.status = m.status; tmpMessage.status = m.status;
this.chatStore.updateMessage(tmpMessage, chat); this.chatStore.updateMessage(tmpMessage, chat);
@ -194,7 +195,10 @@ export default {
// //
this.scrollToBottom(); this.scrollToBottom();
this.isReceipt = false; this.isReceipt = false;
}).catch(() => {
tmpMessage = JSON.parse(JSON.stringify(tmpMessage));
tmpMessage.status = this.$enums.MESSAGE_STATUS.FAILED;
this.chatStore.updateMessage(tmpMessage, chat);
}) })
}, },
onRtCall(msgInfo) { onRtCall(msgInfo) {
@ -474,6 +478,9 @@ export default {
msgInfo.status = m.status; msgInfo.status = m.status;
this.isReceipt = false; this.isReceipt = false;
this.chatStore.updateMessage(msgInfo, file.chat); this.chatStore.updateMessage(msgInfo, file.chat);
}).catch(() => {
msgInfo.status = this.$enums.MESSAGE_STATUS.FAILED;
this.chatStore.updateMessage(msgInfo, file.chat);
}) })
}, },
onUploadImageFail(file, err) { onUploadImageFail(file, err) {
@ -527,6 +534,9 @@ export default {
msgInfo.status = m.status; msgInfo.status = m.status;
this.isReceipt = false; this.isReceipt = false;
this.chatStore.updateMessage(msgInfo, file.chat); this.chatStore.updateMessage(msgInfo, file.chat);
}).catch(() => {
msgInfo.status = this.$enums.MESSAGE_STATUS.FAILED;
this.chatStore.updateMessage(msgInfo, file.chat);
}) })
}, },
onUploadFileFail(file, res) { onUploadFileFail(file, res) {

6
im-web/src/components/chat/ChatBox.vue

@ -164,6 +164,9 @@ export default {
msgInfo.status = m.status; msgInfo.status = m.status;
this.isReceipt = false; this.isReceipt = false;
this.chatStore.updateMessage(msgInfo, file.chat); this.chatStore.updateMessage(msgInfo, file.chat);
}).catch(() => {
msgInfo.status = this.$enums.MESSAGE_STATUS.FAILED;
this.chatStore.updateMessage(msgInfo, file.chat);
}) })
}, },
onImageFail(e, file) { onImageFail(e, file) {
@ -227,6 +230,9 @@ export default {
this.isReceipt = false; this.isReceipt = false;
this.refreshPlaceHolder(); this.refreshPlaceHolder();
this.chatStore.updateMessage(msgInfo, file.chat); this.chatStore.updateMessage(msgInfo, file.chat);
}).catch(() => {
msgInfo.status = this.$enums.MESSAGE_STATUS.FAILED;
this.chatStore.updateMessage(msgInfo, file.chat);
}) })
}, },
onFileFail(e, file) { onFileFail(e, file) {

Loading…
Cancel
Save