From cbe3acf946848a38719a5549e5a02c703a585dd4 Mon Sep 17 00:00:00 2001
From: xsx <825657193@qq.com>
Date: Fri, 11 Jul 2025 14:20:17 +0800
Subject: [PATCH 01/16] =?UTF-8?q?=E6=8D=A2=E8=A1=8C=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
im-uniapp/components/chat-message-item/chat-message-item.vue | 2 +-
im-web/src/components/chat/ChatMessageItem.vue | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/im-uniapp/components/chat-message-item/chat-message-item.vue b/im-uniapp/components/chat-message-item/chat-message-item.vue
index 88d6db8..33dde0c 100644
--- a/im-uniapp/components/chat-message-item/chat-message-item.vue
+++ b/im-uniapp/components/chat-message-item/chat-message-item.vue
@@ -296,7 +296,7 @@ export default {
font-size: $im-font-size;
text-align: left;
display: block;
- word-break: break-all;
+ word-break: break-word;
white-space: pre-line;
&:after {
diff --git a/im-web/src/components/chat/ChatMessageItem.vue b/im-web/src/components/chat/ChatMessageItem.vue
index 07244d5..e87ba71 100644
--- a/im-web/src/components/chat/ChatMessageItem.vue
+++ b/im-web/src/components/chat/ChatMessageItem.vue
@@ -263,7 +263,7 @@ export default {
font-size: var(--im-font-size);
text-align: left;
white-space: pre-wrap;
- word-break: break-all;
+ word-break: break-word;
&:after {
content: "";
From bfc6f0056ed91b5bfca3a039196deb79c0ddfa96 Mon Sep 17 00:00:00 2001
From: xsx <825657193@qq.com>
Date: Wed, 16 Jul 2025 17:19:37 +0800
Subject: [PATCH 02/16] =?UTF-8?q?=E5=A4=B4=E5=83=8F=E6=A0=B7=E5=BC=8F?=
=?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/head-image/head-image.vue | 8 +++++--
im-web/src/components/common/HeadImage.vue | 24 +++++++++++++------
2 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/im-uniapp/components/head-image/head-image.vue b/im-uniapp/components/head-image/head-image.vue
index 3e4210a..1f1251e 100644
--- a/im-uniapp/components/head-image/head-image.vue
+++ b/im-uniapp/components/head-image/head-image.vue
@@ -71,11 +71,15 @@ export default {
avatarTextStyle() {
return `width: ${this._size}rpx;
height:${this._size}rpx;
- background-color:${this.name ? this.textColor : '#fff'};
- font-size:${this._size * 0.5}rpx;
+ background: linear-gradient(145deg,#ffffff20 25%,#00000060),${this.textColor};
+ font-size:${this._size * 0.45}rpx;
+ border-radius: ${this.radius};
`
},
textColor() {
+ if(!this.name){
+ return '#fff';
+ }
let hash = 0;
for (var i = 0; i < this.name.length; i++) {
hash += this.name.charCodeAt(i);
diff --git a/im-web/src/components/common/HeadImage.vue b/im-web/src/components/common/HeadImage.vue
index ed0008f..40fa044 100644
--- a/im-web/src/components/common/HeadImage.vue
+++ b/im-web/src/components/common/HeadImage.vue
@@ -2,7 +2,7 @@
- {{ name?.substring(0, 2).toUpperCase() }}
+ {{ avaterText }}
@@ -66,6 +66,9 @@ export default {
this.$eventBus.$emit("openUserInfo", user, pos);
})
}
+ },
+ isChinese(charCode) {
+ return charCode >= 0x4e00 && charCode <= 0x9fa5;
}
},
computed: {
@@ -78,14 +81,21 @@ export default {
avatarTextStyle() {
let w = this.width ? this.width : this.size;
let h = this.height ? this.height : this.size;
- return `
- width: ${w}px;height:${h}px;
- background-color: ${this.name ? this.textColor : '#fff'};
- font-size:${w * 0.35}px;
- border-radius: ${this.radius};
- `
+ return `width: ${w}px;height:${h}px;
+ background: linear-gradient(145deg,#ffffff20 25%,#00000060),${this.textColor};
+ font-size:${w * 0.4}px;
+ border-radius: ${this.radius};`
+ },
+ avaterText() {
+ if (!this.name) return '';
+ if (this.isChinese(this.name.charCodeAt(0))) {
+ return this.name.charAt(0)
+ } else {
+ return this.name.charAt(0).toUpperCase() + this.name.charAt(1)
+ }
},
textColor() {
+ if (!this.name) return 'fff';
let hash = 0;
for (var i = 0; i < this.name.length; i++) {
hash += this.name.charCodeAt(i);
From ff10a2373ed8fc6a95c380b2182e39329ecd6d6d Mon Sep 17 00:00:00 2001
From: xsx <825657193@qq.com>
Date: Wed, 16 Jul 2025 17:20:06 +0800
Subject: [PATCH 03/16] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=8F=AA=E6=94=AF?=
=?UTF-8?q?=E6=8C=81localStroage=E7=9A=84=E6=B5=8F=E8=A7=88=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
im-web/src/store/chatStore.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/im-web/src/store/chatStore.js b/im-web/src/store/chatStore.js
index cda390f..d38267b 100644
--- a/im-web/src/store/chatStore.js
+++ b/im-web/src/store/chatStore.js
@@ -372,6 +372,16 @@ export default defineStore('chatStore', {
})
// 排序
cacheChats.sort((chat1, chat2) => chat2.lastSendTime - chat1.lastSendTime);
+ /**
+ * 由于部分浏览器不支持websql或indexdb,只能使用localstorage,而localstorage大小只有10m,可能会导致缓存空间溢出
+ * 解决办法:如果是使用localstorage的浏览器,每个会话只保留1000条消息,防止溢出
+ */
+ cacheChats.forEach(chat => {
+ if (localForage.driver().includes("localStorage") && chat.messages.length > 1000) {
+ let idx = chat.messages.length - 1000;
+ chat.messages = chat.messages.slice(idx);
+ }
+ })
// 记录热数据索引位置
cacheChats.forEach(chat => chat.hotMinIdx = chat.messages.length);
// 将消息一次性装载回来
From 9ee347dd260c9b1b18e31d628dfeef18f2a774f7 Mon Sep 17 00:00:00 2001
From: xsx <825657193@qq.com>
Date: Wed, 16 Jul 2025 17:24:49 +0800
Subject: [PATCH 04/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B6=88=E6=81=AF?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9E=9A=E4=B8=BE=E5=91=BD=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/com/bx/implatform/enums/MessageStatus.java | 8 ++++----
.../bx/implatform/listener/PrivateMessageListener.java | 4 ++--
.../com/bx/implatform/service/impl/FriendServiceImpl.java | 4 ++--
.../implatform/service/impl/GroupMessageServiceImpl.java | 5 ++---
.../com/bx/implatform/service/impl/GroupServiceImpl.java | 2 +-
.../service/impl/PrivateMessageServiceImpl.java | 6 +++---
.../implatform/service/impl/WebrtcPrivateServiceImpl.java | 6 +++---
.../implatform/task/consumer/GroupBannedConsumerTask.java | 2 +-
.../implatform/task/consumer/GroupUnbanConsumerTask.java | 2 +-
9 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java b/im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java
index 68769d2..73197c1 100644
--- a/im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java
+++ b/im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java
@@ -6,13 +6,13 @@ import lombok.AllArgsConstructor;
public enum MessageStatus {
/**
- * 文件
+ * 等待推送(未送达)
*/
- UNSEND(0, "未送达"),
+ PENDING(0, "等待推送"),
/**
- * 文件
+ * 已送达(未读)
*/
- SENDED(1, "送达"),
+ DELIVERED(1, "已送达"),
/**
* 撤回
*/
diff --git a/im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java b/im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java
index b59db7a..d75ab86 100644
--- a/im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java
+++ b/im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java
@@ -41,8 +41,8 @@ public class PrivateMessageListener implements MessageListener
if(CollUtil.isNotEmpty(messageIds)){
UpdateWrapper updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().in(PrivateMessage::getId, messageIds)
- .eq(PrivateMessage::getStatus, MessageStatus.UNSEND.code())
- .set(PrivateMessage::getStatus, MessageStatus.SENDED.code());
+ .eq(PrivateMessage::getStatus, MessageStatus.PENDING.code())
+ .set(PrivateMessage::getStatus, MessageStatus.DELIVERED.code());
privateMessageService.update(updateWrapper);
}
}
diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
index bbe6204..ec7beec 100644
--- a/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
+++ b/im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
@@ -233,7 +233,7 @@ public class FriendServiceImpl extends ServiceImpl impleme
msg.setRecvId(friendId);
msg.setContent("你们已成为好友,现在可以开始聊天了");
msg.setSendTime(new Date());
- msg.setStatus(MessageStatus.UNSEND.code());
+ msg.setStatus(MessageStatus.PENDING.code());
msg.setType(MessageType.TIP_TEXT.code());
privateMessageMapper.insert(msg);
// 推给对方
@@ -257,7 +257,7 @@ public class FriendServiceImpl extends ServiceImpl impleme
msg.setRecvId(friendId);
msg.setSendTime(new Date());
msg.setType(MessageType.TIP_TEXT.code());
- msg.setStatus(MessageStatus.UNSEND.code());
+ msg.setStatus(MessageStatus.PENDING.code());
msg.setContent("你们的好友关系已被解除");
privateMessageMapper.insert(msg);
// 推送
diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
index 50cd4cb..5830074 100644
--- a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
+++ b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
@@ -42,7 +42,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@Slf4j
@@ -123,7 +122,7 @@ public class GroupMessageServiceImpl extends ServiceImpl atIds = CommaTextUtils.asList(m.getAtUserIds());
vo.setAtUserIds(atIds.stream().map(Long::parseLong).collect(Collectors.toList()));
// 填充状态
- vo.setStatus(readedMaxId >= m.getId() ? MessageStatus.READED.code() : MessageStatus.UNSEND.code());
+ vo.setStatus(readedMaxId >= m.getId() ? MessageStatus.READED.code() : MessageStatus.PENDING.code());
// 针对回执消息填充已读人数
if (m.getReceipt()) {
if (Objects.isNull(maxIdMap)) {
diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
index f5ab43d..9437908 100644
--- a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
+++ b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
@@ -330,7 +330,7 @@ public class GroupServiceImpl extends ServiceImpl implements
GroupMessage message = new GroupMessage();
message.setContent(content);
message.setType(MessageType.TIP_TEXT.code());
- message.setStatus(MessageStatus.UNSEND.code());
+ message.setStatus(MessageStatus.PENDING.code());
message.setSendTime(new Date());
message.setSendNickName(session.getNickName());
message.setGroupId(groupId);
diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
index fa88b16..d0336b8 100644
--- a/im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
+++ b/im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
@@ -57,7 +57,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.eq(PrivateMessage::getSendId, friendId).eq(PrivateMessage::getRecvId, session.getUserId())
- .eq(PrivateMessage::getStatus, MessageStatus.SENDED.code())
+ .eq(PrivateMessage::getStatus, MessageStatus.DELIVERED.code())
.set(PrivateMessage::getStatus, MessageStatus.READED.code());
this.update(updateWrapper);
log.info("消息已读,接收方id:{},发送方id:{}", session.getUserId(), friendId);
diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcPrivateServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcPrivateServiceImpl.java
index 2b93199..374c740 100644
--- a/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcPrivateServiceImpl.java
+++ b/im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcPrivateServiceImpl.java
@@ -51,12 +51,12 @@ public class WebrtcPrivateServiceImpl implements WebrtcPrivateService {
webrtcSession.setMode(mode);
// 校验
if (!imClient.isOnline(uid)) {
- this.sendActMessage(webrtcSession, MessageStatus.UNSEND, "未接通");
+ this.sendActMessage(webrtcSession, MessageStatus.PENDING, "未接通");
log.info("对方不在线,uid:{}", uid);
throw new GlobalException("对方目前不在线");
}
if (userStateUtils.isBusy(uid)) {
- this.sendActMessage(webrtcSession, MessageStatus.UNSEND, "未接通");
+ this.sendActMessage(webrtcSession, MessageStatus.PENDING, "未接通");
log.info("对方正忙,uid:{}", uid);
throw new GlobalException("对方正忙");
}
@@ -171,7 +171,7 @@ public class WebrtcPrivateServiceImpl implements WebrtcPrivateService {
// 通知对方取消会话
imClient.sendPrivateMessage(sendMessage);
// 生成通话消息
- sendActMessage(webrtcSession, MessageStatus.UNSEND, "已取消");
+ sendActMessage(webrtcSession, MessageStatus.PENDING, "已取消");
}
@Override
diff --git a/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupBannedConsumerTask.java b/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupBannedConsumerTask.java
index 27c8853..44712d9 100644
--- a/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupBannedConsumerTask.java
+++ b/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupBannedConsumerTask.java
@@ -52,7 +52,7 @@ public class GroupBannedConsumerTask extends RedisMQConsumer {
msg.setContent(tip);
msg.setSendId(Constant.SYS_USER_ID);
msg.setSendTime(new Date());
- msg.setStatus(MessageStatus.UNSEND.code());
+ msg.setStatus(MessageStatus.PENDING.code());
msg.setSendNickName("系统管理员");
msg.setType(MessageType.TIP_TEXT.code());
groupMessageService.save(msg);
diff --git a/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupUnbanConsumerTask.java b/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupUnbanConsumerTask.java
index 67b3993..ec7c2da 100644
--- a/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupUnbanConsumerTask.java
+++ b/im-platform/src/main/java/com/bx/implatform/task/consumer/GroupUnbanConsumerTask.java
@@ -51,7 +51,7 @@ public class GroupUnbanConsumerTask extends RedisMQConsumer {
msg.setContent("已解除封禁");
msg.setSendId(Constant.SYS_USER_ID);
msg.setSendTime(new Date());
- msg.setStatus(MessageStatus.UNSEND.code());
+ msg.setStatus(MessageStatus.PENDING.code());
msg.setSendNickName("系统管理员");
msg.setType(MessageType.TIP_TEXT.code());
groupMessageService.save(msg);
From 19948509c47bc30e7974c58de950b05c3387c27c Mon Sep 17 00:00:00 2001
From: xsx <825657193@qq.com>
Date: Wed, 16 Jul 2025 18:58:15 +0800
Subject: [PATCH 05/16] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E6=B6=88=E6=81=AF?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BA=E5=8F=91=E9=80=81=E7=8A=B6?=
=?UTF-8?q?=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
im-uniapp/common/enums.js | 10 +-
.../chat-message-item/chat-message-item.vue | 306 ++++++++++--------
.../components/head-image/head-image.vue | 11 +-
im-uniapp/components/loading/loading.vue | 13 +-
im-uniapp/pages/chat/chat-box.vue | 62 +++-
im-uniapp/store/chatStore.js | 10 +-
im-web/src/api/enums.js | 10 +-
im-web/src/components/chat/ChatBox.vue | 69 ++--
.../src/components/chat/ChatMessageItem.vue | 101 +++---
im-web/src/store/chatStore.js | 36 ++-
im-web/src/view/Login.vue | 16 +-
11 files changed, 386 insertions(+), 258 deletions(-)
diff --git a/im-uniapp/common/enums.js b/im-uniapp/common/enums.js
index 3ddd09c..fa7ada0 100644
--- a/im-uniapp/common/enums.js
+++ b/im-uniapp/common/enums.js
@@ -54,10 +54,12 @@ const TERMINAL_TYPE = {
}
const MESSAGE_STATUS = {
- UNSEND: 0,
- SENDED: 1,
- RECALL: 2,
- READED: 3
+ FAILED: -2, // 发送失败
+ SENDING: -1, // 发送中(消息没到服务器)
+ PENDING: 0, // 未送达(消息已到服务器,但对方没收到)
+ DELIVERED: 1, // 已送达(对方已收到,但是未读消息)
+ RECALL: 2, // 已撤回
+ READED: 3, // 消息已读
}
export {
diff --git a/im-uniapp/components/chat-message-item/chat-message-item.vue b/im-uniapp/components/chat-message-item/chat-message-item.vue
index 33dde0c..382b700 100644
--- a/im-uniapp/components/chat-message-item/chat-message-item.vue
+++ b/im-uniapp/components/chat-message-item/chat-message-item.vue
@@ -14,51 +14,55 @@
{{ showName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ fileSize }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ fileSize }}
+
+
+
-
-
+
+
+
+
+
+ {{ JSON.parse(msgInfo.content).duration + '"' }}
+
+
-
-
-
-
-
- {{ JSON.parse(msgInfo.content).duration + '"' }}
-
-
+
+
-
+
+
{{ msgInfo.content }}
-
- 已读
- 未读
+
+ 已读
+ 未读
@@ -118,7 +120,7 @@ export default {
methods: {
onSendFail() {
uni.showToast({
- title: "该文件已发送失败,目前不支持自动重新发送,建议手动重新发送",
+ title: "该消息已发送失败,目前不支持自动重新发送,建议手动重新发送",
icon: "none"
})
},
@@ -177,11 +179,11 @@ export default {
}
},
computed: {
- loading() {
- return this.msgInfo.loadStatus && this.msgInfo.loadStatus === "loading";
+ sending() {
+ return this.msgInfo.status == this.$enums.MESSAGE_STATUS.SENDING;
},
- loadFail() {
- return this.msgInfo.loadStatus && this.msgInfo.loadStatus === "fail";
+ sendFail() {
+ return this.msgInfo.status == this.$enums.MESSAGE_STATUS.FAILED;
},
data() {
return JSON.parse(this.msgInfo.content)
@@ -227,6 +229,9 @@ export default {
}
return items;
},
+ isTextMessage() {
+ return this.msgInfo.type == this.$enums.MESSAGE_TYPE.TEXT
+ },
isAction() {
return this.$msgType.isAction(this.msgInfo.type);
},
@@ -285,116 +290,137 @@ export default {
padding-right: 80rpx;
margin-top: 5rpx;
- .message-text {
+ .message-content-wrapper {
position: relative;
- line-height: 1.6;
- margin-top: 10rpx;
- padding: 16rpx 24rpx;
- background-color: $im-bg;
- border-radius: 20rpx;
- color: $im-text-color;
- font-size: $im-font-size;
- text-align: left;
- display: block;
- word-break: break-word;
- white-space: pre-line;
-
- &:after {
- content: "";
- position: absolute;
- left: -20rpx;
- top: 26rpx;
- width: 6rpx;
- height: 6rpx;
- border-style: solid dashed dashed;
- border-color: $im-bg transparent transparent;
- overflow: hidden;
- border-width: 18rpx;
- }
- }
-
- .message-image {
display: flex;
- flex-wrap: nowrap;
- flex-direction: row;
align-items: center;
- .image-box {
+ .sending {
position: relative;
+ margin: 0 6rpx;
- .send-image {
- min-width: 200rpx;
- max-width: 420rpx;
- height: 350rpx;
- cursor: pointer;
- border-radius: 4px;
+ .icon-loading {
+ color: $im-color-primary;
}
}
.send-fail {
- color: $im-color-danger;
- font-size: $im-font-size;
- cursor: pointer;
- margin: 0 20px;
+ color: #e60c0c;
+ font-size: 50rpx;
+ margin: 0 5rpx;
}
- }
-
- .message-file {
- display: flex;
- flex-wrap: nowrap;
- flex-direction: row;
- align-items: center;
- cursor: pointer;
- .file-box {
+ .message-text {
position: relative;
+ line-height: 1.6;
+ margin-top: 10rpx;
+ padding: 16rpx 24rpx;
+ background-color: $im-bg;
+ border-radius: 20rpx;
+ color: $im-text-color;
+ font-size: $im-font-size;
+ text-align: left;
+ display: block;
+ word-break: break-word;
+ white-space: pre-line;
+
+ &:after {
+ content: "";
+ position: absolute;
+ left: -20rpx;
+ top: 26rpx;
+ width: 6rpx;
+ height: 6rpx;
+ border-style: solid dashed dashed;
+ border-color: $im-bg transparent transparent;
+ overflow: hidden;
+ border-width: 18rpx;
+ }
+ }
+
+ .message-image {
display: flex;
flex-wrap: nowrap;
+ flex-direction: row;
align-items: center;
- min-height: 60px;
- border-radius: 4px;
- padding: 10px 15px;
- box-shadow: $im-box-shadow-dark;
-
- .file-info {
- flex: 1;
- height: 100%;
- text-align: left;
- font-size: 14px;
- width: 300rpx;
-
- .file-name {
- font-weight: 600;
- margin-bottom: 15px;
- word-break: break-all;
+
+ .image-box {
+ position: relative;
+
+ .send-image {
+ min-width: 200rpx;
+ max-width: 420rpx;
+ height: 350rpx;
+ cursor: pointer;
+ border-radius: 4px;
}
}
- .file-icon {
- font-size: 80rpx;
- color: #d42e07;
+ .send-fail {
+ color: $im-color-danger;
+ font-size: $im-font-size;
+ cursor: pointer;
+ margin: 0 20px;
}
}
- .send-fail {
- color: #e60c0c;
- font-size: 50rpx;
+ .message-file {
+ display: flex;
+ flex-wrap: nowrap;
+ flex-direction: row;
+ align-items: center;
cursor: pointer;
- margin: 0 20rpx;
- }
- }
- .message-audio {
- display: flex;
- align-items: center;
+ .file-box {
+ position: relative;
+ display: flex;
+ flex-wrap: nowrap;
+ align-items: center;
+ min-height: 60px;
+ border-radius: 4px;
+ padding: 10px 15px;
+ box-shadow: $im-box-shadow-dark;
+
+ .file-info {
+ flex: 1;
+ height: 100%;
+ text-align: left;
+ font-size: 14px;
+ width: 300rpx;
+
+ .file-name {
+ font-weight: 600;
+ margin-bottom: 15px;
+ word-break: break-all;
+ }
+ }
- .chat-audio-text {
- padding-right: 8px;
+ .file-icon {
+ font-size: 80rpx;
+ color: #d42e07;
+ }
+ }
+
+ .send-fail {
+ color: #e60c0c;
+ font-size: 50rpx;
+ cursor: pointer;
+ margin: 0 20rpx;
+ }
}
- .icon-voice-play {
- font-size: 18px;
- padding-right: 8px;
+ .message-audio {
+ display: flex;
+ align-items: center;
+
+ .chat-audio-text {
+ padding-right: 8px;
+ }
+
+ .icon-voice-play {
+ font-size: 18px;
+ padding-right: 8px;
+ }
}
}
@@ -454,6 +480,10 @@ export default {
padding-left: 80rpx;
padding-right: 0;
+ .message-content-wrapper {
+ flex-direction: row-reverse;
+ }
+
.message-text {
margin-left: 10px;
background-color: $im-color-primary-light-2;
@@ -466,14 +496,6 @@ export default {
}
}
- .message-image {
- flex-direction: row-reverse;
- }
-
- .message-file {
- flex-direction: row-reverse;
- }
-
.message-audio {
flex-direction: row-reverse;
diff --git a/im-uniapp/components/head-image/head-image.vue b/im-uniapp/components/head-image/head-image.vue
index 1f1251e..9fa8bc2 100644
--- a/im-uniapp/components/head-image/head-image.vue
+++ b/im-uniapp/components/head-image/head-image.vue
@@ -16,7 +16,8 @@ export default {
data() {
return {
colors: ["#5daa31", "#c7515a", "#e03697", "#85029b",
- "#c9b455", "#326eb6"]
+ "#c9b455", "#326eb6"
+ ]
}
},
props: {
@@ -34,6 +35,10 @@ export default {
type: String,
default: null
},
+ radius: {
+ type: String,
+ default: "50%"
+ },
online: {
type: Boolean,
default: false
@@ -61,7 +66,7 @@ export default {
'minier': 48,
'lage': 108,
'lager': 120,
- }[this.size]
+ } [this.size]
}
},
avatarImageStyle() {
@@ -77,7 +82,7 @@ export default {
`
},
textColor() {
- if(!this.name){
+ if (!this.name) {
return '#fff';
}
let hash = 0;
diff --git a/im-uniapp/components/loading/loading.vue b/im-uniapp/components/loading/loading.vue
index a56b8ea..b0f0c98 100644
--- a/im-uniapp/components/loading/loading.vue
+++ b/im-uniapp/components/loading/loading.vue
@@ -6,7 +6,6 @@
-