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
提交
ff291aae
提交
ff291aae
编写于
12月 02, 2021
作者:
qian.jie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
工作站显示
上级
b814582e
变更
9
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
1374 行增加
和
171 行删除
+1374
-171
diagnosis.js
src/api/diagnosis.js
+7
-0
workbench.js
src/api/workbench.js
+16
-1
consultation.vue
src/components/common/consultation.vue
+21
-8
department-doctor.vue
src/components/common/department-doctor.vue
+97
-0
inquiryNew-list.vue
src/components/common/inquiryNew-list.vue
+863
-0
administrators.vue
src/views/IM/diagnosis-admin/administrators.vue
+51
-4
operation.vue
src/views/IM/diagnosis-admin/operation.vue
+77
-0
workbench-new.vue
src/views/IM/diagnosis-admin/workbench-new.vue
+240
-156
slidebar.vue
src/views/layout/components/slidebar.vue
+2
-2
未找到文件。
src/api/diagnosis.js
浏览文件 @
ff291aae
...
@@ -310,3 +310,10 @@ export const updateDepartmentId = async (data) => {
...
@@ -310,3 +310,10 @@ export const updateDepartmentId = async (data) => {
method
:
'post'
,
method
:
'post'
,
});
});
};
};
export
const
doctorDeparList
=
async
(
data
)
=>
{
return
request
({
url
:
`/diagnose/admin/diagnose/department/and/doctorList/
${
data
.
uid
}
`
,
method
:
'get'
,
});
};
src/api/workbench.js
浏览文件 @
ff291aae
...
@@ -6,3 +6,18 @@ export const conditionUpdate = async(data) => {
...
@@ -6,3 +6,18 @@ export const conditionUpdate = async(data) => {
method
:
'post'
,
method
:
'post'
,
});
});
};
};
export
const
doctorListAnd
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/admin/diagnose/operate/and/doctorList'
,
data
:
data
,
method
:
'post'
,
});
};
export
const
doctorListRest
=
async
(
data
)
=>
{
return
request
({
url
:
`diagnose/admin/diagnose/reset/operate/doctorList/
${
data
.
uid
}
`
,
method
:
'get'
,
});
};
\ No newline at end of file
src/components/common/consultation.vue
浏览文件 @
ff291aae
...
@@ -2,16 +2,20 @@
...
@@ -2,16 +2,20 @@
<div
<div
class=
"consultationlist"
class=
"consultationlist"
style=
"user-select: none"
style=
"user-select: none"
@
click=
"goworkBench"
>
>
<div
class=
"list"
>
<div
class=
"list"
>
<div
class=
"name"
>
<div
class=
"name"
>
{{
operatorsItem
.
name
||
''
}}
{{
operatorsItem
.
name
||
''
}}
</div>
</div>
<div
class=
"details"
>
<div
class=
"details"
@
click=
"goSelectDeart"
>
<!--
<div
class=
"handle"
>
待处理:
<span>
暂无
</span></div>
-->
<div
class=
"see"
>
<div
class=
"see"
>
<span>
查看详情
</span>
<span>
查看选择科室
</span>
<i
class=
"el-icon-arrow-right"
/>
</div>
</div>
<div
class=
"details"
@
click=
"goworkBench"
>
<div
class=
"see"
>
<span>
待处理详情
</span>
<i
class=
"el-icon-arrow-right"
/>
<i
class=
"el-icon-arrow-right"
/>
</div>
</div>
</div>
</div>
...
@@ -64,6 +68,12 @@
...
@@ -64,6 +68,12 @@
}
}
});
});
},
},
goSelectDeart
()
{
this
.
$router
.
push
({
path
:
'/workbench-new'
,
query
:
{
id
:
this
.
operatorsItem
.
id
},
});
}
},
},
};
};
</
script
>
</
script
>
...
@@ -81,10 +91,10 @@
...
@@ -81,10 +91,10 @@
.details
{
.details
{
width
:
120px
;
width
:
120px
;
height
:
40px
;
height
:
40px
;
background
:
rgba
(
68
,
146
,
132
,
0
.24
);
background
:
rgba
(
0
,
189
,
165
,
0
.13
);
border-radius
:
20px
;
border-radius
:
20px
;
opacity
:
0
.44
;
//
opacity: 0.44;
border
:
1px
solid
#449284
;
border
:
1px
solid
rgba
(
0
,
189
,
165
,
0
.13
)
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-evenly
;
justify-content
:
space-evenly
;
align-items
:
center
;
align-items
:
center
;
...
@@ -107,7 +117,10 @@
...
@@ -107,7 +117,10 @@
font-size
:
14px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#6a7990
;
color
:
#0D9078
;
}
i
{
color
:
rgba
(
13
,
144
,
120
,
1
);
}
}
}
}
}
}
...
...
src/components/common/department-doctor.vue
0 → 100644
浏览文件 @
ff291aae
<
template
>
<div
class=
"depart-doctor"
>
<el-tabs
v-model=
"activeMoutendName"
@
tab-click=
"handleClick"
>
<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;"
/>
<el-checkbox-group
v-model=
"item.checkDoctorIdListByDepartment"
@
change=
"((val)=>
{handleCheckedCitiesChange(val,item)})"
>
<el-checkbox
v-for=
"itemChild in item.diagnoseOperateDoctorRespList"
:key=
"itemChild.doctorId"
:label=
"itemChild.doctorId"
:disabled=
"itemChild.disabled"
>
{{
itemChild
.
doctorName
+
' '
}}{{
' '
+
itemChild
.
doctorId
}}
</el-checkbox>
</el-checkbox-group>
</el-tab-pane>
</el-tabs>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
departDoctorList
:{
type
:
Array
,
default
()
{
return
[];
},
},
activeMoutendName
:{
type
:
String
,
default
()
{
return
''
;
},
}
},
data
()
{
return
{
};
},
computed
:
{
},
watch
:
{
},
created
()
{
},
mounted
()
{
},
methods
:
{
handleClick
(
value
)
{
console
.
log
(
value
,
'value'
);
},
handleCheckAllChange
(
value
,
item
)
{
let
itemNameList
=
[];
if
(
value
)
{
itemNameList
=
(
item
.
diagnoseOperateDoctorRespList
||
[]).
map
(
item
=>
{
return
item
.
doctorId
;
});
}
item
.
checkDoctorIdListByDepartment
=
value
?
itemNameList
:
[];
item
.
isIndeterminate
=
false
;
this
.
$emit
(
'getDepartlist'
,
this
.
departDoctorList
);
},
/**
* checkbox状态 (根据绑定值 checkAll 与 isIndeterminate 联动)
* 半选:checkAll: true或者false,isIndeterminate:true
* 全选:checkAll:true isIndeterminate:false
* 不选:checkAll:false isIndeterminate:false
*/
handleCheckedCitiesChange
(
value
,
item
)
{
const
checkedCount
=
value
.
length
;
item
.
checkAll
=
checkedCount
===
item
.
diagnoseOperateDoctorRespList
.
length
;
if
(
checkedCount
>
0
&&
checkedCount
<
item
.
diagnoseOperateDoctorRespList
.
length
)
{
item
.
isIndeterminate
=
true
;
item
.
checkAll
=
true
;
}
else
{
item
.
isIndeterminate
=
false
;
}
this
.
$emit
(
'getDepartlist'
,
this
.
departDoctorList
);
}
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/components/common/inquiryNew-list.vue
0 → 100644
浏览文件 @
ff291aae
<
template
>
<div
class=
"inquiry-wrap"
>
<div
class=
"line"
>
<div
class=
"left"
>
<div>
{{
item
.
diagnoseLogId
}}
介迁
<span
class=
"dep"
>
{{
item
.
department
}}
内科
</span>
</div>
</div>
<div
class=
"right"
>
<div
class=
"right-status"
:class=
"
{ grey: item.returnStatus >= 5, org: item.returnStatus == 1 }"
>
{{
returnStatusText
}}
333
</div>
</div>
</div>
<div
class=
"tag-container"
>
<div
class=
"talk"
>
<i
class=
"talk-icon"
:class=
"diagnoseTypeIcon"
/><span>
{{
diagnoseType
}}
444
</span>
</div>
<div
class=
"time"
>
<i
class=
"appointment"
/><span>
{{
appointBeginTime
}}
555
</span>
-
<span>
{{
appointEndTime
}}
666
</span>
</div>
</div>
<div
class=
"line mt30"
>
<div
class=
"inquiry-user-container"
>
<div
class=
"inquiry-user"
>
<div
class=
"inquiry-user-l"
>
<div
class=
"inquiry-user-img"
>
<div
v-if=
"
diagnoseTypeIcon == 'voice' &&
(item.returnStatus == 1 || item.returnStatus == 3) &&
doctorTrtcEntryStatus != 1
"
class=
"offline"
>
<img
:src=
"offline"
alt=
""
>
</div>
<div
class=
"avatar"
>
<el-avatar
:src=
"item.doctorImageUrl"
/>
</div>
</div>
<div
class=
"inquiry-user-info"
>
<div
class=
"info-name-wrap"
>
<span
class=
"info-name"
>
{{
item
.
doctorName
}}
</span>
<span>
接诊医生
</span>
</div>
<div
class=
"info-container"
>
<div
class=
"info-phone"
>
{{
item
.
doctorMobile
}}
777
</div>
<div
v-if=
"item.doctorCallTime"
class=
"info-call-time"
>
{{
pastDoctorCallTime
}}
前呼叫
</div>
<div
v-if=
"doctorCallKfStatus == 1"
class=
"info-calling"
>
<img
:src=
"infocallImg"
alt=
""
>
</div>
</div>
</div>
</div>
<div
class=
"manual-call-status"
>
<div
class=
"manual-dialing"
>
<img
:src=
"isManuacall ? manuacallIng : manuacall"
alt=
""
@
click=
"manualDialing(1)"
>
</div>
<div
v-if=
"diagnoseTypeIcon == 'voice' && doctorTrtcEntryStatus == 2"
class=
"call-status"
>
<img
v-if=
"isCall"
:src=
"isDoctorChat ? callouting : callout"
alt=
""
@
click=
"drivingCall(item.doctorId, 2)"
>
</div>
</div>
</div>
<div
class=
"inquiry-user-status"
>
<span
:class=
"
doctorCallStatus === '已拨打完成'
? 'status-cll-user-finish'
: 'status-cll-user-answer'
"
>
{{
doctorCallStatus
}}
</span>
</div>
<div
class=
"line-btn"
@
click=
"openChat"
>
<span
v-if=
"userCallKfStatus == 1 || doctorCallKfStatus == 1"
>
正在呼叫医助,进入诊室
</span>
<span
v-else
>
进入诊室
</span>
</div>
</div>
<div
class=
"inquiry-user-container"
>
<div
class=
"inquiry-user"
>
<div
class=
"inquiry-user-l"
>
<div
class=
"inquiry-user-img"
>
<div
v-if=
"
diagnoseTypeIcon == 'voice' &&
(item.returnStatus == 1 || item.returnStatus == 3) &&
userTrtcEntryStatus != 1
"
class=
"offline"
>
<img
:src=
"offline"
alt=
""
>
</div>
<div
class=
"avatar"
>
<el-avatar
:src=
"item.userImageUrl"
/>
</div>
</div>
<div
class=
"inquiry-user-info"
>
<div
class=
"info-name-wrap"
>
<span
class=
"info-name"
>
{{
item
.
userName
}}
</span>
<span>
助诊医生
</span>
</div>
<div
class=
"info-container"
>
<div
class=
"info-phone"
>
{{
item
.
userMobile
}}
</div>
<div
v-if=
"item.userCallTime"
class=
"info-call-time"
>
{{
pastUserCallTime
}}
前呼叫
</div>
<div
v-if=
"userCallKfStatus == 1"
class=
"info-calling"
>
<img
:src=
"infocallImg"
alt=
""
>
</div>
</div>
</div>
</div>
<div
class=
"manual-call-status"
>
<div
class=
"manual-dialing"
>
<img
:src=
"isManuacallType ? manuacallIng : manuacall"
alt=
""
@
click=
"manualDialing(2)"
>
</div>
<div
v-if=
"diagnoseTypeIcon == 'voice' && userTrtcEntryStatus == 2"
class=
"call-status"
>
<img
v-if=
"isCall"
:src=
"isUserChat ? callouting : callout"
alt=
""
@
click=
"drivingCall(item.userId, 1)"
>
</div>
</div>
</div>
<div
class=
"inquiry-user-status"
>
<span
:class=
"
userCallStatus === '已拨打完成'
? 'status-cll-user-finish'
: 'status-cll-user-answer'
"
>
{{
userCallStatus
}}
</span>
</div>
<div
class=
"line-btn"
@
click=
"openAdvice"
>
诊断建议
<div
v-if=
"item.adviceStatus && item.adviceStatus == 2"
class=
"line-btn-tap"
>
未写
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
teamDetail
,
callDirect
,
doctorAdviceList
,
manualCall
,
}
from
'@/api/diagnosis'
;
import
{
createNamespacedHelpers
}
from
'vuex'
;
const
{
mapState
}
=
createNamespacedHelpers
(
'main'
);
export
default
{
props
:
{
item
:
{
type
:
Object
,
default
:
()
=>
{
return
{};
},
},
},
data
()
{
return
{
infocallImg
:
require
(
'@/assets/image/workbench/calling.png'
),
callout
:
require
(
'@/assets/image/workbench/appremind.png'
),
callouting
:
require
(
'@/assets/image/workbench/remindalready.png'
),
offline
:
require
(
'@/assets/image/workbench/offline.png'
),
manuacall
:
require
(
'@/assets/image/workbench/maulcall.png'
),
manuacallIng
:
require
(
'@/assets/image/workbench/calling.gif'
),
timer
:
null
,
isChat
:
false
,
isUserChat
:
false
,
isDoctorChat
:
false
,
isCall
:
false
,
isManuacall
:
false
,
isManuacallType
:
false
,
accId
:
''
,
};
},
computed
:
{
...
mapState
({
showChat
:
(
state
)
=>
state
.
showChat
,
showAdvice
:
(
state
)
=>
state
.
showAdvice
,
}),
doctorCallStatus
()
{
switch
(
this
.
item
.
doctorCallStatus
)
{
case
1
:
return
'未拨打'
;
case
2
:
return
'已拨打未接听'
;
case
3
:
return
'被挂断'
;
case
4
:
return
'已拨打完成'
;
default
:
return
''
;
}
},
userCallStatus
()
{
switch
(
this
.
item
.
userCallStatus
)
{
case
1
:
return
'未拨打'
;
case
2
:
return
'已拨打未接听'
;
case
3
:
return
'被挂断'
;
case
4
:
return
'已拨打完成'
;
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'
;
}
},
returnStatusText
()
{
switch
(
this
.
item
.
returnStatus
)
{
case
1
:
return
'待处理'
;
case
2
:
return
'待问诊'
;
case
3
:
return
'问诊进行中'
;
case
4
:
return
'问诊已完成'
;
case
5
:
return
'已取消'
;
default
:
return
'暂无'
;
}
},
appointBeginTime
()
{
return
new
Date
(
this
.
item
.
appointBeginTime
).
format
(
'yyyy-MM-dd hh:mm'
);
},
appointEndTime
()
{
return
new
Date
(
this
.
item
.
appointEndTime
).
format
(
'hh:mm'
);
},
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
;
},
pastUserCallTime
()
{
if
(
this
.
item
.
userCallTime
)
{
return
this
.
formatDateData
(
this
.
item
.
userCallTime
);
}
else
{
return
null
;
}
},
doctorCallTime
()
{
return
new
Date
(
this
.
item
.
doctorCallTime
).
format
(
'hh:mm'
);
},
pastDoctorCallTime
()
{
if
(
this
.
item
.
doctorCallTime
)
{
return
this
.
formatDateData
(
this
.
item
.
doctorCallTime
);
}
else
{
return
null
;
}
},
nowtime
()
{
return
new
Date
().
getTime
()
-
this
.
item
.
appointBeginTime
;
},
},
watch
:
{
item
(
newVal
,
oldVal
)
{
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
;
}
if
(
newVal
.
userCallStatus
!==
oldVal
.
userCallStatus
)
{
this
.
isManuacallType
=
false
;
}
}
},
},
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
;
}
}
},
methods
:
{
manualDialing
(
type
)
{
this
.
$confirm
(
'确认要电话通知该医生吗?'
,
'提示'
,
{
confirmButtonText
:
'电话通知'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
})
.
then
(()
=>
{
let
userMobilePhone
=
''
;
let
userId
=
''
;
let
doctorId
=
''
;
let
doctorMobilePhone
=
''
;
if
(
type
===
1
)
{
userMobilePhone
=
null
;
userId
=
null
;
doctorId
=
this
.
item
.
doctorId
;
doctorMobilePhone
=
this
.
item
.
doctorMobile
;
}
else
{
userMobilePhone
=
this
.
item
.
userMobile
;
userId
=
this
.
item
.
userId
;
doctorId
=
null
;
doctorMobilePhone
=
null
;
}
const
params
=
{
diagnoseId
:
this
.
item
.
diagnoseLogId
,
doctorId
:
doctorId
,
doctorMobilePhone
:
doctorMobilePhone
,
userId
:
userId
,
userMobilePhone
:
userMobilePhone
,
};
manualCall
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
if
(
type
===
1
)
{
this
.
isManuacall
=
true
;
}
else
{
this
.
isManuacallType
=
true
;
}
}
});
})
.
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'取消拨打电话'
,
});
});
},
formatDateData
(
time
)
{
const
now_data
=
new
Date
().
getTime
();
const
my_time
=
now_data
-
time
;
const
hours
=
my_time
/
1000
/
60
/
60
;
const
hoursRound
=
Math
.
floor
(
hours
);
const
minutes
=
my_time
/
1000
/
60
-
60
*
hoursRound
;
const
minutesRound
=
Math
.
floor
(
minutes
);
const
seconds
=
(
my_time
/
1000
-
60
*
60
*
hoursRound
-
60
*
minutesRound
).
toFixed
(
0
);
if
(
hoursRound
>
0
&&
minutesRound
>
0
)
{
return
hoursRound
+
'小时'
+
minutesRound
+
'分'
+
seconds
+
'秒'
;
}
if
(
hoursRound
==
0
&&
minutesRound
>
0
)
{
return
minutesRound
+
'分'
;
}
if
(
hoursRound
==
0
&&
minutesRound
==
0
)
{
return
seconds
+
'秒'
;
}
},
down
()
{
this
.
timer
=
setInterval
(()
=>
{
const
nowData
=
new
Date
().
getTime
();
const
timeleft
=
this
.
item
.
appointBeginTime
-
nowData
;
if
(
timeleft
<
120000
&&
nowData
<
this
.
item
.
appointEndTime
)
{
this
.
isCall
=
true
;
clearInterval
(
this
.
timer
);
}
},
1000
);
},
getInfo
(
id
)
{
return
teamDetail
({
tid
:
this
.
item
.
imTeamId
,
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
const
{
memberList
}
=
res
.
data
;
console
.
log
(
'---memberList'
,
memberList
);
if
(
memberList
)
{
const
accId
=
memberList
.
filter
((
val
)
=>
{
return
val
.
id
==
id
;
});
return
accId
[
0
].
accId
;
}
}
})
.
catch
(()
=>
{});
},
// 主动呼叫 roletype 1:助诊医生 2:接诊医生
drivingCall
(
id
,
roletype
)
{
if
(
roletype
==
1
&&
this
.
isUserChat
)
{
return
false
;
}
if
(
roletype
==
2
&&
this
.
isDoctorChat
)
{
return
false
;
}
this
.
getInfo
(
id
).
then
((
res
)
=>
{
const
params
=
{
imAccId
:
res
,
imTeamId
:
this
.
item
.
imTeamId
,
liveRoomId
:
this
.
item
.
roomId
,
};
callDirect
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
if
(
roletype
==
1
)
{
this
.
isUserChat
=
true
;
}
else
{
this
.
isDoctorChat
=
true
;
}
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
'warning'
,
});
}
});
});
},
openChat
()
{
if
(
this
.
showChat
)
{
this
.
$message
({
message
:
'不可同时进入多个诊室,请先退出已进入的诊室,再试。'
,
type
:
'warning'
,
duration
:
1000
,
});
return
false
;
}
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
);
});
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.inquiry-wrap
{
box-sizing
:
border-box
;
margin-bottom
:
10px
;
padding
:
20px
32px
;
background
:
#ffffff
;
border-radius
:
18px
;
user-select
:
none
;
// min-width: 610px;
border
:
1px
solid
#cccccc
;
.line
{
display
:
flex
;
justify-content
:
space-between
;
.left
{
color
:
#02120f
;
font-size
:
28px
;
.dep
{
font-size
:
20px
;
}
}
.right
{
.right-status
{
color
:
#0d9078
;
font-size
:
14px
;
}
.right-time
{
margin-top
:
5px
;
color
:
#6a7990
;
font-size
:
12px
;
}
.grey
{
color
:
#6a7990
;
}
.org
{
color
:
#ff5e57
;
}
}
.inquiry-user-container
{
width
:
49%
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
.inquiry-user
{
width
:
calc
(
100%
-
10px
);
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
10px
;
padding
:
0
5px
;
.inquiry-user-l
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
.inquiry-user-img
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
position
:
relative
;
width
:
40px
;
height
:
40px
;
.offline
{
position
:
absolute
;
left
:
-4px
;
top
:
-4px
;
z-index
:
10
;
}
.avatar
{
position
:
absolute
;
left
:
0
;
top
:
0
;
background
:
#dddddd
;
border-radius
:
36px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
}
}
.inquiry-user-info
{
font-size
:
14px
;
margin-left
:
15px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
.info-name-wrap
{
display
:
flex
;
align-items
:
center
;
}
.info-name
{
display
:
inline-block
;
max-width
:
85px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
font-size
:
18px
;
color
:
#02120f
;
font-weight
:
bold
;
}
.info-container
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
center
;
flex-direction
:
row
;
height
:
25px
;
line-height
:
25px
;
.info-phone
{
color
:
#6a7990
;
font-size
:
16px
;
}
.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
{
display
:
flex
;
.manual-dialing
{
margin-right
:
5px
;
cursor
:
pointer
;
img
{
width
:
27px
;
height
:
48px
;
}
}
.call-status
{
// width: 45px;
// height: 46px;
img
{
cursor
:
pointer
;
width
:
27px
;
height
:
48px
;
}
}
}
}
}
.inquiry-user-status
{
width
:
calc
(
100%
-
130px
);
padding-bottom
:
15px
;
height
:
38px
;
.status-cll-user-answer
{
background
:
rgba
(
255
,
94
,
87
,
0
.07
);
border-radius
:
10px
;
border
:
1px
solid
rgba
(
255
,
94
,
87
,
0
.15
);
padding
:
0
4px
;
height
:
20px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#ff5e57
;
line-height
:
20px
;
margin-right
:
6px
;
}
.status-cll-user-finish
{
background
:
rgba
(
0
,
189
,
165
,
0
.07
);
border-radius
:
10px
;
border
:
1px
solid
rgba
(
0
,
189
,
165
,
0
.17
);
padding
:
0
4px
;
height
:
20px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#0d9078
;
line-height
:
20px
;
margin-right
:
6px
;
}
}
.line-btn
{
cursor
:
pointer
;
position
:
relative
;
width
:
100%
;
height
:
37px
;
background
:
rgba
(
68
,
146
,
132
,
0
.09
);
border-radius
:
23px
;
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.31
);
text-align
:
center
;
line-height
:
37px
;
color
:
#0d9078
;
font-size
:
14px
;
font-weight
:
bold
;
.line-btn-tap
{
position
:
absolute
;
top
:
-10px
;
right
:
20px
;
width
:
48px
;
height
:
20px
;
background
:
#0d9078
;
border-radius
:
7px
7px
7px
0px
;
font-size
:
14px
;
color
:
#ffffff
;
line-height
:
20px
;
}
span
{
font-weight
:
bold
;
}
}
}
.tag-container
{
display
:
flex
;
justify-content
:
flex-start
;
.talk
{
margin-right
:
5px
;
width
:
120px
;
height
:
24px
;
line-height
:
24px
;
background
:
#f0f2f5
;
border-radius
:
23px
;
font-size
:
14px
;
color
:
#6a7990
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
.talk-icon
{
margin-right
:
5px
;
}
}
.time
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
217px
;
height
:
24px
;
line-height
:
24px
;
background
:
#f0f2f5
;
border-radius
:
23px
;
font-size
:
14px
;
color
:
#6a7990
;
}
}
.mt30
{
margin-top
:
30px
;
}
.mt20
{
margin-top
:
20px
;
}
.appointment
{
width
:
12px
;
height
:
12px
;
display
:
inline-block
;
background
:
url('../../assets/image/workbench/appointment.png')
no-repeat
;
background-size
:
cover
;
margin-right
:
5px
;
}
.video
{
width
:
12px
;
height
:
12px
;
display
:
inline-block
;
background
:
url('../../assets/image/workbench/video.png')
no-repeat
;
background-size
:
cover
;
}
.photo
{
width
:
12px
;
height
:
12px
;
display
:
inline-block
;
background
:
url('../../assets/image/workbench/photo.png')
no-repeat
;
background-size
:
cover
;
}
.voice
{
width
:
12px
;
height
:
12px
;
display
:
inline-block
;
background
:
url('../../assets/image/workbench/voice.png')
no-repeat
;
background-size
:
cover
;
}
}
</
style
>
src/views/IM/diagnosis-admin/administrators.vue
浏览文件 @
ff291aae
...
@@ -7,8 +7,8 @@
...
@@ -7,8 +7,8 @@
<el-breadcrumb-item>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>
我的工作台
</el-breadcrumb-item>
<el-breadcrumb-item>
我的工作台
</el-breadcrumb-item>
</el-breadcrumb>
</el-breadcrumb>
<el-row
style=
"margin-top: 30px"
>
<el-row
style=
"margin-top: 30px
;display:flex;alignItems:center"
class=
"row-col-show
"
>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<div
class=
"left"
>
<div
class=
"left"
>
<el-row
<el-row
type=
"flex"
type=
"flex"
...
@@ -18,7 +18,6 @@
...
@@ -18,7 +18,6 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-date-picker
<el-date-picker
v-model=
"workbenchAdminDate"
v-model=
"workbenchAdminDate"
style=
"margin-top: 10px"
type=
"date"
type=
"date"
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
placeholder=
"选择日期"
placeholder=
"选择日期"
...
@@ -27,6 +26,15 @@
...
@@ -27,6 +26,15 @@
</el-row>
</el-row>
</div>
</div>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"right"
>
<span
class=
"totalNumShow"
>
累计汇总数
</span>
<span
class=
"callDoctorShow"
>
呼叫医助次数
</span>
<span
class=
"callDoctorNum"
>
389
</span>
<span
class=
"laterDoctorShow"
>
接诊医生迟到人数
</span>
<span
class=
"laterDoctorNum"
>
167
</span>
</div>
</el-col>
</el-row>
</el-row>
</div>
</div>
<!-- 问诊列表 -->
<!-- 问诊列表 -->
...
@@ -101,7 +109,6 @@
...
@@ -101,7 +109,6 @@
.header
{
.header
{
padding
:
30px
;
padding
:
30px
;
width
:
100%
;
width
:
100%
;
background
:
#ffffff
;
background
:
#ffffff
;
.el-input__inner
{
.el-input__inner
{
width
:
173px
;
width
:
173px
;
...
@@ -110,6 +117,46 @@
...
@@ -110,6 +117,46 @@
border-radius
:
7px
;
border-radius
:
7px
;
border
:
1px
solid
#d9d9d9
;
border
:
1px
solid
#d9d9d9
;
}
}
.row-col-show
{
.el-col-12
{
.right
{
display
:
flex
;
width
:
70%
;
align-items
:
center
;
justify-content
:
space-around
;
.totalNumShow
{
font-size
:
16px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#212121
;
}
.callDoctorShow
{
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#666666
;
}
.callDoctorNum
{
font-size
:
24px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#212121
;
}
.laterDoctorShow
{
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#666666
;
}
.laterDoctorNum
{
font-size
:
24px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#212121
;
}
}
}
}
}
}
.detailslist
{
.detailslist
{
display
:
flex
;
display
:
flex
;
...
...
src/views/IM/diagnosis-admin/operation.vue
浏览文件 @
ff291aae
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
v-for=
"(item, index) in adminList"
v-for=
"(item, index) in adminList"
:key=
"index"
:key=
"index"
class=
"checkbox-item"
class=
"checkbox-item"
@
change=
"((val)=>
{setResert(val,item)})"
>
>
<el-checkbox
:label=
"item.id"
>
<el-checkbox
:label=
"item.id"
>
{{
item
.
name
}}
{{
item
.
name
}}
...
@@ -40,6 +41,33 @@
...
@@ -40,6 +41,33 @@
</el-button>
</el-button>
</div>
</div>
</div>
</div>
<el-dialog
:visible
.
sync=
"showIsReset"
width=
"30%"
>
<div
class=
"show-info-title"
>
<p>
将永久删除名下
</p>
<p>
所有的科室及上级医生
</p>
</div>
<div
class=
"work-info-botton"
style=
"text-align: center"
>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center"
>
<el-button
class=
"cancel-submit"
@
click=
"cancelResert"
>
取 消
</el-button>
<el-button
class=
"contest"
type=
"primary"
:disabled=
"isClick"
@
click=
"confirmResert"
>
确定
</el-button>
</span>
</div>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -48,11 +76,14 @@
...
@@ -48,11 +76,14 @@
operatorQuery
,
operatorQuery
,
sumbitMatch
sumbitMatch
}
from
'@/api/operation'
;
}
from
'@/api/operation'
;
import
{
doctorListRest
}
from
'@/api/workbench'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
checklist
:
[],
checklist
:
[],
adminList
:
[],
adminList
:
[],
showIsReset
:
false
,
operateId
:
''
};
};
},
},
mounted
()
{
mounted
()
{
...
@@ -60,6 +91,12 @@
...
@@ -60,6 +91,12 @@
this
.
getAdminList
();
this
.
getAdminList
();
},
},
methods
:
{
methods
:
{
setResert
(
value
,
item
)
{
if
(
this
.
checklist
.
indexOf
(
item
.
id
)
==
-
1
)
{
this
.
showIsReset
=
true
;
this
.
operateId
=
item
.
id
;
}
},
cancel
()
{
cancel
()
{
this
.
$confirm
(
'取消后将不保存本次操作内容'
,
'确认取消吗?'
,
{
this
.
$confirm
(
'取消后将不保存本次操作内容'
,
'确认取消吗?'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
...
@@ -90,6 +127,7 @@
...
@@ -90,6 +127,7 @@
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
checklist
=
res
.
data
;
this
.
checklist
=
res
.
data
;
console
.
log
(
this
.
checklist
,
'this.111111'
);
}
}
})
})
.
catch
(()
=>
{
.
catch
(()
=>
{
...
@@ -103,6 +141,19 @@
...
@@ -103,6 +141,19 @@
}
}
});
});
},
},
cancelResert
()
{
this
.
showIsReset
=
false
;
},
confirmResert
()
{
const
param
=
{
uid
:
this
.
operateId
};
doctorListRest
(
param
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
showIsReset
=
false
;
}
});
},
},
},
};
};
</
script
>
</
script
>
...
@@ -139,5 +190,31 @@
...
@@ -139,5 +190,31 @@
align-items
:
center
;
align-items
:
center
;
}
}
}
}
.show-info-title
{
text-align
:
center
;
padding
:
30px
;
font-size
:
18px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#02120F
;
}
.dialog-footer
{
.contest
{
min-width
:
160px
;
height
:
40px
;
background
:
#0d9078
;
border-radius
:
20px
;
}
.cancel-submit
{
min-width
:
160px
;
height
:
40px
;
border-radius
:
20px
;
border
:
1px
solid
#0d9078
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#0d9078
;
}
}
}
}
</
style
>
</
style
>
src/views/IM/diagnosis-admin/workbench-new.vue
浏览文件 @
ff291aae
...
@@ -4,36 +4,6 @@
...
@@ -4,36 +4,6 @@
<div
class=
"title"
>
<div
class=
"title"
>
我的工作台
我的工作台
</div>
</div>
<!-- 时间 -->
<div
class=
"search-box"
>
<div
class=
"search-item"
>
<el-date-picker
v-model=
"searchParam.dateTime"
type=
"date"
size=
"small"
clear-icon=
"el-input-icon"
:clearable=
"false"
@
change=
"changeDatetime"
/>
</div>
<div
class=
"searh-input"
>
<el-input
v-model=
"searchValue"
placeholder=
"输入问诊单号/医生姓名"
class=
"input-with-select"
@
change=
"getSerachValue"
>
<el-button
slot=
"append"
class=
"search-botton"
@
click=
"getSerValue"
>
搜索
</el-button>
</el-input>
</div>
</div>
<!-- tab栏 -->
<el-radio-group
<el-radio-group
v-model=
"tabPositionValue"
v-model=
"tabPositionValue"
class=
"workbench-tab"
class=
"workbench-tab"
...
@@ -50,62 +20,63 @@
...
@@ -50,62 +20,63 @@
</div>
</div>
<div
class=
"workbench-content"
>
<div
class=
"workbench-content"
>
<div
<div
v-if=
"
currentDiagList
"
v-if=
"
tabPositionValue == '医生认领'
"
class=
"workbench-li-c"
class=
"workbench-li-c"
>
>
<div
<div
class=
"grid-c"
>
v-if=
"tabPositionValue == '全部订单'"
<department-doctor
class=
"grid-c"
:depart-doctor-list=
"departDoctorList"
>
:active-moutend-name=
"activeMoutendName"
<el-checkbox-group
@
getDepartlist=
"getDepartlist"
v-model=
"checkedValues"
/>
@
change=
"handleCheckedCitiesChange"
>
<el-checkbox
v-for=
"item in cityOptions"
:key=
"item.id"
:label=
"item.value"
>
{{
item
.
value
}}
</el-checkbox>
</el-checkbox-group>
<div
class=
"search-botton"
>
<el-button>
确定
</el-button>
</div>
</div>
<div
class=
"depart-footer"
style=
"text-align: right"
>
<el-button
class=
"rest-depar"
@
click=
"restDepartList"
>
重置所有科室
</el-button>
<el-button
type=
"primary"
class=
"con-depar"
@
click=
"confirmDoctorList"
>
确定
</el-button>
</div>
</div>
<div
v-else
>
</div>
111111
<div
v-else
class=
"search-wait"
>
<div
class=
"wait-show-num"
>
辛苦你!今日已处理
<span>
20次
</span>
</div>
<div
class=
"search-list"
>
<div
class=
"search-list-info"
>
<inquiryList-component
:item=
"item"
/>
</div>
</div>
</div>
</div>
<div
v-else
class=
"nodata-container"
>
<img
src=
"../../../assets/image/workbench/no_data_wz.png"
alt=
""
>
<div
class=
"nodata-title"
>
暂时没有问诊
</div>
</div>
</div>
</div>
<!--
<div
<el-dialog
v-if=
"allSize > 0
"
:visible
.
sync=
"showIsReset
"
class=
"pagination-container
"
width=
"30%
"
>
>
<el-pagination
<div
class=
"show-info-title"
>
background
<p>
将永久删除名下
</p>
:current-page=
"searchParam.pageNo"
<p>
所有的科室及上级医生
</p>
:page-sizes=
"[6, 12, 18, 24]"
</div>
:page-size=
"searchParam.pageSize"
<div
class=
"work-info-botton"
style=
"text-align: center"
>
layout=
"prev, pager, next, sizes, jumper"
<span
:total=
"allSize"
slot=
"footer"
@
size-change=
"handleSizeChange"
class=
"dialog-footer"
@
current-change=
"handleCurrentChange"
style=
"text-align: center"
/>
>
</div>
-->
<el-button
class=
"cancel-submit"
@
click=
"cancelResert"
>
取 消
</el-button>
<el-button
class=
"contest"
type=
"primary"
:disabled=
"isClick"
@
click=
"confirmResert"
>
确定
</el-button>
</span>
</div>
</div>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
...
@@ -113,11 +84,15 @@
...
@@ -113,11 +84,15 @@
import
{
createNamespacedHelpers
}
from
'vuex'
;
import
{
createNamespacedHelpers
}
from
'vuex'
;
const
{
mapState
}
=
createNamespacedHelpers
(
'main'
);
const
{
mapState
}
=
createNamespacedHelpers
(
'main'
);
import
storejs
from
'storejs'
;
import
storejs
from
'storejs'
;
// import InquiryListComponent from '../../../components/common/inquirylist.vue';
import
DepartmentDoctor
from
'../../../components/common/department-doctor.vue'
;
import
{
conditionUpdate
}
from
'@/api/workbench'
;
import
InquiryListComponent
from
'../../../components/common/inquiryNew-list.vue'
;
import
{
conditionUpdate
,
doctorListAnd
,
doctorListRest
}
from
'@/api/workbench'
;
import
{
doctorDeparList
}
from
'@/api/diagnosis'
;
import
_
from
'lodash'
;
export
default
{
export
default
{
components
:
{
components
:
{
// InquiryListComponent,
InquiryListComponent
,
DepartmentDoctor
},
},
data
()
{
data
()
{
const
s
=
storejs
.
get
(
'soketQuest'
);
const
s
=
storejs
.
get
(
'soketQuest'
);
...
@@ -138,53 +113,30 @@
...
@@ -138,53 +113,30 @@
pageSize
:
6
,
pageSize
:
6
,
pageNo
:
1
,
pageNo
:
1
,
},
},
currentCalListNew
:
[
currentCalListNew
:[
{
{
id
:
1
,
id
:
1
,
name
:
'全部订单'
,
name
:
'医生认领'
},
},
{
{
id
:
1
,
id
:
1
,
name
:
'我的待处理'
,
name
:
'我的待处理'
},
},
],
],
cityOptions
:
[
checkedValues
:[],
{
tabPositionValue
:
'医生认领'
,
id
:
1
,
searchValue
:
''
,
value
:
'中医内科'
,
defaultProps
:
{
children
:
'children'
,
label
:
'label'
},
},
{
departDoctorList
:[],
id
:
2
,
newCheckList
:[],
value
:
'精神心理科'
,
cancelCheckList
:[],
},
checkDoctorIdList
:[],
{
activeMoutendName
:
''
,
id
:
3
,
operatId
:
''
,
value
:
'皮肤科'
,
showIsReset
:
false
},
{
id
:
4
,
value
:
'中医骨伤科'
,
},
{
id
:
5
,
value
:
'普外科'
,
},
{
id
:
6
,
value
:
'肛肠科'
,
},
{
id
:
7
,
value
:
'中医妇产科'
,
},
{
id
:
8
,
value
:
'儿科'
,
},
],
checkedValues
:
[],
tabPositionValue
:
'全部订单'
,
searchValue
:
''
,
};
};
},
},
computed
:
{
computed
:
{
...
@@ -221,6 +173,7 @@
...
@@ -221,6 +173,7 @@
},
},
created
()
{
created
()
{
console
.
log
(
'currentCalList---------------------'
,
this
.
currentCalList
);
console
.
log
(
'currentCalList---------------------'
,
this
.
currentCalList
);
this
.
operatId
=
this
.
$route
.
query
.
id
;
},
},
mounted
()
{
mounted
()
{
const
s
=
storejs
.
get
(
'soketQuest'
);
const
s
=
storejs
.
get
(
'soketQuest'
);
...
@@ -232,15 +185,82 @@
...
@@ -232,15 +185,82 @@
const
id
=
const
id
=
s
&&
s
.
operateUserId
?
s
.
operateUserId
:
this
.
isSuperAdmin
.
userID
;
s
&&
s
.
operateUserId
?
s
.
operateUserId
:
this
.
isSuperAdmin
.
userID
;
this
.
operateUserId
=
id
;
this
.
operateUserId
=
id
;
this
.
doctorDeparList
();
},
},
methods
:
{
methods
:
{
doctorDeparList
()
{
const
userInfo
=
storejs
.
get
(
'initSocketInfo'
);
const
{
userId
}
=
userInfo
;
const
param
=
{
uid
:
userId
};
doctorDeparList
(
param
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
checkDoctorIdList
=
res
.
data
.
checkDoctorIdList
||
[];
this
.
departDoctorList
=
res
.
data
.
diagnoseOperateDepartmentRespList
||
[];
this
.
activeMoutendName
=
(
res
.
data
.
diagnoseOperateDepartmentRespList
||
[])[
0
].
departmentId
;
}
});
},
restDepartList
()
{
this
.
showIsReset
=
true
;
},
cancelResert
()
{
this
.
showIsReset
=
false
;
},
confirmResert
()
{
const
userInfo
=
storejs
.
get
(
'initSocketInfo'
);
const
{
userId
}
=
userInfo
;
const
param
=
{
uid
:
this
.
operatId
?
this
.
operatId
:
userId
};
doctorListRest
(
param
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
showIsReset
=
false
;
this
.
doctorDeparList
();
}
});
},
getDepartlist
(
allCheckList
)
{
const
checkAllList
=
allCheckList
.
map
(
item
=>
{
return
item
.
checkDoctorIdListByDepartment
;
});
const
checkListFlat
=
checkAllList
.
flat
(
Infinity
);
// 取消医生IDlist
const
cancelList
=
_
.
difference
(
this
.
checkDoctorIdList
,
checkListFlat
);
// 新增的医生ID list
const
newCkList
=
_
.
difference
(
checkListFlat
,
this
.
checkDoctorIdList
);
const
checkAllDoctorList
=
allCheckList
.
map
(
item
=>
{
return
item
.
diagnoseOperateDoctorRespList
;
});
const
checkAllDoctorListFlat
=
checkAllDoctorList
.
flat
(
Infinity
);
this
.
newCheckList
=
newCkList
.
map
(
item
=>
checkAllDoctorListFlat
.
find
(
itemChild
=>
itemChild
.
doctorId
===
item
)).
filter
(
item
=>
item
);
this
.
cancelCheckList
=
cancelList
.
map
(
item
=>
checkAllDoctorListFlat
.
find
(
itemChild
=>
itemChild
.
doctorId
===
item
)).
filter
(
item
=>
item
);
},
confirmDoctorList
()
{
const
userInfo
=
storejs
.
get
(
'initSocketInfo'
);
const
{
userId
,
userName
}
=
userInfo
;
console
.
log
(
userId
,
userName
,
'userInfo'
);
const
params
=
{
cancelDoctorIdList
:
this
.
cancelCheckList
||
[],
insertDoctorIdList
:
this
.
newCheckList
||
[],
operateUserId
:
userId
,
operateUserName
:
userName
};
doctorListAnd
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
console
.
log
(
res
);
this
.
doctorDeparList
();
}
});
},
getSerachValue
(
value
)
{
getSerachValue
(
value
)
{
this
.
searchValue
=
value
;
this
.
searchValue
=
value
;
},
},
handleCheckedCitiesChange
(
value
)
{
handleCheckedCitiesChange
(
value
)
{
console
.
log
(
value
,
'value11'
);
console
.
log
(
value
,
'value11'
);
},
},
getSerValue
()
{
getSerValue
()
{
console
.
log
(
this
.
searchValue
,
'this.searchValue'
);
console
.
log
(
this
.
searchValue
,
'this.searchValue'
);
},
},
tabChange
(
val
)
{
tabChange
(
val
)
{
...
@@ -370,14 +390,14 @@
...
@@ -370,14 +390,14 @@
.input-item
{
.input-item
{
width
:
333px
;
width
:
333px
;
}
}
.el-input__inner
{
.el-input__inner
{
height
:
40px
;
height
:
40px
;
}
}
}
}
.searh-input
{
.searh-input
{
.el-input
{
.el-input
{
width
:
440px
;
width
:
440px
;
.search-botton
{
.search-botton
{
background
:
#0d9078
;
background
:
#0d9078
;
color
:
#fff
;
color
:
#fff
;
}
}
...
@@ -399,34 +419,36 @@
...
@@ -399,34 +419,36 @@
}
}
}
}
.workbench-content
{
.workbench-content
{
padding
:
20px
10px
;
.workbench-li-c
{
.workbench-li-c
{
padding
:
20px
10px
;
width
:
100%
;
width
:
100%
;
.grid-c
{
.grid-c
{
display
:
grid
;
display
:
grid
;
grid-row-gap
:
20px
;
grid-row-gap
:
20px
;
grid-column-gap
:
20px
;
grid-column-gap
:
20px
;
padding
:
25px
5
0px
;
padding
:
25px
3
0px
;
background
:
#fff
;
background
:
#fff
;
.el-checkbox-group
{
border-radius
:
10px
;
.el-checkbox
{
overflow-y
:
auto
;
.el-checkbox-group
{
.el-checkbox
{
width
:
20%
;
width
:
20%
;
padding
:
8px
;
padding
:
8px
;
}
}
}
}
.search-botton
{
.search-botton
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
margin-right
:
150px
;
margin-right
:
150px
;
.el-button
{
.el-button
{
width
:
180px
;
width
:
180px
;
height
:
40px
;
height
:
40px
;
background
:
#0
d
9078
;
background
:
#0
D
9078
;
border-radius
:
20px
;
border-radius
:
20px
;
font-size
:
14px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#
ffffff
;
color
:
#
FFFFFF
;
}
}
}
}
.workbench-li
{
.workbench-li
{
...
@@ -434,6 +456,41 @@
...
@@ -434,6 +456,41 @@
width
:
100%
;
width
:
100%
;
}
}
}
}
.depart-footer
{
margin-top
:
20px
;
.rest-depar
{
min-width
:
160px
;
height
:
40px
;
border-radius
:
20px
;
border
:
1px
solid
#0D9078
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#0D9078
;
}
.con-depar
{
min-width
:
160px
;
height
:
40px
;
background
:
#0D9078
;
border-radius
:
20px
;
}
}
}
.search-wait
{
border-top
:
solid
1px
#E9E9E9
;
.wait-show-num
{
background
:
#fff
;
height
:
40px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.search-list
{
padding
:
20px
17px
;
.search-list-info
{
background
:
#fff
;
}
}
}
}
.nodata-container
{
.nodata-container
{
background-color
:
#fff
;
background-color
:
#fff
;
...
@@ -471,6 +528,33 @@
...
@@ -471,6 +528,33 @@
margin-top
:
10px
;
margin-top
:
10px
;
padding
:
0
20px
;
padding
:
0
20px
;
}
}
}
.show-info-title
{
text-align
:
center
;
padding
:
30px
;
font-size
:
18px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#02120F
;
}
.dialog-footer
{
.contest
{
min-width
:
160px
;
height
:
40px
;
background
:
#0d9078
;
border-radius
:
20px
;
}
.cancel-submit
{
min-width
:
160px
;
height
:
40px
;
border-radius
:
20px
;
border
:
1px
solid
#0d9078
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#0d9078
;
}
}
}
}
}
...
...
src/views/layout/components/slidebar.vue
浏览文件 @
ff291aae
...
@@ -76,13 +76,13 @@
...
@@ -76,13 +76,13 @@
getNav
()
{
getNav
()
{
menuList
({
systemType
:
this
.
systemType
}).
then
((
res
)
=>
{
menuList
({
systemType
:
this
.
systemType
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
const
{
vueMenuDtos
,
userId
}
=
res
.
data
;
const
{
vueMenuDtos
,
userId
,
userName
}
=
res
.
data
;
const
i
=
{
const
i
=
{
isSuper
:
false
,
isSuper
:
false
,
userID
:
userId
,
userID
:
userId
,
};
};
const
u
=
this
.
getSocketUrl
(
BUILD_ENV
);
const
u
=
this
.
getSocketUrl
(
BUILD_ENV
);
storejs
.
set
(
'initSocketInfo'
,
{
url
:
u
,
userId
:
userId
});
storejs
.
set
(
'initSocketInfo'
,
{
url
:
u
,
userId
:
userId
,
userName
:
userName
});
this
.
$store
.
dispatch
(
'socket/initSocket'
,
{
url
:
u
,
userId
:
userId
});
this
.
$store
.
dispatch
(
'socket/initSocket'
,
{
url
:
u
,
userId
:
userId
});
vueMenuDtos
.
map
((
item
)
=>
{
vueMenuDtos
.
map
((
item
)
=>
{
if
(
item
.
index
.
indexOf
(
'administrators'
)
>
-
1
)
{
if
(
item
.
index
.
indexOf
(
'administrators'
)
>
-
1
)
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录