Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-consultation
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-admin-consultation
提交
8969437d
提交
8969437d
编写于
1月 20, 2021
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
关闭会话等
上级
ca3d46e3
变更
7
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
238 行增加
和
178 行删除
+238
-178
user-info.vue
src/components/IM/user-info.vue
+18
-1
common.js
src/store/im/common.js
+7
-1
getters.js
src/store/im/getters.js
+1
-0
filter.js
src/utils/filter.js
+200
-170
index.js
src/utils/index.js
+1
-0
index.scss
src/views/IM/current-session/index.scss
+3
-1
index.vue
src/views/IM/current-session/index.vue
+8
-5
未找到文件。
src/components/IM/user-info.vue
浏览文件 @
8969437d
...
...
@@ -64,6 +64,7 @@
</section>
</
template
>
<
script
>
import
{
mapGetters
,
mapMutations
}
from
'vuex'
;
let
clipboard
=
null
;
export
default
{
props
:
{
...
...
@@ -88,10 +89,24 @@ export default {
stickerIdList
:
[]
};
},
computed
:
{
...
mapGetters
([
'stickerCacheMap'
]),
},
watch
:
{
taskLogId
(
newVal
)
{
if
(
this
.
stickerCacheMap
[
newVal
])
{
this
.
stickerIdList
=
this
.
stickerCacheMap
[
newVal
];
}
else
{
this
.
stickerIdList
=
[];
}
}
},
created
()
{
this
.
getStickerList
();
},
methods
:
{
...
mapMutations
([
'SET_STICKER_CACHE_MAP'
]),
// 查询所有的问题分类
getStickerList
()
{
this
.
GET
(
`/im/sticker/list`
).
then
(
res
=>
{
...
...
@@ -109,8 +124,9 @@ export default {
// 保存用户问题分类
stickerSave
(
status
)
{
// 下拉框出现或者选项为空时,直接退出
// 下拉框出现
(status==true)
或者选项为空时,直接退出
if
(
status
||
!
this
.
stickerIdList
.
length
)
return
;
this
.
SET_STICKER_CACHE_MAP
({
key
:
this
.
taskLogId
,
idList
:
this
.
stickerIdList
});
let
params
=
{
stickerIdList
:
this
.
stickerIdList
,
taskLogId
:
this
.
taskLogId
,
...
...
@@ -135,6 +151,7 @@ export default {
// .footer:文档的CSS类名
text
:
function
(
trigger
)
{
console
.
log
(
_this
.
userInfo
.
mobilePhoneCopy
);
_this
.
$message
.
success
(
'复制成功'
);
return
_this
.
userInfo
.
mobilePhoneCopy
;
// 要粘贴的文案
}
});
...
...
src/store/im/common.js
浏览文件 @
8969437d
const
common
=
{
state
:
{
_token
:
''
,
// 问题归类
stickerCacheMap
:
{
}
},
mutations
:
{
CHANGE_TOKEN
:
(
state
,
data
)
=>
{
state
.
_token
=
data
},
SET_STICKER_CACHE_MAP
:
(
state
,
chcheMap
)
=>
{
state
.
stickerCacheMap
[
chcheMap
.
key
]
=
chcheMap
.
idList
;
},
},
actions
:
{
changeToken
({
commit
},
tokenData
)
{
...
...
src/store/im/getters.js
浏览文件 @
8969437d
const
getters
=
{
_token
:
state
=>
state
.
common
.
_token
,
stickerCacheMap
:
state
=>
state
.
common
.
stickerCacheMap
,
}
export
default
getters
src/utils/filter.js
浏览文件 @
8969437d
...
...
@@ -4,62 +4,62 @@ const vueFilter = {
return
new
Date
(
value
).
format
(
"yyyy-MM-dd hh:mm:ss"
);
},
liveFilter
:
(
value
)
=>
{
if
(
value
.
liveStatus
==
1
)
{
if
(
value
.
liveStatus
==
1
)
{
return
'未开始'
}
else
if
(
value
.
liveStatus
==
5
)
{
}
else
if
(
value
.
liveStatus
==
5
)
{
return
'直播中'
}
else
if
(
value
.
liveStatus
==
10
&&
value
.
lookBackStatus
==
2
)
{
}
else
if
(
value
.
liveStatus
==
10
&&
value
.
lookBackStatus
==
2
)
{
return
'已结束(不可回看)'
}
else
if
(
value
.
liveStatus
==
10
&&
value
.
lookBackStatus
==
1
)
{
}
else
if
(
value
.
liveStatus
==
10
&&
value
.
lookBackStatus
==
1
)
{
return
'已结束(可回看)'
}
},
liveStatusFilter
:
(
value
)
=>
{
if
(
value
==
1
)
return
"隐藏"
if
(
value
==
1
)
return
"隐藏"
else
return
"发布"
},
liveTeacherType
:
(
value
)
=>
{
let
doctorName
=
[]
if
(
value
.
length
>
3
)
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
if
(
value
.
length
>
3
)
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
doctorName
.
push
(
value
[
i
].
doctorName
)
}
return
doctorName
.
join
(
"、"
)
+
'...'
}
else
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
}
else
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
doctorName
.
push
(
value
[
i
].
doctorName
)
}
return
doctorName
.
join
(
"、"
)
}
},
controlType
:
(
value
)
=>
{
if
(
value
==
1
)
{
if
(
value
==
1
)
{
return
'分页1'
}
else
if
(
value
==
2
)
{
}
else
if
(
value
==
2
)
{
return
'分页2'
}
else
if
(
value
==
3
)
{
}
else
if
(
value
==
3
)
{
return
'图片1'
}
else
if
(
value
==
4
)
{
}
else
if
(
value
==
4
)
{
return
'图片2'
}
else
if
(
value
==
6
)
{
}
else
if
(
value
==
6
)
{
return
'视频'
}
},
tabControlType
:
(
value
)
=>
{
if
(
value
==
3
)
{
if
(
value
==
3
)
{
return
'图片1'
}
else
if
(
value
==
4
)
{
}
else
if
(
value
==
4
)
{
return
'图片2'
}
else
if
(
value
==
6
)
{
}
else
if
(
value
==
6
)
{
return
'视频'
}
},
refreshType
:
(
value
)
=>
{
if
(
value
==
1
)
return
"支持"
if
(
value
==
1
)
return
"支持"
else
return
"不支持"
},
moudleType
:
(
value
)
=>
{
if
(
value
==
1
)
return
"未激活"
if
(
value
==
1
)
return
"未激活"
else
return
"激活"
},
dateFilter
:
(
value
)
=>
{
...
...
@@ -67,110 +67,140 @@ const vueFilter = {
return
new
Date
(
value
).
format
(
"yyyy-MM-dd hh:mm"
);
},
appColumnStatusFilter
:
(
value
)
=>
{
if
(
value
==
1
)
return
"未提交"
else
if
(
value
==
4
)
return
"已提交"
if
(
value
==
1
)
return
"未提交"
else
if
(
value
==
4
)
return
"已提交"
},
statusFilter
:
(
value
)
=>
{
if
(
value
==
1
)
return
"已创建"
else
if
(
value
==
5
)
return
"已发布"
if
(
value
==
1
)
return
"已创建"
else
if
(
value
==
5
)
return
"已发布"
else
return
"已下架"
},
linkTypeFilter
:
(
value
)
=>
{
// 跳转类型
if
(
value
==
1
)
return
'链接'
else
if
(
value
==
4
)
return
'模块'
if
(
value
==
1
)
return
'链接'
else
if
(
value
==
4
)
return
'模块'
else
return
'无跳转'
},
teacherStatusFilter
:
(
value
)
=>
{
if
(
value
==
1
)
return
"已下架"
if
(
value
==
1
)
return
"已下架"
else
return
"已发布"
},
moduleTypeFilter
:
(
value
,
data
)
=>
{
// 模块类型
for
(
let
key
in
data
)
{
if
(
value
==
key
)
{
moduleTypeFilter
:
(
value
,
data
)
=>
{
// 模块类型
for
(
let
key
in
data
)
{
if
(
value
==
key
)
{
return
data
[
key
]
}
}
},
contentCreatedType
:
(
value
,
data
)
=>
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
contentCreatedType
:
(
value
,
data
)
=>
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
return
data
[
i
].
name
}
}
},
contentModifiedType
:
(
value
,
data
)
=>
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
contentModifiedType
:
(
value
,
data
)
=>
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
return
data
[
i
].
name
}
}
},
columnPositionType
:
(
value
,
data
)
=>
{
// 位置
for
(
let
key
in
data
)
{
if
(
value
==
key
)
{
columnPositionType
:
(
value
,
data
)
=>
{
// 位置
for
(
let
key
in
data
)
{
if
(
value
==
key
)
{
return
data
[
key
]
}
}
},
// 项目组件
statusFileter
:
(
value
)
=>
{
if
(
value
==
1
)
{
if
(
value
==
1
)
{
return
'草稿'
}
else
if
(
value
==
2
)
{
}
else
if
(
value
==
2
)
{
return
'未启用'
}
else
if
(
value
==
3
)
{
}
else
if
(
value
==
3
)
{
return
'已启用'
}
else
{
}
else
{
return
'已禁用'
}
},
//项目管理
statusProject
:
(
value
)
=>
{
if
(
value
==
1
)
{
if
(
value
==
1
)
{
return
'草稿'
}
else
if
(
value
==
2
)
{
}
else
if
(
value
==
2
)
{
return
'未上架'
}
else
if
(
value
==
3
)
{
}
else
if
(
value
==
3
)
{
return
'审批中'
}
else
if
(
value
==
4
)
{
}
else
if
(
value
==
4
)
{
return
'已上架'
}
else
if
(
value
==
5
)
{
}
else
if
(
value
==
5
)
{
return
'已下架'
}
else
{
}
else
{
return
'已拒绝'
}
},
projeceRoleType
:
(
value
)
=>
{
if
(
value
==
"L1"
)
{
if
(
value
==
"L1"
)
{
return
'内部管理员'
}
else
if
(
value
==
"L2"
)
{
}
else
if
(
value
==
"L2"
)
{
return
'项目负责人'
}
else
if
(
value
==
"L3"
)
{
}
else
if
(
value
==
"L3"
)
{
return
'次级负责人'
}
else
if
(
value
==
"L4"
)
{
}
else
if
(
value
==
"L4"
)
{
return
'普通用户'
}
},
// 问卷
questionStatus
:
(
value
)
=>
{
if
(
value
==
1
)
{
if
(
value
==
1
)
{
return
'下线'
}
else
{
}
else
{
return
'上线'
}
},
modifyType
:
(
value
,
data
)
=>
{
modifyType
:
(
value
,
data
)
=>
{
let
userName
=
''
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
value
==
data
[
i
].
id
)
{
userName
=
data
[
i
].
userName
break
}
else
{
}
else
{
userName
=
''
}
}
return
userName
},
// 时间处理
timeFormat
:
(
value
)
=>
{
let
cTime
=
new
Date
().
getTime
();
// var $time = document.getElementById("share-time");
// var date = $time.innerHTML.trim();
var
tt
=
new
Date
(
parseInt
(
value
));
var
days
=
parseInt
((
cTime
-
value
)
/
86400000
);
var
today
=
new
Date
().
getDate
();
var
year
=
tt
.
getFullYear
();
var
mouth
=
tt
.
getMonth
()
+
1
;
var
day
=
tt
.
getDate
();
var
time
=
tt
.
getHours
()
<
10
?
"0"
+
tt
.
getHours
()
:
tt
.
getHours
();
var
min
=
tt
.
getMinutes
()
<
10
?
"0"
+
tt
.
getMinutes
()
:
tt
.
getMinutes
();
var
result
,
offset
;
offset
=
Math
.
abs
(
today
-
day
);
if
(
days
<
4
&&
offset
<
4
)
{
if
(
offset
===
0
)
{
result
=
"今天"
+
time
+
":"
+
min
;
}
else
if
(
offset
===
1
)
{
result
=
"昨天"
+
time
+
":"
+
min
;
}
else
if
(
offset
===
2
)
{
result
=
"前天"
+
time
+
":"
+
min
;
}
}
else
{
result
=
year
+
"-"
+
mouth
+
"-"
+
day
+
" "
+
time
+
":"
+
min
;
}
// $time.innerHTML = result;
return
result
;
}
}
export
default
vueFilter
\ No newline at end of file
src/utils/index.js
浏览文件 @
8969437d
...
...
@@ -188,3 +188,4 @@ export function getPhomeDemain() {
return
getConfigByEnvType
(
'phomeDemain'
)
}
src/views/IM/current-session/index.scss
浏览文件 @
8969437d
...
...
@@ -194,9 +194,10 @@
color
:
#2f86f6
;
}
&
>
.mid-pdf
{
max-
width
:
260px
;
width
:
260px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
text-align
:
left
;
padding
:
10px
15px
;
background
:
#f0f1f2
;
...
...
@@ -207,6 +208,7 @@
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
margin-right
:
10px
;
.name
{
font-size
:
13px
;
color
:
#333333
;
...
...
src/views/IM/current-session/index.vue
浏览文件 @
8969437d
...
...
@@ -22,7 +22,7 @@
<div
class=
"desc"
>
<div
class=
"top"
>
<span
class=
"name"
>
{{
session
.
toName
}}
</span>
<span
class=
"time small"
>
{{
session
.
lastMsgTime
}}
</span>
<span
class=
"time small"
>
{{
session
.
lastMsgTime
|
timeFormat
}}
</span>
</div>
<div
class=
"bottom"
>
<span>
{{
session
.
text
}}
</span>
...
...
@@ -62,7 +62,7 @@
<img
:src=
"item.avatarImg"
alt
/>
</div>
<div
class=
"msg-item-detail"
>
<span
class=
"mid-time"
>
{{
item
.
timestamp
}}
</span>
<span
class=
"mid-time"
>
{{
item
.
timestamp
|
timeFormat
}}
</span>
<div
v-if=
"item.showType == 1"
class=
"mid-text-wrapper"
style=
"max-width: 520px;"
>
<img
v-show=
"item.sendFlag"
src=
"../../../assets/image/IM/icon-no-send.png"
alt
/>
<div
class=
"mid-text"
>
{{
item
.
text
}}
</div>
...
...
@@ -201,8 +201,8 @@ export default {
historyTimestamp
:
0
,
realTimestamp
:
0
,
doctorInfo
:
{
name
:
"
杨Song
"
,
mobilePhone
:
"
138****7261
"
,
name
:
""
,
mobilePhone
:
""
,
isShowCopyBtn
:
true
},
containerHeight
:
CONTAINER_HEIGHT
,
...
...
@@ -594,11 +594,14 @@ export default {
// 关闭一个任务
closeOneTask
(
session
)
{
let
params
=
{
taskLogId
:
session
.
i
d
taskLogId
:
session
.
taskLogI
d
};
this
.
POST
(
`/im/session/kf/closeOneTask`
,
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
console
.
log
(
"in closeOneTask"
,
res
);
if
(
res
.
data
==
1
)
{
this
.
getSessionList
();
}
}
else
{
this
.
$message
({
message
:
res
.
message
,
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录