mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
synced 2025-12-17 16:05:53 +08:00
修改im bug
This commit is contained in:
@@ -158,36 +158,36 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- loading是显示 -->
|
|
||||||
<!-- <view v-show="msgLoad" class=" margin-left margin-top">
|
|
||||||
<view class="chat-img flex-row-center">
|
|
||||||
<image style="height: 75rpx;width: 75rpx;" src="../../static/image/robt.png" mode="aspectFit"></image>
|
|
||||||
</view>
|
|
||||||
<view class="flex" style="width: 500rpx;">
|
|
||||||
<view class="margin-left padding-chat flex-column-start"
|
|
||||||
style="border-radius: 35rpx;background-color: #f9f9f9;">
|
|
||||||
<view class="cuIcon-loading turn-load" style="font-size: 35rpx;color: #3e9982;">
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
<!-- 防止消息底部被遮 -->
|
<!-- 防止消息底部被遮 -->
|
||||||
<view style="height: 120rpx;">
|
<view style="height: 120rpx;">
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 底部导航栏 -->
|
<!-- 底部导航栏 -->
|
||||||
<view :style="{position: 'fixed',bottom:inputHeight+'px'}" class="flex-column-center" :animation="animationData">
|
<view :style="{position: 'fixed', bottom:inputHeight+'px'}" class="flex-column-center bottom-dh" :animation="animationData">
|
||||||
<view class="bottom-dh-char flex-row-around" style="font-size: 55rpx;">
|
<view class="bottom-dh-char flex-row-around" style="font-size: 55rpx;">
|
||||||
<!-- vue无法使用软键盘"发送" -->
|
<!-- vue无法使用软键盘"发送" -->
|
||||||
<input @focus="inputBindFocus" @blur="eventHandle" :adjust-position="false" v-model="msg" class="dh-input" type="text" style="background-color: #f0f0f0;" @confirm="sendMessage"
|
|
||||||
|
<!-- #ifndef MP-WEIXIN -->
|
||||||
|
<div v-if="!isShow" @click="navigateToBottom" class="dh-input">
|
||||||
|
用一句简短的话描述您的问题
|
||||||
|
</div>
|
||||||
|
<input v-show="isShow" ref="inputRef" :focus="isShow" @focus="inputBindFocus" @blur="eventHandle" :adjust-position="false" v-model="msg" class="dh-input" type="text" style="background-color: #f0f0f0;" @confirm="sendMessage"
|
||||||
confirm-type="send" placeholder="用一句简短的话描述您的问题" />
|
confirm-type="send" placeholder="用一句简短的话描述您的问题" />
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<input ref="inputRef" @focus="inputBindFocus" @blur="eventHandle" :adjust-position="false" v-model="msg" class="dh-input" type="text" style="background-color: #f0f0f0;" @confirm="sendMessage"
|
||||||
|
confirm-type="send" placeholder="用一句简短的话描述您的问题" />
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
<view @click="sendMessage" class="cu-tag bg-main-color send round">
|
<view @click="sendMessage" class="cu-tag bg-main-color send round">
|
||||||
发送
|
发送
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- <text @click="ckAdd" class="cuIcon-roundaddfill text-brown"></text> -->
|
<!-- <text @click="ckAdd" class="cuIcon-roundaddfill text-brown"></text> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<div id="bottom"></div>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -233,26 +233,7 @@ export default {
|
|||||||
if (this.resolve.goodsid) {
|
if (this.resolve.goodsid) {
|
||||||
this.commodityDetails()
|
this.commodityDetails()
|
||||||
}
|
}
|
||||||
// 如果需要缓存消息缓存msgList即可
|
|
||||||
// 监听键盘拉起
|
|
||||||
// 因为无法控制键盘拉起的速度,所以这里尽量以慢速处理
|
|
||||||
uni.onKeyboardHeightChange(res => {
|
|
||||||
const query = uni.createSelectorQuery()
|
|
||||||
query.select('#msgList').boundingClientRect(data => {
|
|
||||||
// 若消息体没有超过2倍的键盘则向下移动差值,防止遮住消息体
|
|
||||||
var up = res.height * 2 - data.height - l * 110
|
|
||||||
if (up > 0) {
|
|
||||||
// 动态改变空盒子高度
|
|
||||||
this.messageBoxMove(up, 300)
|
|
||||||
// 记录改变的值,若不收回键盘且发送了消息用来防止消息过多被遮盖
|
|
||||||
mgUpHeight = up
|
|
||||||
}
|
|
||||||
// 收回
|
|
||||||
if (res.height == 0) {
|
|
||||||
this.messageBoxMove(0, 0)
|
|
||||||
}
|
|
||||||
}).exec();
|
|
||||||
})
|
|
||||||
var query = uni.getSystemInfoSync()
|
var query = uni.getSystemInfoSync()
|
||||||
|
|
||||||
l = query.screenWidth / 750
|
l = query.screenWidth / 750
|
||||||
@@ -270,8 +251,12 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this.ws.connect();
|
// this.ws.connect();
|
||||||
this.sokcet();
|
this.socket();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 页面隐藏
|
// 页面隐藏
|
||||||
onHide () {
|
onHide () {
|
||||||
uni.closeSocket();
|
uni.closeSocket();
|
||||||
@@ -321,30 +306,65 @@ export default {
|
|||||||
goodListData: {},
|
goodListData: {},
|
||||||
count: 0, //判断socket断开连接请求次数
|
count: 0, //判断socket断开连接请求次数
|
||||||
inputHeight:0,
|
inputHeight:0,
|
||||||
|
isShow:false,
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// watch: {
|
onPageScroll (e) {
|
||||||
// 'ws.callBackMapping': {
|
|
||||||
// handler: function (val) {
|
// #ifdef APP-PLUS
|
||||||
// val = JSON.parse(val)
|
uni.hideKeyboard()
|
||||||
// if (val.messageResultType == 'MESSAGE') {
|
this.isShow = false
|
||||||
// this.msgList.push(val.result)
|
// #endif
|
||||||
// }
|
},
|
||||||
// this.newMessageNum++;
|
|
||||||
// //接收到消息后发送已读
|
|
||||||
// let msg = val
|
|
||||||
// msg.operation_type = 'READ'
|
|
||||||
// this.ws.send(JSON.stringify(msg))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
methods: {
|
methods: {
|
||||||
|
navigateToBottom(){
|
||||||
|
// #ifdef H5
|
||||||
|
this.isShow = true
|
||||||
|
this.$refs.inputRef.focus()
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
this.$nextTick(() => {
|
||||||
|
uni.pageScrollTo({
|
||||||
|
scrollTop: 5000000,
|
||||||
|
duration: 50,
|
||||||
|
success: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.isShow = true
|
||||||
|
}, 200);
|
||||||
|
;
|
||||||
|
},
|
||||||
|
fail: () => { },
|
||||||
|
complete: () => {}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
eventHandle(){
|
eventHandle(){
|
||||||
|
|
||||||
this.inputHeight = 0
|
this.inputHeight = 0
|
||||||
|
this.isShow = false
|
||||||
},
|
},
|
||||||
inputBindFocus(e){
|
inputBindFocus(e){
|
||||||
if (e.detail.height) {
|
if (e.detail.height) {
|
||||||
|
|
||||||
|
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
// 判断是否是ios
|
||||||
|
if (uni.getSystemInfoSync().platform == 'ios') {
|
||||||
|
this.inputHeight = e.detail.height - 40 //这个高度就是软键盘的高度
|
||||||
|
}else{
|
||||||
|
this.inputHeight = e.detail.height
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifndef APP-PLUS
|
||||||
this.inputHeight = e.detail.height //这个高度就是软键盘的高度
|
this.inputHeight = e.detail.height //这个高度就是软键盘的高度
|
||||||
|
// #endif
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sendMessage () {
|
sendMessage () {
|
||||||
@@ -404,7 +424,7 @@ export default {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
sokcet () {
|
socket () {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
uni.closeSocket();
|
uni.closeSocket();
|
||||||
this.socketOpen = false;
|
this.socketOpen = false;
|
||||||
@@ -455,7 +475,7 @@ export default {
|
|||||||
// 监听是否断线,断线进行重新连接
|
// 监听是否断线,断线进行重新连接
|
||||||
uni.onSocketClose((res) => {
|
uni.onSocketClose((res) => {
|
||||||
if (res.code != null && res.code != 1000) {
|
if (res.code != null && res.code != 1000) {
|
||||||
this.sokcet()
|
this.socket()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -825,6 +845,7 @@ export default {
|
|||||||
margin-left: 10rpx;
|
margin-left: 10rpx;
|
||||||
}
|
}
|
||||||
.dh-input {
|
.dh-input {
|
||||||
|
line-height: 65rpx;
|
||||||
width: 500rpx;
|
width: 500rpx;
|
||||||
height: 65rpx;
|
height: 65rpx;
|
||||||
border-radius: 30rpx;
|
border-radius: 30rpx;
|
||||||
@@ -871,6 +892,19 @@ uni-page-head {
|
|||||||
right: 0;
|
right: 0;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
}
|
}
|
||||||
|
.bottom-dh{
|
||||||
|
position: fixed; // input 所在盒子设置绝对定位
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0; // 默认 0
|
||||||
|
z-index: 199;
|
||||||
|
padding-bottom: env(safe-area-inset-bottom);
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user