10
This commit is contained in:
@@ -5,13 +5,18 @@
|
||||
upper-threshold="250" @scrolltoupper="scrolltoupper">
|
||||
<view id="scroll_wrap">
|
||||
<u-loadmore nomoreText="" :status="loadMoreStatus" />
|
||||
<view v-for="item in storeHistoryMessageList" :key="item.clientMsgID">
|
||||
<view class="msg_item" v-for="item in storeHistoryMessageList" :key="item.clientMsgID" @click="onUserMessageEvent({type:'selected'},item)">
|
||||
<template v-if="selectFlag">
|
||||
<uni-icons class="selectedIcon" size="30" color="#07c160" type="checkbox-filled" v-if="selectClientMsgIDItems.indexOf(item.clientMsgID)>-1"></uni-icons>
|
||||
<uni-icons class="selectedIcon" size="30" color="#ccc" type="circle" v-else></uni-icons>
|
||||
</template>
|
||||
<message-item-render
|
||||
@messageItemRender="messageItemRender"
|
||||
@longpress="onLongPressMessageItem(item)"
|
||||
@userEvent="onUserMessageEvent"
|
||||
:source="item"
|
||||
:isSender="item.sendID === storeCurrentUserID"
|
||||
/>
|
||||
<!-- :isActive="selectClientMsgIDItems.indexOf(item.clientMsgID)>-1" -->
|
||||
</view>
|
||||
<view style="visibility: hidden; height: 12px" id="auchormessage_bottom_item"></view>
|
||||
</view>
|
||||
@@ -19,10 +24,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
mapGetters,
|
||||
mapActions
|
||||
} from "vuex";
|
||||
import {mapGetters,mapActions} from "vuex";
|
||||
import MessageItemRender from "./MessageItem/index.vue";
|
||||
|
||||
export default {
|
||||
@@ -30,7 +32,18 @@
|
||||
components: {
|
||||
MessageItemRender,
|
||||
},
|
||||
props: {},
|
||||
props: {
|
||||
selectFlag:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
selectItems:{
|
||||
type:Array,
|
||||
default(){
|
||||
return [];
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
scrollIntoView: "",
|
||||
@@ -45,7 +58,7 @@
|
||||
withAnimation: false,
|
||||
messageLoadState: {
|
||||
loading: false,
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -62,6 +75,13 @@
|
||||
}
|
||||
return this.messageLoadState.loading ? "loading" : "loadmore";
|
||||
},
|
||||
selectClientMsgIDItems(){
|
||||
let arr = [];
|
||||
this.selectItems.forEach((v,k)=>{
|
||||
arr.push(v.clientMsgID);
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadMessageList();
|
||||
@@ -90,10 +110,7 @@
|
||||
viewType: 0,
|
||||
};
|
||||
try {
|
||||
const {
|
||||
emptyFlag
|
||||
} =
|
||||
await this.getHistoryMesageList(options);
|
||||
const {emptyFlag} =await this.getHistoryMesageList(options);
|
||||
if (emptyFlag) {
|
||||
this.$emit("initSuccess");
|
||||
}
|
||||
@@ -112,10 +129,7 @@
|
||||
this.$emit("click", e);
|
||||
},
|
||||
onScroll(event) {
|
||||
const {
|
||||
scrollHeight,
|
||||
scrollTop
|
||||
} = event.target;
|
||||
const {scrollHeight,scrollTop} = event.target;
|
||||
this.old.scrollTop = scrollTop
|
||||
this.needScoll =
|
||||
scrollHeight - scrollTop < uni.getWindowInfo().windowHeight * 1.2;
|
||||
@@ -162,9 +176,7 @@
|
||||
});
|
||||
},
|
||||
checkInitHeight() {
|
||||
this.getEl("#scroll_view").then(({
|
||||
height
|
||||
}) => {
|
||||
this.getEl("#scroll_view").then(({height}) => {
|
||||
this.bgHeight = `${height}px`;
|
||||
});
|
||||
},
|
||||
@@ -179,9 +191,10 @@
|
||||
.exec();
|
||||
});
|
||||
},
|
||||
onLongPressMessageItem(msg){
|
||||
|
||||
}
|
||||
onUserMessageEvent(e,data){
|
||||
this.$emit('userEvent',e,data)
|
||||
},
|
||||
empty(){}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -255,4 +268,16 @@
|
||||
.fade-enter {
|
||||
opacity: 0;
|
||||
}
|
||||
.msg_item{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
width: 100%;
|
||||
.message_item{
|
||||
flex:1;
|
||||
}
|
||||
.selectedIcon{
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user