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
提交
a8a5af79
提交
a8a5af79
编写于
8月 02, 2021
作者:
张磊
浏览文件
操作
浏览文件
下载
差异文件
save
上级
34907647
b83f0ade
变更
12
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
230 行增加
和
105 行删除
+230
-105
package-lock.json
package-lock.json
+5
-0
package.json
package.json
+1
-0
App.vue
src/App.vue
+1
-1
consultation.vue
src/components/common/consultation.vue
+51
-9
diagnoseAdvice.vue
src/components/common/diagnoseAdvice.vue
+32
-16
diagnosis.vue
src/components/common/diagnosis.vue
+1
-1
inquirylist.vue
src/components/common/inquirylist.vue
+6
-5
index.js
src/store/mutations/index.js
+9
-0
state.js
src/store/state.js
+6
-1
administrators.vue
src/views/IM/diagnosis-admin/administrators.vue
+43
-33
workbench.vue
src/views/IM/diagnosis-admin/workbench.vue
+59
-37
slidebar.vue
src/views/layout/slidebar.vue
+16
-2
未找到文件。
package-lock.json
浏览文件 @
a8a5af79
...
...
@@ -8040,6 +8040,11 @@
}
}
},
"storejs"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"http://192.168.110.93:4873/storejs/-/storejs-1.1.0.tgz"
,
"integrity"
:
"sha1-9jvkPHR8FL46excBg5KTgJHWRnk="
},
"stream-browserify"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"http://192.168.110.93:4873/stream-browserify/-/stream-browserify-2.0.2.tgz"
,
...
...
package.json
浏览文件 @
a8a5af79
...
...
@@ -27,6 +27,7 @@
"
qiniu-js
"
:
"
^3.1.2
"
,
"
showdown
"
:
"
^1.6.4
"
,
"
socket.io-client
"
:
"
2.2.0
"
,
"
storejs
"
:
"
^1.1.0
"
,
"
vue
"
:
"
^2.1.0
"
,
"
vue-router
"
:
"
^2.1.1
"
,
"
vuex
"
:
"
^2.0.0
"
...
...
src/App.vue
浏览文件 @
a8a5af79
...
...
@@ -68,7 +68,7 @@ export default {
bindDragHeader
(
'.c-header'
,
'.chat-wrap'
);
},
1000
)
this
.
$store
.
dispatch
(
'socket/initSocket'
,{
url
:
'http://10.177.11.251:15202'
})
//
this.$store.dispatch( 'socket/initSocket',{url: 'http://10.177.11.251:15202'})
},
methods
:
{
...
...
src/components/common/consultation.vue
浏览文件 @
a8a5af79
<
template
>
<div
class=
"consultationlist"
>
<div
class=
"consultationlist"
style=
" user-select:none; "
>
<div
class=
"list"
>
<div
class=
"name"
>
刘思妙
</div>
<div
class=
"details"
>
<div
class=
"handle"
>
待处理
<span>
128
</span></div>
<div
class=
"name"
>
{{
operatorsItem
.
name
||
''
}}
</div>
<div
class=
"details"
@
click=
"goworkBench"
>
<div
class=
"handle"
>
待处理
:
<span>
暂无
</span></div>
<div
class=
"see"
>
<a
href=
"#"
>
查看详情
</a>
<i
class=
"el-icon-arrow-right"
></i>
...
...
@@ -12,19 +12,19 @@
</div>
<div
class=
"data"
>
<div>
<div
class=
"totallist"
>
3519
</div>
<div
class=
"totallist"
>
暂无
</div>
<div
class=
"statelist"
>
全部
</div>
</div>
<div>
<div
class=
"totallist"
>
3519
</div>
<div
class=
"totallist"
>
暂无
</div>
<div
class=
"statelist"
>
全部
</div>
</div>
<div>
<div
class=
"totallist"
>
3519
</div>
<div
class=
"totallist"
>
暂无
</div>
<div
class=
"statelist"
>
全部
</div>
</div>
<div>
<div
class=
"totallist"
>
3519
</div>
<div
class=
"totallist"
>
暂无
</div>
<div
class=
"statelist"
>
全部
</div>
</div>
</div>
...
...
@@ -32,7 +32,49 @@
</
template
>
<
script
>
export
default
{};
export
default
{
data
()
{
return
{
}
},
props
:{
operatorsItem
:{
type
:
Object
,
default
:{}
},
workbenchAdminDate
:
{
type
:
String
,
default
:
''
}
},
created
()
{
},
methods
:
{
goworkBench
()
{
const
p
=
{
dateTime
:
this
.
workbenchAdminDate
,
operateUserId
:
this
.
operatorsItem
.
id
,
pageNo
:
1
,
pageSize
:
6
,
returnStatus
:
1
};
this
.
$store
.
commit
(
'updateSoketQuest'
,
p
)
this
.
$router
.
push
({
path
:
'/workbench'
})
//
// this.POST('/diagnose/socket/condition/update', p).then(res=>{
// if(res.code == '000000'){
//
// }else{
// this.$message({
// message: res.message,
// type: "warning",
// duration:1000
// });
// }
// })
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/components/common/diagnoseAdvice.vue
浏览文件 @
a8a5af79
<
template
>
<div
class=
"diagnoseAdvice"
v-drag
v-if=
"showAdvice"
>
<div
class=
"diagnoseAdvice"
v-drag
v-if=
"showAdvice"
>
<div
class=
"header"
>
<span
class=
"headernum"
>
问诊单
{{
currentAdvice
.
diagnoseId
}}
诊断建议
</span>
<el-button
@
click=
"closeadvice"
>
退出
</el-button></div>
<div
class=
"center"
>
<span>
诊断建议
</span>
<el-input
rows=
"10"
type=
"textarea"
v-model=
"
formData.a
dvice"
placeholder=
"请输入内容"
></el-input>
<div
class=
"center"
v-stopdrag
>
<span>
诊断建议
</span>
<el-input
rows=
"10"
type=
"textarea"
v-model=
"
diagnoseA
dvice"
placeholder=
"请输入内容"
></el-input>
</div>
<div
class=
"record"
>
<span>
录音/录像
</span>
<div
v-if=
"currentAdvice.adviceAudioUrls!=undefined &¤tAdvice.adviceAudioUrls.length > 0"
>
<div
v-for=
"
adlist in currentAdvice.adviceAudioUrls"
:key=
"adlist
.diagnoseId"
>
<el-link
:href=
"
adlist"
target=
"_blank"
>
{{
adlist
}}
</el-link>
<div
v-for=
"
itemAudio in currentAdvice.adviceAudioUrls"
:key=
"itemAudio
.diagnoseId"
>
<el-link
:href=
"
itemAudio"
target=
"_blank"
>
{{
itemAudio
}}
</el-link>
</div>
</div>
<span
style=
"color:#0D9078"
v-else
>
无音频
</span>
...
...
@@ -24,10 +24,7 @@ import {mapState} from "vuex";
export
default
{
data
()
{
return
{
formData
:{
diagnoseAdvice
:
''
,
advice
:
""
,
},
}
},
props
:{
...
...
@@ -38,21 +35,32 @@ export default {
},
created
()
{
},
mounted
()
{
},
computed
:{
...
mapState
({
currentAdvice
:
'currentAdvice'
,
})
}),
diagnoseAdvice
:{
get
:
function
()
{
return
this
.
currentAdvice
.
content
},
set
(
val
){
this
.
currentAdvice
.
content
=
val
}
}
},
methods
:{
SaveAdvice
()
{
let
params
=
{
// adviceAudioUrls: this.Adviceslist
.adviceAudioUrls,
// content: this.formData.a
dvice,
// diagnoseId: 11,
// illnessAudioUrls: this.Adviceslist
.illnessAudioUrls
adviceAudioUrls
:
this
.
currentAdvice
.
adviceAudioUrls
,
content
:
this
.
diagnoseA
dvice
,
diagnoseId
:
11
,
//id需要获取
illnessAudioUrls
:
this
.
currentAdvice
.
illnessAudioUrls
}
if
(
!
this
.
formData
.
advice
)
return
//
if(!this.formData.advice) return
this
.
POST
(
'/diagnose/admin/diagnose/doctorAdvice/create'
,
params
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
){
this
.
$message
({
...
...
@@ -95,7 +103,15 @@ export default {
};
};
}
}
},
stopdrag
:
{
inserted
:
function
(
el
,
binding
,
vnode
)
{
let
element
=
el
;
element
.
onmousedown
=
function
(
e
)
{
e
.
stopPropagation
()
}
}
}
}
}
</
script
>
...
...
src/components/common/diagnosis.vue
浏览文件 @
a8a5af79
...
...
@@ -110,7 +110,7 @@ export default {
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/components/common/inquirylist.vue
浏览文件 @
a8a5af79
<
template
>
<div
class=
"inquirylist"
>
<div
class=
"inquirylist"
style=
" user-select:none; "
>
<el-row>
<el-col
:span=
"8"
>
<el-card
shadow=
"always"
:body-style=
"
{ padding: '0px' }">
...
...
@@ -83,7 +83,7 @@ export default {
computed
:{
...
mapState
({
showChat
:
'showChat'
,
showAdvice
:
'showAdvice'
showAdvice
:
'showAdvice'
,
}),
diagnoseType
()
{
switch
(
this
.
item
.
diagnoseType
)
{
...
...
@@ -183,8 +183,9 @@ export default {
});
return
false
;
}
this
.
GET
(
`/diagnose/admin/diagnose/doctorAdvice/list/
${
this
.
item
.
diagnoseLogId
}
`
).
then
(
res
=>
{
this
.
GET
(
`/diagnose/admin/diagnose/doctorAdvice/list/
11
`
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
){
console
.
log
(
res
.
data
);
this
.
$store
.
commit
(
'updateCurrentAdvice'
,
res
.
data
);
}
}).
catch
(
err
=>
{
...
...
@@ -200,7 +201,7 @@ export default {
.inquirylist
{
display
:
flex
;
margin-bottom
:
10px
;
padding
:
10px
5
px
;
padding
:
10px
10
px
;
overflow
:
hidden
!
important
;
.el-row
{
width
:
100%
;
...
...
@@ -397,7 +398,7 @@ export default {
display
:
flex
;
margin-bottom
:
10px
;
// margin: 20px 30px 0px;
padding
:
10px
5
px
;
padding
:
10px
14
px
;
// background: #fff;
overflow
:
hidden
!
important
;
.el-row
{
...
...
src/store/mutations/index.js
浏览文件 @
a8a5af79
import
storejs
from
'storejs'
;
export
default
{
updateCurrentDiagList
(
state
,
obj
)
{
state
.
currentDiagList
=
obj
;
...
...
@@ -11,6 +13,10 @@ export default {
updateCurrentAdvice
(
state
,
obj
)
{
state
.
currentAdvice
=
obj
;
},
updateSoketQuest
(
state
,
obj
)
{
storejs
.
set
(
'soketQuest'
,
obj
);
state
.
soketQuest
=
obj
;
},
updateShowChat
(
state
,
obj
)
{
state
.
showChat
=
obj
;
},
...
...
@@ -20,4 +26,7 @@ export default {
updateNoticeList
(
state
,
obj
)
{
state
.
noticeList
=
obj
;
},
updateIsSuperAdmin
(
state
,
obj
)
{
state
.
isSuperAdmin
=
obj
;
},
};
src/store/state.js
浏览文件 @
a8a5af79
...
...
@@ -5,7 +5,12 @@ export default {
currentCalList
:{},
currentChat
:
{},
currentAdvice
:
{},
soketQuest
:
{},
noticeList
:
[],
showChat
:
false
,
showAdvice
:
false
showAdvice
:
false
,
isSuperAdmin
:
{
isSuper
:
false
,
userID
:
''
}
};
src/views/IM/diagnosis-admin/administrators.vue
浏览文件 @
a8a5af79
...
...
@@ -4,8 +4,8 @@
<div
class=
"header"
>
<!-- 面包屑 -->
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item
:to=
"
{ path: '/' }"
>首页
</el-breadcrumb-item>
<el-breadcrumb-item>
<a
href=
"/"
>
我的工作台
</a>
</el-breadcrumb-item>
<el-breadcrumb-item
>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>
我的工作台
</el-breadcrumb-item>
</el-breadcrumb>
<el-row
style=
"margin-top: 30px"
>
<el-col
:span=
"12"
>
...
...
@@ -14,17 +14,12 @@
<el-col
:span=
"12"
>
<el-date-picker
style=
"margin-top: 10px"
v-model=
"
value1
"
v-model=
"
workbenchAdminDate
"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择日期"
>
</el-date-picker>
<!--
<el-input
style=
"margin-top: 10px"
v-model=
"input1"
placeholder=
"请输入内容"
suffix-icon=
"el-icon-arrow-down"
></el-input>
-->
</el-col>
<el-col
:span=
"12"
style=
"margin-lfet: 10px"
>
<div
style=
"margin-left: 10px"
>
...
...
@@ -69,45 +64,57 @@
</div>
<!-- 问诊列表 -->
<div
class=
"box"
>
<div
class=
"row"
v-for=
"
item in 4"
:key=
"item
"
>
<consultationlist></consultationlist>
<div
class=
"row"
v-for=
"
(item, index ) in operatorslist"
:key=
"index
"
>
<consultationlist
:workbenchAdminDate=
"workbenchAdminDate"
:operatorsItem=
"item"
></consultationlist>
</div>
</div>
<!-- 底部 -->
<div
class=
"footer"
>
<!-- 分页
-->
<el-row
type=
"flex"
justify=
"end"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage4"
:page-sizes=
"[100, 200, 300, 400]"
:page-size=
"100"
layout=
"total, sizes, prev, pager, next"
:total=
"400"
>
</el-pagination
>
</el-row
>
</div
>
<!--
<div
class=
"footer"
>
--
>
<!-- <!– 分页 –>
-->
<!--
<el-row
type=
"flex"
justify=
"end"
>
--
>
<!--
<el-pagination-->
<!-- background-->
<!-- @size-change="handleSizeChange"-->
<!-- @current-change="handleCurrentChange"-->
<!-- :current-page="currentPage"-->
<!-- :page-sizes="[100, 200, 300, 400]"-->
<!-- :page-size="100"-->
<!-- layout="total, sizes, prev, pager, next"-->
<!-- :total="400"-->
<!-- >--
>
<!--
</el-pagination>
--
>
<!--
</el-row>
--
>
<!--
</div>
--
>
</div>
</
template
>
<
script
>
import
consultationlist
from
"../../../components/common/consultation"
;
export
default
{
components
:
{
consultationlist
,
},
data
()
{
const
d
=
localStorage
.
getItem
(
'workbenchAdminDate'
)
||
new
Date
().
format
(
'yyyy-MM-dd'
);
return
{
value1
:
Date
.
now
()
,
currentPage4
:
0
,
workbenchAdminDate
:
d
,
operatorslist
:
[]
,
};
},
components
:
{
consultationlist
,
created
()
{
this
.
init
();
},
watch
:{
},
methods
:
{
handleSizeChange
()
{},
handleCurrentChange
()
{},
init
()
{
this
.
GET
(
"/diagnose/match/list"
).
then
(({
code
,
data
})
=>
{
if
(
code
==
"000000"
)
{
this
.
operatorslist
=
data
;
}
});
}
},
};
</
script
>
...
...
@@ -168,6 +175,9 @@ export default {
width
:
100%
;
flex-flow
:
row
wrap
;
align-content
:
flex-start
;
min-height
:
600px
;
max-height
:
700px
;
overflow-y
:
scroll
;
.row
{
flex
:
0
0
50%
;
}
...
...
src/views/IM/diagnosis-admin/workbench.vue
浏览文件 @
a8a5af79
...
...
@@ -10,7 +10,7 @@
<div
class=
"block"
>
<el-date-picker
@
change=
"changeDatetime"
v-model=
"
Datevalu
e"
v-model=
"
searchParam.dateTim
e"
type=
"date"
clear-icon=
"el-input-icon"
:clearable=
'false'
>
...
...
@@ -19,7 +19,7 @@
</div>
</el-row>
<!-- tab栏 -->
<el-radio-group
@
change=
"
changestatus
"
v-model=
"tabPosition"
style=
"margin-bottom: 30px;"
>
<el-radio-group
@
change=
"
tabChange
"
v-model=
"tabPosition"
style=
"margin-bottom: 30px;"
>
<el-radio-button
label=
"99"
>
全部(
{{
currentCalList
}}
)
</el-radio-button>
<el-radio-button
label=
"1"
>
待处理(
{{
currentCalList
}}
)
</el-radio-button>
<el-radio-button
label=
"2"
>
问诊中(
{{
currentCalList
}}
)
</el-radio-button>
...
...
@@ -50,8 +50,9 @@
<
script
>
import
{
mapState
}
from
"vuex"
;
import
storejs
from
'storejs'
;
import
InquiryListComponent
from
'../../../components/common/inquirylist.vue'
;
import
store
from
"../../../store"
;
export
default
{
components
:
{
InquiryListComponent
...
...
@@ -59,25 +60,27 @@ export default {
computed
:{
...
mapState
({
currentDiagList
:
'currentDiagList'
,
currentCalList
:
'currentCalList'
currentCalList
:
'currentCalList'
,
soketQuest
:
'soketQuest'
,
isSuperAdmin
:
'isSuperAdmin'
}),
},
data
(){
const
s
=
storejs
.
get
(
'soketQuest'
);
const
d
=
s
?
s
.
dateTime
:
new
Date
().
format
(
'yyyy-MM-dd'
);
return
{
tabPosition
:
"1"
,
Datevalue
:
new
Date
().
toLocaleDateString
().
split
(
'/'
).
join
(
'-'
),
currentPage4
:
0
,
showChat
:
true
,
totalRows
:
40
,
loading
:
false
,
searchParam
:
{
dateTime
:
this
.
Datevalue
,
operateUserId
:
localStorage
.
getItem
(
'userID'
)
,
dateTime
:
d
,
operateUserId
:
''
,
returnStatus
:
1
,
pageSize
:
6
,
pageNo
:
1
,
},
list
:
[
testlistdata
:
[
{
"appointBeginTime"
:
"2021-07-29T05:28:57.396Z"
,
"appointEndTime"
:
"2021-07-29T05:28:57.396Z"
,
...
...
@@ -108,43 +111,62 @@ export default {
}
},
created
(){
const
s
=
storejs
.
get
(
'soketQuest'
);
const
d
=
s
?
s
.
dateTime
:
new
Date
().
format
(
'yyyy-MM-dd'
);
let
id
=
s
?
s
.
operateUserId
:
this
.
isSuperAdmin
.
userID
;
const
p
=
{
dateTime
:
d
,
operateUserId
:
id
,
pageNo
:
s
?
s
.
pageNo
:
1
,
pageSize
:
s
?
s
.
pageSize
:
6
,
returnStatus
:
s
?
s
.
returnStatus
:
1
,
};
this
.
searchParam
=
p
;
this
.
inquirySearch
()
},
methods
:{
handleSizeChange
(
val
){
this
.
searchParam
.
pageSize
=
val
this
.
search
()
tabChange
(
val
)
{
const
s
=
this
.
searchParam
;
s
.
returnStatus
=
val
;
this
.
searchParam
=
s
;
this
.
inquirySearch
()
},
handleCurrentChange
(
val
){
this
.
searchParam
.
pageNo
=
val
this
.
search
()
changeDatetime
(
val
)
{
const
s
=
this
.
searchParam
;
s
.
dateTime
=
val
.
format
(
'yyyy-MM-dd'
);
this
.
searchParam
=
s
;
this
.
inquirySearch
()
},
changestatus
(
val
){
this
.
searchParam
.
returnStatus
=
val
this
.
searchParam
.
pageNo
=
1
this
.
search
()
// 测试代码
const
l
=
this
.
currentDiagList
;
console
.
log
(
'--l----'
,
l
)
l
.
push
(...
this
.
list
);
console
.
log
(
'--l'
,
l
)
this
.
$store
.
commit
(
'updateCurrentDiagList'
,
l
);
handleSizeChange
(
val
)
{
const
s
=
this
.
searchParam
;
s
.
pageSize
=
val
;
this
.
searchParam
=
s
;
},
changeDatetime
(
val
)
{
this
.
searchParam
.
dateTime
=
val
.
toLocaleDateString
().
split
(
'/'
).
join
(
'-'
)
this
.
searchParam
.
pageNo
=
1
this
.
search
()
handleCurrentChange
(
val
)
{
const
s
=
this
.
searchParam
;
s
.
pageNo
=
val
;
this
.
searchParam
=
s
;
this
.
inquirySearch
()
},
search
()
{
let
params
=
this
.
searchParam
this
.
loading
=
true
this
.
POST
(
'/diagnose/admin/diagnose/operator/list'
,
params
).
then
(
res
=>
{
inquirySearch
()
{
const
p
=
this
.
searchParam
;
this
.
POST
(
'/diagnose/socket/condition/update'
,
p
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
){
this
.
loading
=
false
console
.
log
(
res
);
this
.
$store
.
commit
(
'updateSoketQuest'
,
p
)
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
"warning"
,
duration
:
1000
});
}
})
// 测试代码
const
l
=
this
.
currentDiagList
;
l
.
push
(...
this
.
testlistdata
);
this
.
$store
.
commit
(
'updateCurrentDiagList'
,
l
);
}
},
}
</
script
>
...
...
@@ -161,7 +183,7 @@ export default {
.forbox
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
//
justify-content: space-between;
.for
{
display
:
flex
;
}
...
...
src/views/layout/slidebar.vue
浏览文件 @
a8a5af79
...
...
@@ -67,8 +67,7 @@ export default {
getNav
()
{
this
.
POST
(
"/basic-data/menu/list"
,
{
systemType
:
this
.
systemType
}).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
let
{
vueMenuDtos
}
=
res
.
data
;
localStorage
.
setItem
(
'userID'
,
res
.
data
.
userId
)
let
{
vueMenuDtos
,
userId
}
=
res
.
data
;
// let vueMenuDtos = [];
// // TODO 开发调试时写死, 发布时去掉
...
...
@@ -78,6 +77,21 @@ export default {
// subs: [],
// title: "订单管理"
// }];
const
i
=
{
isSuper
:
false
,
userID
:
userId
};
vueMenuDtos
.
map
(
item
=>
{
if
(
item
.
index
.
indexOf
(
'administrators'
)
>
-
1
){
// 超级管理员
i
.
isSuper
=
true
;
}
else
{
// 普通用户
i
.
isSuper
=
false
;
}
});
this
.
$store
.
commit
(
'updateIsSuperAdmin'
,
i
);
this
.
items
=
vueMenuDtos
;
sessionStorage
.
setItem
(
"ADMIN_IM_CENTER_NAVS"
,
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录