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
提交
a3a478ec
提交
a3a478ec
编写于
12月 03, 2021
作者:
xiaoping.di
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'feature/dxp' into 'develop'
Feature/dxp See merge request
!246
上级
74b1dfa0
f4f41a33
变更
15
展开全部
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
815 行增加
和
613 行删除
+815
-613
administrators.js
src/api/administrators.js
+14
-14
workbench.js
src/api/workbench.js
+15
-14
consultation.vue
src/components/common/consultation.vue
+12
-6
index.js
src/components/common/consultationCard/index.js
+40
-103
index.scss
src/components/common/consultationCard/index.scss
+58
-37
index.vue
src/components/common/consultationCard/index.vue
+43
-23
department-doctor.vue
src/components/common/department-doctor.vue
+153
-132
inquiryNew-list.vue
src/components/common/inquiryNew-list.vue
+1
-3
round.js
src/store/modules/round.js
+152
-30
socket.js
src/store/modules/socket.js
+2
-29
administrators.vue
src/views/IM/diagnosis-admin/administrators.vue
+27
-18
operation.vue
src/views/IM/diagnosis-admin/operation.vue
+31
-32
workbench-new.vue
src/views/IM/diagnosis-admin/workbench-new.vue
+261
-168
slidebar.vue
src/views/layout/components/slidebar.vue
+5
-3
vue.config.js
vue.config.js
+1
-1
未找到文件。
src/api/administrators.js
浏览文件 @
a3a478ec
import
request
from
'mn-template/plugins/http'
;
export
const
getMatchList
=
async
()
=>
{
export
const
getMatchList
=
async
()
=>
{
return
request
({
url
:
'/diagnose/match/list'
,
method
:
'get'
,
...
...
src/api/workbench.js
浏览文件 @
a3a478ec
import
request
from
'mn-template/plugins/http'
;
export
const
doctorListAnd
=
async
(
data
)
=>
{
export
const
doctorListAnd
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/admin/diagnose/operate/and/doctorList'
,
data
:
data
,
...
...
@@ -12,9 +12,9 @@ export const doctorListRest = async (data) => {
return
request
({
url
:
'diagnose/admin/diagnose/reset/operate/doctorList'
,
method
:
'post'
,
data
:
data
data
:
data
,
});
};
};
export
const
conditionUpdate
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/socket/condition/update'
,
...
...
@@ -50,9 +50,10 @@ export const manualCall = async (data) => {
};
// 查询当前上级医生下排队的信息
export
const
waitPersonNum
=
async
(
d
octorId
)
=>
{
export
const
waitPersonNum
=
async
(
d
ata
)
=>
{
return
request
({
url
:
`/admin/diagnose/queueList/
${
doctorId
}
`
,
url
:
'/diagnose/admin/diagnose/queueList/doctorId'
,
method
:
'post'
,
data
:
data
,
});
};
src/components/common/consultation.vue
浏览文件 @
a3a478ec
...
...
@@ -7,13 +7,19 @@
<div
class=
"name"
>
{{
operatorsItem
.
name
||
''
}}
</div>
<div
class=
"details"
@
click=
"goSelectDeart"
>
<div
class=
"details"
@
click=
"goSelectDeart"
>
<div
class=
"see"
>
<span>
查看选择科室
</span>
<i
class=
"el-icon-arrow-right"
/>
</div>
</div>
<div
class=
"details"
@
click=
"goworkBench"
>
<div
class=
"details"
@
click=
"goworkBench"
>
<div
class=
"see"
>
<span>
待处理详情
</span>
<i
class=
"el-icon-arrow-right"
/>
...
...
@@ -24,7 +30,7 @@
</
template
>
<
script
>
// import { conditionUpdate } from '@/api/workbench';
// import { conditionUpdate } from '@/api/workbench';
export
default
{
props
:
{
...
...
@@ -77,7 +83,7 @@
path
:
'/workbench-new'
,
query
:
{
id
:
this
.
operatorsItem
.
id
},
});
}
}
,
},
};
</
script
>
...
...
@@ -121,9 +127,9 @@
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#0
D
9078
;
color
:
#0
d
9078
;
}
i
{
i
{
color
:
rgba
(
13
,
144
,
120
,
1
);
}
}
...
...
src/components/common/consultationCard/index.js
浏览文件 @
a3a478ec
import
{
teamDetail
,
callDirect
}
from
'@/api/diagnosis'
;
import
{
waitPersonNum
,
doctorAdviceList
,
manualCall
,
}
from
'@/api/workbench.js'
;
import
{
waitPersonNum
,
manualCall
}
from
'@/api/workbench.js'
;
import
{
createNamespacedHelpers
}
from
'vuex'
;
const
{
mapState
}
=
createNamespacedHelpers
(
'main'
);
let
clipboard
=
null
;
export
default
{
props
:
{
item
:
{
...
...
@@ -48,7 +45,6 @@ export default {
computed
:
{
...
mapState
({
showChat
:
(
state
)
=>
state
.
showChat
,
showAdvice
:
(
state
)
=>
state
.
showAdvice
,
}),
doctorCallStatus
()
{
switch
(
this
.
item
.
doctorCallStatus
)
{
...
...
@@ -60,6 +56,8 @@ export default {
return
'被挂断'
;
case
4
:
return
'已拨打完成'
;
case
5
:
return
'电话呼叫中'
;
default
:
return
''
;
}
...
...
@@ -78,30 +76,6 @@ export default {
return
''
;
}
},
diagnoseType
()
{
switch
(
this
.
item
.
diagnoseType
)
{
case
1
:
return
'语音问诊'
;
case
2
:
return
'视频问诊'
;
case
3
:
return
'图文问诊'
;
default
:
return
''
;
}
},
diagnoseTypeIcon
()
{
switch
(
this
.
item
.
diagnoseType
)
{
case
1
:
return
'voice'
;
case
2
:
return
'voice'
;
case
3
:
return
'photo'
;
default
:
return
'photo'
;
}
},
appointBeginTime
()
{
if
(
this
.
item
.
appointBeginTime
)
{
return
new
Date
(
this
.
item
.
appointBeginTime
).
format
(
'hh:mm'
);
...
...
@@ -116,28 +90,18 @@ export default {
return
''
;
}
},
userCallTime
()
{
return
new
Date
(
this
.
item
.
userCallTime
).
format
(
'hh:mm'
);
},
// 助诊呼叫状态
userCallKfStatus
()
{
return
this
.
item
.
userCallKfStatus
;
},
// 接诊呼叫状态
doctorCallKfStatus
()
{
return
this
.
item
.
doctorCallKfStatus
;
},
// 接诊 在线状态
doctorTrtcEntryStatus
()
{
return
this
.
item
.
doctorTrtcEntryStatus
;
},
// 助诊 在线状态
userTrtcEntryStatus
()
{
return
this
.
item
.
userTrtcEntryStatus
;
// 基层医生上次呼叫医助时间
userLastCallTime
()
{
if
(
this
.
item
.
userLastCallTime
)
{
return
new
Date
(
this
.
item
.
userLastCallTime
).
getTime
();
}
else
{
return
null
;
}
},
pastUserCallTime
()
{
if
(
this
.
item
.
userCallTime
)
{
return
this
.
formatDateData
(
this
.
item
.
userCallTime
);
// 上级医生上一次呼叫医助时间
doctorLastCallTime
()
{
if
(
this
.
item
.
doctorLastCallTime
)
{
return
this
.
formatDateData
(
this
.
item
.
doctorLastCallTime
);
}
else
{
return
null
;
}
...
...
@@ -161,12 +125,6 @@ export default {
console
.
log
(
newVal
,
'newValnewValnewVal'
);
console
.
log
(
newVal
,
oldVal
,
'newVal, oldVal'
);
if
(
newVal
!==
oldVal
)
{
if
(
newVal
.
doctorTrtcEntryStatus
==
2
)
{
this
.
isDoctorChat
=
false
;
}
if
(
newVal
.
userTrtcEntryStatus
==
2
)
{
this
.
isUserChat
=
false
;
}
if
(
newVal
.
doctorCallStatus
!==
oldVal
.
doctorCallStatus
)
{
this
.
isManuacall
=
false
;
}
...
...
@@ -180,18 +138,7 @@ export default {
},
},
created
()
{},
mounted
()
{
if
(
this
.
item
.
returnStatus
==
1
||
this
.
item
.
returnStatus
==
3
)
{
const
nowData
=
new
Date
().
getTime
();
const
timeleft
=
this
.
item
.
appointBeginTime
-
nowData
;
if
(
timeleft
<
120000
&&
nowData
<
this
.
item
.
appointEndTime
)
{
clearInterval
(
this
.
timer
);
this
.
down
();
}
else
{
this
.
isCall
=
true
;
}
}
},
mounted
()
{},
methods
:
{
manualDialing
(
type
)
{
if
(
this
.
doctorCallKfStatus
===
1
)
{
...
...
@@ -244,7 +191,7 @@ export default {
},
formatDateData
(
time
)
{
const
now_data
=
new
Date
().
getTime
();
const
my_time
=
now_data
-
time
;
const
my_time
=
now_data
-
new
Date
(
time
).
getTime
()
;
const
hours
=
my_time
/
1000
/
60
/
60
;
const
hoursRound
=
Math
.
floor
(
hours
);
const
minutes
=
my_time
/
1000
/
60
-
60
*
hoursRound
;
...
...
@@ -256,10 +203,11 @@ export default {
).
toFixed
(
0
);
if
(
hoursRound
>
0
&&
minutesRound
>
0
)
{
return
hoursRound
+
'小时'
+
minutesRound
+
'分'
+
seconds
+
'秒'
;
// return hoursRound + '小时' + minutesRound + '分' + seconds + '秒';
return
hoursRound
+
'小时'
;
}
if
(
hoursRound
==
0
&&
minutesRound
>
0
)
{
return
minutesRound
+
'分'
;
return
minutesRound
+
'分
钟
'
;
}
if
(
hoursRound
==
0
&&
minutesRound
==
0
)
{
return
seconds
+
'秒'
;
...
...
@@ -335,39 +283,14 @@ export default {
const
i
=
this
.
item
;
this
.
$store
.
dispatch
(
'main/gotoInquiry'
,
i
);
},
openAdvice
()
{
if
(
this
.
showAdvice
)
{
this
.
$message
({
message
:
'不可同时打开多个诊断建议,请先退出已打开的诊断建议,再试。'
,
type
:
'warning'
,
duration
:
1000
,
});
return
false
;
}
// const i = 11;
doctorAdviceList
({
diagnoseLogId
:
this
.
item
.
diagnoseLogId
,
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
$store
.
commit
(
'main/updateShowAdvice'
,
true
);
this
.
$store
.
commit
(
'main/updateCurrentAdvice'
,
res
.
data
);
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
'warning'
,
duration
:
1000
,
});
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
});
},
waitPersonFun
()
{
if
(
!
this
.
isShowWait
)
{
console
.
log
(
this
.
item
.
doctorId
,
'this.item.doctorId'
);
waitPersonNum
(
this
.
item
.
doctorId
)
const
parms
=
{
assistantBeginTime
:
this
.
item
.
appointBeginTime
,
doctorId
:
this
.
item
.
doctorId
,
};
console
.
log
(
parms
,
'this.item.doctorId'
);
waitPersonNum
(
parms
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
waitPersonList
=
res
.
data
||
[];
...
...
@@ -391,5 +314,19 @@ export default {
});
}
},
// 粘帖文本
clipboardAction
()
{
const
_this
=
this
;
console
.
log
(
11
);
clipboard
&&
clipboard
.
destroy
();
// 不是单例的,所以每次都要销毁
clipboard
=
new
this
.
ClipboardJS
(
'.copy-orderId'
,
{
// .footer:文档的CSS类名
text
:
function
()
{
console
.
log
(
_this
.
item
.
diagnoseLogId
);
_this
.
$message
.
success
(
'复制成功'
);
return
_this
.
item
.
diagnoseLogId
;
// 要粘贴的文案
},
});
},
},
};
src/components/common/consultationCard/index.scss
浏览文件 @
a3a478ec
...
...
@@ -17,6 +17,9 @@
font-size
:
18px
;
margin-top
:
3px
;
}
.notime
{
color
:
#999999
;
}
}
.right
{
margin-left
:
23px
;
...
...
@@ -45,7 +48,7 @@
}
}
.superior-doctor
{
width
:
49
%
;
width
:
52
%
;
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
flex-start
;
...
...
@@ -58,9 +61,19 @@
height
:
40px
;
.offline
{
position
:
absolute
;
left
:
-4
px
;
top
:
-4
px
;
left
:
1
px
;
top
:
0
px
;
z-index
:
10
;
img
{
width
:
10px
;
height
:
auto
;
}
}
.online
{
width
:
10px
;
height
:
10px
;
background
:
#0d9078
;
border-radius
:
50%
;
}
.avatar
{
position
:
absolute
;
...
...
@@ -79,19 +92,19 @@
.info-name-wrap
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
span
{
display
:
block
;
}
.info-name
{
display
:
inline-block
;
max-width
:
85px
;
overflow
:
hidden
;
//display: inline-block;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
font-size
:
18px
;
color
:
#02120f
;
font-weight
:
bold
;
}
}
.info-container
{
align-items
:
center
;
flex-direction
:
row
;
...
...
@@ -105,17 +118,6 @@
.info-call-time
{
color
:
#ff5e57
;
}
.info-calling
{
width
:
15px
;
height
:
25px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
img
{
width
:
15px
;
height
:
15px
;
}
}
}
}
.manual-call-status
{
...
...
@@ -140,12 +142,29 @@
}
}
.basic-doctor
{
width
:
4
9
%
;
width
:
4
0
%
;
display
:
flex
;
justify-content
:
flex-start
;
.basic-user-img
,
.basic-user-info
{
position
:
relative
;
padding-right
:
6px
;
.offline
{
position
:
absolute
;
left
:
1px
;
top
:
0px
;
z-index
:
10
;
img
{
width
:
10px
;
height
:
auto
;
}
}
.online
{
width
:
10px
;
height
:
10px
;
background
:
#0d9078
;
border-radius
:
50%
;
}
.info-name-wrap
{
display
:
flex
;
align-items
:
center
;
...
...
@@ -174,21 +193,23 @@
color
:
#ff5e57
;
}
.info-calling
{
width
:
15px
;
height
:
25px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
img
{
width
:
15px
;
height
:
15px
;
}
background
:
rgba
(
255
,
94
,
87
,
0
.07
);
border-radius
:
10px
;
border
:
1px
solid
rgba
(
255
,
94
,
87
,
0
.15
);
height
:
20px
;
text-align
:
center
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#ff5e57
;
line-height
:
20px
;
margin-top
:
3px
;
}
}
}
}
.no-info
{
width
:
10
0%
;
width
:
3
0%
;
height
:
auto
;
color
:
#ff5e57
;
}
...
...
src/components/common/consultationCard/index.vue
浏览文件 @
a3a478ec
...
...
@@ -5,20 +5,17 @@
<div
class=
"superior-doctor"
>
<div
class=
"inquiry-user-img"
>
<div
v-if=
"
diagnoseTypeIcon == 'voice' &&
(item.returnStatus == 1 || item.returnStatus == 3) &&
doctorTrtcEntryStatus != 1
"
class=
"offline"
:class=
"
{ online: item.doctorOnlineStatus == 2 }"
>
<img
v-if=
"item.doctorOnlineStatus == 3"
:src=
"offline"
alt=
""
>
</div>
<div
class=
"avatar"
>
<el-avatar
:src=
"item.doctorImageUrl"
/>
<el-avatar
:src=
"item.doctorImageUrl
|| ''
"
/>
</div>
</div>
<div
class=
"inquiry-user-info"
>
...
...
@@ -34,7 +31,9 @@
</li>
<li
class=
"inquiry-user-status"
>
<!-- 只有-->
<!-- -->
<span
v-if=
"!doctorLastCallTime && item.doctorCallKfStatus != 1"
:class=
"
doctorCallStatus === '已拨打完成'
? 'status-cll-user-finish'
...
...
@@ -42,13 +41,14 @@
"
>
{{
doctorCallStatus
}}
</span>
<span
v-if=
"doctorCallKfStatus == 1"
v-if=
"
item.
doctorCallKfStatus == 1"
class=
"status-cll-user-answer"
>
正在呼叫
</span>
<span
v-
else
v-
if=
"doctorLastCallTime"
class=
"status-cll-user-answer"
>
未呼叫
</span>
>
{{
doctorLastCallTime
}}
前呼叫医助
</span>
</li>
</ul>
</div>
...
...
@@ -60,14 +60,11 @@
>
<ul
class=
"basic-user-img"
>
<li
v-if=
"
diagnoseTypeIcon == 'voice' &&
(item.returnStatus == 1 || item.returnStatus == 3) &&
userTrtcEntryStatus != 1
"
class=
"offline"
:class=
"
{ online: item.userOnlineStatus == 2 }"
>
<img
v-if=
"item.userOnlineStatus == 3"
:src=
"offline"
alt=
""
>
...
...
@@ -88,13 +85,23 @@
{{
item
.
userMobile
}}
</div>
<div
v-if=
"userCallKfStatus == 1"
v-if=
"
item.
userCallKfStatus == 1"
class=
"info-calling"
>
呼叫中
</div>
<div
v-if=
"item.userCallKfStatus == 2 && userLastCallTime"
class=
"info-calling"
>
<span
v-if=
"userLastCallTime"
>
{{
userLastCallTime
}}
前呼叫医助
</span>
</div>
</li>
<li
class=
"inquiry-user-status"
>
<li
v-if=
"item.userCallKfStatus != 1 && userCallStatus"
class=
"inquiry-user-status"
>
<span
:class=
"
userCallStatus === '已拨打完成'
...
...
@@ -111,7 +118,7 @@
class=
"no-info"
>
<div
v-if=
"item.acceptStatus ==
4
"
v-if=
"item.acceptStatus ==
2
"
class=
"doctor-late"
>
未开始接诊
...
...
@@ -122,9 +129,14 @@
>
暂停接诊
</div>
<div
v-if=
"item.acceptStatus == 4"
class=
"doctor-stop"
>
离开
</div>
</div>
</div>
<!-- 预约时间,复制单号 -->
<div
class=
"line line-second"
>
<div
class=
"left"
>
...
...
@@ -138,7 +150,7 @@
</div>
<div
v-else
class=
"time"
class=
"time
notime
"
>
无
</div>
...
...
@@ -151,8 +163,8 @@
</li>
<li
v-if=
"item.diagnoseLogId"
class=
"copy"
@
click=
"c
opyDiagnoseLogId
"
class=
"copy
copy-orderId
"
@
click=
"c
lipboardAction
"
>
复制
</li>
...
...
@@ -172,13 +184,22 @@
/>
</div>
</div>
<!-- 有基层医生信息 展示进入诊室 -->
<div
v-if=
"item.userId && item.acceptStatus != 1 && item.acceptStatus != 4"
class=
"line-btn line-btn-enter"
:class=
"
{ isManuacall: isManuacall, noIsCall: !isManuacall }"
@click="openChat"
>
进入诊室
</div>
<!-- -->
<div
v-else
class=
"line-btn line-btn-enter"
>
<div
v-if=
"doctorCallKfStatus == 1"
v-if=
"
item.
doctorCallKfStatus == 1"
class=
"call-box"
>
<img
...
...
@@ -201,7 +222,6 @@
</div>
</div>
</div>
<!-- 排队详细 -->
<div
v-if=
"isShowWait"
...
...
src/components/common/department-doctor.vue
浏览文件 @
a3a478ec
<
template
>
<div
class=
"depart-doctor"
>
<el-tabs
v-model=
"activeMoutendName"
>
<el-tab-pane
v-for=
"item in departDoctorList"
:key=
"item.departmentId"
:label=
"item.department + ' ' + item.checkDoctorIdListByDepartment.length + '/' +item.allNum"
:name=
"item.departmentId"
>
<el-tab-pane
v-for=
"item in departDoctorList"
:key=
"item.departmentId"
:label=
"
item.department +
' ' +
item.checkDoctorIdListByDepartment.length +
'/' +
item.allNum
"
:name=
"item.departmentId"
>
<el-checkbox
v-model=
"item.checkAll"
:indeterminate=
"item.isIndeterminate"
:disabled=
"item.allDisabled"
@
change=
"((value)=>
{handleCheckAllChange(value,item)})">全选
</el-checkbox>
<div
style=
"margin: 10px 0;"
/>
@
change=
"
(value) =>
{
handleCheckAllChange(value, item);
}
"
>
全选
</el-checkbox>
<div
style=
"margin: 10px 0"
/>
<el-checkbox-group
v-model=
"item.checkDoctorIdListByDepartment"
@
change=
"((val)=>
{handleCheckedCitiesChange(val,item)})"
@
change=
"
(val) =>
{
handleCheckedCitiesChange(val, item);
}
"
>
<el-checkbox
v-for=
"itemChild in item.diagnoseOperateDoctorRespList"
...
...
@@ -18,7 +40,7 @@
:label=
"itemChild.doctorId"
:disabled=
"itemChild.disabled"
>
{{
itemChild
.
doctorName
+
' '
}}{{
' '
+
itemChild
.
doctorId
}}
{{
itemChild
.
doctorName
+
' '
}}{{
' '
+
itemChild
.
doctorId
}}
</el-checkbox>
</el-checkbox-group>
</el-tab-pane>
...
...
@@ -29,41 +51,36 @@
<
script
>
export
default
{
props
:
{
departDoctorList
:
{
departDoctorList
:
{
type
:
Array
,
default
()
{
return
[];
},
},
activeMoutendName
:
{
activeMoutendName
:
{
type
:
String
,
default
()
{
return
''
;
},
}
},
data
()
{
return
{
};
},
computed
:
{
},
watch
:
{
},
created
()
{
},
mounted
()
{
data
()
{
return
{};
},
computed
:
{},
watch
:
{},
created
()
{},
mounted
()
{},
methods
:
{
handleCheckAllChange
(
value
,
item
)
{
let
itemNameList
=
[];
if
(
value
)
{
itemNameList
=
(
item
.
diagnoseOperateDoctorRespList
||
[]).
map
(
item
=>
{
itemNameList
=
(
item
.
diagnoseOperateDoctorRespList
||
[]).
map
(
(
item
)
=>
{
return
item
.
doctorId
;
});
}
);
}
item
.
checkDoctorIdListByDepartment
=
value
?
itemNameList
:
[];
item
.
isIndeterminate
=
false
;
...
...
@@ -77,33 +94,38 @@
*/
handleCheckedCitiesChange
(
value
,
item
)
{
const
checkedCount
=
value
.
length
;
item
.
checkAll
=
checkedCount
===
item
.
diagnoseOperateDoctorRespList
.
length
;
if
(
checkedCount
>
0
&&
checkedCount
<
item
.
diagnoseOperateDoctorRespList
.
length
)
{
item
.
checkAll
=
checkedCount
===
item
.
diagnoseOperateDoctorRespList
.
length
;
if
(
checkedCount
>
0
&&
checkedCount
<
item
.
diagnoseOperateDoctorRespList
.
length
)
{
item
.
isIndeterminate
=
true
;
item
.
checkAll
=
true
;
}
else
{
}
else
{
item
.
isIndeterminate
=
false
;
}
this
.
$emit
(
'getDepartlist'
,
this
.
departDoctorList
);
}
}
,
},
};
</
script
>
<
style
lang=
"scss"
>
.depart-doctor
{
.el-checkbox__input.is-disabled
.el-checkbox__inner
{
border-color
:
#D9D9D9
!
important
;
<
style
lang=
"scss"
>
.depart-doctor
{
.el-checkbox__input.is-disabled
.el-checkbox__inner
{
border-color
:
#d9d9d9
!
important
;
background
:
#fff
!
important
;
}
.el-checkbox.is-disabled
.el-checkbox__label
{
color
:
#
D9D9D9
!
important
;
.el-checkbox.is-disabled
.el-checkbox__label
{
color
:
#
d9d9d9
!
important
;
}
.el-radio__input.is-checked
+
.el-radio__label
,
.el-tabs__item.is-active
{
color
:
#0D9078
!
important
;
font-size
:
16px
!
important
;
.el-radio__input.is-checked
+
.el-radio__label
,
.el-tabs__item.is-active
{
color
:
#0d9078
!
important
;
font-size
:
16px
!
important
;
}
.is-active
{
.is-active
{
border
:
none
;
position
:
relative
;
&
:
:
after
{
...
...
@@ -113,20 +135,19 @@
left
:
50%
;
right
:
0
;
height
:
2px
;
background
:
#0
D9078
;
background
:
#0
d9078
;
width
:
50px
;
transform
:
translateX
(
-50%
);
}
}
.el-tabs__item.is-top
:nth-child
(
2
)
{
.el-tabs__item.is-top
:nth-child
(
2
)
{
padding-left
:
22px
!
important
;
}
.el-tabs__item.is-top
:last-child
{
padding-right
:
22px
!
important
;
}
.el-tab-pane
{
.el-tab-pane
{
padding
:
10px
20px
;
}
}
</
style
>
src/components/common/inquiryNew-list.vue
浏览文件 @
a3a478ec
...
...
@@ -21,9 +21,7 @@
<i
class=
"talk-icon"
:class=
"diagnoseTypeIcon"
/><span>
{{
diagnoseType
}}
444
</span>
/><span>
{{
diagnoseType
}}
444
</span>
</div>
<div
class=
"time"
>
<i
class=
"appointment"
/><span>
{{
appointBeginTime
}}
555
</span>
-
<span>
{{
appointEndTime
}}
666
</span>
...
...
src/store/modules/round.js
浏览文件 @
a3a478ec
const
roundCard
=
{
import
io
from
'socket.io-client'
;
const
socket
=
{
namespaced
:
true
,
state
:
{
socketClient
:
null
,
},
actions
:
{
init
Card
(
context
,
payload
)
{
init
Socket
(
context
,
payload
)
{
const
{
rootState
}
=
context
;
console
.
log
(
context
,
payload
,
'context, payload111'
,
rootState
);
// const { list, allSize, countRespList } = socket;
// console.log('-rootState', rootState, socket);
// const { currentTabStatus } = rootState.main;
// context.commit('main/updateCurrentCalList', countRespList, {
// root: true,
// });
// context.commit('main/updateAllSize', allSize, { root: true });
// if (list) {
// const l = list[0] || [];
// if (currentTabStatus == 99) {
// context.commit('main/updateCurrentDiagList', list, { root: true });
// } else {
// if (currentTabStatus == l.returnStatus) {
// context.commit('main/updateCurrentDiagList', list, {
// root: true,
// });
// }
// if (l.length == 0) {
// context.commit('main/updateCurrentDiagList', list, {
// root: true,
// });
// }
// }
// } else {
// context.commit('main/updateCurrentDiagList', [], { root: true });
// }
console
.
log
(
context
,
payload
,
'context, payload111'
);
const
socketClient
=
io
.
connect
(
payload
.
url
,
{
query
:
{
loginUserNum
:
`diagnose_list_socket_
${
payload
.
userId
}
`
,
},
// reconnection: false,
});
context
.
commit
(
'SET_SOCKET'
,
socketClient
,
rootState
);
socketClient
.
on
(
'connect'
,
(
socket
)
=>
{
console
.
log
(
'socket 链接成功'
,
socket
,
socketClient
);
});
socketClient
.
on
(
'connect_error'
,
(
err
)
=>
{
console
.
log
(
'socket connect_error'
,
err
);
// state.socketClient.connect();
});
socketClient
.
on
(
'disconnect'
,
(
socket
)
=>
{
console
.
log
(
'socket disconnect----'
,
socket
);
// state.socketClient.connect();
});
socketClient
.
on
(
'diagnose_push_event'
,
(
socket
)
=>
{
const
{
list
,
allSize
,
countRespList
}
=
socket
;
console
.
log
(
'-rootState'
,
rootState
,
socket
);
const
{
currentTabStatus
}
=
rootState
.
main
;
context
.
commit
(
'main/updateCurrentCalList'
,
countRespList
,
{
root
:
true
,
});
context
.
commit
(
'main/updateAllSize'
,
allSize
,
{
root
:
true
});
if
(
list
)
{
const
l
=
list
[
0
]
||
[];
if
(
currentTabStatus
==
99
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
});
}
else
{
if
(
currentTabStatus
==
l
.
returnStatus
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
,
});
}
if
(
l
.
length
==
0
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
,
});
}
}
}
else
{
context
.
commit
(
'main/updateCurrentDiagList'
,
[],
{
root
:
true
});
}
});
socketClient
.
on
(
'diagnose_call_push_event'
,
(
socket
)
=>
{
console
.
log
(
socket
,
'socketsocket'
,
window
.
_VM
.
$store
.
state
.
main
.
soketQuest
);
const
l
=
window
.
_VM
.
$store
.
state
.
main
.
noticeList
;
if
(
l
.
length
>=
5
)
{
l
.
shift
();
}
l
.
push
(
socket
);
const
n
=
{
notifyIndex
:
l
.
length
,
...
socket
};
context
.
commit
(
'main/updateNoticeList'
,
l
,
{
root
:
true
});
const
{
path
}
=
window
.
_VM
.
$route
;
const
operateUserId
=
window
.
_VM
.
$store
.
state
.
main
.
soketQuest
.
operateUserId
?
window
.
_VM
.
$store
.
state
.
main
.
soketQuest
.
operateUserId
:
''
;
if
(
path
&&
String
(
path
).
indexOf
(
'workbench'
)
>
-
1
&&
n
.
operateUserId
==
operateUserId
)
{
const
ni
=
{
notifyInfo
:
n
,
rootState
:
rootState
};
context
.
commit
(
'SET_NOTIFY'
,
ni
);
}
});
socketClient
.
on
(
'ping'
,
function
()
{
console
.
log
(
'[E] 心跳请求已发出 →'
,
socketClient
);
});
// 收到
socketClient
.
on
(
'pong'
,
function
(
socket
)
{
console
.
log
(
'[E] 心跳响应已收到 ←'
,
socket
,
socketClient
);
});
socketClient
.
io
.
on
(
'reconnect_attempt'
,
(
socket
)
=>
{
console
.
log
(
'--reconnect_attempt'
,
socket
);
// ...
});
socketClient
.
on
(
'reconnect'
,
(
socket
)
=>
{
console
.
log
(
'--reconnect'
,
socket
);
// ...
});
socketClient
.
on
(
'reconnecting'
,
(
attemptNumber
)
=>
{
// ...
console
.
log
(
'--reconnecting'
,
attemptNumber
);
});
},
},
mutations
:
{
SET_SOCKET
:
(
state
,
payload
)
=>
{
window
.
socketClient
=
payload
;
state
.
socketClient
=
payload
;
},
SET_NOTIFY
:
(
state
,
payload
)
=>
{
const
doms
=
document
.
getElementsByClassName
(
'el-notification'
);
if
(
doms
.
length
>=
5
)
return
;
const
h
=
window
.
_VM
.
$createElement
;
const
{
notifyInfo
,
rootState
}
=
payload
;
const
t
=
notifyInfo
.
department
?
`问诊单
${
notifyInfo
.
diagnoseLogId
}
(
${
notifyInfo
.
department
}
)`
:
`问诊单
${
notifyInfo
.
diagnoseLogId
}
`
;
// userCallKfStatus 医助呼叫
// doctorCallKfStatus 医生呼叫
const
name
=
notifyInfo
.
userCallKfStatus
==
1
?
notifyInfo
.
userName
:
notifyInfo
.
doctorName
;
const
cn
=
window
.
_VM
.
$notify
({
title
:
t
,
message
:
h
(
'p'
,
[
h
(
'i'
,
{
style
:
'color: teal;'
},
`
${
name
}
正在呼叫你`
),
h
(
'el-button'
,
{
style
:
`float:right;margin-top:
${
30
}
px;`
,
on
:
{
click
:
function
()
{
console
.
log
(
'----state'
,
rootState
);
if
(
rootState
.
main
.
showChat
)
{
window
.
_VM
.
$message
({
message
:
'不可同时进入多个诊室,请先退出已进入的诊室,再试。'
,
type
:
'warning'
,
duration
:
1000
,
});
}
else
{
window
.
_VM
.
$store
.
dispatch
(
'main/gotoInquiry'
,
notifyInfo
);
}
cn
.
close
();
},
},
},
'进入诊室'
),
]),
onClose
:
function
()
{
console
.
log
(
'--onClose'
,
notifyInfo
);
},
duration
:
5000
,
position
:
'top-right'
,
});
},
},
};
export
default
roundCard
;
export
default
socket
;
src/store/modules/socket.js
浏览文件 @
a3a478ec
...
...
@@ -26,34 +26,6 @@ const socket = {
console
.
log
(
'socket disconnect----'
,
socket
);
// state.socketClient.connect();
});
socketClient
.
on
(
'diagnose_push_event'
,
(
socket
)
=>
{
const
{
list
,
allSize
,
countRespList
}
=
socket
;
console
.
log
(
'-rootState'
,
rootState
,
socket
);
const
{
currentTabStatus
}
=
rootState
.
main
;
context
.
commit
(
'main/updateCurrentCalList'
,
countRespList
,
{
root
:
true
,
});
context
.
commit
(
'main/updateAllSize'
,
allSize
,
{
root
:
true
});
if
(
list
)
{
const
l
=
list
[
0
]
||
[];
if
(
currentTabStatus
==
99
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
});
}
else
{
if
(
currentTabStatus
==
l
.
returnStatus
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
,
});
}
if
(
l
.
length
==
0
)
{
context
.
commit
(
'main/updateCurrentDiagList'
,
list
,
{
root
:
true
,
});
}
}
}
else
{
context
.
commit
(
'main/updateCurrentDiagList'
,
[],
{
root
:
true
});
}
});
socketClient
.
on
(
'diagnose_call_push_event'
,
(
socket
)
=>
{
console
.
log
(
socket
,
...
...
@@ -75,8 +47,9 @@ const socket = {
if
(
path
&&
String
(
path
).
indexOf
(
'workbench'
)
>
-
1
&&
n
.
operateUserId
==
operateUserId
(
n
.
operateUserId
==
operateUserId
||
n
.
operateUserId
==
'999999'
)
)
{
console
.
log
(
n
);
const
ni
=
{
notifyInfo
:
n
,
rootState
:
rootState
};
context
.
commit
(
'SET_NOTIFY'
,
ni
);
}
...
...
src/views/IM/diagnosis-admin/administrators.vue
浏览文件 @
a3a478ec
...
...
@@ -7,7 +7,10 @@
<el-breadcrumb-item>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>
我的工作台
</el-breadcrumb-item>
</el-breadcrumb>
<el-row
style=
"margin-top: 30px;display:flex;alignItems:center"
class=
"row-col-show"
>
<el-row
style=
"margin-top: 30px; display: flex; alignitems: center"
class=
"row-col-show"
>
<el-col
:span=
"8"
>
<div
class=
"left"
>
<el-row
...
...
@@ -74,7 +77,11 @@
<
script
>
import
consultationlist
from
'@/components/common/consultation'
;
import
{
getMatchList
,
getCountByDay
,
lateCountByDay
}
from
'@/api/administrators'
;
import
{
getMatchList
,
getCountByDay
,
lateCountByDay
,
}
from
'@/api/administrators'
;
export
default
{
components
:
{
...
...
@@ -92,8 +99,8 @@
return
time
.
getTime
()
>
new
Date
().
getTime
();
// 减去一天的时间代表可以选择同一天;
},
},
callDoctorNum
:
''
,
doctorLaterNum
:
''
callDoctorNum
:
''
,
doctorLaterNum
:
''
,
};
},
watch
:
{},
...
...
@@ -117,10 +124,11 @@
},
getCountByDay
()
{
const
params
=
{
startTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
(),
endTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
()
+
86400
*
1000
startTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
(),
endTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
()
+
86400
*
1000
,
};
getCountByDay
(
params
).
then
(
res
=>
{
getCountByDay
(
params
).
then
(
(
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
callDoctorNum
=
res
.
data
;
}
...
...
@@ -128,10 +136,11 @@
},
lateCountByDay
()
{
const
params
=
{
startTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
(),
endTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
()
+
86400
*
1000
startTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
(),
endTimestamp
:
new
Date
(
this
.
workbenchAdminDate
).
getTime
()
+
86400
*
1000
,
};
lateCountByDay
(
params
).
then
(
res
=>
{
lateCountByDay
(
params
).
then
(
(
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
doctorLaterNum
=
res
.
data
;
}
...
...
@@ -155,38 +164,38 @@
border-radius
:
7px
;
border
:
1px
solid
#d9d9d9
;
}
.row-col-show
{
.el-col-12
{
.right
{
.row-col-show
{
.el-col-12
{
.right
{
display
:
flex
;
width
:
70%
;
align-items
:
center
;
justify-content
:
space-around
;
.totalNumShow
{
.totalNumShow
{
font-size
:
16px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#212121
;
}
.callDoctorShow
{
.callDoctorShow
{
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#666666
;
}
.callDoctorNum
{
.callDoctorNum
{
font-size
:
24px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#212121
;
}
.laterDoctorShow
{
.laterDoctorShow
{
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#666666
;
}
.laterDoctorNum
{
.laterDoctorNum
{
font-size
:
24px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
...
...
src/views/IM/diagnosis-admin/operation.vue
浏览文件 @
a3a478ec
...
...
@@ -48,7 +48,10 @@
<p>
将永久删除名下
</p>
<p>
所有的科室及上级医生
</p>
</div>
<div
class=
"work-info-botton"
style=
"text-align: center"
>
<div
class=
"work-info-botton"
style=
"text-align: center"
>
<span
slot=
"footer"
class=
"dialog-footer"
...
...
@@ -70,11 +73,7 @@
</div>
</
template
>
<
script
>
import
{
setDiagnoseMatch
,
operatorQuery
,
sumbitMatch
}
from
'@/api/operation'
;
import
{
setDiagnoseMatch
,
operatorQuery
,
sumbitMatch
}
from
'@/api/operation'
;
import
{
doctorListRest
}
from
'@/api/workbench'
;
import
_
from
'lodash'
;
export
default
{
...
...
@@ -82,9 +81,9 @@
return
{
checklist
:
[],
adminList
:
[],
showIsReset
:
false
,
operateId
:
''
,
oldCheckList
:[],
showIsReset
:
false
,
operateId
:
''
,
oldCheckList
:
[],
};
},
mounted
()
{
...
...
@@ -150,19 +149,19 @@
this
.
cancelList
=
_
.
difference
(
this
.
oldCheckList
,
this
.
checklist
);
if
(
this
.
cancelList
.
length
>
0
)
{
this
.
showIsReset
=
true
;
}
else
{
}
else
{
this
.
sumbitmatch
();
}
},
confirmResert
()
{
const
uidList
=
this
.
cancelList
||
[];
doctorListRest
(
uidList
).
then
(
res
=>
{
doctorListRest
(
uidList
).
then
(
(
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
showIsReset
=
false
;
this
.
sumbitmatch
();
}
});
}
}
,
},
};
</
script
>
...
...
@@ -199,13 +198,13 @@
align-items
:
center
;
}
}
.show-info-title
{
.show-info-title
{
text-align
:
center
;
padding
:
30px
;
font-size
:
18px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#02120
F
;
color
:
#02120
f
;
}
.dialog-footer
{
.contest
{
...
...
src/views/IM/diagnosis-admin/workbench-new.vue
浏览文件 @
a3a478ec
此差异已折叠。
点击以展开。
src/views/layout/components/slidebar.vue
浏览文件 @
a3a478ec
...
...
@@ -82,7 +82,11 @@
userID
:
userId
,
};
const
u
=
this
.
getSocketUrl
(
BUILD_ENV
);
storejs
.
set
(
'initSocketInfo'
,
{
url
:
u
,
userId
:
userId
,
userName
:
userName
});
storejs
.
set
(
'initSocketInfo'
,
{
url
:
u
,
userId
:
userId
,
userName
:
userName
,
});
this
.
$store
.
dispatch
(
'socket/initSocket'
,
{
url
:
u
,
userId
:
userId
});
vueMenuDtos
.
map
((
item
)
=>
{
if
(
item
.
index
.
indexOf
(
'administrators'
)
>
-
1
)
{
...
...
@@ -181,8 +185,6 @@
color
:
#fff
;
background
:
#06232c
;
}
}
}
</
style
>
vue.config.js
浏览文件 @
a3a478ec
...
...
@@ -71,7 +71,7 @@ module.exports = {
port
:
8080
,
proxy
:
{
'/proxy'
:
{
target
:
'https://
test1
-sc.yunqueyi.com/'
,
target
:
'https://
dev
-sc.yunqueyi.com/'
,
ws
:
false
,
changeOrigin
:
true
,
secure
:
true
,
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录