|
@@ -9,10 +9,10 @@
|
|
</div>
|
|
</div>
|
|
<div class="item-right">
|
|
<div class="item-right">
|
|
<div class="item-username" @click="clickUser">
|
|
<div class="item-username" @click="clickUser">
|
|
- <em class="item-name"><user-view :username="info.username" placement="left"/></em>
|
|
|
|
|
|
+ <em class="item-name"><user-view :username="userName" :info="info" placement="left"/></em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
</div>
|
|
</div>
|
|
- <div class="item-text" :class="{'text-error':info.error}">
|
|
|
|
|
|
+ <div class="item-text" :class="{'text-emoji':textIsEmoji(info.text), 'text-error':info.error}">
|
|
<div class="item-text-view">{{textMsg(info.text)}}</div>
|
|
<div class="item-text-view">{{textMsg(info.text)}}</div>
|
|
</div>
|
|
</div>
|
|
<template v-if="info.type==='taskB'">
|
|
<template v-if="info.type==='taskB'">
|
|
@@ -26,17 +26,17 @@
|
|
<span>{{$L('通话时长:%', formatSecond(info.other.second))}}</span>
|
|
<span>{{$L('通话时长:%', formatSecond(info.other.second))}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <img class="item-userimg" @click="clickUser" :src="info.userimg" onerror="this.src=window.location.origin+'/images/other/avatar.png'"/>
|
|
|
|
|
|
+ <UserImg :info="info" @click="clickUser" class="item-userimg"/>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="info.self===false" class="list-item">
|
|
<div v-else-if="info.self===false" class="list-item">
|
|
- <img class="item-userimg" @click="clickUser" :src="info.userimg" onerror="this.src=window.location.origin+'/images/other/avatar.png'"/>
|
|
|
|
|
|
+ <UserImg :info="info" @click="clickUser" class="item-userimg"/>
|
|
<div class="item-left">
|
|
<div class="item-left">
|
|
<div class="item-username" @click="clickUser">
|
|
<div class="item-username" @click="clickUser">
|
|
- <em class="item-name"><user-view :username="info.username" placement="right"/></em>
|
|
|
|
|
|
+ <em class="item-name"><user-view :username="userName" :info="info" placement="right"/></em>
|
|
<em v-if="info.__usertag" class="item-tag">{{info.__usertag}}</em>
|
|
<em v-if="info.__usertag" class="item-tag">{{info.__usertag}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
</div>
|
|
</div>
|
|
- <div class="item-text" :class="{'text-error':info.error}">
|
|
|
|
|
|
+ <div class="item-text" :class="{'text-emoji':textIsEmoji(info.text), 'text-error':info.error}">
|
|
<div class="item-text-view">{{textMsg(info.text)}}</div>
|
|
<div class="item-text-view">{{textMsg(info.text)}}</div>
|
|
</div>
|
|
</div>
|
|
<template v-if="info.type==='taskB'">
|
|
<template v-if="info.type==='taskB'">
|
|
@@ -61,20 +61,20 @@
|
|
</div>
|
|
</div>
|
|
<div class="item-right">
|
|
<div class="item-right">
|
|
<div class="item-username" @click="clickUser">
|
|
<div class="item-username" @click="clickUser">
|
|
- <em class="item-name"><user-view :username="info.username" placement="left"/></em>
|
|
|
|
|
|
+ <em class="item-name"><user-view :username="userName" :info="info" placement="left"/></em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
</div>
|
|
</div>
|
|
<a class="item-image" :href="info.url" target="_blank">
|
|
<a class="item-image" :href="info.url" target="_blank">
|
|
<img class="item-image-view" :src="info.url"/>
|
|
<img class="item-image-view" :src="info.url"/>
|
|
</a>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
- <img class="item-userimg" @click="clickUser" :src="info.userimg" onerror="this.src=window.location.origin+'/images/other/avatar.png'"/>
|
|
|
|
|
|
+ <UserImg :info="info" @click="clickUser" class="item-userimg"/>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="info.self===false" class="list-item">
|
|
<div v-else-if="info.self===false" class="list-item">
|
|
- <img class="item-userimg" @click="clickUser" :src="info.userimg" onerror="this.src=window.location.origin+'/images/other/avatar.png'"/>
|
|
|
|
|
|
+ <UserImg :info="info" @click="clickUser" class="item-userimg"/>
|
|
<div class="item-left">
|
|
<div class="item-left">
|
|
<div class="item-username" @click="clickUser">
|
|
<div class="item-username" @click="clickUser">
|
|
- <em class="item-name"><user-view :username="info.username" placement="right"/></em>
|
|
|
|
|
|
+ <em class="item-name"><user-view :username="userName" :info="info" placement="right"/></em>
|
|
<em v-if="info.__usertag" class="item-tag">{{info.__usertag}}</em>
|
|
<em v-if="info.__usertag" class="item-tag">{{info.__usertag}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
<em v-if="info.indate" class="item-date">{{formatCDate(info.indate)}}</em>
|
|
</div>
|
|
</div>
|
|
@@ -154,6 +154,7 @@
|
|
margin-left: 8px;
|
|
margin-left: 8px;
|
|
margin-right: 8px;
|
|
margin-right: 8px;
|
|
border-radius: 3px;
|
|
border-radius: 3px;
|
|
|
|
+ font-size: 20px;
|
|
}
|
|
}
|
|
.item-error {
|
|
.item-error {
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
@@ -182,6 +183,13 @@
|
|
background-color: #ffffff;
|
|
background-color: #ffffff;
|
|
max-height: 580px;
|
|
max-height: 580px;
|
|
overflow: auto;
|
|
overflow: auto;
|
|
|
|
+ &.text-emoji {
|
|
|
|
+ background-color: transparent;
|
|
|
|
+ .item-text-view {
|
|
|
|
+ font-size: 52px;
|
|
|
|
+ line-height: normal;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
&.text-error {
|
|
&.text-error {
|
|
box-shadow: 0 0 4px 0 #ffa1a1;
|
|
box-shadow: 0 0 4px 0 #ffa1a1;
|
|
}
|
|
}
|
|
@@ -262,11 +270,25 @@
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ computed: {
|
|
|
|
+ userName() {
|
|
|
|
+ return this.info.send_username || this.info.username;
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ userImg() {
|
|
|
|
+ return this.info.send_userimg || this.info.userimg;
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+
|
|
methods: {
|
|
methods: {
|
|
textMsg(text) {
|
|
textMsg(text) {
|
|
return (text + "").replace(/\n/, '<br/>');
|
|
return (text + "").replace(/\n/, '<br/>');
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ textIsEmoji(text) {
|
|
|
|
+ return text.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "_") === "_";
|
|
|
|
+ },
|
|
|
|
+
|
|
formatCDate(v) {
|
|
formatCDate(v) {
|
|
let string = '';
|
|
let string = '';
|
|
if ($A.runNum(v) > 0) {
|
|
if ($A.runNum(v) > 0) {
|