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
提交
3bff20e6
提交
3bff20e6
编写于
12月 02, 2021
作者:
xiaoping.di
浏览文件
操作
浏览文件
下载
差异文件
页面ui修改
上级
ef401584
0c486d1a
变更
10
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
1545 行增加
和
137 行删除
+1545
-137
diagnosis.js
src/api/diagnosis.js
+7
-0
workbench.js
src/api/workbench.js
+15
-0
consultation.vue
src/components/common/consultation.vue
+51
-28
index.js
src/components/common/consultationCard/index.js
+2
-1
department-doctor.vue
src/components/common/department-doctor.vue
+120
-0
inquiryNew-list.vue
src/components/common/inquiryNew-list.vue
+861
-0
administrators.vue
src/views/IM/diagnosis-admin/administrators.vue
+54
-4
operation.vue
src/views/IM/diagnosis-admin/operation.vue
+85
-6
workbench-new.vue
src/views/IM/diagnosis-admin/workbench-new.vue
+343
-91
slidebar.vue
src/views/layout/components/slidebar.vue
+7
-7
未找到文件。
src/api/diagnosis.js
浏览文件 @
3bff20e6
...
...
@@ -310,3 +310,10 @@ export const updateDepartmentId = async (data) => {
method
:
'post'
,
});
};
export
const
doctorDeparList
=
async
(
data
)
=>
{
return
request
({
url
:
`/diagnose/admin/diagnose/department/and/doctorList/
${
data
.
uid
}
`
,
method
:
'get'
,
});
};
src/api/workbench.js
浏览文件 @
3bff20e6
import
request
from
'mn-template/plugins/http'
;
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'
,
});
};
export
const
conditionUpdate
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/socket/condition/update'
,
...
...
src/components/common/consultation.vue
浏览文件 @
3bff20e6
...
...
@@ -2,16 +2,26 @@
<div
class=
"consultationlist"
style=
"user-select: none"
@
click=
"goworkBench"
>
<div
class=
"list"
>
<div
class=
"name"
>
{{
operatorsItem
.
name
||
''
}}
</div>
<div
class=
"details"
>
<!--
<div
class=
"handle"
>
待处理:
<span>
暂无
</span></div>
-->
<div
class=
"details"
@
click=
"goSelectDeart"
>
<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"
/>
</div>
</div>
...
...
@@ -20,7 +30,7 @@
</
template
>
<
script
>
import
{
conditionUpdate
}
from
'@/api/workbench'
;
//
import { conditionUpdate } from '@/api/workbench';
export
default
{
props
:
{
...
...
@@ -43,25 +53,35 @@
},
methods
:
{
goworkBench
()
{
const
p
=
{
dateTime
:
this
.
workbenchAdminDate
,
operateUserId
:
this
.
operatorsItem
.
id
,
pageNo
:
1
,
pageSize
:
6
,
returnStatus
:
1
,
};
this
.
$store
.
commit
(
'main/clearRawCurrentCalList'
);
conditionUpdate
(
p
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
$store
.
commit
(
'main/updateSoketQuest'
,
p
);
this
.
$router
.
push
({
path
:
'/workbench'
});
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
'warning'
,
duration
:
1000
,
// const p = {
// dateTime: this.workbenchAdminDate,
// operateUserId: this.operatorsItem.id,
// pageNo: 1,
// pageSize: 6,
// returnStatus: 1,
// };
// this.$store.commit('main/clearRawCurrentCalList');
// conditionUpdate(p).then((res) => {
// if (res.code == '000000') {
// this.$store.commit('main/updateSoketQuest', p);
// this.$router.push({ path: '/workbench-new' });
// } else {
// this.$message({
// message: res.message,
// type: 'warning',
// duration: 1000,
// });
// }
// });
this
.
$router
.
push
({
path
:
'/workbench-new'
,
query
:
{
type
:
1
,
id
:
this
.
operatorsItem
.
id
},
});
}
},
goSelectDeart
()
{
this
.
$router
.
push
({
path
:
'/workbench-new'
,
query
:
{
id
:
this
.
operatorsItem
.
id
},
});
},
},
...
...
@@ -81,10 +101,10 @@
.details
{
width
:
120px
;
height
:
40px
;
background
:
rgba
(
68
,
146
,
132
,
0
.24
);
background
:
rgba
(
0
,
189
,
165
,
0
.13
);
border-radius
:
20px
;
opacity
:
0
.44
;
border
:
1px
solid
#449284
;
//
opacity: 0.44;
border
:
1px
solid
rgba
(
0
,
189
,
165
,
0
.13
)
;
display
:
flex
;
justify-content
:
space-evenly
;
align-items
:
center
;
...
...
@@ -107,7 +127,10 @@
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#6a7990
;
color
:
#0d9078
;
}
i
{
color
:
rgba
(
13
,
144
,
120
,
1
);
}
}
}
...
...
src/components/common/consultationCard/index.js
浏览文件 @
3bff20e6
...
...
@@ -203,7 +203,8 @@ 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
+
'分钟'
;
...
...
src/components/common/department-doctor.vue
0 → 100644
浏览文件 @
3bff20e6
<
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
浏览文件 @
3bff20e6
<
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
浏览文件 @
3bff20e6
...
...
@@ -7,8 +7,11 @@
<el-breadcrumb-item>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>
我的工作台
</el-breadcrumb-item>
</el-breadcrumb>
<el-row
style=
"margin-top: 30px"
>
<el-col
:span=
"12"
>
<el-row
style=
"margin-top: 30px; display: flex; alignitems: center"
class=
"row-col-show"
>
<el-col
:span=
"8"
>
<div
class=
"left"
>
<el-row
type=
"flex"
...
...
@@ -18,7 +21,6 @@
<el-col
:span=
"12"
>
<el-date-picker
v-model=
"workbenchAdminDate"
style=
"margin-top: 10px"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择日期"
...
...
@@ -27,6 +29,15 @@
</el-row>
</div>
</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>
</div>
<!-- 问诊列表 -->
...
...
@@ -101,7 +112,6 @@
.header
{
padding
:
30px
;
width
:
100%
;
background
:
#ffffff
;
.el-input__inner
{
width
:
173px
;
...
...
@@ -110,6 +120,46 @@
border-radius
:
7px
;
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
{
display
:
flex
;
...
...
src/views/IM/diagnosis-admin/operation.vue
浏览文件 @
3bff20e6
...
...
@@ -20,6 +20,11 @@
v-for=
"(item, index) in adminList"
:key=
"index"
class=
"checkbox-item"
@
change=
"
(val) =>
{
setResert(val, item);
}
"
>
<el-checkbox
:label=
"item.id"
>
{{
item
.
name
}}
...
...
@@ -40,19 +45,48 @@
</el-button>
</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>
</
template
>
<
script
>
import
{
setDiagnoseMatch
,
operatorQuery
,
sumbitMatch
}
from
'@/api/operation'
;
import
{
setDiagnoseMatch
,
operatorQuery
,
sumbitMatch
}
from
'@/api/operation'
;
import
{
doctorListRest
}
from
'@/api/workbench'
;
export
default
{
data
()
{
return
{
checklist
:
[],
adminList
:
[],
showIsReset
:
false
,
operateId
:
''
,
};
},
mounted
()
{
...
...
@@ -60,6 +94,12 @@
this
.
getAdminList
();
},
methods
:
{
setResert
(
value
,
item
)
{
if
(
this
.
checklist
.
indexOf
(
item
.
id
)
==
-
1
)
{
this
.
showIsReset
=
true
;
this
.
operateId
=
item
.
id
;
}
},
cancel
()
{
this
.
$confirm
(
'取消后将不保存本次操作内容'
,
'确认取消吗?'
,
{
confirmButtonText
:
'确定'
,
...
...
@@ -103,6 +143,19 @@
}
});
},
cancelResert
()
{
this
.
showIsReset
=
false
;
},
confirmResert
()
{
const
param
=
{
uid
:
this
.
operateId
,
};
doctorListRest
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
showIsReset
=
false
;
}
});
},
},
};
</
script
>
...
...
@@ -139,5 +192,31 @@
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
>
src/views/IM/diagnosis-admin/workbench-new.vue
浏览文件 @
3bff20e6
...
...
@@ -22,27 +22,33 @@
</div>
<div
class=
"workbench-content"
>
<div
v-if=
"
currentDiagList.length
"
class=
"workbench-li-
c
"
v-if=
"
tabPositionValue == 3
"
class=
"workbench-li-
depar
"
>
<div
class=
"grid-c"
>
<department-doctor
:depart-doctor-list=
"departDoctorList"
:active-moutend-name=
"activeMoutendName"
@
getDepartlist=
"getDepartlist"
/>
</div>
<div
v-if=
"tabPositionValue == '3'
"
class=
"grid-c
"
class=
"depart-footer
"
style=
"text-align: right
"
>
<el-
checkbox-group
v-model=
"checkedValues
"
@
c
hange=
"handleCheckedCitiesChange
"
<el-
button
class=
"rest-depar
"
@
c
lick=
"restDepartList
"
>
<el-checkbox
v-for=
"item in cityOptions"
:key=
"item.id"
:label=
"item.value"
重置所有科室
</el-button>
<el-button
type=
"primary"
class=
"con-depar"
@
click=
"confirmDoctorList"
>
{{
item
.
value
}}
</el-checkbox>
</el-checkbox-group>
<div
class=
"search-botton"
>
<el-button>
确定
</el-button>
确定
</el-button>
</div>
</div>
<div
...
...
@@ -92,8 +98,7 @@
</div>
</div>
</div>
<div
<!--
<div
v-else
class=
"nodata-container"
>
...
...
@@ -104,8 +109,37 @@
<div
class=
"nodata-title"
>
暂时没有问诊
</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>
</
template
>
<
script
>
...
...
@@ -113,10 +147,15 @@
const
{
mapState
}
=
createNamespacedHelpers
(
'main'
);
import
storejs
from
'storejs'
;
import
consultationCard
from
'@/components/common/consultationCard/index.vue'
;
import
DepartmentDoctor
from
'../../../components/common/department-doctor.vue'
;
import
{
conditionNewList
}
from
'@/api/workbench'
;
import
{
doctorListAnd
,
doctorListRest
}
from
'@/api/workbench'
;
import
{
doctorDeparList
}
from
'@/api/diagnosis'
;
import
_
from
'lodash'
;
export
default
{
components
:
{
consultationCard
,
DepartmentDoctor
,
},
data
()
{
return
{
...
...
@@ -251,7 +290,51 @@
userName
:
'郑志猛'
,
userOnlineStatus
:
3
,
},
{
userLastCallTime
:
''
,
doctorLastCallTime
:
'2021-12-02 20:05:01'
,
doctorOnlineStatus
:
3
,
adviceStatus
:
2
,
appointBeginTime
:
'2021-12-02 20:00:00'
,
appointEndTime
:
'2021-12-02 21:00:00'
,
department
:
'呼吸内科'
,
departmentId
:
12
,
diagnoseLogId
:
3824
,
diagnoseType
:
1
,
doctorCallKfStatus
:
2
,
doctorCallStatus
:
1
,
doctorCallTime
:
null
,
doctorId
:
1006276946
,
doctorImageUrl
:
'https://test-file.yunqueyi.com//image/png/2019/04/08/20190408101124702-0db0bcea.png'
,
doctorMobile
:
'15821297620'
,
doctorName
:
'朱建波'
,
doctorTrtcEntryStatus
:
2
,
imStatus
:
1
,
imTeamId
:
'3942066774'
,
operateUserId
:
221
,
returnStatus
:
2
,
roomId
:
'520001207'
,
sort
:
null
,
status
:
null
,
userCallKfStatus
:
2
,
userCallStatus
:
1
,
userCallTime
:
null
,
userId
:
1006276934
,
userImageUrl
:
'https://test-file.yunqueyi.com//image/png/2019/04/08/20190408101124702-0db0bcea.png'
,
userMobile
:
'13817741327'
,
userName
:
'郑志猛'
,
userOnlineStatus
:
3
,
},
],
departDoctorList
:
[],
newCheckList
:
[],
cancelCheckList
:
[],
checkDoctorIdList
:
[],
activeMoutendName
:
''
,
operatId
:
''
,
showIsReset
:
false
,
};
},
computed
:
{
...
...
@@ -264,6 +347,8 @@
watch
:
{},
created
()
{
console
.
log
(
'currentDiagList---------------------'
,
this
.
currentDiagList
);
this
.
operatId
=
this
.
$route
.
query
.
id
;
this
.
tabPositionValue
=
this
.
$route
.
query
.
type
||
'3'
;
},
mounted
()
{
const
s
=
storejs
.
get
(
'soketQuest'
);
...
...
@@ -284,12 +369,94 @@
// that.isShowCardData = false;
that
.
initCard
();
},
0
);
},
5000
);
},
4000
);
this
.
doctorDeparList
();
},
destroyed
()
{
window
.
clearInterval
(
this
.
timer
);
},
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
();
}
});
},
initCard
()
{
console
.
log
(
this
.
isShowCardData
);
const
parms
=
{
...
...
@@ -301,7 +468,7 @@
conditionNewList
(
parms
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
handleData
(
res
.
data
);
this
.
handleData
(
res
.
data
.
length
>
0
?
res
.
data
:
this
.
mockData
);
}
else
{
this
.
$message
({
message
:
res
.
message
,
...
...
@@ -317,12 +484,14 @@
});
},
handleData
(
data
)
{
console
.
log
(
data
,
'data'
);
this
.
currentDiagList
=
[];
data
.
forEach
((
item
,
index
)
=>
{
// item.diagnoseLogId = '--' + Math.random() * 10;
item
[
'definitionRandom'
]
=
Math
.
random
()
*
10
;
this
.
$set
(
this
.
currentDiagList
,
index
,
item
);
});
console
.
log
(
'this.currentDiagList'
,
this
.
currentDiagList
);
this
.
isShowCardData
=
true
;
// this.$nextTick(() => {
// });
...
...
@@ -499,6 +668,76 @@
}
}
}
.pagination-container
{
background-color
:
#fff
;
height
:
71px
;
background
:
#ffffff
;
border-radius
:
18px
;
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
margin-top
:
10px
;
padding
:
0
20px
;
}
.workbench-li-depar
{
padding
:
20px
10px
;
width
:
100%
;
.grid-c
{
display
:
grid
;
grid-row-gap
:
20px
;
grid-column-gap
:
20px
;
padding
:
25px
30px
;
background
:
#fff
;
border-radius
:
10px
;
overflow-y
:
auto
;
.el-checkbox-group
{
.el-checkbox
{
width
:
20%
;
padding
:
8px
;
}
}
.search-botton
{
display
:
flex
;
justify-content
:
flex-end
;
margin-right
:
150px
;
.el-button
{
width
:
180px
;
height
:
40px
;
background
:
#0d9078
;
border-radius
:
20px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#ffffff
;
}
}
.workbench-li
{
margin
:
0
auto
;
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
;
}
}
}
.nodata-container
{
background-color
:
#fff
;
padding
:
0
20px
;
...
...
@@ -523,17 +762,30 @@
margin-top
:
50px
;
}
}
.pagination-container
{
background-color
:
#fff
;
height
:
71px
;
background
:
#ffffff
;
border-radius
:
18px
;
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
margin-top
:
10px
;
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
浏览文件 @
3bff20e6
...
...
@@ -76,15 +76,17 @@
getNav
()
{
menuList
({
systemType
:
this
.
systemType
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
const
{
vueMenuDtos
,
userId
}
=
res
.
data
;
const
{
vueMenuDtos
,
userId
,
userName
}
=
res
.
data
;
const
i
=
{
isSuper
:
false
,
userID
:
userId
,
};
const
u
=
this
.
getSocketUrl
(
'test'
);
console
.
log
(
BUILD_ENV
);
// u.url = 'https://test1-sockets.yunqueyi.com';
storejs
.
set
(
'initSocketInfo'
,
{
url
:
u
,
userId
:
userId
});
const
u
=
this
.
getSocketUrl
(
BUILD_ENV
);
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
)
{
...
...
@@ -183,8 +185,6 @@
color
:
#fff
;
background
:
#06232c
;
}
}
}
</
style
>
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录