提交 f2564b85 编写于 作者: guangjun.yang's avatar guangjun.yang

Merge branch 'dev-phase1-0111' of...

Merge branch 'dev-phase1-0111' of 192.168.110.53:com.pica.cloud.education.frontend/pica-admin-IM into dev-phase1-0111

* 'dev-phase1-0111' of 192.168.110.53:com.pica.cloud.education.frontend/pica-admin-IM:
  下拉调试
<template> <template>
<!-- v-infinite-scroll="getDeatailData(0)" -->
<div class="search-msg-detail"> <div class="search-msg-detail">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :jumPathThird="jumPathThird"></bread-crumb> <bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :jumPathThird="jumPathThird"></bread-crumb>
<div class="detail-content screenSet" id="screenSet"> <div class="detail-content">
<div class="scroll-box" v-loadmore="getHistoryData(0)"> <div v-loadmore="getHistoryData(0)">
<div v-for="(item, index) in detailData" :key="index"> <div id="screenSet" class="message-content scroll-box">
<div class="split-line" v-if="item.sessionFlag">本次会话结束</div> <div v-for="(item, index) in detailData" :key="index">
<div class="msg-container" :class="{'has-line': !item.sessionFlag}"> <div class="split-line" v-if="item.sessionFlag">本次会话结束</div>
<div class="msg-item-img"> <div class="msg-container" :class="{'has-line': !item.sessionFlag}">
<img v-if="item.fromAccId == picakfAccId" src="../../../assets/image/IM/kf-avatar.png" alt /> <div class="msg-item-img" v-if="item.content.bizType != -1">
<img v-else :src="userAvatar" /> <img v-if="item.fromAccId == picakfAccId" src="../../../assets/image/IM/kf-avatar.png" alt />
</div> <img v-else :src="userAvatar" />
<div class="msg-content">
<div class="info">
<span v-if="item.fromAccId == picakfAccId">客服</span>
<span v-else>{{userName}}</span>
<span class="mid-time">{{item.timestamp}}</span>
</div>
<div v-if="item.type == 'TEXT'" class="text-content">
<div>{{item.content}}</div>
</div>
<div v-if="item.type == 'PICTURE'" class="img-content" v-viewer>
<img :src="item.content.url" />
</div> </div>
<div v-if="item.type == 'CUSTOM'"> <div class="msg-content">
<div v-if="item.content.bizType == 18" class="file-content"> <div class="info" v-if="item.content.bizType != -1">
<div class="file-con" @click="downPDF(item.content.url)"> <span v-if="item.fromAccId == picakfAccId">客服</span>
<div class="file-left"> <span v-else>{{userName}}</span>
<span class="name">{{item.content.name}}</span> <span class="mid-time">{{item.timestamp}}</span>
<span class="size">{{fileSizeChange(item.content.size)}}</span>
</div>
<div class="file-right">
<img src="../../../assets/image/IM/icon-pdf.png" alt />
</div>
</div>
</div> </div>
<div v-if="item.content.bizType == 19" class="link-content"> <div v-if="item.type == 'TEXT'" class="text-content">
<div class="link-text">{{item.content.content}}</div> <div>{{item.content}}</div>
</div> </div>
<div v-if="item.content.bizType != 19 && item.content.bizType != 18" class="text-content pc-no-support"> <div v-if="item.type == 'PICTURE'" class="img-content" v-viewer>
<img src="../../../assets/image/IM/icon-warning-circle.png" alt /> <img :src="item.content.url" />
<span>该消息类型PC端暂不支持</span> </div>
<div v-if="item.type == 'CUSTOM'">
<div v-if="item.content.bizType == 18" class="file-content">
<div class="file-con" @click="downPDF(item.content.url)">
<div class="file-left">
<span class="name">{{item.content.name}}</span>
<span class="size">{{fileSizeChange(item.content.size)}}</span>
</div>
<div class="file-right">
<img src="../../../assets/image/IM/icon-pdf.png" alt />
</div>
</div>
</div>
<div v-if="item.content.bizType == 19" class="link-content">
<div class="link-text">{{item.content.content}}</div>
</div>
<div v-if="item.content.bizType != -1 && item.content.bizType != 19 && item.content.bizType != 18" class="text-content pc-no-support">
<img src="../../../assets/image/IM/icon-warning-circle.png" alt />
<span>该消息类型PC端暂不支持</span>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
...@@ -62,6 +65,7 @@ export default { ...@@ -62,6 +65,7 @@ export default {
}, },
data() { data() {
return { return {
hasSearchDate: true,
jumPathThird: '/search-message-list', jumPathThird: '/search-message-list',
curmbFirst:'消息查询', curmbFirst:'消息查询',
curmbSecond:'消息详情', curmbSecond:'消息详情',
...@@ -75,22 +79,40 @@ export default { ...@@ -75,22 +79,40 @@ export default {
ele: '', ele: '',
topFlag: false, topFlag: false,
hasHistoryData: true, hasHistoryData: true,
historyTime: '',
hasForwardData: true,
}; };
}, },
created() { created() {
this.hasSearchDate = this.$route.query.hasSearchDate;
this.lastMsgTime = this.$route.query.msgTimestamp; this.lastMsgTime = this.$route.query.msgTimestamp;
this.doctorAccId = this.$route.query.doctorAccId; this.doctorAccId = this.$route.query.doctorAccId;
this.userAvatar = this.$route.query.avatarImageUrl; this.userAvatar = this.$route.query.avatarImageUrl;
this.userName = this.$route.query.userName; this.userName = this.$route.query.userName;
this.picakfAccId = getPicaKFAccid();
}, },
mounted() { mounted() {
commonUtil.resizeHeight(); let _this = this;
this.picakfAccId = getPicaKFAccid(); this.$nextTick(() => {
_this.containerHeight = _this.getElmByID('slidebar-container').getBoundingClientRect().height - 15;
_this.getElmByID('screenSet').style.height = _this.containerHeight - 152 + "px";
console.log('=======scrollHeight========',document.querySelector(".scroll-box").scrollHeight)
});
this.getDeatailData(1); this.getDeatailData(1);
// let el = document.querySelector(".scroll-box");
// if(this.hasSearchDate) {
// el.scrollTop = el.scrollHeight - 100;
// }
}, },
methods: { methods: {
// 获取元素
getElmByID(elmId) {
return document.getElementById(elmId);
},
// 获取详情数据以及下拉加载历史数据 // 获取详情数据以及下拉加载历史数据
getDeatailData(param) { getDeatailData(param) {
if(!this.hasForwardData) return;
let url = '/im/msg/forward'; let url = '/im/msg/forward';
let req = { let req = {
doctorAccId: this.doctorAccId, doctorAccId: this.doctorAccId,
...@@ -102,7 +124,26 @@ export default { ...@@ -102,7 +124,26 @@ export default {
} }
this.POST(url, req).then((res) => { this.POST(url, req).then((res) => {
if(res.code == '000000') { if(res.code == '000000') {
this.detailData = this.dataconcatHandle(res.data); this.historyTime = res.data[0].timestamp;
if(param == 1) {
this.detailData = this.dataconcatHandle(res.data);
}else {
if(res.data.length > 0) {
this.hasForwardData = true;
this.lastMsgTime = res.data[res.data.length - 1].timestamp;
let arr = res.data;
this.detailData.push(...arr);
this.detailData = this.dataconcatHandle(this.detailData);
}else {
this.hasForwardData = false;
}
}
if(this.hasSearchDate) { // 查询条件不包含日期
this.$nextTick(() => {
var element = document.querySelector(".scroll-box");
element.scrollTop = element.scrollHeight;
});
}
} }
}) })
}, },
...@@ -113,7 +154,7 @@ export default { ...@@ -113,7 +154,7 @@ export default {
let req = { let req = {
doctorAccId: this.doctorAccId, doctorAccId: this.doctorAccId,
includeFlag: param, includeFlag: param,
lastMsgTimestamp: this.lastMsgTime, lastMsgTimestamp: this.historyTime,
limit: 20, limit: 20,
patientAccId: this.picakfAccId, patientAccId: this.picakfAccId,
unionId: "" unionId: ""
...@@ -121,10 +162,11 @@ export default { ...@@ -121,10 +162,11 @@ export default {
this.POST(url, req).then((res) => { this.POST(url, req).then((res) => {
if(res.code == '000000') { if(res.code == '000000') {
if(res.data.length > 0) { if(res.data.length > 0) {
this.historyTime = res.data[0].timestamp;
this.hasHistoryData = true; this.hasHistoryData = true;
let arr = res.data let arr = res.data;
this.detailData.unshift(...arr); this.detailData.unshift(...arr);
this.detailData = this.dataconcatHandle(this.detailData) this.detailData = this.dataconcatHandle(this.detailData);
this.$nextTick(() => { this.$nextTick(() => {
const scrollBoxDom = document.querySelector(".scroll-box"); const scrollBoxDom = document.querySelector(".scroll-box");
scrollBoxDom.scrollTop = 1000; scrollBoxDom.scrollTop = 1000;
...@@ -148,7 +190,6 @@ export default { ...@@ -148,7 +190,6 @@ export default {
} }
} }
this.$set(element, index, 'sessionFlag'); this.$set(element, index, 'sessionFlag');
console.log("=================",data)
if(element.type == 'CUSTOM') { if(element.type == 'CUSTOM') {
element.content = JSON.parse(element.content); element.content = JSON.parse(element.content);
} }
...@@ -174,8 +215,12 @@ export default { ...@@ -174,8 +215,12 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.search-msg-detail { .search-msg-detail {
.detail-content { .detail-content {
margin: 80px 20px 0;
padding: 0 20px; padding: 0 20px;
background: #fff; background: #fff;
.message-content {
overflow: scroll;
}
.split-line { .split-line {
width: 100%; width: 100%;
display: flex; display: flex;
...@@ -286,7 +331,7 @@ export default { ...@@ -286,7 +331,7 @@ export default {
} }
} }
.msg-container.has-line { .msg-container.has-line {
border-bottom: 1px solid #F0F1F2; border-top: 1px solid #F0F1F2;
} }
} }
} }
......
...@@ -88,6 +88,7 @@ export default { ...@@ -88,6 +88,7 @@ export default {
totalRows: 0, totalRows: 0,
tableData: [], tableData: [],
loading: false, loading: false,
hasSearchDate: true // 查询条件不包含日期
}; };
}, },
computed: {}, computed: {},
...@@ -130,13 +131,15 @@ export default { ...@@ -130,13 +131,15 @@ export default {
// 查看消息详情 // 查看消息详情
edit(row) { edit(row) {
if(this.searchParam.chooseDate) this.hasSearchDate = false;
this.$router.push({ this.$router.push({
path: `/search-message-detail`, path: `/search-message-detail`,
query: { query: {
msgTimestamp: row.msgTimestamp, msgTimestamp: row.msgTimestamp,
doctorAccId: row.accId, doctorAccId: row.accId,
userName: row.userName, userName: row.userName,
avatarImageUrl: row.avatarImageUrl avatarImageUrl: row.avatarImageUrl,
hasSearchDate: this.hasSearchDate
} }
}); });
}, },
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册