Browse Source

web端ui优化

master
xsx 2 years ago
parent
commit
837f72af46
  1. 11
      im-ui/src/components/chat/ChatAtBox.vue
  2. 13
      im-ui/src/components/chat/ChatBox.vue
  3. 10
      im-ui/src/components/chat/ChatGroupMember.vue
  4. 2
      im-ui/src/components/common/Emotion.vue

11
im-ui/src/components/chat/ChatAtBox.vue

@ -1,8 +1,9 @@
<template>
<el-scrollbar v-show="show" ref="scrollBox" class="group-member-choose"
:style="{'left':pos.x+'px','top':pos.y-300+'px'}">
<div v-for="(member) in showMembers" :key="member.id">
<chat-group-member :member="member" :height="40" @click.native="onSelectMember(member)"></chat-group-member>
<div v-for="(member,idx) in showMembers" :key="member.id">
<chat-group-member :member="member" :height="40" :active='activeIdx==idx'
@click.native="onSelectMember(member)"></chat-group-member>
</div>
</el-scrollbar>
</template>
@ -55,6 +56,10 @@
}
})
this.activeIdx = this.showMembers.length > 0 ? 0: -1;
console.log(this.showMembers.length)
if(this.showMembers.length == 0){
this.close();
}
},
open(pos) {
this.show = true;
@ -122,7 +127,7 @@
position: fixed;
width: 200px;
height: 300px;
border: 1px solid #b4b4b4;
border: 1px solid #53a0e79c;
border-radius: 5px;
background-color: #f5f5f5;
box-shadow: 0px 0px 10px #ccc;

13
im-ui/src/components/chat/ChatBox.vue

@ -62,8 +62,8 @@
:disabled="lockMessage" @paste.prevent="onEditorPaste"
@compositionstart="onEditorCompositionStart"
@compositionend="onEditorCompositionEnd" @input="onEditorInput"
:placeholder="placeholder" @blur="onEditBoxBlur()" @keydown.down="onKeyDown"
@keydown.up="onKeyUp" @keydown.enter.prevent="onKeyEnter">x
:placeholder="placeholder" @blur="onEditBoxBlur()" @keyup.down="onKeyDown"
@keyup.up.prevent="onKeyUp" @keydown.enter.prevent="onKeyEnter">x
</div>
<div v-show="sendImageUrl" class="send-image-area">
@ -164,6 +164,7 @@
}
},
onKeyDown() {
console.log("onKeyDown")
if (this.$refs.atBox.show) {
this.$refs.atBox.moveDown()
}
@ -188,13 +189,17 @@
this.focusNode = selection.focusNode;
this.focusOffset = selection.focusOffset;
},
onEditorInput(e) {
onEditorInput(e, e2, e3) {
// @
if (this.chat.type == "GROUP" && !this.zhLock) {
console.log("onEditorInput")
if (e.inputType === "deleteContentBackward" && !this.atSearchText) {
this.$refs.atBox.close();
}
if (e.data == '@') {
//
this.showAtBox(e);
} else {
} else if(this.$refs.atBox.show){
let selection = window.getSelection()
let range = selection.getRangeAt(0)
this.focusNode = selection.focusNode;

10
im-ui/src/components/chat/ChatGroupMember.vue

@ -1,5 +1,5 @@
<template>
<div class="chat-group-member" :style="{'height':height+'px'}">
<div class="chat-group-member" :class="active?'active':''" :style="{'height':height+'px'}">
<div class="member-avatar">
<head-image :size="headImageSize" :name="member.showNickName" :url="member.headImage"> </head-image>
</div>
@ -25,6 +25,10 @@ export default {
height:{
type: Number,
default: 50
},
active: {
type: Boolean,
default: false
}
},
computed:{
@ -47,11 +51,11 @@ export default {
box-sizing: border-box;
&:hover {
background-color: #eeeeee;
background-color: #F8FAFF;
}
&.active {
background-color: #eeeeee;
background-color: #E8F2FF;
}
.member-name {

2
im-ui/src/components/common/Emotion.vue

@ -55,7 +55,7 @@
width: 500px;
box-sizing: border-box;
padding: 5px;
border: 1px solid #b4b4b4;
border: 1px solid #53a0e79c;
border-radius: 5px;
background-color: #f5f5f5;
box-shadow: 0px 0px 10px #ccc;

Loading…
Cancel
Save