Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
9f5d5c80
提交
9f5d5c80
编写于
9月 25, 2019
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
04BEB8CAF7DE4E1AB861FC487E7ADAC8
上级
6a351cc5
变更
12
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
2422 行增加
和
619 行删除
+2422
-619
fetch.js
src/utils/fetch.js
+2
-2
followapis.js
src/utils/followup/followapis.js
+8
-0
new-plan copy.vue
src/views/followup/plan-manage/new-plan copy.vue
+396
-0
new-plan.vue
src/views/followup/plan-manage/new-plan.vue
+1
-0
plan-list.vue
src/views/followup/plan-manage/plan-list.vue
+18
-23
resident-list.vue
src/views/followup/plan-manage/resident-list.vue
+3
-2
record-list.vue
src/views/followup/record-manage/record-list.vue
+419
-252
reservation-list.vue
src/views/followup/reservation-manage/reservation-list.vue
+19
-0
home copy.vue
src/views/home copy.vue
+368
-0
home.vue
src/views/home.vue
+489
-339
select-patitents copy.vue
...s/patients/labels-manage/dialog/select-patitents copy.vue
+693
-0
select-patitents.vue
src/views/patients/labels-manage/dialog/select-patitents.vue
+6
-1
未找到文件。
src/utils/fetch.js
浏览文件 @
9f5d5c80
...
...
@@ -55,8 +55,8 @@ service.interceptors.request.use(config => {
if
(
process
.
env
.
BUILD_ENV
==
"development"
){
// 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
config
.
headers
[
'token'
]
=
'F8209898391C40A0B8DBC1ED9E157291'
;
// config.headers['token'] = '1E04ECA4D0A84702AAD5080622EE139A
';
//
config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291';
config
.
headers
[
'token'
]
=
'04BEB8CAF7DE4E1AB861FC487E7ADAC8
'
;
}
else
{
config
.
headers
[
'token'
]
=
localStorage
.
getItem
(
'storageToken'
)
...
...
src/utils/followup/followapis.js
浏览文件 @
9f5d5c80
...
...
@@ -484,4 +484,12 @@ export const updateScalesStatus = ( data ) => {
})
}
// 获取量表详情
export
const
getFirstAccess
=
()
=>
{
return
fetch
({
url
:
getFollowUpSC
(
`/followup/overView/firstAccess`
),
method
:
'get'
,
data
:
{},
})
}
src/views/followup/plan-manage/new-plan copy.vue
0 → 100644
浏览文件 @
9f5d5c80
<
template
>
<div
class=
"resident-list"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:curmbThird=
"curmbThird"
:jumPathThird=
"jumPathThird"
>
</bread-crumb>
<div
class=
"new-plan-content f-main-content screenSet"
>
<div
class=
"header"
>
<div
class=
"title"
>
<span
:class=
"
{ 'active-class' : activeTab === 'second' }">①基本信息
</span>
<i
class=
"el-icon-arrow-right"
style=
"color: #C0C4CC"
></i>
<span
:class=
"
{ 'active-class' : activeTab === 'first' }">②履约时间节点
</span>
</div>
<div
class=
"plan-btns-group"
v-if=
"activeTab === 'first'"
>
<el-button
class=
"button-white"
size=
"small"
plain
@
click=
"cancelEdit"
>
取 消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"nextClick('baseInfo')"
>
下一步
</el-button>
</div>
<div
class=
"plan-btns-group"
v-if=
"activeTab === 'second'"
>
<el-button
class=
"button-white"
size=
"small"
plain
@
click=
"preClick"
>
上一步
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"saveEdit"
>
保 存
</el-button>
</div>
</div>
<div
class=
"edit-plan-content"
v-if=
"activeTab === 'first'"
>
<el-form
ref=
"baseInfo"
:model=
"baseInfo"
:rules=
"rules"
label-suffix=
":"
label-width=
"140px"
:inline-message=
"true"
size=
"small"
>
<el-form-item
label=
"履约计划名称"
prop=
"name"
>
<el-input
v-model=
"baseInfo.name"
maxlength=
"20"
style=
"width: 30%"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
"履约居民"
required
prop=
"hasSelectedNum"
>
<div
style=
"display: flex"
>
<div>
<el-button
plain
icon=
"el-icon-plus"
:style=
"noChoice?'border:1px solid red;':''"
@
click=
"selectPatientHandler"
>
{{
baseInfo
.
hasSelectedNum
?
'继续添加'
:
'选择居民'
}}
</el-button><br>
<el-button
type=
"text"
class=
"mt10"
@
click=
"seeSelectedHandler"
v-if=
"baseInfo.hasSelectedNum"
>
已选
{{
baseInfo
.
hasSelectedNum
}}
人
<i
class=
"el-icon-arrow-right"
></i></el-button>
</div>
<p
class=
"err-tips"
v-if=
"noChoice"
>
请添加履约居民
</p>
</div>
</el-form-item>
<el-form-item
label=
"履约模板"
prop=
"resourceId"
>
<el-select
v-model=
"baseInfo.resourceId"
placeholder=
"请选择履约模板"
clearable
>
<el-option
v-for=
"item in templateOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<p
class=
"tips"
>
履约计划创建成功后,模板不可更换,请谨慎选择。
</p>
<el-form-item
label=
"履约开始时间"
prop=
"time"
>
<el-date-picker
v-model=
"baseInfo.time"
type=
"date"
ref=
"beginDate"
placeholder=
"请选择履约开始时间"
:picker-options=
"pickerOptions"
value-format=
"timestamp"
clearable
@
blur=
"handleDateInputConfirm"
style=
"width:380px;"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"备注"
>
<el-select
v-model=
"baseInfo.remarksStatus"
placeholder=
"请选择履约种类"
clearable
>
<el-option
v-for=
"item in remarkOption"
:key=
"item.no"
:label=
"item.value"
:value=
"item.no"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div
class=
"edit-plan-content"
v-show=
"activeTab === 'second'"
>
<set-time-node
:resourceId=
"resourceId"
:standedTimeNodeList=
"standedTimeNodeList"
:isStandedTemplate=
"isStandedTemplate"
:patientIdList=
"baseInfo.patientIdList"
:checkForm=
"checkForm"
@
addListenSave=
"addListenSave"
/>
</div>
</div>
<select-patient
:isShowSelectPatient=
"isShowSelectPatient"
:patientIdList=
"baseInfo.patientIdList"
@
closeSelectPatient=
"closeSelectPatient"
@
sureSelectPatient=
"sureSelectPatient(arguments)"
:selectPatientType=
"selectPatientType"
/>
<has-selected-patient
v-if=
"isShowSelectedDialog"
:hasSelectedList=
"hasSelectedList"
@
closeSelectedDialog=
"closeSelectedDialog"
@
continueAdd=
"continueAdd"
/>
</div>
</
template
>
<
script
>
import
BreadCrumb
from
'@/components/breadcrumb'
// import SelectPatient from '@/views/followup/plan-manage/dialog/select-patient';
import
SelectPatient
from
'@/views/patients/labels-manage/dialog/select-patitents'
;
import
HasSelectedPatient
from
'@/views/followup/plan-manage/dialog/has-selected-patient'
;
import
SetTimeNode
from
'@/views/followup/plan-manage/dialog/set-time-node'
;
import
{
createFollowPlan
,
getFollowupTableTemplate
}
from
'@/utils/followup/followapis'
import
{
mapState
,
mapActions
}
from
'vuex'
export
default
{
name
:
"addNewPlan"
,
components
:
{
BreadCrumb
,
SelectPatient
,
HasSelectedPatient
,
SetTimeNode
,
},
data
()
{
return
{
setTimeNodeList
:
[],
//重写后的setTimeNodeList
isStandedTemplate
:
false
,
// 是否是固定的履约模板
standedTimeNodeList
:
[],
// 如果是国定履约模板,获取固定数据后不可更改,只读
checkForm
:
false
,
/*面包屑配置*/
curmbFirst
:
'履约管理'
,
curmbSecond
:
'计划管理'
,
curmbThird
:
'新建履约计划'
,
jumPathThird
:
'/followUp/plan-manage'
,
activeTab
:
'first'
,
resourceId
:
''
,
//当前选择的履约模板id
noName
:
false
,
noResourceId
:
false
,
noTime
:
false
,
noChoice
:
false
,
baseInfo
:
{
name
:
''
,
//履约计划名称
patientIdList
:
[],
//履约居民列表
resourceId
:
''
,
//履约模板ID
time
:
''
,
//履约开始时间
remarksStatus
:
''
,
fPlanTimeReqList
:
[],
//时间节点列表
hasSelectedNum
:
0
,
},
isShowSelectPatient
:
false
,
isShowSelectedDialog
:
false
,
selectPatientType
:
1
,
hasSelectedList
:
[],
rules
:
{
name
:
[{
required
:
true
,
message
:
'请输入履约计划名称'
,
trigger
:
'blur'
}],
hasSelectedNum
:
[{
required
:
true
,
message
:
'请添加履约居民'
,
trigger
:
'change'
}],
resourceId
:
[{
required
:
true
,
message
:
'请选择履约模板'
,
trigger
:
'change'
}],
time
:
[{
required
:
true
,
message
:
'请选择履约开始时间'
,
trigger
:
'change'
}],
},
pickerOptions
:
{
disabledDate
(
time
)
{
return
time
.
getTime
()
<
Date
.
now
()
-
8.64e7
}
}
}
},
created
()
{
// 获取备注
this
.
getRemarkOption
()
// 获取履约计划模板列表
this
.
getFollowupTemplate
()
},
computed
:
{
...
mapState
(
'planManage'
,{
remarkOption
:
state
=>
state
.
remarkOption
,
templateOptions
:
state
=>
state
.
templateOptions
,
})
},
methods
:
{
...
mapActions
(
'planManage'
,
[
'getTimeNodeList'
,
'getRemarkOption'
,
'getFollowupTemplate'
]),
// 点击保存
saveEdit
()
{
// 点击保存,先进行校验,表单字段是否通过验证
this
.
checkForm
=
true
},
handleDateInputConfirm
(
e
){
if
(
!
this
.
baseInfo
.
time
){
this
.
$refs
.
beginDate
.
picker
.
date
=
new
Date
();
}
},
// 监听保存校验结果
addListenSave
(
val
){
// console.log('监听保存校验结果',val)
this
.
checkForm
=
false
if
(
val
.
status
){
this
.
baseInfo
.
fPlanTimeReqList
=
val
.
setTimeNodeList
// this.baseInfo.time = (new Date(this.baseInfo.time).getTime())
// console.log(this.baseInfo.time)
// 提交
createFollowPlan
(
this
.
baseInfo
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
){
// 各种校验通过后,提交编辑内容,toast提示
this
.
$message
({
message
:
'创建成功'
,
type
:
'success'
});
setTimeout
(()
=>
{
this
.
$router
.
push
({
path
:
'/followup/plan-manage/plan-list'
})
},
2000
)
}
else
{
this
.
$message
({
message
:
'创建失败,'
+
res
.
message
,
type
:
'error'
});
}
})
}
else
{
this
.
$message
({
message
:
val
.
message
,
type
:
'error'
});
}
},
selectPatientHandler
()
{
this
.
isShowSelectPatient
=
true
;
},
closeSelectPatient
(
val
)
{
this
.
isShowSelectPatient
=
val
;
},
seeSelectedHandler
()
{
this
.
isShowSelectedDialog
=
true
;
},
closeSelectedDialog
(
val
)
{
this
.
isShowSelectedDialog
=
val
;
},
sureSelectPatient
()
{
let
getArguments
=
arguments
[
0
];
this
.
isShowSelectPatient
=
getArguments
[
0
];
const
selectPatients
=
getArguments
[
1
];
// 每次选中获取的人
this
.
hasSelectedList
=
selectPatients
;
// console.log('呵呵呵呵',arguments)
this
.
baseInfo
.
patientIdList
=
[];
selectPatients
.
forEach
((
item
)
=>
{
this
.
baseInfo
.
patientIdList
.
push
(
item
.
patientId
);
})
this
.
baseInfo
.
hasSelectedNum
=
this
.
hasSelectedList
.
length
;
if
(
this
.
baseInfo
.
hasSelectedNum
>
0
){
this
.
noChoice
=
false
;
}
},
continueAdd
(
val
)
{
this
.
isShowSelectedDialog
=
val
;
this
.
isShowSelectPatient
=
true
;
},
cancelEdit
()
{
this
.
$confirm
(
'是否放弃本次创建,放弃后数据不能被保存'
,
''
,
{
confirmButtonText
:
'继续创建'
,
cancelButtonText
:
'确定放弃'
,
type
:
'warning'
}).
then
(()
=>
{
// 关闭弹层,继续创建
}).
catch
(()
=>
{
// 确定放弃,跳出当前编辑页面
this
.
$router
.
push
({
path
:
'/followup/plan-manage/plan-list'
})
});
},
nextClick
(
formName
)
{
//为方便调试,不做校验
// this.activeTab = 'second';
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
//用作校验
if
(
!
this
.
baseInfo
.
hasSelectedNum
)
{
this
.
noChoice
=
true
return
;
}
else
{
this
.
noChoice
=
false
}
if
(
valid
)
{
// console.log('当前选择的履约模板id为',this.baseInfo.resourceId)
this
.
resourceId
=
String
(
this
.
baseInfo
.
resourceId
)
// console.log( this.baseInfo.resourceId)
if
(
this
.
baseInfo
.
resourceId
){
getFollowupTableTemplate
(
this
.
baseInfo
.
resourceId
).
then
(
res
=>
{
this
.
isStandedTemplate
=
true
this
.
standedTimeNodeList
=
res
.
data
this
.
activeTab
=
'second'
;
})
}
else
{
this
.
isStandedTemplate
=
false
this
.
standedTimeNodeList
=
[];
this
.
activeTab
=
'second'
;
}
}
else
{
return
false
;
}
});
},
preClick
()
{
this
.
activeTab
=
'first'
;
},
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
'../../../style/followup/followup-common'
;
@import
'../../../style/followup/element-reset.css'
;
.new-plan-content
{
.header
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding-bottom
:
20px
;
border-bottom
:
$borderBottomStyle
;
.title
{
.active-class
{
color
:
#9B9997
;
}
}
}
.edit-plan-content
{
padding
:
30px
0
;
.add-time-content
{
padding-top
:
20px
;
.time-line-scroll
{
width
:
100%
;
height
:
50px
;
box-sizing
:
border-box
;
background-color
:
#F0F2F5
;
padding
:
8px
10px
;
/*display: flex;*/
/*align-items: center;*/
overflow-x
:
scroll
;
overflow-y
:
hidden
;
white-space
:
nowrap
;
position
:
relative
;
cursor
:
pointer
;
&
:
:-
webkit-scrollbar
{
height
:
6px
;
}
&
:
:-
webkit-scrollbar-thumb
{
/*滚动条里面小方块*/
border-radius
:
10px
;
-webkit-box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0
.2
);
background
:
rgba
(
0
,
0
,
0
,
0
.1
);
}
span
{
display
:
inline-block
;
background-color
:
#449284
;
border-radius
:
20px
;
height
:
28px
;
line-height
:
28px
;
padding
:
0
8px
;
color
:
#ffffff
;
font-size
:
12px
;
width
:
95px
;
}
}
.form-div
{
padding-top
:
30px
;
}
}
}
.err-tips
{
color
:
#F56C6C
;
font-size
:
12px
;
margin-left
:
10px
;
}
.tips
{
font-size
:
12px
;
color
:
#9B9997
;
padding-left
:
140px
;
margin-top
:
-10px
;
padding-bottom
:
15px
;
}
.el-message-box__content
{
padding
:
20px
15px
;
}
}
.mt10
{
margin-top
:
10px
;
}
.ml20
{
margin-left
:
20px
;
}
</
style
>
src/views/followup/plan-manage/new-plan.vue
浏览文件 @
9f5d5c80
...
...
@@ -94,6 +94,7 @@
<select-patient
:isShowSelectPatient=
"isShowSelectPatient"
:selectPatientDialogTitle=
"baseInfo.hasSelectedNum ? '继续添加' : '选择居民'"
:patientIdList=
"baseInfo.patientIdList"
@
closeSelectPatient=
"closeSelectPatient"
@
sureSelectPatient=
"sureSelectPatient(arguments)"
...
...
src/views/followup/plan-manage/plan-list.vue
浏览文件 @
9f5d5c80
...
...
@@ -81,14 +81,23 @@
</div>
</div>
</div>
<!-- 协议提醒 -->
<el-dialog
class=
"prot-dialog"
title=
""
:visible
.
sync=
"isShowProtocolDialog"
width=
"30%"
center
:show-close=
false
>
<p
class=
"prot-dialog-tips-1"
>
根据相关规定,在您开展履约之前,需要居民授权同意《云鹊平台隐私协议》,否则将导致履约量表部分信息无法录入
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"isShowProtocolDialog = false"
>
我知道了
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
BreadCrumb
from
"@/components/breadcrumb"
;
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
deletePlan
,
getVerifyStatus
}
from
'@/utils/followup/followapis'
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
deletePlan
,
getVerifyStatus
}
from
'@/utils/followup/followapis'
import
{
getSaasDomain
}
from
'@/utils/index'
import
{
getFirstAccess
}
from
'@/utils/followup/followapis'
// import { messageBox } from '@/utils/utils'
export
default
{
components
:{
...
...
@@ -150,6 +159,7 @@
total
:
0
,
pageSizes
:
[
10
,
20
,
50
,
100
]
},
isShowProtocolDialog
:
false
,
}
},
computed
:
{
...
...
@@ -160,6 +170,7 @@
created
()
{
},
mounted
()
{
this
.
isFirstEnter
();
this
.
init
();
},
watch
:
{},
...
...
@@ -167,32 +178,16 @@
...
mapActions
(
'planManage'
,
[
'getPlanList'
,
'setResidentCrumb'
,
'setPlanModifyCrumb'
]),
// 验证是否首次进入 ################
isFirstEnter
()
{
// getIsFirstEnter().then((res) => {
getVerifyStatus
().
then
((
res
)
=>
{
if
(
res
.
code
!==
'000000'
)
{
this
.
search
(
1
);
}
else
{
// this.$alert('根据相关规定,在您开展履约项目前,需要居民授权同意\《云鹊平台隐私协议\》,否则将导致履约量表部分信息无法录入', '', {
// confirmButtonText: '我知道了 ',
// showClose: false,
// // center: true,
// roundButton: true,
// customClass: 'plan-list-alert',
// callback: action => {
// return;
// }
// });
getFirstAccess
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
isShowProtocolDialog
=
res
.
data
}
})
})
;
},
init
()
{
getVerifyStatus
().
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
// 验证是否首次进入 ################
this
.
isFirstEnter
()
// this.search(1);
this
.
search
(
1
);
}
else
if
(
res
.
code
===
'200008'
){
this
.
$confirm
(
`
${
res
.
message
}
`
,
'提示'
,
{
confirmButtonText
:
'去认证'
,
...
...
src/views/followup/plan-manage/resident-list.vue
浏览文件 @
9f5d5c80
...
...
@@ -2,7 +2,7 @@
<div
class=
"resident-list"
>
<div
class=
"bread-crumb"
>
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item
v-for=
"
item in residentCrumb
"
>
<el-breadcrumb-item
v-for=
"
(item, index) in residentCrumb"
:key=
"index
"
>
<a
v-if=
"item.href"
:href=
"item.href"
>
{{
item
.
name
}}
</a>
<span
v-else
>
{{
item
.
name
}}
</span>
</el-breadcrumb-item>
...
...
@@ -142,7 +142,8 @@
<add-patient-time
:showThisPage=
"showAddPatientTime"
:addPatientData=
"addPatientData"
@
closeAddPatientTime=
"closeAddPatientTime"
></add-patient-time>
@
closeAddPatientTime=
"closeAddPatientTime"
>
</add-patient-time>
</div>
</template>
...
...
src/views/followup/record-manage/record-list.vue
浏览文件 @
9f5d5c80
...
...
@@ -5,9 +5,21 @@
<div
class=
"page-title"
>
录入管理
</div>
<div
class=
"search-div"
>
<div
class=
"search-input"
>
<el-form
ref=
"serchForm"
:model=
"searchData"
:inline=
"true"
label-suffix=
":"
label-width=
"125px"
size=
"small"
>
<el-form
ref=
"serchForm"
:model=
"searchData"
:inline=
"true"
label-suffix=
":"
label-width=
"125px"
size=
"small"
>
<el-form-item
label=
"履约计划名称"
>
<el-input
v-model=
"searchData.planName"
placeholder=
"请输入关键词"
style=
"width: 250px"
clearable
></el-input>
<el-input
v-model=
"searchData.planName"
placeholder=
"请输入关键词"
style=
"width: 250px"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
"履约时间范围"
>
<el-date-picker
...
...
@@ -18,14 +30,19 @@
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd HH:mm:ss"
clearable
style=
"width:400px;"
>
</el-date-picker>
style=
"width:400px;"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"姓名"
>
<el-input
v-model=
"searchData.nickname"
placeholder=
"请输入姓名"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"searchData.mobilePhone"
placeholder=
"请输入手机号"
maxlength=
"11"
clearable
></el-input>
<el-input
v-model=
"searchData.mobilePhone"
placeholder=
"请输入手机号"
maxlength=
"11"
clearable
></el-input>
</el-form-item>
</el-form>
</div>
...
...
@@ -36,7 +53,7 @@
</div>
<div
class=
"table-content"
>
<el-radio-group
v-model=
"activeName"
@
change=
"handlerClick"
size=
"small"
>
<el-radio-button
label=
""
>
全部(
{{
recordList
.
count
}}
)
</el-radio-button>
<el-radio-button
label
>
全部(
{{
recordList
.
count
}}
)
</el-radio-button>
<el-radio-button
label=
"2"
>
已完成(
{{
recordList
.
finishedCount
}}
)
</el-radio-button>
<el-radio-button
label=
"1"
>
未完成(
{{
recordList
.
unfinishedCount
}}
)
</el-radio-button>
</el-radio-group>
...
...
@@ -51,21 +68,33 @@
<el-table-column
prop=
"name"
label=
"履约计划名称"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
prop=
"followupType"
label=
"履约时间"
min-width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
fuPlanInfo
}}
</span><br/>
<span>
{{
scope
.
row
.
fuPlanInfo
}}
</span>
<br
/>
<span
v-if=
"scope.row.fuPlanExecuteTime"
>
{{
scope
.
row
.
fuPlanExecuteTime
}}
</span>
<span
v-if=
"!scope.row.fuPlanExecuteTime && scope.row.appointmentTime"
>
{{
scope
.
row
.
appointmentTime
}}
</span><br/>
<span
v-if=
"!scope.row.fuPlanExecuteTime && !scope.row.appointmentTime"
>
{{
scope
.
row
.
fuPlanTime
}}
</span>
<span
v-if=
"!scope.row.fuPlanExecuteTime && scope.row.appointmentTime"
>
{{
scope
.
row
.
appointmentTime
}}
</span>
<br
/>
<span
v-if=
"!scope.row.fuPlanExecuteTime && !scope.row.appointmentTime"
>
{{
scope
.
row
.
fuPlanTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
label=
"履约状态"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
:class=
"scope.row.status == 1 ? 'status-span': ''"
>
{{
scope
.
row
.
status
|
statusFileter
}}
</span>
<span
:class=
"scope.row.status == 1 ? 'status-span': ''"
>
{{
scope
.
row
.
status
|
statusFileter
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
fixed=
"right"
align=
"center"
min-width=
"210"
>
<
template
slot-scope=
"scope"
>
<el-button
class=
"btn-right-class"
type=
"text"
@
click=
"editRow(scope.row)"
>
履约录入
</el-button>
|
<el-button
class=
"btn-right-class"
type=
"text"
@
click=
"changeStatusRow(scope.row)"
>
变更履约状态
</el-button>
<el-button
class=
"btn-right-class"
type=
"text"
@
click=
"changeStatusRow(scope.row)"
>
变更履约状态
</el-button>
<!--|
<el-button
type=
"text"
@
click=
"sendRow(scope.row)"
>
发送患教
</el-button>
-->
</
template
>
</el-table-column>
...
...
@@ -80,58 +109,100 @@
:current-page=
"paginationSet.pageNo"
:page-sizes=
"paginationSet.pageSizes"
:page-size=
"paginationSet.pageSize"
:total=
"paginationSet.total"
>
</el-pagination>
:total=
"paginationSet.total"
>
</el-pagination>
</el-row>
</div>
</div>
<followup-detail
:dialogFormVisible=
"dialogDetailShow"
@
closeDetail=
"closeDetail"
:enteringInfo=
"enteringInfo"
></followup-detail>
<change-followup-status
:isShowChangeDialog=
"isShowChangeDialog"
:statusForm=
"statusForm"
@
closeChangeStatus=
"closeChangeStatus"
></change-followup-status>
<el-dialog
title=
"选择量表"
<followup-detail
:dialogFormVisible=
"dialogDetailShow"
@
closeDetail=
"closeDetail"
:enteringInfo=
"enteringInfo"
></followup-detail>
<change-followup-status
:isShowChangeDialog=
"isShowChangeDialog"
:statusForm=
"statusForm"
@
closeChangeStatus=
"closeChangeStatus"
></change-followup-status>
<el-dialog
title=
"选择量表"
:visible
.
sync=
"selectFormShow"
center
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
width=
"400px"
:before-close=
"closeForm"
>
:before-close=
"closeForm"
>
<div
class=
"list-content"
>
<p
v-for=
"(item, index) in formList.scalesList"
:key=
"index"
@
click=
"goFormView(item)"
>
{{item.sendContent}}
</p>
<p
v-for=
"(item, index) in formList.scalesList"
:key=
"index"
@
click=
"goFormView(item)"
>
{{item.sendContent}}
</p>
</div>
</el-dialog>
<!-- 协议提醒 -->
<el-dialog
class=
"prot-dialog"
title
:visible
.
sync=
"isShowProtocolDialog1"
width=
"30%"
center
:show-close=
"false"
>
<p
class=
"prot-dialog-tips-1"
>
根据相关规定,在您开展履约之前,需要居民授权同意《云鹊平台隐私协议》,否则将导致履约量表部分信息无法录入
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"isShowProtocolDialog = false"
>
我知道了
</el-button>
</span>
</el-dialog>
<!-- 敏感词及协议校验 -->
<el-dialog
class=
"prot-dialog"
title=
""
:visible
.
sync=
"isShowProtocolDialog"
width=
"30%"
center
:show-close=
false
>
<p
class=
"prot-dialog-tips-1"
>
由于该居民尚未同意《云鹊平台隐私协议》,将导致履约量表部分信息无法录入,为了方便您的工作开展,请您发送短信提醒居民完成授权
</p>
<p
v-show=
"!isSentedProt"
class=
"prot-dialog-tips-2"
>
若您选择暂不发送,您只能录入量表的非敏感信息
</p>
<p
v-show=
"isSentedProt"
class=
"prot-dialog-tips-3"
>
为避免打扰居民,7天内只能发送1次,您已发送过短信,请尽快联系居民同意授权
</p>
<span
v-show=
"!isSentedProt"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"closeProtocolDialog"
>
暂不发送
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"sendMsg"
>
发送短信
</el-button>
</span>
<span
v-show=
"isSentedProt"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"closeProtocolDialog"
>
我知道了
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
BreadCrumb
from
"@/components/breadcrumb"
;
import
followupDetail
from
"./dialog/followupDetail"
;
import
ChangeFollowupStatus
from
"./dialog/change-followup-status"
;
import
{
getSaasDomain
}
from
'@/utils/index'
import
{
mapState
,
mapGetters
,
mapActions
}
from
'vuex'
;
import
BreadCrumb
from
"@/components/breadcrumb"
;
import
followupDetail
from
"./dialog/followupDetail"
;
import
ChangeFollowupStatus
from
"./dialog/change-followup-status"
;
import
{
getSaasDomain
}
from
"@/utils/index"
;
import
{
getFirstAccess
}
from
'@/utils/followup/followapis'
import
{
mapState
,
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
components
:
{
export
default
{
components
:
{
BreadCrumb
,
followupDetail
,
ChangeFollowupStatus
},
data
()
{
return
{
curmbFirst
:
'履约管理'
,
curmbSecond
:
'录入管理'
,
data
()
{
return
{
curmbFirst
:
"履约管理"
,
curmbSecond
:
"录入管理"
,
timeRangeList
:
[],
searchData
:
{
planName
:
''
,
beginTime
:
''
,
endTime
:
''
,
nickname
:
''
,
mobilePhone
:
''
planName
:
""
,
beginTime
:
""
,
endTime
:
""
,
nickname
:
""
,
mobilePhone
:
""
},
activeName
:
''
,
activeName
:
""
,
paginationSet
:
{
pageNo
:
1
,
pageSize
:
10
,
total
:
0
,
pageSizes
:
[
10
,
20
,
50
,
100
]
pageSizes
:
[
10
,
20
,
50
,
100
]
},
statusForm
:
{},
enteringRow
:
{},
...
...
@@ -139,97 +210,138 @@
isShowChangeDialog
:
false
,
hasData
:
false
,
selectFormShow
:
false
,
ScaleData
:
{}
}
ScaleData
:
{},
isShowProtocolDialog1
:
false
,
isShowProtocolDialog
:
false
,
scaleQuery
:
{},
isSentedProt
:
false
};
},
computed
:
{
...
mapState
(
'recordManage'
,
{
...
mapState
(
"recordManage"
,
{
recordList
:
state
=>
state
.
recordList
,
enteringInfo
:
state
=>
state
.
enteringInfo
,
formList
:
state
=>
state
.
formList
,
formList
:
state
=>
state
.
formList
}),
...
mapGetters
([
'_token'
,
])
...
mapGetters
([
"_token"
])
},
created
()
{
// 验证是否首次进入 ################
// this.init();
this
.
search
(
1
);
},
mounted
()
{},
mounted
()
{
this
.
isFirstEnter
();
},
methods
:
{
...
mapActions
(
'recordManage'
,
[
'getRecordList'
,
'getEnteringInfo'
,
'getFormList'
]),
async
search
(
currentPage
){
if
(
this
.
timeRangeList
)
{
...
mapActions
(
"recordManage"
,
[
"getRecordList"
,
"getEnteringInfo"
,
"getFormList"
]),
// 验证是否首次进入 ################
isFirstEnter
()
{
getFirstAccess
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
isShowProtocolDialog1
=
res
.
data
}
});
},
async
search
(
currentPage
)
{
if
(
this
.
timeRangeList
)
{
this
.
searchData
.
beginTime
=
this
.
timeRangeList
[
0
];
this
.
searchData
.
endTime
=
this
.
timeRangeList
[
1
];
}
else
{
this
.
searchData
.
beginTime
=
''
;
this
.
searchData
.
endTime
=
''
;
}
else
{
this
.
searchData
.
beginTime
=
""
;
this
.
searchData
.
endTime
=
""
;
}
await
this
.
getRecordList
({
...
this
.
searchData
,
status
:
this
.
activeName
,
pageNo
:
currentPage
||
this
.
paginationSet
.
pageNo
,
pageSize
:
this
.
paginationSet
.
pageSize
,
pageSize
:
this
.
paginationSet
.
pageSize
});
if
(
this
.
recordList
.
enteringDtos
)
{
if
(
this
.
recordList
.
enteringDtos
.
length
>
0
)
{
if
(
this
.
recordList
.
enteringDtos
)
{
if
(
this
.
recordList
.
enteringDtos
.
length
>
0
)
{
this
.
hasData
=
true
;
}
else
{
}
else
{
this
.
hasData
=
false
;
}
}
const
{
pageNo
,
pageSize
,
count
,
finishedCount
,
unfinishedCount
}
=
this
.
recordList
;
if
(
this
.
activeName
==
''
){
const
{
pageNo
,
pageSize
,
count
,
finishedCount
,
unfinishedCount
}
=
this
.
recordList
;
if
(
this
.
activeName
==
""
)
{
this
.
paginationSet
.
total
=
count
;
}
else
if
(
this
.
activeName
==
2
)
{
}
else
if
(
this
.
activeName
==
2
)
{
this
.
paginationSet
.
total
=
finishedCount
;
}
else
if
(
this
.
activeName
==
1
)
{
}
else
if
(
this
.
activeName
==
1
)
{
this
.
paginationSet
.
total
=
unfinishedCount
;
}
this
.
paginationSet
=
{
...
this
.
paginationSet
,
pageNo
,
pageSize
:
pageSize
,
}
pageSize
:
pageSize
};
},
reseat
()
{
this
.
searchData
.
planName
=
''
;
this
.
searchData
.
nickname
=
''
;
this
.
searchData
.
mobilePhone
=
''
;
reseat
()
{
this
.
searchData
.
planName
=
""
;
this
.
searchData
.
nickname
=
""
;
this
.
searchData
.
mobilePhone
=
""
;
this
.
timeRangeList
=
[];
this
.
searchData
.
beginTime
=
''
;
this
.
searchData
.
endTime
=
''
;
this
.
searchData
.
beginTime
=
""
;
this
.
searchData
.
endTime
=
""
;
this
.
search
(
1
);
},
async
visitDetail
(
row
){
await
this
.
getEnteringInfo
({
patientId
:
row
.
patientId
,
fuPlanPatientTimesId
:
row
.
fuPlanPatientTimesId
});
async
visitDetail
(
row
)
{
await
this
.
getEnteringInfo
({
patientId
:
row
.
patientId
,
fuPlanPatientTimesId
:
row
.
fuPlanPatientTimesId
});
this
.
dialogDetailShow
=
true
;
// this.enteringRow = row;
},
closeDetail
(
val
)
{
closeDetail
(
val
)
{
this
.
dialogDetailShow
=
val
;
},
handlerClick
()
{
handlerClick
()
{
this
.
search
(
1
);
},
async
editRow
(
row
)
{
async
editRow
(
row
)
{
await
this
.
getFormList
(
row
.
fuPlanTimesId
);
//获取量表列表
//获取量表列表情况
if
(
this
.
formList
.
scalesList
.
length
>
1
)
{
this
.
selectFormShow
=
true
if
(
this
.
formList
.
scalesList
.
length
>
1
)
{
this
.
selectFormShow
=
true
;
this
.
ScaleData
=
{
doctorId
:
this
.
formList
.
doctorId
,
planPatientsTimesId
:
row
.
fuPlanPatientTimesId
};
}
else
if
(
this
.
formList
.
scalesList
.
length
===
1
)
{
this
.
$router
.
push
({
path
:
"/followup/record-manage/form-template"
,
query
:
{
doctorId
:
this
.
formList
.
doctorId
,
scaleNo
:
this
.
formList
.
scalesList
[
0
].
resourceId
,
planPatientsTimesId
:
row
.
fuPlanPatientTimesId
,
planTimesId
:
row
.
planTimesId
,
showBtn
:
1
}
}
else
if
(
this
.
formList
.
scalesList
.
length
===
1
){
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
formList
.
doctorId
,
scaleNo
:
this
.
formList
.
scalesList
[
0
].
resourceId
,
planPatientsTimesId
:
row
.
fuPlanPatientTimesId
,
planTimesId
:
row
.
planTimesId
,
showBtn
:
1
}})
}
else
{
this
.
$message
.
warning
(
'暂无量表!'
)
});
// this.scaleQuery = {
// doctorId: this.formList.doctorId,
// scaleNo: this.formList.scalesList[0].resourceId,
// planPatientsTimesId: row.planPatientTimesId,
// planTimesId: row.planTimesId,
// showBtn: 1
// }
// this.needSign()
}
else
{
this
.
$message
.
warning
(
"暂无量表!"
);
}
// 不区分量表列表长度问题,直接调试量表录入
// this.$router.push({
...
...
@@ -239,25 +351,27 @@
// }
// })
},
changeStatusRow
(
row
)
{
changeStatusRow
(
row
)
{
this
.
statusForm
=
row
;
this
.
isShowChangeDialog
=
true
;
},
sendRow
(
row
){
let
saasUrl
=
getSaasDomain
(
`/pica-frontend/patientEduManage/pica_patient_edu_manage.html#/pageTab/message?patientId=
${
row
.
patientId
}
&nickname=
${
row
.
nickname
}
&token=
${
this
.
_token
}
`
);
sendRow
(
row
)
{
let
saasUrl
=
getSaasDomain
(
`/pica-frontend/patientEduManage/pica_patient_edu_manage.html#/pageTab/message?patientId=
${
row
.
patientId
}
&nickname=
${
row
.
nickname
}
&token=
${
this
.
_token
}
`
);
// let saasUrl = getSaasDomain(`/pica-frontend/patientEduManage/pica_patient_edu_manage.html#/pageTab/message?patientId=${row.patientId}&nickname=${row.nickname}&token=8143DC2A026B4602BF7B746FB5AEE9A1`);
window
.
open
(
saasUrl
)
window
.
open
(
saasUrl
);
},
handleSizeChangePre
(
pageSize
)
{
this
.
paginationSet
[
'pageSize'
]
=
pageSize
;
this
.
paginationSet
[
'pageNo'
]
=
1
;
handleSizeChangePre
(
pageSize
)
{
this
.
paginationSet
[
"pageSize"
]
=
pageSize
;
this
.
paginationSet
[
"pageNo"
]
=
1
;
this
.
search
();
},
handleCurrentChangePre
(
pageNo
)
{
this
.
paginationSet
[
'pageNo'
]
=
pageNo
;
handleCurrentChangePre
(
pageNo
)
{
this
.
paginationSet
[
"pageNo"
]
=
pageNo
;
this
.
search
();
},
closeChangeStatus
(
val
)
{
closeChangeStatus
(
val
)
{
this
.
isShowChangeDialog
=
val
;
this
.
search
();
// let getArguments = arguments[0];
...
...
@@ -266,48 +380,101 @@
},
goFormView
(
item
)
{
this
.
selectFormShow
=
false
;
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
ScaleData
.
doctorId
,
scaleNo
:
item
.
resourceId
,
planPatientsTimesId
:
this
.
ScaleData
.
planPatientsTimesId
,
planTimesId
:
item
.
planTimesId
,
showBtn
:
1
}});
this
.
$router
.
push
({
path
:
"/followup/record-manage/form-template"
,
query
:
{
doctorId
:
this
.
ScaleData
.
doctorId
,
scaleNo
:
item
.
resourceId
,
planPatientsTimesId
:
this
.
ScaleData
.
planPatientsTimesId
,
planTimesId
:
item
.
planTimesId
,
showBtn
:
1
}
});
// this.scaleQuery = {
// doctorId: this.ScaleData.doctorId,
// scaleNo: item.resourceId,
// planPatientsTimesId: this.ScaleData.planPatientsTimesId,
// planTimesId: item.planTimesId,
// showBtn: 1
// }
// this.needSign()
},
closeForm
()
{
this
.
selectFormShow
=
false
;
},
// 敏感词校验与签署协议逻辑
// 1. 判断量表内是否存在敏感词
// 2. 判断居民是否存签署协议
// 3. 七天内是否发送过
needSign
(
scaleId
,
query
)
{
// let statusConfig =await getStatusByScaleId(scaleId)
let
statusConfig
=
{
isSensitive
:
1
,
// 量表内是否存在敏感词 0: 否;1: 是
hasProtocol
:
0
,
// 居民是否存签署协议 0: 否;1: 是
hasSented
:
0
// 七天内是否发送过 0: 否;1: 是
};
if
(
statusConfig
.
isSensitive
==
1
&&
statusConfig
.
hasProtocol
==
0
)
{
this
.
isShowProtocolDialog
=
true
this
.
isSentedProt
=
statusConfig
.
hasSented
==
1
}
else
{
this
.
jumpToScale
()
}
},
// 统一跳转到量表页面
jumpToScale
()
{
// this.$router.push({
// path: "/followup/record-manage/form-template",
// query: this.scaleQuery
// });
},
// 关闭协议确认窗口
closeProtocolDialog
()
{
this
.
isShowProtocolDialog
=
false
this
.
jumpToScale
()
},
// 发送短信通知
sendMsg
(
residentId
)
{
// this.sendMsgToResident(residentId);
this
.
closeProtocolDialog
()
},
},
filters
:
{
statusFileter
:
function
(
value
)
{
if
(
!
value
&&
value
!=
0
)
{
return
''
;
return
""
;
}
else
{
let
hash
=
{
1
:
'未完成'
,
2
:
'已完成'
1
:
"未完成"
,
2
:
"已完成"
};
return
hash
[
value
];
}
},
},
}
}
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
'../../../style/followup/followup-common'
;
@import
'../../../style/followup/element-reset.css'
;
.record-list-wrapper
{
.record-list-content
{
.search-input
{
@import
"../../../style/followup/followup-common"
;
@import
"../../../style/followup/element-reset.css"
;
.record-list-wrapper
{
.record-list-content
{
.search-input
{
max-width
:
none
;
flex
:
1
;
}
.margin-top20
{
.margin-top20
{
margin-top
:
20px
;
}
.status-span
{
.status-span
{
color
:
$picaGreen
;
}
}
.list-content
{
p
{
.list-content
{
p
{
cursor
:
pointer
;
line-height
:
30px
;
text-decoration
:
underline
;
...
...
src/views/followup/reservation-manage/reservation-list.vue
浏览文件 @
9f5d5c80
...
...
@@ -136,6 +136,13 @@
<no-enough
:isNoEnoughShow=
"isNoEnoughShow"
@
closeTipsDialog=
"closeTipsDialog"
></no-enough>
<change-reservation
:isChangeReservation=
"isChangeReservation"
@
closeChangeReserve=
"closeChangeReserve"
:reservationForm=
"needPara"
></change-reservation>
<followup-detail
:dialogFormVisible=
"dialogDetailShow"
@
closeDetail=
"closeDetail"
:enteringInfo=
"enteringInfo"
></followup-detail>
<!-- 协议提醒 -->
<el-dialog
class=
"prot-dialog"
title=
""
:visible
.
sync=
"isShowProtocolDialog"
width=
"30%"
center
:show-close=
false
>
<p
class=
"prot-dialog-tips-1"
>
根据相关规定,在您开展履约之前,需要居民授权同意《云鹊平台隐私协议》,否则将导致履约量表部分信息无法录入
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"isShowProtocolDialog = false"
>
我知道了
</el-button>
</span>
</el-dialog>
</div>
</template>
...
...
@@ -149,6 +156,7 @@
import
NoEnough
from
'./dialog/no-enough'
;
import
ChangeReservation
from
"./dialog/change-reservation"
;
import
followupDetail
from
"@/views/followup/record-manage/dialog/followupDetail"
;
import
{
getFirstAccess
}
from
'@/utils/followup/followapis'
export
default
{
name
:
"reservation-list"
,
components
:
{
...
...
@@ -199,6 +207,7 @@
return
row
.
fuPlanPatientTimesId
;
},
statusTotal
:
null
,
//每种状态的总数
isShowProtocolDialog
:
false
,
}
},
created
()
{
...
...
@@ -208,6 +217,7 @@
// 验证是否首次进入 ################
// this.init();
this
.
isFirstEnter
();
if
(
this
.
$route
.
query
.
planName
&&
this
.
$route
.
query
.
appointTime
&&
this
.
$route
.
query
.
status
)
{
this
.
searchData
.
planName
=
this
.
$route
.
query
.
planName
;
this
.
searchData
.
planTimes
=
[
this
.
$route
.
query
.
appointTime
,
this
.
$route
.
query
.
appointTime
];
...
...
@@ -237,6 +247,15 @@
methods
:
{
...
mapActions
(
'reservationManage'
,
[
'getReservationList'
,
'getCheckReservation'
]),
...
mapActions
(
'recordManage'
,
[
'getEnteringInfo'
]),
// 验证是否首次进入 ################
isFirstEnter
()
{
getFirstAccess
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
isShowProtocolDialog1
=
res
.
data
}
});
},
handleSizeChangePre
(
pageSize
)
{
this
.
getReservationList
({
pageSize
,
...
...
src/views/home copy.vue
0 → 100644
浏览文件 @
9f5d5c80
<
template
>
<div
class=
"home-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
></bread-crumb>
<div
class=
"message-content"
>
<el-row>
<el-col
class=
"visitor screenSet"
:span=
"24"
>
<div
class=
"visitor-title"
>
<div
class=
"title"
>
今日履约:
<span
style=
"color:#449284;margin-right: 10px"
>
{{
todayPlansList
.
length
}}
人
</span>
<span
class=
"type-button"
:style=
"
{background:(planBtn?'rgba(68,146,132,0.06)':'#ffffff')}" @click="changeTodayPlansList(0)">未完成
</span>
<span
class=
"type-button"
:style=
"
{background:(!planBtn?'rgba(68,146,132,0.06)':'#ffffff')}" @click="changeTodayPlansList(1)">已过期
</span>
</div>
<span
class=
"visitor-more"
@
click=
"lookMore(1)"
>
查看更多
</span>
</div>
<div
class=
"visitor-info"
>
<el-table
:data=
"todayPlansList"
style=
"width: 100%"
>
<el-table-column
prop=
"patientName"
label=
"姓名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointTime"
label=
"预约时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"fuTypeStr"
label=
"履约方式"
align=
"center"
></el-table-column>
<el-table-column
prop=
"content"
label=
"操作"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span
class=
"text-btn"
@
click=
"goToScale(scope.row)"
>
履约录入
</span>
|
<span
class=
"text-btn"
@
click=
"changeFollowStatus(scope.row)"
>
变更履约状态
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col
class=
"visitor screenSet"
:span=
"24"
style=
"margin-top: 0;margin-bottom: 0;"
>
<div
class=
"visitor-title"
>
<div
class=
"title"
>
今日预约
<span
class=
"type-button"
:style=
"{background:(appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(0)"
style=
"margin-left: 10px;"
>
未完成
</span>
<span
class=
"type-button"
:style=
"{background:(!appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(1)"
>
已过期
</span>
</div>
<span
class=
"visitor-more"
@
click=
"lookMore(2)"
>
查看更多
</span>
</div>
<div
class=
"visitor-info"
>
<el-table
:data=
"todayAppointsList"
style=
"width: 100%"
>
<el-table-column
prop=
"planName"
label=
"履约计划名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointTime"
label=
"履约计划时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointedCount"
label=
"已经预约"
align=
"center"
></el-table-column>
<el-table-column
prop=
"notAppointedCount"
label=
"未预约"
align=
"center"
></el-table-column>
<el-table-column
prop=
"content"
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
class=
"text-btn"
@
click=
"goToReservation(scope.row.planName, scope.row.appointTime)"
>
去预约
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col
class=
"message screenSet"
:span=
"24"
id=
"screenSet"
>
<div
class=
"message-title"
>
系统消息
<span>
今日消息:{{count}}条
</span></div>
<div
class=
"message-info"
v-if=
"messageList.length > 0"
>
<div
class=
"message-item"
v-for=
"(item,index) in messageList"
:key=
"index"
>
<div
class=
"text-top"
>
<img
:src=
"item.url"
/>
<span>
{{item.menuName}}
</span>
<span>
{{item.portalTime}}
</span>
</div>
<div
class=
"text-bottom"
v-html=
"item.content"
></div>
</div>
</div>
<div
class=
"no-message"
v-else
>
<div>
<img
src=
"../assets/image/noData.png"
/>
</div>
</div>
</el-col>
</el-row>
</div>
<change-followup-status
:isShowChangeDialog=
"isShowChangeDialog"
:statusForm=
"statusForm"
@
closeChangeStatus=
"closeChangeStatus()"
></change-followup-status>
<el-dialog
title=
"选择量表"
:visible
.
sync=
"selectFormShow"
center
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
width=
"400px"
:before-close=
"closeForm"
>
<div
class=
"list-content"
>
<p
v-for=
"(item, index) in formList.scalesList"
:key=
"index"
@
click=
"goFormView(item)"
>
{{item.sendContent}}
</p>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
BreadCrumb
from
'../components/breadcrumb.vue'
import
{
setTimeout
,
setInterval
}
from
'timers'
import
ChangeFollowupStatus
from
"./followup/record-manage/dialog/change-followup-status"
;
import
{
mapGetters
,
mapState
,
mapActions
}
from
'vuex'
import
*
as
commonUtil
from
'../utils/utils'
let
vm
=
null
export
default
{
components
:
{
BreadCrumb
,
ChangeFollowupStatus
},
data
()
{
return
{
curmbFirst
:
'数据总览'
,
spanFirstNum
:
12
,
spanSecondNum
:
12
,
tableData
:
[],
count
:
0
,
messageList
:[],
planBtn
:
true
,
appointBtn
:
true
,
isShowChangeDialog
:
false
,
statusForm
:
{},
selectFormShow
:
false
,
ScaleData
:
{}
}
},
created
()
{
vm
=
this
vm
.
getSystemData
()
vm
.
getTodayPlansList
({
status
:
0
});
vm
.
getTodayAppointsList
({
status
:
0
});
/*vm.getTodayOverview({
status:0
});*/
},
computed
:
{
...
mapGetters
([
'_token'
]),
...
mapState
(
'workbench'
,
{
todayPlansList
:
state
=>
state
.
todayPlansList
,
todayAppointsList
:
state
=>
state
.
todayAppointsList
,
//todayOverview: state => state.todayOverview,
}),
...
mapState
(
'recordManage'
,{
formList
:
state
=>
state
.
formList
,
}),
},
// 挂载到Dom完成时
mounted
:
function
()
{
// commonUtil.resizeHeight()
},
methods
:
{
...
mapActions
(
'workbench'
,
[
'getTodayPlansList'
,
'getTodayAppointsList'
,
'getTodayOverview'
]),
...
mapActions
(
'recordManage'
,
[
'getFormList'
]),
// 查看更多
lookMore
(
type
)
{
if
(
type
==
1
)
{
this
.
$router
.
push
(
'/followup/record-manage/record-list'
);
}
else
if
(
type
==
2
)
{
this
.
$router
.
push
(
'/followup/reservation-manage/reservation-list'
);
}
},
// 获取系统消息数据
getSystemData
()
{
vm
.
GET
(
'portal/portalMessage/queryPortalMessageInfo'
,{
token
:
vm
.
_token
,
pageNo
:
1
,
pageSize
:
15
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
vm
.
messageList
=
res
.
data
.
portalMessageModels
vm
.
count
=
res
.
data
.
count
}
else
{
vm
.
$message
.
info
(
res
.
message
)
}
})
},
changeTodayPlansList
(
status
)
{
if
(
status
==
0
)
{
vm
.
planBtn
=
true
}
else
{
vm
.
planBtn
=
false
}
vm
.
getTodayPlansList
({
status
:
status
});
},
changeTodayAppointsList
(
status
)
{
if
(
status
==
0
)
{
vm
.
appointBtn
=
true
}
else
{
vm
.
appointBtn
=
false
}
vm
.
getTodayAppointsList
({
status
:
status
});
},
goToReservation
(
planName
,
appointTime
)
{
this
.
$router
.
push
({
path
:
'/followup/reservation-manage/reservation-list'
,
query
:
{
planName
:
planName
,
appointTime
:
appointTime
,
status
:
1
}});
},
closeChangeStatus
(
val
){
this
.
isShowChangeDialog
=
val
;
let
status
=
null
if
(
this
.
planBtn
==
true
)
{
status
=
0
}
else
{
status
=
1
}
this
.
getTodayPlansList
({
status
:
status
})
},
goFormView
(
item
)
{
this
.
selectFormShow
=
false
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
ScaleData
.
doctorId
,
scaleNo
:
item
.
resourceId
,
planPatientsTimesId
:
this
.
ScaleData
.
planPatientsTimesId
,
planTimesId
:
item
.
planTimesId
,
showBtn
:
1
}});
},
closeForm
()
{
this
.
selectFormShow
=
false
;
},
async
goToScale
(
row
)
{
await
this
.
getFormList
(
row
.
planTimesId
);
//获取量表列表
//获取量表列表情况
if
(
this
.
formList
.
scalesList
.
length
>
1
){
this
.
selectFormShow
=
true
this
.
ScaleData
=
{
doctorId
:
this
.
formList
.
doctorId
,
planPatientsTimesId
:
row
.
planPatientTimesId
}
}
else
if
(
this
.
formList
.
scalesList
.
length
===
1
){
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
formList
.
doctorId
,
scaleNo
:
this
.
formList
.
scalesList
[
0
].
resourceId
,
planPatientsTimesId
:
row
.
planPatientTimesId
,
planTimesId
:
row
.
planTimesId
,
showBtn
:
1
}})
}
else
{
this
.
$message
.
warning
(
'暂无量表!'
)
}
},
changeFollowStatus
(
row
)
{
this
.
statusForm
=
{
fuPlanPatientTimesId
:
row
.
planPatientTimesId
,
patientId
:
row
.
patientId
,
nickname
:
row
.
patientName
,
status
:
1
,
}
this
.
isShowChangeDialog
=
true
}
}
}
</
script
>
<
style
lang=
"scss"
>
.home-wrap
{
.list-content
{
p
{
cursor
:
pointer
;
line-height
:
30px
;
text-decoration
:
underline
;
color
:
#449284
;
}
}
.message-content
{
.visitor
{
padding
:
0
25px
30px
;
margin-bottom
:
20px
;
background
:
#fff
;
margin-top
:
88px
;
// min-height: 348px;
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
width
:
95%
;
height
:
300px
!
important
;
}
@media
screen
and
(
min-width
:
1900px
)
{
width
:
96
.7%
;
height
:
380px
!
important
;
}
.visitor-title
{
height
:
80px
;
line-height
:
80px
;
margin-right
:
20px
;
text-align
:
right
;
.title
{
float
:
left
;
font-size
:
20px
;
}
.visitor-more
{
font-size
:
12px
;
color
:
#449284
;
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
padding
:
5px
14px
;
border-radius
:
3px
;
background
:
rgba
(
68
,
146
,
132
,
0
.06
);
cursor
:
pointer
;
}
.type-button
{
font-size
:
12px
;
color
:
#449284
;
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
padding
:
5px
14px
;
border-radius
:
3px
;
/*background: rgba(68,146,132,0.06);*/
background
:
#ffffff
;
cursor
:
pointer
;
}
}
.visitor-info
{
margin-right
:
20px
;
.text-btn
:hover
{
cursor
:
pointer
;
color
:
#449284
;
}
}
}
.message
{
padding
:
0
25px
30px
;
/*margin-top: 20px;*/
margin-top
:
90px
;
background
:
#fff
;
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
width
:
95%
;
// height: 320px !important;
}
@media
screen
and
(
min-width
:
1900px
)
{
width
:
96
.7%
;
// height: 400px !important;
}
.message-title
{
font-size
:
20px
;
height
:
80px
;
line-height
:
80px
;
span
{
font-size
:
14px
;
color
:
#717377
;
margin-left
:
8px
;
}
}
.message-info
{
padding
:
7px
;
.message-item
{
padding
:
10px
10px
15px
;
border-bottom
:
1px
solid
#EBEEF5
;
.text-top
{
img
{
float
:
left
;
width
:
16px
;
margin-top
:
3px
;
}
span
:nth-child
(
2
)
{
padding
:
10px
;
}
span
:nth-child
(
3
)
{
font-size
:
12px
;
color
:
#999
;
}
}
.text-bottom
{
font-size
:
14px
;
color
:
#666
;
margin-top
:
15px
;
}
}
}
}
.no-message
{
text-align
:
center
;
img
{
width
:
100px
;
// margin-top: 17%;
margin
:
6%
0
6%
;
}
}
}
}
</
style
>
src/views/home.vue
浏览文件 @
9f5d5c80
...
...
@@ -5,23 +5,31 @@
<el-row>
<el-col
class=
"visitor screenSet"
:span=
"24"
>
<div
class=
"visitor-title"
>
<div
class=
"title"
>
今日履约:
<div
class=
"title"
>
今日履约:
<span
style=
"color:#449284;margin-right: 10px"
>
{{
todayPlansList
.
length
}}
人
</span>
<span
class=
"type-button"
:style=
"
{background:(planBtn?'rgba(68,146,132,0.06)':'#ffffff')}" @click="changeTodayPlansList(0)">未完成
</span>
<span
class=
"type-button"
:style=
"
{background:(!planBtn?'rgba(68,146,132,0.06)':'#ffffff')}" @click="changeTodayPlansList(1)">已过期
</span>
<span
class=
"type-button"
:style=
"
{background:(planBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@click="changeTodayPlansList(0)"
>未完成
</span>
<span
class=
"type-button"
:style=
"
{background:(!planBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@click="changeTodayPlansList(1)"
>已过期
</span>
</div>
<span
class=
"visitor-more"
@
click=
"lookMore(1)"
>
查看更多
</span>
</div>
<div
class=
"visitor-info"
>
<el-table
:data=
"todayPlansList"
style=
"width: 100%"
>
<el-table
:data=
"todayPlansList"
style=
"width: 100%"
>
<el-table-column
prop=
"patientName"
label=
"姓名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointTime"
label=
"预约时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"fuTypeStr"
label=
"履约方式"
align=
"center"
></el-table-column>
<el-table-column
prop=
"content"
label=
"操作"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span
class=
"text-btn"
@
click=
"goToScale(scope.row)"
>
履约录入
</span>
|
<span
class=
"text-btn"
@
click=
"changeFollowStatus(scope.row)"
>
变更履约状态
</span>
<span
class=
"text-btn"
@
click=
"goToScale(scope.row)"
>
履约录入
</span>
|
<span
class=
"text-btn"
@
click=
"changeFollowStatus(scope.row)"
>
变更履约状态
</span>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -29,34 +37,48 @@
</el-col>
<el-col
class=
"visitor screenSet"
:span=
"24"
style=
"margin-top: 0;margin-bottom: 0;"
>
<div
class=
"visitor-title"
>
<div
class=
"title"
>
今日预约
<span
class=
"type-button"
:style=
"{background:(appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(0)"
style=
"margin-left: 10px;"
>
未完成
</span>
<span
class=
"type-button"
:style=
"{background:(!appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(1)"
>
已过期
</span>
<div
class=
"title"
>
今日预约
<span
class=
"type-button"
:style=
"{background:(appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(0)"
style=
"margin-left: 10px;"
>
未完成
</span>
<span
class=
"type-button"
:style=
"{background:(!appointBtn?'rgba(68,146,132,0.06)':'#ffffff')}"
@
click=
"changeTodayAppointsList(1)"
>
已过期
</span>
</div>
<span
class=
"visitor-more"
@
click=
"lookMore(2)"
>
查看更多
</span>
</div>
<div
class=
"visitor-info"
>
<el-table
:data=
"todayAppointsList"
style=
"width: 100%"
>
<el-table
:data=
"todayAppointsList"
style=
"width: 100%"
>
<el-table-column
prop=
"planName"
label=
"履约计划名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointTime"
label=
"履约计划时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"appointedCount"
label=
"已经预约"
align=
"center"
></el-table-column>
<el-table-column
prop=
"notAppointedCount"
label=
"未预约"
align=
"center"
></el-table-column>
<el-table-column
prop=
"content"
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
class=
"text-btn"
@
click=
"goToReservation(scope.row.planName, scope.row.appointTime)"
>
去预约
</span>
<span
class=
"text-btn"
@
click=
"goToReservation(scope.row.planName, scope.row.appointTime)"
>
去预约
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col
class=
"message screenSet"
:span=
"24"
id=
"screenSet"
>
<div
class=
"message-title"
>
系统消息
<span>
今日消息:{{count}}条
</span></div>
<div
class=
"message-title"
>
系统消息
<span>
今日消息:{{count}}条
</span>
</div>
<div
class=
"message-info"
v-if=
"messageList.length > 0"
>
<div
class=
"message-item"
v-for=
"(item,index) in messageList"
:key=
"index"
>
<div
class=
"text-top"
>
<img
:src=
"item.url"
/>
<img
:src=
"item.url"
/>
<span>
{{item.menuName}}
</span>
<span>
{{item.portalTime}}
</span>
</div>
...
...
@@ -65,35 +87,60 @@
</div>
<div
class=
"no-message"
v-else
>
<div>
<img
src=
"../assets/image/noData.png"
/>
<img
src=
"../assets/image/noData.png"
/>
</div>
</div>
</el-col>
</el-row>
</div>
<change-followup-status
:isShowChangeDialog=
"isShowChangeDialog"
:statusForm=
"statusForm"
@
closeChangeStatus=
"closeChangeStatus()"
></change-followup-status>
<el-dialog
title=
"选择量表"
<change-followup-status
:isShowChangeDialog=
"isShowChangeDialog"
:statusForm=
"statusForm"
@
closeChangeStatus=
"closeChangeStatus()"
></change-followup-status>
<el-dialog
title=
"选择量表"
:visible
.
sync=
"selectFormShow"
center
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
width=
"400px"
:before-close=
"closeForm"
>
:before-close=
"closeForm"
>
<div
class=
"list-content"
>
<p
v-for=
"(item, index) in formList.scalesList"
:key=
"index"
@
click=
"goFormView(item)"
>
{{item.sendContent}}
</p>
<p
v-for=
"(item, index) in formList.scalesList"
:key=
"index"
@
click=
"goFormView(item)"
>
{{item.sendContent}}
</p>
</div>
</el-dialog>
<!-- 敏感词及协议校验 -->
<el-dialog
class=
"prot-dialog"
title=
""
:visible
.
sync=
"isShowProtocolDialog"
width=
"30%"
center
:show-close=
false
>
<p
class=
"prot-dialog-tips-1"
>
由于该居民尚未同意《云鹊平台隐私协议》,将导致履约量表部分信息无法录入,为了方便您的工作开展,请您发送短信提醒居民完成授权
</p>
<p
v-show=
"!isSentedProt"
class=
"prot-dialog-tips-2"
>
若您选择暂不发送,您只能录入量表的非敏感信息
</p>
<p
v-show=
"isSentedProt"
class=
"prot-dialog-tips-3"
>
为避免打扰居民,7天内只能发送1次,您已发送过短信,请尽快联系居民同意授权
</p>
<span
v-show=
"!isSentedProt"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"closeProtocolDialog"
>
暂不发送
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"sendMsg"
>
发送短信
</el-button>
</span>
<span
v-show=
"isSentedProt"
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"closeProtocolDialog"
>
我知道了
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
BreadCrumb
from
'../components/breadcrumb.vue'
import
{
setTimeout
,
setInterval
}
from
'timers'
import
BreadCrumb
from
"../components/breadcrumb.vue"
;
import
{
setTimeout
,
setInterval
}
from
"timers"
;
import
ChangeFollowupStatus
from
"./followup/record-manage/dialog/change-followup-status"
;
import
{
mapGetters
,
mapState
,
mapActions
}
from
'vuex'
import
*
as
commonUtil
from
'../utils/utils'
let
vm
=
null
import
{
mapGetters
,
mapState
,
mapActions
}
from
"vuex"
;
import
*
as
commonUtil
from
"../utils/utils"
;
let
vm
=
null
;
export
default
{
components
:
{
BreadCrumb
,
...
...
@@ -101,77 +148,87 @@ export default {
},
data
()
{
return
{
curmbFirst
:
'数据总览'
,
curmbFirst
:
"数据总览"
,
spanFirstNum
:
12
,
spanSecondNum
:
12
,
tableData
:
[],
count
:
0
,
messageList
:
[],
messageList
:
[],
planBtn
:
true
,
appointBtn
:
true
,
isShowChangeDialog
:
false
,
statusForm
:
{},
selectFormShow
:
false
,
ScaleData
:
{}
}
ScaleData
:
{},
isShowProtocolDialog
:
true
,
scaleQuery
:
{},
isSentedProt
:
false
};
},
created
()
{
vm
=
this
vm
.
getSystemData
()
vm
=
this
;
vm
.
getSystemData
();
vm
.
getTodayPlansList
({
status
:
0
status
:
0
});
vm
.
getTodayAppointsList
({
status
:
0
status
:
0
});
/*vm.getTodayOverview({
status:0
});*/
},
computed
:
{
...
mapGetters
([
'_token'
]),
...
mapState
(
'workbench'
,
{
...
mapGetters
([
"_token"
]),
...
mapState
(
"workbench"
,
{
todayPlansList
:
state
=>
state
.
todayPlansList
,
todayAppointsList
:
state
=>
state
.
todayAppointsList
,
todayAppointsList
:
state
=>
state
.
todayAppointsList
//todayOverview: state => state.todayOverview,
}),
...
mapState
(
'recordManage'
,
{
formList
:
state
=>
state
.
formList
,
}),
...
mapState
(
"recordManage"
,
{
formList
:
state
=>
state
.
formList
})
},
// 挂载到Dom完成时
mounted
:
function
()
{
// commonUtil.resizeHeight()
},
methods
:
{
...
mapActions
(
'workbench'
,
[
'getTodayPlansList'
,
'getTodayAppointsList'
,
'getTodayOverview'
]),
...
mapActions
(
'recordManage'
,
[
'getFormList'
]),
...
mapActions
(
"workbench"
,
[
"getTodayPlansList"
,
"getTodayAppointsList"
,
"getTodayOverview"
]),
...
mapActions
(
"recordManage"
,
[
"getFormList"
]),
// 查看更多
lookMore
(
type
)
{
if
(
type
==
1
)
{
this
.
$router
.
push
(
'/followup/record-manage/record-list'
);
}
else
if
(
type
==
2
)
{
this
.
$router
.
push
(
'/followup/reservation-manage/reservation-list'
);
if
(
type
==
1
)
{
this
.
$router
.
push
(
"/followup/record-manage/record-list"
);
}
else
if
(
type
==
2
)
{
this
.
$router
.
push
(
"/followup/reservation-manage/reservation-list"
);
}
},
// 获取系统消息数据
getSystemData
()
{
vm
.
GET
(
'portal/portalMessage/queryPortalMessageInfo'
,{
token
:
vm
.
_token
,
pageNo
:
1
,
pageSize
:
15
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
vm
.
messageList
=
res
.
data
.
portalMessageModels
vm
.
count
=
res
.
data
.
count
vm
.
GET
(
"portal/portalMessage/queryPortalMessageInfo"
,
{
token
:
vm
.
_token
,
pageNo
:
1
,
pageSize
:
15
}).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
messageList
=
res
.
data
.
portalMessageModels
;
vm
.
count
=
res
.
data
.
count
;
}
else
{
vm
.
$message
.
info
(
res
.
message
)
vm
.
$message
.
info
(
res
.
message
);
}
})
});
},
changeTodayPlansList
(
status
)
{
if
(
status
==
0
)
{
vm
.
planBtn
=
true
if
(
status
==
0
)
{
vm
.
planBtn
=
true
;
}
else
{
vm
.
planBtn
=
false
vm
.
planBtn
=
false
;
}
vm
.
getTodayPlansList
({
...
...
@@ -179,34 +236,53 @@ export default {
});
},
changeTodayAppointsList
(
status
)
{
if
(
status
==
0
)
{
vm
.
appointBtn
=
true
if
(
status
==
0
)
{
vm
.
appointBtn
=
true
;
}
else
{
vm
.
appointBtn
=
false
vm
.
appointBtn
=
false
;
}
vm
.
getTodayAppointsList
({
status
:
status
});
},
goToReservation
(
planName
,
appointTime
)
{
this
.
$router
.
push
({
path
:
'/followup/reservation-manage/reservation-list'
,
query
:
{
planName
:
planName
,
appointTime
:
appointTime
,
status
:
1
}});
this
.
$router
.
push
({
path
:
"/followup/reservation-manage/reservation-list"
,
query
:
{
planName
:
planName
,
appointTime
:
appointTime
,
status
:
1
}
});
},
closeChangeStatus
(
val
)
{
closeChangeStatus
(
val
)
{
this
.
isShowChangeDialog
=
val
;
let
status
=
null
if
(
this
.
planBtn
==
true
)
{
status
=
0
let
status
=
null
;
if
(
this
.
planBtn
==
true
)
{
status
=
0
;
}
else
{
status
=
1
status
=
1
;
}
this
.
getTodayPlansList
({
status
:
status
})
});
},
goFormView
(
item
)
{
this
.
selectFormShow
=
false
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
ScaleData
.
doctorId
,
scaleNo
:
item
.
resourceId
,
planPatientsTimesId
:
this
.
ScaleData
.
planPatientsTimesId
,
planTimesId
:
item
.
planTimesId
,
showBtn
:
1
}});
this
.
selectFormShow
=
false
;
this
.
$router
.
push
({
path
:
"/followup/record-manage/form-template"
,
query
:
{
doctorId
:
this
.
ScaleData
.
doctorId
,
scaleNo
:
item
.
resourceId
,
planPatientsTimesId
:
this
.
ScaleData
.
planPatientsTimesId
,
planTimesId
:
item
.
planTimesId
,
showBtn
:
1
}
});
// this.scaleQuery = {
// doctorId: this.ScaleData.doctorId,
// scaleNo: item.resourceId,
// planPatientsTimesId: this.ScaleData.planPatientsTimesId,
// planTimesId: item.planTimesId,
// showBtn: 1
// }
// this.needSign()
},
closeForm
()
{
this
.
selectFormShow
=
false
;
...
...
@@ -214,17 +290,33 @@ export default {
async
goToScale
(
row
)
{
await
this
.
getFormList
(
row
.
planTimesId
);
//获取量表列表
//获取量表列表情况
if
(
this
.
formList
.
scalesList
.
length
>
1
)
{
this
.
selectFormShow
=
true
if
(
this
.
formList
.
scalesList
.
length
>
1
)
{
this
.
selectFormShow
=
true
;
this
.
ScaleData
=
{
doctorId
:
this
.
formList
.
doctorId
,
planPatientsTimesId
:
row
.
planPatientTimesId
};
}
else
if
(
this
.
formList
.
scalesList
.
length
===
1
)
{
this
.
$router
.
push
({
path
:
"/followup/record-manage/form-template"
,
query
:
{
doctorId
:
this
.
formList
.
doctorId
,
scaleNo
:
this
.
formList
.
scalesList
[
0
].
resourceId
,
planPatientsTimesId
:
row
.
planPatientTimesId
,
planTimesId
:
row
.
planTimesId
,
showBtn
:
1
}
}
else
if
(
this
.
formList
.
scalesList
.
length
===
1
){
this
.
$router
.
push
({
path
:
'/followup/record-manage/form-template'
,
query
:
{
doctorId
:
this
.
formList
.
doctorId
,
scaleNo
:
this
.
formList
.
scalesList
[
0
].
resourceId
,
planPatientsTimesId
:
row
.
planPatientTimesId
,
planTimesId
:
row
.
planTimesId
,
showBtn
:
1
}})
}
else
{
this
.
$message
.
warning
(
'暂无量表!'
)
});
// this.scaleQuery = {
// doctorId: this.formList.doctorId,
// scaleNo: this.formList.scalesList[0].resourceId,
// planPatientsTimesId: row.planPatientTimesId,
// planTimesId: row.planTimesId,
// showBtn: 1
// }
// this.needSign()
}
else
{
this
.
$message
.
warning
(
"暂无量表!"
);
}
},
changeFollowStatus
(
row
)
{
...
...
@@ -232,17 +324,56 @@ export default {
fuPlanPatientTimesId
:
row
.
planPatientTimesId
,
patientId
:
row
.
patientId
,
nickname
:
row
.
patientName
,
status
:
1
,
}
this
.
isShowChangeDialog
=
true
status
:
1
};
this
.
isShowChangeDialog
=
true
;
},
// 敏感词校验与签署协议逻辑
// 1. 判断量表内是否存在敏感词
// 2. 判断居民是否存签署协议
// 3. 七天内是否发送过
needSign
(
scaleId
,
query
)
{
// let statusConfig =await getStatusByScaleId(scaleId)
let
statusConfig
=
{
isSensitive
:
1
,
// 量表内是否存在敏感词 0: 否;1: 是
hasProtocol
:
0
,
// 居民是否存签署协议 0: 否;1: 是
hasSented
:
0
// 七天内是否发送过 0: 否;1: 是
};
if
(
statusConfig
.
isSensitive
==
1
&&
statusConfig
.
hasProtocol
==
0
)
{
this
.
isShowProtocolDialog
=
true
this
.
isSentedProt
=
statusConfig
.
hasSented
==
1
}
else
{
this
.
jumpToScale
()
}
},
// 统一跳转到量表页面
jumpToScale
()
{
// this.$router.push({
// path: "/followup/record-manage/form-template",
// query: this.scaleQuery
// });
},
// 关闭协议确认窗口
closeProtocolDialog
()
{
this
.
isShowProtocolDialog
=
false
this
.
jumpToScale
()
},
// 发送短信通知
sendMsg
(
residentId
)
{
// this.sendMsgToResident(residentId);
this
.
closeProtocolDialog
()
},
}
}
}
;
</
script
>
<
style
lang=
"scss"
>
.home-wrap
{
.list-content
{
p
{
.home-wrap
{
.list-content
{
p
{
cursor
:
pointer
;
line-height
:
30px
;
text-decoration
:
underline
;
...
...
@@ -256,11 +387,11 @@ export default {
background
:
#fff
;
margin-top
:
88px
;
// min-height: 348px;
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
width
:
95%
;
height
:
300px
!
important
;
}
@media
screen
and
(
min-width
:
1900px
)
{
@media
screen
and
(
min-width
:
1900px
)
{
width
:
96
.7%
;
height
:
380px
!
important
;
}
...
...
@@ -276,16 +407,16 @@ export default {
.visitor-more
{
font-size
:
12px
;
color
:
#449284
;
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
padding
:
5px
14px
;
border-radius
:
3px
;
background
:
rgba
(
68
,
146
,
132
,
0
.06
);
background
:
rgba
(
68
,
146
,
132
,
0
.06
);
cursor
:
pointer
;
}
.type-button
{
font-size
:
12px
;
color
:
#449284
;
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
border
:
1px
solid
rgba
(
68
,
146
,
132
,
0
.3
);
padding
:
5px
14px
;
border-radius
:
3px
;
/*background: rgba(68,146,132,0.06);*/
...
...
@@ -303,14 +434,14 @@ export default {
}
.message
{
padding
:
0
25px
30px
;
/*margin-top: 20px;*/
margin-top
:
9
0px
;
// margin-top: 20px;
margin-top
:
2
0px
;
background
:
#fff
;
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
@media
screen
and
(
min-width
:
1240px
)
and
(
max-width
:
1900px
)
{
width
:
95%
;
// height: 320px !important;
}
@media
screen
and
(
min-width
:
1900px
)
{
@media
screen
and
(
min-width
:
1900px
)
{
width
:
96
.7%
;
// height: 400px !important;
}
...
...
@@ -328,7 +459,7 @@ export default {
padding
:
7px
;
.message-item
{
padding
:
10px
10px
15px
;
border-bottom
:
1px
solid
#EBEEF
5
;
border-bottom
:
1px
solid
#ebeef
5
;
.text-top
{
img
{
float
:
left
;
...
...
@@ -348,7 +479,6 @@ export default {
color
:
#666
;
margin-top
:
15px
;
}
}
}
}
...
...
@@ -361,8 +491,28 @@ export default {
}
}
}
}
.prot-dialog
{
.el-dialog__body
{
padding
:
25px
25px
10px
;
}
&
-tips-1
{
margin-top
:
0px
;
}
&
-tips-2
{
margin-top
:
20px
;
font-size
:
12px
;
color
:
#aaa
;
}
&
-tips-3
{
margin-top
:
20px
;
font-size
:
12px
;
color
:
#FF9A4B
;
}
}
</
style
>
src/views/patients/labels-manage/dialog/select-patitents copy.vue
0 → 100644
浏览文件 @
9f5d5c80
<
template
>
<div
class=
"select-patient-dialog"
>
<el-dialog
title=
"添加居民"
:visible
.
sync=
"showSelectPatient"
v-if=
"isShowSelectPatient"
:before-close=
"clickClose"
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
width=
"1100px"
top=
"2%"
center
>
<div
class=
"finish-content"
>
<el-form
ref=
"searchData"
:model=
"searchData"
:inline=
"true"
class=
"select-width"
size=
"small"
>
<div
style=
"display: flex;justify-content: flex-end;margin-bottom: 15px"
>
<el-button
plain
size=
"small"
@
click=
"goAddPatient"
>
+ 新增居民
</el-button>
</div>
<div
style=
"display: flex;justify-content: space-between;"
>
<div>
<el-form-item
prop=
"sex"
>
<el-select
class=
"init-width"
v-model=
"searchData.sex"
placeholder=
"请选择性别"
clearable
>
<el-option
v-for=
"(item,index) in sexOptions"
:key=
"index"
:label=
"item.value"
:value=
"item.no"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"ageRange"
>
<el-select
v-model=
"searchData.ageRange"
multiple
collapse-tags
filterable
placeholder=
"请选择年龄段"
class=
"init-width2"
clearable
>
<el-option
v-for=
"(item,index) in ageOptions"
:key=
"index"
:label=
"item.value"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"diseaseId"
>
<!--
<el-select
v-model=
"searchData.diseaseId"
multiple
collapse-tags
filterable
placeholder=
"请选择诊断"
class=
"set-width"
clearable
>
<el-option
v-for=
"(item,index) in diseaseOptions"
:key=
"index"
:label=
"item.diseaseName"
:value=
"item.diseaseId"
>
</el-option>
-->
<!--
</el-select>
-->
<el-select
v-model=
"searchData.icdCodeList"
multiple
collapse-tags
filterable
remote
reserve-keyword
placeholder=
"请选择或搜索诊断"
:remote-method=
"getDiseaseData"
:loading=
"loading"
class=
"set-width"
>
<el-option
v-for=
"item in icdOptions"
:key=
"item.icdCode"
:label=
"item.diseaseName"
:value=
"item.icdCode"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"labelId"
>
<el-select
v-model=
"searchData.labelId"
multiple
collapse-tags
filterable
class=
"set-width"
placeholder=
"请选择或搜索分组"
clearable
>
<el-option
v-for=
"(item,index) in labelOptions"
:key=
"index"
:label=
"item.labelName"
:value=
"item.labelId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"fuPlanIdList"
v-if=
"selectPatientType == 1"
>
<el-select
v-model=
"searchData.fuPlanIdList"
multiple
collapse-tags
filterable
class=
"set-width"
placeholder=
"请选择履约计划"
clearable
>
<el-option
v-for=
"(item,index) in fuPlanOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"searchCondition"
>
<el-input
v-model=
"searchData.searchCondition"
placeholder=
"请输入姓名,手机号,身份证"
clearable
class=
"set-width"
>
<!--
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
@
click=
"searchHandler"
style=
"cursor: pointer"
></i>
-->
</el-input>
</el-form-item>
</div>
<div>
<el-button
type=
"primary"
@
click=
"searchHandler"
size=
"small"
>
查询
</el-button>
<el-button
plain
@
click=
"resetData('searchData')"
size=
"small"
>
重置
</el-button>
</div>
</div>
</el-form>
<el-table
:data=
"patientsData"
ref=
"multipleTable"
center
style=
"width: 100%;margin-top: 10px;"
height=
"250"
:row-key=
"getRowKeys"
class=
"spe-table"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
:reserve-selection=
"true"
:selectable=
"checkboxInit"
>
</el-table-column>
<el-table-column
prop=
"nickname"
label=
"姓名"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"sexStr"
label=
"性别"
min-width=
"50"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"ageStr"
label=
"年龄"
min-width=
"50"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"mobilePhone"
label=
"手机"
align=
"center"
min-width=
"130"
>
</el-table-column>
<el-table-column
prop=
"idNoStr"
label=
"身份证"
align=
"center"
min-width=
"130"
>
</el-table-column>
<el-table-column
prop=
"showDiseaseNames"
label=
"诊断"
align=
"center"
width=
"180"
:show-overflow-tooltip=
"true"
>
</el-table-column>
<el-table-column
prop=
"showLabelName"
label=
"分组"
align=
"center"
width=
"180"
:show-overflow-tooltip=
"true"
>
</el-table-column>
<el-table-column
v-if=
"selectPatientType == 1"
prop=
"fuPlanName"
label=
"履约计划"
align=
"center"
width=
"180"
:show-overflow-tooltip=
"true"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.fuPlanName"
>
{{
scope
.
row
.
fuPlanName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</el-table-column>
</el-table>
<el-row
type=
"flex"
justify=
"space-between"
align=
"middle"
class=
"margin-top15"
>
<!--<span>已选:{{newSelects.length}}人</span>-->
<span></span>
<el-pagination
background
v-if=
"patientsData.length"
@
size-change=
"handleSizeChangePre"
@
current-change=
"handleCurrentChangePre"
layout=
"total, sizes, prev, pager, next, jumper"
:current-page=
"paginationSet.pageNum"
:page-sizes=
"[15,30,50,100]"
:page-size=
"paginationSet.pageSize"
:total=
"paginationSet.total"
>
</el-pagination>
</el-row>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"clickClose"
size=
"small"
plain
>
取 消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"sureClick"
>
确 定
</el-button>
</div>
</el-dialog>
<el-dialog
class=
"reload-label-modal"
:visible
.
sync=
"showReloadModal"
width=
"320px"
:show-close=
"false"
:close-on-click-modal=
"false"
center
>
<p
class=
"tips"
>
您刚才跳转到新增居民页面进行新增居民,请点击下方按钮刷新数据
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleReload"
>
重新加载
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
getConstants
,
getPatientInfoList
,
getDiseasesList
,
getLabelList
,
getIcdList
}
from
'@/utils/patients/patientsapi'
import
{
getPlanList
}
from
'@/utils/followup/followapis'
export
default
{
components
:
{},
name
:
"select-patient"
,
data
()
{
return
{
showSelectPatient
:
true
,
allSelects
:
[],
// eachSelects: [],//仅仅是操作选择的总人员
// totalSelect: [],// 当前所选的人
srvPackageId
:
''
,
patientsData
:
[],
searchData
:
{
sex
:
null
,
ageRange
:
[],
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
,
icdCodeList
:
[],
},
paginationSet
:
{
pageNum
:
1
,
pageSize
:
15
,
total
:
0
},
sexOptions
:
[{
no
:
''
,
value
:
'不限'
}],
ageOptions
:
[
// {no: '', value: '年龄范围'}
],
diseaseOptions
:
[
// {diseaseId: '', diseaseName: '基础疾病'}
],
labelOptions
:
[
// {labelId: '', labelName: '分组'}
],
fuPlanOptions
:
[],
newSelects
:
[],
//新选中的人
oldPatientList
:
[],
showReloadModal
:
false
,
loading
:
false
,
icdOptions
:
[],
getRowKeys
(
row
)
{
return
row
.
patientId
;
},
}
},
props
:
{
isShowSelectPatient
:
Boolean
,
//是否显示model,
patientIdList
:
Array
,
// 确定已经选过的居民
oldPatientIdList
:
Array
,
// 确定已经选过的居民
selectPatientType
:
Number
,
//获取居民列表所需字段,履约是1,分组是2,患教是3
sourceId
:
{
type
:
String
,
required
:
false
,
default
:
''
,
},
},
watch
:
{
isShowSelectPatient
(
val
){
if
(
val
){
this
.
getPatientsList
()
//获取搜索诊断
this
.
getDiseaseData
();
// 获取常量 性别、年龄
getConstants
({
numList
:
'P057,P006'
}).
then
(
res
=>
{
this
.
sexOptions
=
[{
no
:
''
,
value
:
'不限'
}];
this
.
sexOptions
=
this
.
sexOptions
.
concat
(
res
.
data
.
P006
);
//性别
this
.
ageOptions
=
[
// {no: '', value: '年龄范围'}
];
this
.
ageOptions
=
this
.
ageOptions
.
concat
(
res
.
data
.
P057
);
//年龄段
});
// 获取所有疾病
getDiseasesList
().
then
(
res
=>
{
this
.
diseaseOptions
=
[
// {diseaseId: '', diseaseName: '基础疾病'}
];
this
.
diseaseOptions
=
this
.
diseaseOptions
.
concat
(
res
.
data
);
});
// 获取所有分组
getLabelList
({
type
:
1
}).
then
(
res
=>
{
this
.
labelOptions
=
[
// {labelId: '', labelName: '分组'}
]
this
.
labelOptions
=
this
.
labelOptions
.
concat
(
res
.
data
.
labelNameList
);
});
// 获取履约计划列表
getPlanList
({
pageNo
:
-
1
,
}).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
fuPlanOptions
=
res
.
data
.
fPlanDtoList
;
}
})
}
},
},
methods
:
{
checkboxInit
(
row
,
index
){
if
(
row
.
disableNum
==
undefined
)
{
return
1
}
else
{
return
row
.
disableNum
}
},
getDiseaseData
(
query
)
{
// if (query !== '') {
let
params
=
{
diseaseName
:
query
?
query
:
''
,
pageSize
:
200
,
pageNum
:
1
,
};
this
.
loading
=
true
;
getIcdList
(
params
).
then
(
data
=>
{
this
.
loading
=
false
;
if
(
data
.
code
==
"000000"
)
{
this
.
icdOptions
=
data
.
data
;
}
}).
catch
((
error
)
=>
{
this
.
$message
({
message
:
error
,
type
:
'error'
});
});
// }else {
// this.icdOptions = [];
// }
},
getPatientsList
(){
const
data
=
{
pageSize
:
this
.
paginationSet
.
pageSize
,
pageNo
:
this
.
paginationSet
.
pageNum
,
labelIdList
:
this
.
searchData
.
labelId
,
diseaseIdList
:
this
.
searchData
.
diseaseId
,
ageList
:
this
.
searchData
.
ageRange
,
sex
:
this
.
searchData
.
sex
,
searchCondition
:
this
.
searchData
.
searchCondition
,
srvPackageId
:
this
.
srvPackageId
,
addType
:
this
.
selectPatientType
,
//履约是1,分组是2,患教是3
fuPlanIdList
:
this
.
searchData
.
fuPlanIdList
||
[],
sourceId
:
this
.
sourceId
,
//若是履约的话,传planId;若是分组的话,传labeledId;
icdCodeList
:
this
.
searchData
.
icdCodeList
}
getPatientInfoList
(
data
).
then
(
res
=>
{
if
(
res
.
data
.
patientList
){
this
.
patientsData
=
res
.
data
.
patientList
//接口获取的当页居民
this
.
getSex
()
this
.
paginationSet
.
total
=
res
.
data
.
totalRows
// 设置所请求的当页人员是否成为选中状态
// console.log('传入的已选居民',this.patientIdList)
this
.
patientsData
.
forEach
((
item
)
=>
{
item
.
disableNum
=
1
;
let
diseaseNames
=
[];
let
groupNames
=
[]
//转化分组
if
(
item
.
labelModels
)
{
item
.
labelModels
.
forEach
(
item
=>
{
groupNames
.
push
(
item
.
label
)
});
item
.
showLabelName
=
groupNames
.
join
(
'、'
);
}
else
{
item
.
showLabelName
=
'-'
;
}
//转化诊断
if
(
item
.
patientTypeModels
)
{
item
.
patientTypeModels
.
forEach
(
item
=>
{
diseaseNames
.
push
(
item
.
diseaseName
)
})
item
.
showDiseaseNames
=
diseaseNames
.
join
(
'、'
);
}
else
{
item
.
showDiseaseNames
=
'-'
;
}
//针对履约项目
if
(
this
.
patientIdList
.
length
>
0
){
if
(
this
.
patientIdList
.
includes
(
item
.
patientId
)){
// 如果已经选过居民
this
.
$nextTick
(()
=>
{
this
.
$refs
.
multipleTable
.
toggleRowSelection
(
item
,
true
);
})
}
}
if
(
this
.
oldPatientIdList
!=
undefined
&&
this
.
oldPatientIdList
.
length
)
{
this
.
oldPatientList
=
[];
this
.
patientsData
.
forEach
((
item
)
=>
{
if
(
this
.
oldPatientIdList
.
includes
(
item
.
patientId
)){
// 如果已经选过居民
item
.
disableNum
=
0
;
this
.
oldPatientList
.
push
(
item
);
}
else
{
item
.
disableNum
=
1
}
})
}
//针对分组详情
// this.patientIdList = res.data.selectedPatientIdList;
let
selectedPatientIdList
=
res
.
data
.
selectedPatientIdList
;
if
(
selectedPatientIdList
&&
selectedPatientIdList
.
length
>
0
){
if
(
selectedPatientIdList
.
includes
(
item
.
patientId
)){
// 如果已经选过居民
this
.
$nextTick
(()
=>
{
this
.
$refs
.
multipleTable
.
toggleRowSelection
(
item
,
true
);
})
}
}
if
(
selectedPatientIdList
&&
selectedPatientIdList
.
length
>
0
)
{
this
.
patientsData
.
forEach
((
item
)
=>
{
if
(
selectedPatientIdList
.
includes
(
item
.
patientId
)){
// 如果已经选过居民
item
.
disableNum
=
0
;
this
.
oldPatientList
.
push
(
item
);
}
else
{
item
.
disableNum
=
1
}
})
}
})
// console.log(this.oldPatientIdList)
}
else
{
this
.
patientsData
=
[]
}
})
},
getSex
(){
this
.
patientsData
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
sex
==
1
){
this
.
patientsData
[
index
].
sexStr
=
'男'
}
else
if
(
item
.
sex
==
2
){
this
.
patientsData
[
index
].
sexStr
=
'女'
}
else
{
this
.
patientsData
[
index
].
sexStr
=
'-'
}
if
(
!
item
.
idNo
)
{
this
.
patientsData
[
index
].
idNoStr
=
'-'
}
else
{
this
.
patientsData
[
index
].
idNoStr
=
item
.
idNo
}
if
(
item
.
age
||
item
.
age
==
0
)
{
this
.
patientsData
[
index
].
ageStr
=
item
.
age
}
else
{
this
.
patientsData
[
index
].
ageStr
=
'-'
}
})
},
// 对选中的居民进行去重
removeDuplicates
(
list
){
return
Array
.
from
(
new
Set
(
list
))
},
// 选择居民
handleSelectionChange
(
val
)
{
const
_this
=
this
;
_this
.
newSelects
=
[];
val
.
forEach
(
item
=>
{
if
(
item
.
disableNum
==
1
)
{
_this
.
newSelects
.
push
(
item
)
}
})
},
// 切换分页
handleCurrentChangePre
(
val
)
{
this
.
paginationSet
.
pageNum
=
val
this
.
getPatientsList
()
//控制切换页码的时候,滚动条滚到最上面
this
.
$refs
.
multipleTable
.
bodyWrapper
.
scrollTop
=
0
;
},
clickClose
(){
// this.searchData.searchCondition = ''
this
.
searchData
=
{
sex
:
null
,
ageRange
:
[],
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
,
icdCodeList
:
[],
}
this
.
$emit
(
'closeSelectPatient'
,
false
)
},
sureClick
(){
if
(
this
.
newSelects
.
length
)
{
// this.searchData.searchCondition = ''
this
.
searchData
=
{
sex
:
null
,
ageRange
:
[],
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
,
icdCodeList
:
[],
}
this
.
$emit
(
'sureSelectPatient'
,
false
,
this
.
newSelects
,
this
.
oldPatientList
)
}
else
{
this
.
$message
.
warning
(
'请先选择!'
)
}
},
handleSizeChangePre
(
val
)
{
this
.
paginationSet
.
pageSize
=
val
;
this
.
getPatientsList
();
this
.
$refs
.
multipleTable
.
bodyWrapper
.
scrollTop
=
0
;
},
searchHandler
()
{
this
.
paginationSet
.
pageNum
=
1
;
this
.
getPatientsList
();
this
.
$refs
.
multipleTable
.
bodyWrapper
.
scrollTop
=
0
;
},
resetData
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
this
.
getPatientsList
();
this
.
$refs
.
multipleTable
.
bodyWrapper
.
scrollTop
=
0
;
},
goAddPatient
()
{
// this.$router.push({
// path: '/patients-manage/new-manage/new-patient'
// })
let
routeData
=
this
.
$router
.
resolve
({
path
:
'/patients-manage/new-manage/new-patient'
});
window
.
open
(
routeData
.
href
,
'_blank'
);
this
.
showReloadModal
=
true
;
},
handleReload
()
{
this
.
paginationSet
.
pageNum
=
1
;
this
.
getPatientsList
();
this
.
$refs
.
multipleTable
.
bodyWrapper
.
scrollTop
=
0
;
this
.
showReloadModal
=
false
;
},
ageDate
(
val
){
let
ageObj
;
if
(
!
val
){
ageObj
=
{
ageBegin
:
''
,
ageEnd
:
''
}
}
else
if
(
val
.
indexOf
(
'+'
)
>
-
1
){
ageObj
=
{
ageBegin
:
84
,
ageEnd
:
200
}
}
else
{
let
ageItem
=
val
.
split
(
'-'
);
ageObj
=
{
ageBegin
:
ageItem
[
0
],
ageEnd
:
ageItem
[
1
]
}
}
return
ageObj
;
}
},
}
</
script
>
<
style
lang=
"scss"
>
.init-width
{
width
:
100px
!
important
;
.el-input
{
width
:
100px
!
important
;
}
}
.init-width2
{
width
:
110px
!
important
;
.el-input
{
width
:
110px
!
important
;
}
}
.set-width
{
width
:
150px
!
important
;
.el-input
{
width
:
150px
!
important
;
}
}
</
style
>
<
style
lang=
"scss"
>
@import
'../../../../style/patients-style/element-reset.css'
;
.select-patient-dialog
{
.el-dialog__wrapper
{
overflow
:
hidden
;
.el-dialog--center
{
/*height: 580px;*/
.el-dialog__body
{
padding
:
10px
25px
15px
;
}
.el-table--scrollable-y
,
.el-table__body-wrapper
{
&
:
:-
webkit-scrollbar
{
width
:
5px
;
}
&
:
:-
webkit-scrollbar-thumb
{
/*滚动条里面小方块*/
border-radius
:
10px
;
-webkit-box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0
.2
);
background
:
rgba
(
0
,
0
,
0
,
0
.1
);
}
}
/*.el-dialog__body {
max-height: 80%;
overflow: hidden;
.finish-content {
height: 100%;
.el-table {
.el-table--scrollable-y .el-table__body-wrapper {
height: 80%;
}
}
}
}*/
}
}
.select-width
.el-form-item
{
/*width: 130px;*/
}
.margin-top15
{
margin-top
:
15px
;
}
.el-form-item--mini.el-form-item
,
.el-form-item--small.el-form-item
{
margin-bottom
:
5px
;
}
.el-select__tags-text
{
display
:
inline-block
;
max-width
:
70px
;
overflow
:
hidden
;
text-overflow
:ellipsis
;
white-space
:
nowrap
;
}
.el-select
.el-tag__close.el-icon-close
{
top
:
-5px
;
}
}
</
style
>
src/views/patients/labels-manage/dialog/select-patitents.vue
浏览文件 @
9f5d5c80
<
template
>
<div
class=
"select-patient-dialog"
>
<el-dialog
title=
"添加居民
"
:title=
"selectPatientDialogTitle
"
:visible
.
sync=
"showSelectPatient"
v-if=
"isShowSelectPatient"
:before-close=
"clickClose"
...
...
@@ -297,6 +297,7 @@
getRowKeys
(
row
)
{
return
row
.
patientId
;
},
// 添加居民
}
},
props
:
{
...
...
@@ -309,6 +310,10 @@
required
:
false
,
default
:
''
,
},
selectPatientDialogTitle
:
{
type
:
String
,
default
:
'添加居民'
}
},
watch
:
{
isShowSelectPatient
(
val
){
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录