Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-IM
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-admin-IM
提交
89936c07
提交
89936c07
编写于
1月 25, 2021
作者:
huangwensu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上下翻页调接口
上级
9b0b64ed
变更
1
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
81 行增加
和
73 行删除
+81
-73
detail.vue
src/views/IM/search-message/detail.vue
+81
-73
未找到文件。
src/views/IM/search-message/detail.vue
浏览文件 @
89936c07
<
template
>
<!-- v-infinite-scroll="getDeatailData(0)" -->
<!-- v-infinite-scroll="getDeatailData(0)"
getHistoryData(0)
-->
<div
class=
"search-msg-detail"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:jumPathThird=
"jumPathThird"
></bread-crumb>
<div
class=
"detail-content"
>
<div
v-loadmore=
"getHistoryData(0)"
>
<div
id=
"screenSet"
class=
"message-content scroll-box"
>
<div
v-for=
"(item, index) in detailData"
:key=
"index"
>
<div
class=
"split-line"
v-if=
"item.sessionFlag"
>
本次会话结束
</div>
<div
class=
"msg-container"
:class=
"
{'has-line': !item.sessionFlag}">
<div
class=
"msg-item-img"
v-if=
"item.content.bizType != -1"
>
<img
v-if=
"item.fromAccId == picakfAccId"
src=
"../../../assets/image/IM/kf-avatar.png"
alt
/>
<img
v-else
:src=
"userAvatar"
/>
<div
id=
"scroll-set"
>
<div
v-for=
"(item, index) in detailData"
:key=
"index"
>
<div
class=
"split-line"
v-if=
"item.sessionFlag"
>
本次会话结束
</div>
<div
v-if=
"item.content.bizType != -1"
class=
"msg-container"
:class=
"
{'has-line': !item.sessionFlag}">
<div
class=
"msg-item-img"
>
<img
v-if=
"item.fromAccId == picakfAccId"
src=
"../../../assets/image/IM/kf-avatar.png"
alt
/>
<img
v-else
:src=
"userAvatar"
/>
</div>
<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
class=
"msg-content"
>
<div
class=
"info"
v-if=
"item.content.bizType != -1"
>
<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
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
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
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
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
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>
...
...
@@ -72,7 +70,7 @@ export default {
picakfAccId
:
''
,
lastMsgTime
:
''
,
doctorAccId
:
''
,
detailData
:
{}
,
detailData
:
[]
,
userAvatar
:
''
,
userName
:
''
,
scroll
:
true
,
...
...
@@ -92,18 +90,34 @@ export default {
this
.
picakfAccId
=
getPicaKFAccid
();
},
mounted
()
{
this
.
getDeatailData
(
1
);
let
_this
=
this
;
this
.
$nextTick
(()
=>
{
setTimeout
(()
=>
{
let
el
=
_this
.
getElmByID
(
'scroll-set'
);
_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
);
// let el = document.querySelector(".scroll-box");
// if(this.hasSearchDate) {
// el.scrollTop = el.scrollHeight - 100;
// }
_this
.
getElmByID
(
'scroll-set'
).
style
.
height
=
_this
.
containerHeight
-
152
+
"px"
;
if
(
_this
.
hasSearchDate
)
{
// 有查询日期 滚动条最顶部
el
.
scrollTop
=
10
;
el
.
addEventListener
(
'scroll'
,
function
()
{
let
allH
,
sh
;
allH
=
el
.
scrollTop
+
el
.
clientHeight
;
sh
=
el
.
scrollHeight
;
if
(
el
.
scrollTop
<
1
&&
_this
.
hasHistoryData
)
{
_this
.
getHistoryData
(
0
);
}
if
((
sh
-
allH
<=
1
)
&&
_this
.
hasForwardData
)
{
_this
.
getDeatailData
(
0
);
}
})
}
else
{
el
.
scrollTop
=
el
.
scrollHeight
;
el
.
addEventListener
(
'scroll'
,
function
()
{
if
(
el
.
scrollTop
<
5
&&
_this
.
hasHistoryData
)
{
_this
.
getHistoryData
(
0
);
}
})
}
},
100
);
},
methods
:
{
// 获取元素
...
...
@@ -112,7 +126,6 @@ export default {
},
// 获取详情数据以及下拉加载历史数据
getDeatailData
(
param
)
{
if
(
!
this
.
hasForwardData
)
return
;
let
url
=
'/im/msg/forward'
;
let
req
=
{
doctorAccId
:
this
.
doctorAccId
,
...
...
@@ -124,32 +137,27 @@ export default {
}
this
.
POST
(
url
,
req
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
let
arr
=
[];
this
.
historyTime
=
res
.
data
[
0
].
timestamp
;
if
(
param
==
1
)
{
this
.
detailData
=
this
.
dataconcatHandle
(
res
.
data
);
if
(
res
.
data
.
length
>
0
)
{
this
.
hasForwardData
=
true
;
this
.
lastMsgTime
=
res
.
data
[
res
.
data
.
length
-
1
].
timestamp
;
arr
=
this
.
dataconcatHandle
(
res
.
data
);
this
.
detailData
.
push
(...
arr
);
}
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
;
});
this
.
hasForwardData
=
false
;
}
// if(this.hasSearchDate) { // 查询条件不包含日期
// this.$nextTick(() => {
// var element = document.querySelector(".scroll-box");
// element.scrollTop = element.scrollHeight;
// });
// }
}
})
},
// 上翻查看最新消息
getHistoryData
(
param
)
{
if
(
!
this
.
hasHistoryData
)
return
;
let
url
=
'/im/msg/history'
;
let
req
=
{
doctorAccId
:
this
.
doctorAccId
,
...
...
@@ -167,10 +175,10 @@ export default {
let
arr
=
res
.
data
;
this
.
detailData
.
unshift
(...
arr
);
this
.
detailData
=
this
.
dataconcatHandle
(
this
.
detailData
);
this
.
$nextTick
(()
=>
{
const
scrollBoxDom
=
document
.
querySelector
(
".scroll-box
"
);
scrollBoxDom
.
scrollTop
=
10
00
;
});
setTimeout
(()
=>
{
const
scrollBoxDom
=
document
.
getElementById
(
"scroll-set
"
);
scrollBoxDom
.
scrollTop
=
2
00
;
}
,
100
);
}
else
{
this
.
hasHistoryData
=
false
;
}
...
...
@@ -218,7 +226,7 @@ export default {
margin
:
80px
20px
0
;
padding
:
0
20px
;
background
:
#fff
;
.message-conten
t
{
#scroll-se
t
{
overflow
:
scroll
;
}
.split-line
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录