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
提交
345f7ea8
提交
345f7ea8
编写于
1月 19, 2021
作者:
huangwensu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
消息查询接口联调
上级
dad4c59e
变更
3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
267 行增加
和
606 行删除
+267
-606
utils.js
src/utils/utils.js
+39
-0
detail.vue
src/views/IM/search-message/detail.vue
+167
-531
list.vue
src/views/IM/search-message/list.vue
+61
-75
未找到文件。
src/utils/utils.js
浏览文件 @
345f7ea8
...
@@ -780,3 +780,42 @@ export const setOptionLabel = (self,selfModel,selfEId,selfEName,list,listEId,lis
...
@@ -780,3 +780,42 @@ export const setOptionLabel = (self,selfModel,selfEId,selfEName,list,listEId,lis
}
}
return
;
return
;
};
};
// 将文件大小B转为MB
export
const
betaHandle
=
(
limit
)
=>
{
var
size
=
""
;
if
(
limit
<
0.1
*
1024
){
//小于0.1KB,则转化成B
size
=
limit
.
toFixed
(
2
)
+
"B"
}
else
if
(
limit
<
0.1
*
1024
*
1024
){
//小于0.1MB,则转化成KB
size
=
(
limit
/
1024
).
toFixed
(
2
)
+
"KB"
}
else
if
(
limit
<
0.1
*
1024
*
1024
*
1024
){
//小于0.1GB,则转化成MB
size
=
(
limit
/
(
1024
*
1024
)).
toFixed
(
2
)
+
"MB"
}
else
{
//其他转化成GB
size
=
(
limit
/
(
1024
*
1024
*
1024
)).
toFixed
(
2
)
+
"GB"
}
var
sizeStr
=
size
+
""
;
//转成字符串
var
index
=
sizeStr
.
indexOf
(
"."
);
//获取小数点处的索引
var
dou
=
sizeStr
.
substr
(
index
+
1
,
2
)
//获取小数点后两位的值
if
(
dou
==
"00"
){
//判断后两位是否为00,如果是则删除00
return
sizeStr
.
substring
(
0
,
index
)
+
sizeStr
.
substr
(
index
+
3
,
2
)
}
return
size
;
}
//转换年月日方法
export
const
timeHandle
=
(
str
)
=>
{
let
date
=
new
Date
(
str
*
1
);
let
Y
=
date
.
getFullYear
()
+
'-'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'0'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'-'
;
let
D
=
change
(
date
.
getDate
())
+
' '
;
let
h
=
change
(
date
.
getHours
())
+
':'
;
let
m
=
change
(
date
.
getMinutes
());
return
Y
+
M
+
D
+
h
+
m
}
//补0操作
const
change
=
(
num
)
=>
{
if
(
parseInt
(
num
)
<
10
){
num
=
'0'
+
num
;
}
return
num
;
}
\ No newline at end of file
src/views/IM/search-message/detail.vue
浏览文件 @
345f7ea8
<
template
>
<
template
>
<div
class=
"
add-manager-wrap
"
>
<div
class=
"
search-msg-detail
"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"add-content screenSet"
id=
"screenSet"
>
<div
class=
"detail-content screenSet"
id=
"screenSet"
>
<div
class=
"discuss-opt"
>
<div
id=
"msg-container"
class=
"msg-container"
v-for=
"(item, index) in detailData"
:key=
"index"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
>
<div
class=
"msg-item-img"
>
<el-form-item
label=
"讨论主题"
required
>
<img
v-if=
"item.fromAccId == picakfAccId"
src=
"../../../assets/image/IM/kf-avatar.png"
alt
/>
<el-col
:span=
"8"
>
<img
v-else
:src=
"userAvatar"
/>
<el-input
v-model=
"form.subject"
size=
"mini"
type=
"textarea"
:maxLength=
"maxTopic"
></el-input>
</div>
</el-col>
<div
class=
"msg-content"
>
<div
class=
"info"
>
</el-form-item>
<span
v-if=
"item.fromAccId == picakfAccId"
>
客服
</span>
<el-form-item
label=
"分类"
required
>
<span
v-else
>
{{
userName
}}
</span>
<el-col
:span=
"8"
>
<span
class=
"mid-time"
>
{{
timeChange
(
item
.
timestamp
)
}}
</span>
<el-select
size=
"mini"
v-model=
"form.deriverName"
placeholder=
"请选择"
>
</div>
<el-option
<div
v-if=
"item.type == 'TEXT'"
class=
"text-content"
>
v-for=
"item in derivers"
<div>
{{
item
.
content
}}
</div>
:key=
"item.value"
</div>
:label=
"item.label"
<div
v-if=
"item.type == 'PICTURE'"
class=
"img-content"
v-viewer
>
:value=
"item.value"
>
<img
:src=
"item.url"
/>
</el-option>
</div>
</el-select>
<div
v-if=
"item.type == 'CUSTOM'"
>
</el-col>
<div
v-if=
"typeChange(item.content).bizType == 18"
class=
"file-content"
>
<div
class=
"file-con"
@
click=
"downPDF(typeChange(item.content).url)"
>
</el-form-item>
<div
class=
"file-left"
>
<span
class=
"name"
>
{{
typeChange
(
item
.
content
).
name
}}
</span>
<el-form-item
label=
"内容发布控制"
>
<span
class=
"size"
>
{{
fileSizeChange
(
typeChange
(
item
.
content
).
size
)
}}
</span>
<div>
</div>
<span
class=
"label-name"
>
话题
</span>
<div
class=
"file-right"
>
<el-radio
v-model=
"form.ht"
label=
"1"
>
允许
</el-radio>
<img
src=
"../../../assets/image/IM/icon-pdf.png"
alt
/>
<el-radio
v-model=
"form.ht"
label=
"0"
>
不允许
</el-radio>
</div>
</div>
</div>
<!--
<div>
<span
class=
"label-name"
>
评论
</span>
<el-radio
v-model=
"form.pl"
label=
"1"
>
允许
</el-radio>
<el-radio
v-model=
"form.pl"
label=
"0"
>
不允许
</el-radio>
</div>
-->
<div>
<span
class=
"label-name"
>
回复
</span>
<el-radio
v-model=
"form.displayReplyBtn"
:label=
"1"
>
允许
</el-radio>
<el-radio
v-model=
"form.displayReplyBtn"
:label=
"2"
>
不允许
</el-radio>
<span
class=
"label-name"
>
前端展示数量:
</span>
<el-input-number
v-model=
"form.replyShowNum"
controls-position=
"right"
:min=
"0"
></el-input-number>
<el-checkbox
v-model=
"form.replyOfficial"
style=
"margin-left: 20px"
>
置顶官方回复
</el-checkbox>
</div>
<div>
<span
class=
"label-name"
>
点赞
</span>
<el-radio
v-model=
"form.displayLikeBtn"
:label=
"1"
>
允许
</el-radio>
<el-radio
v-model=
"form.displayLikeBtn"
:label=
"2"
>
不允许
</el-radio>
</div>
</el-form-item>
<el-form-item
label=
"审核规则"
required
>
<div>
<span
class=
"label-name"
>
文字
</span>
<el-radio
v-model=
"form.wz"
label=
"2"
disabled
>
先审后显示
</el-radio>
<el-radio
v-model=
"form.wz"
label=
"4"
disabled
>
后审先显示
</el-radio>
</div>
<div>
<span
class=
"label-name"
>
图片
</span>
<el-radio
v-model=
"form.tp"
label=
"8"
disabled
>
先审后显示
</el-radio>
<el-radio
v-model=
"form.tp"
label=
"16"
disabled
>
后审先显示
</el-radio>
</div>
</el-form-item>
<el-form-item
label=
"开放客群"
required
>
<el-checkbox
label=
"注册用户"
v-model=
"form.isZC"
></el-checkbox>
<el-checkbox
label=
"认证用户"
v-model=
"form.isRZ"
></el-checkbox>
</el-form-item>
<el-form-item
label=
"发布按钮文案"
required
>
<el-row>
<el-col
:span=
"6"
>
<div>
<span
class=
"label-name label-f"
>
话题发布
</span>
<el-input
v-model=
"form.topicBtnText"
size=
"mini"
style=
"width: 100px;"
:maxLength=
"maxBtn"
></el-input>
</div>
</el-col>
<el-col
:span=
"10"
>
<div>
<span
class=
"label-name label-w"
>
输入界面title文案
</span>
<el-input
v-model=
"form.inputTitle"
size=
"mini"
style=
"width: 100px;"
:maxLength=
"5"
></el-input>
</div>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"6"
>
<div>
<span
class=
"label-name label-f"
>
评论发布
</span>
<el-input
v-model=
"form.commentBtnText"
size=
"mini"
style=
"width: 100px;"
:maxLength=
"maxBtn"
></el-input>
</div>
</el-col>
<el-col
:span=
"12"
>
<div>
<span
class=
"label-name label-w"
>
输入界面提示文案
</span>
<el-input
v-model=
"form.inputReminder"
size=
"mini"
style=
"width: 260px;"
:maxLength=
"15"
></el-input>
</div>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"底Bar显示控制"
>
<el-radio
v-model=
"form.displayBar"
:label=
"1"
>
评论+点赞
</el-radio>
<el-radio
v-model=
"form.displayBar"
:label=
"2"
>
仅评论
</el-radio>
<el-radio
v-model=
"form.displayBar"
:label=
"3"
>
无
</el-radio>
</el-form-item>
<el-form-item
label=
"列表排序控制"
>
<el-radio
v-model=
"form.displayListSort"
:label=
"1"
>
综合排序
</el-radio>
<el-radio
v-model=
"form.displayListSort"
:label=
"2"
>
按最新发布时间
</el-radio>
<el-radio
v-model=
"form.displayListSort"
:label=
"3"
>
按最高点赞数
</el-radio>
</el-form-item>
<el-form-item
label=
"话题列表页标题文案"
label-width=
"140px"
>
<div>
<el-input
v-model=
"form.commentListDetails"
size=
"mini"
style=
"width: 100px;"
:maxLength=
"maxBtn"
></el-input>
</div>
</div>
</el-form-item>
<div
v-if=
"typeChange(item.content).bizType == 19"
class=
"link-content"
>
<el-form-item
label=
"话题详情页话题文案"
label-width=
"140px"
>
<div
class=
"link-text"
>
{{
typeChange
(
item
.
content
).
name
}}
</div>
<div>
<el-input
v-model=
"form.commentDetails"
size=
"mini"
style=
"width: 100px;"
:maxLength=
"maxBtn"
></el-input>
</div>
</div>
</el-form-item>
</div>
<el-form-item
label=
"是否仅显示评论区"
label-width=
"110px"
>
<el-radio
v-model=
"form.displayOnlyComment"
:label=
"1"
>
是
</el-radio>
<el-radio
v-model=
"form.displayOnlyComment"
:label=
"2"
>
否
</el-radio>
</el-form-item>
<el-form-item
label=
"备注"
>
<el-col
:span=
"8"
>
<el-input
v-model=
"form.remark"
size=
"mini"
type=
"textarea"
:maxLength=
"maxTopic"
></el-input>
</el-col>
</el-form-item>
</el-form>
<div
class=
"btn-box pdrt20"
>
<el-button
type=
"primary"
size=
"small"
class=
"button-green"
@
click=
"save"
>
保存
</el-button>
<el-button
size=
"small"
class=
"button-white"
@
click=
"goBack"
>
返回
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
{
doUpload
,
getFilePath
}
from
"@/utils/qiniu-util"
;
import
{
doUpload
,
getFilePath
}
from
"@/utils/qiniu-util"
;
import
{
returnData
}
from
"../../mock"
;
import
{
openLoading
,
closeLoading
,
betaHandle
,
timeHandle
}
from
"@/utils/utils"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
getPicaKFAccid
}
from
"@/utils"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
*
as
commonUtil
from
"@/utils/utils"
;
import
*
as
commonUtil
from
"@/utils/utils"
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
...
@@ -148,416 +53,147 @@ export default {
...
@@ -148,416 +53,147 @@ export default {
BreadCrumb
BreadCrumb
},
},
data
()
{
data
()
{
return
{
return
{
curmbFirst
:
'消息查询'
,
curmbFirst
:
'消息查询'
,
curmbSecond
:
'消息详情'
,
curmbSecond
:
'消息详情'
,
maxBtn
:
4
,
picakfAccId
:
''
,
form
:{
lastMsgTime
:
''
,
subject
:
''
,
doctorAccId
:
''
,
ht
:
'1'
,
detailData
:
{},
wz
:
'4'
,
userAvatar
:
''
,
tp
:
'16'
,
userName
:
''
,
user
:
'1'
,
scroll
:
true
,
isZC
:
false
,
};
isRZ
:
false
,
},
zc
:
4
,
created
()
{
rz
:
8
,
this
.
lastMsgTime
=
this
.
$route
.
query
.
msgTimestamp
;
topicBtnText
:
'发布话题'
,
this
.
doctorAccId
=
this
.
$route
.
query
.
doctorAccId
;
commentBtnText
:
'发布评论'
,
this
.
userAvatar
=
this
.
$route
.
query
.
avatarImageUrl
;
commentDetails
:
'全部评论'
,
this
.
userName
=
this
.
$route
.
query
.
userName
;
commentListDetails
:
'热门话题'
,
},
displayTopicBtn
:
true
,
//是否显示发布话题按钮
mounted
()
{
// displayCommentBtn:true,//是否显示评论按钮
window
.
addEventListener
(
'scroll'
,
this
.
handleScroll
)
displayReplyBtn
:
1
,
//是否显示回复按钮
this
.
picakfAccId
=
getPicaKFAccid
();
displayLikeBtn
:
1
,
//是否显示点赞按钮
this
.
getDeatailData
(
1
);
remark
:
''
,
},
deriverName
:
'积木'
,
methods
:
{
replyShowNum
:
5
,
handleScroll
()
{
replyOfficial
:
false
,
inputTitle
:
'话题发布'
,
inputReminder
:
''
,
displayBar
:
1
,
displayListSort
:
1
,
displayOnlyComment
:
2
},
maxTopic
:
60
,
id
:
0
,
};
},
computed
:
{
...
mapGetters
([
"_token"
])
},
created
()
{
this
.
id
=
this
.
$route
.
query
.
id
if
(
this
.
id
){
this
.
curmbSecond
=
'编辑'
this
.
getDissById
(
this
.
id
)
}
},
// 挂载到Dom完成时
mounted
:
function
()
{
},
methods
:
{
//返回
goBack
(){
this
.
$router
.
back
(
-
1
)
},
showError
(
str
){
this
.
$message
({
message
:
str
,
type
:
'warning'
});
},
//保存讨论
save
(){
let
visibility
=
0
,
auditRules
=
0
,
_this
=
this
;
if
(
this
.
form
.
isRZ
){
visibility
=
8
}
if
(
this
.
form
.
isZC
){
visibility
=
4
}
if
(
this
.
form
.
isRZ
&&
this
.
form
.
isZC
){
visibility
=
12
}
if
(
this
.
form
.
subject
==
''
){
console
.
log
(
this
.
form
.
subject
)
this
.
showError
(
'请输入讨论主题'
)
return
;
}
if
(
visibility
==
0
){
this
.
showError
(
'请选择开发客群'
);
return
;
}
if
(
this
.
form
.
topicBtnText
==
''
){
this
.
showError
(
'请输入话题发布按钮文字'
);
return
;
}
if
(
this
.
form
.
commentBtnText
==
''
){
this
.
showError
(
'请输入评论发布按钮文字'
);
return
;
}
if
(
this
.
form
.
inputTitle
==
''
){
this
.
showError
(
'请输入输入界面title文案'
);
return
;
}
auditRules
=
Number
(
this
.
form
.
wz
)
+
Number
(
this
.
form
.
tp
)
let
parm
=
{
"auditrules"
:
auditRules
,
"commentbtntext"
:
this
.
form
.
commentBtnText
,
"commentDetails"
:
this
.
form
.
commentDetails
,
'commentListDetails'
:
this
.
form
.
commentListDetails
,
//"deleteflag": 0,
//"derivedid": 0,
"category"
:
this
.
form
.
deriverName
,
// "displaycommentbtn": this.form.pl == 1 ? true : false,
"displaytopicbtn"
:
this
.
form
.
ht
==
1
?
true
:
false
,
"displayReplyBtn"
:
this
.
form
.
displayReplyBtn
,
"displayLikeBtn"
:
this
.
form
.
displayLikeBtn
,
"replyShowNum"
:
this
.
form
.
replyShowNum
,
"replyOfficial"
:
this
.
form
.
replyOfficial
?
1
:
2
,
"inputTitle"
:
this
.
form
.
inputTitle
,
"inputReminder"
:
this
.
form
.
inputReminder
,
"displayBar"
:
this
.
form
.
displayBar
,
"displayListSort"
:
this
.
form
.
displayListSort
,
"displayOnlyComment"
:
this
.
form
.
displayOnlyComment
,
//"id": 0,
"subject"
:
this
.
form
.
subject
,
"topicbtntext"
:
_this
.
form
.
topicBtnText
,
"visibility"
:
visibility
,
"remark"
:
this
.
form
.
remark
}
if
(
this
.
id
){
parm
.
id
=
Number
(
this
.
id
)
this
.
PUT
(
'/interaction/discuss/'
,
parm
).
then
((
res
)
=>
{
// closeLoading(vm)
if
(
res
.
code
==
'000000'
)
{
this
.
$message
({
message
:
'保存成功!'
,
type
:
'success'
});
setTimeout
(()
=>
{
this
.
goBack
()
},
1500
)
}
})
}
else
{
this
.
POST
(
'/interaction/discuss/'
,
parm
).
then
((
res
)
=>
{
// closeLoading(vm)
if
(
res
.
code
==
'000000'
)
{
this
.
$message
({
message
:
'保存成功!'
,
type
:
'success'
});
setTimeout
(()
=>
{
this
.
goBack
()
},
1500
)
}
})
}
},
},
// 获取详情数据以及下拉加载历史数据
getDeatailData
(
param
)
{
//获取讨论组件详细
let
url
=
'/im/msg/forward'
;
getDissById
(
id
){
let
req
=
{
doctorAccId
:
this
.
doctorAccId
,
this
.
GET
(
'/interaction/discuss/'
+
id
).
then
((
res
)
=>
{
includeFlag
:
param
,
// 第一次加载是1 上翻历史是0
// closeLoading(vm)
lastMsgTimestamp
:
this
.
lastMsgTime
,
if
(
res
.
code
==
'000000'
)
{
limit
:
20
,
patientAccId
:
this
.
picakfAccId
,
this
.
id
=
res
.
data
.
id
unionId
:
""
this
.
form
.
subject
=
res
.
data
.
subject
}
this
.
form
.
deriverName
=
res
.
data
.
category
this
.
POST
(
url
,
req
).
then
((
res
)
=>
{
// 发布按钮文案
if
(
res
.
code
==
'000000'
)
{
this
.
form
.
topicBtnText
=
res
.
data
.
topicbtntext
==
null
?
''
:
res
.
data
.
topicbtntext
this
.
detailData
=
res
.
data
;
this
.
form
.
commentBtnText
=
res
.
data
.
commentbtntext
}
this
.
form
.
inputTitle
=
res
.
data
.
inputTitle
||
'话题发布'
this
.
form
.
inputReminder
=
res
.
data
.
inputReminder
// title文案
this
.
form
.
commentDetails
=
res
.
data
.
commentDetails
this
.
form
.
commentListDetails
=
res
.
data
.
commentListDetails
// 备注
this
.
form
.
remark
=
res
.
data
.
remark
//开放客群
if
(
res
.
data
.
visibility
==
14
||
res
.
data
.
visibility
==
12
){
this
.
form
.
isRZ
=
true
this
.
form
.
isZC
=
true
}
else
if
(
res
.
data
.
visibility
==
6
){
this
.
form
.
isRZ
=
false
this
.
form
.
isZC
=
true
}
else
if
(
res
.
data
.
visibility
==
10
){
this
.
form
.
isRZ
=
true
this
.
form
.
isZC
=
false
}
//审核规则
if
(
res
.
data
.
auditrules
==
18
){
this
.
form
.
wz
=
"2"
this
.
form
.
tp
=
"16"
}
else
if
(
res
.
data
.
auditrules
==
10
){
this
.
form
.
wz
=
"2"
this
.
form
.
tp
=
"8"
}
else
if
(
res
.
data
.
auditrules
==
12
){
this
.
form
.
wz
=
"4"
this
.
form
.
tp
=
"8"
}
else
if
(
res
.
data
.
auditrules
==
20
){
this
.
form
.
wz
=
"4"
this
.
form
.
tp
=
"16"
}
//内容发布控制
this
.
form
.
ht
=
res
.
data
.
displaytopicbtn
?
"1"
:
"0"
// this.form.pl = res.data.displaycommentbtn ? "1" : "0"
this
.
form
.
displayReplyBtn
=
res
.
data
.
displayReplyBtn
this
.
form
.
displayLikeBtn
=
res
.
data
.
displayLikeBtn
this
.
form
.
replyShowNum
=
res
.
data
.
replyShowNum
this
.
form
.
replyOfficial
=
res
.
data
.
replyOfficial
==
1
?
true
:
false
// 底部bar 列表排序 显示评论区
this
.
form
.
displayBar
=
res
.
data
.
displayBar
this
.
form
.
displayListSort
=
res
.
data
.
displayListSort
this
.
form
.
displayOnlyComment
=
res
.
data
.
displayOnlyComment
}
})
})
},
timeChange
(
data
)
{
return
timeHandle
(
data
)
},
typeChange
(
data
)
{
let
obj
=
JSON
.
parse
(
data
);
return
obj
;
},
fileSizeChange
(
val
)
{
return
betaHandle
(
val
)
},
// 打开PDF
downPDF
(
url
)
{
window
.
location
.
href
=
url
}
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.discuss-opt
{
.search-msg-detail
{
padding
:
20px
;
.detail-content
{
.btn-box
{
padding
:
0
20px
;
text-align
:
center
background
:
#fff
;
}
.msg-container
{
.label-name
{
display
:
flex
;
font-size
:
12px
;
flex-direction
:
row
;
color
:
#606266
;
padding-top
:
12px
;
padding-right
:
10px
;
.msg-item-img
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
margin-right
:
8px
;
}
&
>
img
{
.label-f
{
width
:
100%
;
width
:
80px
;
height
:
100%
;
}
border-radius
:
22px
;
.label-w
{
}
width
:
110px
}
}
.msg-content
{
.pdrt20
{
display
:
flex
;
padding
:
20px
0
;
flex-direction
:
column
;
}
width
:
100%
;
.el-radio__label
,
.el-checkbox__label
{
text-align
:
left
;
font-size
:
12px
;
font-size
:
13px
;
.text-content
{
padding
:
16px
0
;
color
:
#333333
;
border-bottom
:
1px
solid
#F0F1F2
;
}
.img-content
{
padding
:
16px
0
;
border-bottom
:
1px
solid
#F0F1F2
;
cursor
:
pointer
;
&
>
img
{
width
:
170px
;
height
:
108px
;
border-radius
:
8px
;
}
}
.file-content
{
padding
:
16px
0
;
border-bottom
:
1px
solid
#F0F1F2
;
.file-con
{
display
:
flex
;
flex-direction
:
row
;
max-width
:
260px
;
text-align
:
left
;
padding
:
10px
15px
;
background
:
#f0f1f2
;
border-radius
:
8px
;
cursor
:
pointer
;
.file-left
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
width
:
190px
;
.name
{
font-size
:
13px
;
color
:
#333333
;
}
.size
{
font-size
:
12px
;
color
:
#999999
;
}
}
.file-right
{
width
:
36px
;
height
:
44px
;
&
>
img
{
width
:
36px
;
height
:
100%
;
border-radius
:
3px
;
}
}
}
}
}
}
}
}
}
.add-manager-wrap
{
.add-content
{
background
:
#fff
;
}
.rim
{
border
:
1px
solid
#dddddd
;
}
.step-content
{
overflow
:
hidden
;
height
:
60px
;
margin-top
:
66px
;
padding-top
:
15px
;
border-bottom
:
1px
solid
#fff
;
.is-text
{
display
:
none
;
}
.el-steps--simple
{
background
:
#fff
;
}
.button-green
{
color
:
#ffffff
;
background
:
#449284
;
border-color
:
#bfdad5
;
border-radius
:
2px
;
}
.button-white
{
color
:
#606266
;
background
:
#ffffff
;
border-color
:
#ecedf1
;
border-radius
:
2px
;
}
.step-num
{
display
:
block
;
font-size
:
12px
;
border
:
2px
solid
#b8babe
;
border-radius
:
50%
;
width
:
25px
;
height
:
20px
;
line-height
:
15px
;
text-align
:
center
;
color
:
#b8babe
;
}
.is-finish
{
color
:
#c0c4cc
;
}
.on-step
{
color
:
#747476
;
border-color
:
#747476
;
}
}
.first-step
{
margin-top
:
20px
;
.bg-uploader
{
img
{
float
:
left
;
}
.bg-img
{
width
:
84px
;
height
:
100px
;
}
.bg-video
{
float
:
left
;
width
:
100px
;
height
:
100px
;
}
.limit-text
{
float
:
left
;
margin-left
:
10px
;
margin-top
:
-10px
;
p
{
font-size
:
12px
;
color
:
#999
;
}
}
}
.el-upload__tip
{
position
:
absolute
;
top
:
-6px
;
left
:
130px
;
}
.choose-button
{
background
:
#fff
;
color
:
#409eff
;
border
:
1px
solid
#409eff
;
}
}
.second-step
{
margin
:
10px
0
0
20px
;
//隐藏树展开
.table-empty
{
img
{
width
:
100px
;
}
p
{
margin-top
:
-50px
;
}
}
.el-tree-node__expand-icon
{
display
:
none
;
}
.el-table__header-wrapper
{
.el-checkbox__inner
{
//display: none;
//visibility: hidden;
}
}
.department
{
margin-top
:
20px
;
border
:
1px
solid
#dddddd
;
}
.
el-tabs__nav-wrap
:
:
after
{
display
:
none
;
}
.el-tabs__active-bar
{
display
:
none
;
}
#tab-first
,
#tab-second
,
#tab-third
{
padding-right
:
0px
;
}
#
tab-first
:
:
after
,
#tab
-
second
::
after
,
#tab
-
third
::
after
{
color
:
#c7cbd2
;
margin-left
:
20px
;
content
:
"•"
;
}
.el-tag
{
margin
:
0
10px
10px
0
;
border
:
1
.3px
solid
#48a8fe
;
color
:
#1e92fe
;
background-color
:
#e7f6fe
;
.el-icon-close
{
width
:
13px
;
height
:
13px
;
line-height
:
13px
;
font-size
:
12px
;
background-color
:
#0486fe
;
border-radius
:
50%
;
color
:
#d4edfe
;
}
}
}
.third-step
{
margin
:
30px
0
0px
30px
;
padding-bottom
:
30px
;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/IM/search-message/list.vue
浏览文件 @
345f7ea8
<
template
>
<
template
>
<div
class=
"message-list-wrap"
>
<div
class=
"message-list-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;margin-right:0px;"
>
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;margin-right:0px;"
>
<el-form
ref=
"serchForm"
inline
:model=
"searchParam"
label-width=
"15px"
style=
"width:100%;text-align:right;"
>
<el-form
ref=
"serchForm"
inline
:model=
"searchParam"
label-width=
"15px"
style=
"width:100%;text-align:right;"
>
<el-form-item
label=
""
>
<el-form-item
label=
""
>
<el-input
clearable
v-model=
"searchParam.
them
e"
size=
"mini"
placeholder=
"请输入用户电话"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
<el-input
clearable
v-model=
"searchParam.
userMobil
e"
size=
"mini"
placeholder=
"请输入用户电话"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
""
>
<el-form-item
label=
""
>
<el-input
clearable
v-model=
"searchParam.
n
ame"
size=
"mini"
placeholder=
"请输入用户名称"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
<el-input
clearable
v-model=
"searchParam.
userN
ame"
size=
"mini"
placeholder=
"请输入用户名称"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
""
>
<el-form-item
label=
""
>
<el-input
clearable
v-model=
"searchParam.
n
ame"
size=
"mini"
placeholder=
"请输入客服名"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
<el-input
clearable
v-model=
"searchParam.
adminN
ame"
size=
"mini"
placeholder=
"请输入客服名"
><el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"search()"
></el-button></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
""
style=
"position:relative;top:-8px;left:0;margin-bottom: 0px;"
>
<el-form-item
label=
""
style=
"position:relative;top:-8px;left:0;margin-bottom: 0px;"
>
<el-date-picker
v-model=
"searchParam.
nam
e"
size=
"mini"
type=
"date"
placeholder=
"请选择日期"
></el-date-picker>
<el-date-picker
v-model=
"searchParam.
chooseDat
e"
size=
"mini"
type=
"date"
placeholder=
"请选择日期"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</el-row>
</el-row>
<el-table
:data=
"tableData"
style=
"width: 100%"
v-loading=
"loading"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
v-loading=
"loading"
>
<el-table-column
prop=
"id"
label=
"用户名"
min-width=
"50"
align=
"center"
></el-table-column>
<el-table-column
prop=
"userName"
label=
"用户名"
min-width=
"50"
align=
"center"
></el-table-column>
<el-table-column
prop=
"subject"
label=
"对话次数"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"communicationNumber"
label=
"对话次数"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"category"
label=
"用户类型"
min-width=
"50"
align=
"center"
></el-table-column>
<el-table-column
label=
"用户类型"
min-width=
"50"
align=
"center"
>
<el-table-column
prop=
"remark"
label=
"认证状况"
min-width=
"100"
align=
"center"
></el-table-column>
<template
slot-scope=
"scope"
>
<el-table-column
prop=
"createdusername"
label=
"所属机构"
min-width=
"50"
align=
"center"
></el-table-column>
<span>
{{
scope
.
row
.
idType
|
typeFilter
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"certStatus"
label=
"认证状况"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"hospitalName"
label=
"所属机构"
min-width=
"50"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
fixed=
"right"
align=
"center"
min-width=
"100"
>
<el-table-column
label=
"操作"
fixed=
"right"
align=
"center"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row)"
>
查看详细
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row)"
>
查看详细
</el-button>
...
@@ -36,123 +39,106 @@
...
@@ -36,123 +39,106 @@
</div>
</div>
</div>
</div>
</el-table>
</el-table>
<!-- 分页 -->
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"searchParam.pageNo"
:page-sizes=
"[15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size=
"searchParam.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"totalRows"
>
</el-pagination>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
{
doUpload
,
getFilePath
}
from
"@/utils/qiniu-util"
;
import
{
doUpload
,
getFilePath
}
from
"@/utils/qiniu-util"
;
import
{
validateWord
}
from
"@/utils/validate.js"
;
import
{
validateWord
}
from
"@/utils/validate.js"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
*
as
commonUtil
from
"@/utils/utils"
;
import
*
as
commonUtil
from
"@/utils/utils"
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
components
:
{
BreadCrumb
},
data
()
{
data
()
{
return
{
return
{
curmbFirst
:
"云鹊客服"
,
curmbSecond
:
"消息查询"
,
searchParam
:
{
searchParam
:
{
the
me
:
""
,
adminNa
me
:
""
,
typ
e
:
""
,
chooseDat
e
:
""
,
nam
e
:
""
,
userMobil
e
:
""
,
status
:
""
,
userName
:
""
,
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
15
pageSize
:
15
},
},
category
:
[],
totalRows
:
0
,
categoryStatus
:
""
,
tableData
:
[],
tableData
:
[],
loading
:
false
,
loading
:
false
,
nextSessionId
:
""
};
};
},
},
computed
:
{},
computed
:
{},
filters
:
{
filters
:
{
filteFun
(
index
)
{
typeFilter
(
index
)
{
let
str
=
""
;
let
str
=
""
;
if
(
index
==
1
)
{
if
(
index
==
1
)
{
str
=
"
未发布
"
;
str
=
"
医生
"
;
}
else
if
(
index
==
2
)
{
}
else
if
(
index
==
2
)
{
str
=
"已发布"
;
str
=
"居民"
;
}
else
if
(
index
==
3
)
{
str
=
"已下线"
;
}
}
return
str
;
return
str
;
}
}
},
},
created
()
{
created
()
{
this
.
search
();
setTimeout
(()
=>
{
this
.
search
();
},
10000
);
},
},
// 挂载到Dom完成时
// 挂载到Dom完成时
mounted
:
function
()
{
mounted
()
{
commonUtil
.
resizeHeight
();
commonUtil
.
resizeHeight
();
this
.
searchMessage
();
},
},
methods
:
{
methods
:
{
// 列表查询
// 列表查询
search
()
{
searchMessage
()
{
//this.getData();
},
// 获取数据
getData
()
{
let
subject
=
0
,
status
=
0
,
name
=
0
;
this
.
loading
=
true
;
this
.
loading
=
true
;
let
cStatus
=
this
.
categoryStatus
?
this
.
categoryStatus
:
"0"
;
//'0'表示默认查所有的
let
url
=
`/im/system/message/list`
;
let
url
=
let
params
=
this
.
searchParam
;
"/interaction/discuss/"
+
this
.
GET
(
url
,
params
).
then
(
res
=>
{
cStatus
+
"/"
+
subject
+
"/"
+
name
+
"/"
+
status
+
"/"
+
this
.
searchParam
.
pageNo
+
"/"
+
this
.
searchParam
.
pageSize
;
this
.
GET
(
url
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
res
.
data
);
this
.
tableData
=
res
.
data
.
list
;
this
.
tableData
=
res
.
data
.
resp
.
discuss
||
[];
this
.
totalRows
=
res
.
data
.
total
;
this
.
nextSessionId
=
this
.
tableData
[
0
]
&&
this
.
tableData
[
0
].
id
;
console
.
log
(
"this.nextSessionId"
,
this
.
nextSessionId
);
if
(
res
.
data
.
typeList
&&
res
.
data
.
typeList
.
length
)
{
let
arr
=
[];
for
(
let
i
=
0
;
i
<
res
.
data
.
typeList
.
length
;
i
++
)
{
let
obj
=
{};
obj
.
label
=
res
.
data
.
typeList
[
i
];
obj
.
value
=
res
.
data
.
typeList
[
i
];
arr
.
push
(
obj
);
}
this
.
category
=
arr
;
}
}
}
});
});
},
},
// 查看消息详情
// 查看消息详情
edit
()
{
edit
(
row
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
`/current-session-list?nextSessionId=
${
this
.
nextSessionId
}
`
path
:
`/search-message-detail`
,
query
:
{
msgTimestamp
:
row
.
msgTimestamp
,
doctorAccId
:
row
.
accId
,
userName
:
row
.
userName
,
avatarImageUrl
:
row
.
avatarImageUrl
}
});
});
},
},
handleSizeChange
(
value
)
{
this
.
searchParam
.
pageSize
=
value
;
this
.
handleGoSearch
();
},
handleCurrentChange
(
value
)
{
this
.
searchParam
.
pageNo
=
value
;
this
.
handleGoSearch
();
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.message-list-wrap
{
.message-list-wrap
{
margin-top
:
-60px
;
.component-content
{
.component-content
{
padding
:
10px
;
padding
:
10px
;
background
:
#fff
;
background
:
#fff
;
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录