Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
3b5cff13
提交
3b5cff13
编写于
8月 28, 2019
作者:
chengxiang.li
浏览文件
操作
浏览文件
下载
差异文件
merge
上级
588faa4a
5c2da0f9
变更
10
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
889 行增加
和
82 行删除
+889
-82
addDiagnose.vue
src/components/icd/addDiagnose.vue
+587
-0
index.js
src/store/index.js
+4
-1
patientsDiagnose.js
src/store/patientsManage/patientsDiagnose.js
+18
-0
fetch.js
src/utils/fetch.js
+3
-1
patientsapi.js
src/utils/patients/patientsapi.js
+36
-0
select-patitents.vue
src/views/patients/labels-manage/dialog/select-patitents.vue
+59
-9
edit-information.vue
...atients/mypatients-manage/components/edit-information.vue
+93
-57
patient-detail.vue
src/views/patients/mypatients-manage/patient-detail.vue
+19
-5
patients-list.vue
src/views/patients/mypatients-manage/patients-list.vue
+67
-9
new-patient.vue
src/views/patients/new-manage/new-patient.vue
+3
-0
未找到文件。
src/components/icd/addDiagnose.vue
0 → 100644
浏览文件 @
3b5cff13
<
template
>
<div
class=
"add-diagnose-wrap"
>
<div
class=
"fixed-wrap"
v-show=
"showDiagnoseModal"
>
<div
class=
"fullscreen-bg"
></div>
<div
class=
"add-diagnose-modal"
>
<span
class=
"close-btn el-icon-close"
@
click=
"hideSelf"
></span>
<p
class=
"title-text"
>
添加诊断
</p>
<div
class=
"search-input"
>
<el-input
v-model=
"searchInput"
placeholder=
"搜索疾病"
class=
"search-disease"
@
input=
"handleInputSearch"
@
blur=
"handleSearchListBlur"
></el-input>
</div>
<div
class=
"main-content"
>
<div
class=
"left-box left"
>
<!-- 搜索列表 有搜索结果时-->
<div
v-if=
"searchList && searchList.length > 0"
class=
"search-list-wrap"
v-infinite-scroll=
"loadMore"
:infinite-scroll-disabled=
"busy"
infinite-scroll-distance=
"5"
infinite-scroll-immediate-check=
"false"
>
<ul
class=
"search-list"
>
<li
v-for=
"(searchLi, index) in searchList"
@
mousedown
.
prevent=
"handleSearchLiClick(searchLi)"
>
<div
class=
"left"
>
<p
class=
"disease-name"
v-html=
"searchLi.diseaseName"
></p>
<div
class=
"one-line"
>
<p
class=
"alias"
v-html=
"searchLi.alias"
></p>
<p
class=
"sign"
v-if=
"searchLi.alias"
>
|
</p>
<p
class=
"code"
>
{{
searchLi
.
icdCode
}}
</p>
</div>
</div>
<div
class=
"right"
v-if=
"isSearchLiSelected(searchLi)"
><i
class=
"el-icon-check"
></i></div>
</li>
<p
v-if=
"busy"
class=
"loading"
>
加载中...
</p>
<p
v-if=
"noMore"
class=
"loading"
>
没有更多了...
</p>
</ul>
</div>
<!-- 常用诊断 -->
<div
v-if=
"!(searchList && searchList.length > 0)"
class=
"common-diagnose"
>
<p
class=
"title"
>
常用诊断
<span
class=
'no-result'
v-if=
"hasNoResult"
>
没有找到相关搜索结果
</span></p>
<ul
class=
"list"
>
<li
v-for=
"item in commonList"
:class=
"returnEachCommonLiClass(item)"
@
click=
"handleEachCommonLiClick(item)"
>
{{
item
.
diseaseName
}}
</li>
</ul>
</div>
</div>
<!-- 已选 -->
<div
class=
"choosed-list-wrap left"
>
<div
class=
"title"
>
已选
{{
choosedList
.
length
}}
/20
</div>
<div
class=
"choosed-list"
>
<el-tag
v-for=
"(tag, index) in choosedList"
closable
:disable-transitions=
"false"
@
close=
"handleClose(tag)"
>
<div
class=
"text"
v-html=
"tag.alias ? tag.alias : tag.diseaseName"
></div>
</el-tag>
</div>
</div>
</div>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"hideSelf"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm"
>
确 定
</el-button>
</div>
</div>
</div>
<!-- 已选数量不能超过20个 提示 -->
<div
class=
"tips-wrap"
@
mousedown
.
prevent=
"preventDefault"
>
<el-dialog
title=
"提示"
:close-on-click-modal=
"false"
:visible
.
sync=
"limitTipsVisible"
width=
"400px"
center
>
<span>
最多只能选择20种疾病
</span>
<span
slot=
"footer"
class=
"dialog-footer"
>
<!--
<el-button
type=
"primary"
>
我知道了
</el-button>
-->
<div
class=
"know-confirm"
@
mousedown
.
prevent=
"hideNumLimitTips"
>
我知道了
</div>
</span>
</el-dialog>
</div>
</div>
</
template
>
<
script
>
import
{
getCommonDiagnoseList
,
goToSearch
,
}
from
'@/utils/patients/patientsapi'
;
export
default
{
data
()
{
return
{
showDiagnoseModal
:
false
,
limitTipsVisible
:
false
,
searchInput
:
''
,
searchList
:
[],
commonList
:
[],
choosedList
:
[],
hasNoResult
:
false
,
page
:
1
,
pageSize
:
30
,
busy
:
false
,
noMore
:
false
,
totalPageNum
:
0
,
isInputResponse
:
false
,
searchFlagTimer
:
null
,
}
},
computed
:
{
},
created
()
{
let
that
=
this
;
getCommonDiagnoseList
().
then
(
res
=>
{
// console.log('>>>>>>*********** res: ', res)
if
(
res
.
code
==
'000000'
){
that
.
commonList
=
res
.
data
;
}
else
{
that
.
$message
({
message
:
(
data
&&
data
.
message
)
||
'接口出错'
,
type
:
'warning'
});
}
})
},
mounted
()
{
// console.log('>>>>>>>>>>>>>>>>>>>>>>>> ', this.showDiagnoseModal)
},
watch
:
{
showDiagnoseModal
(
val
)
{
}
},
methods
:
{
showSelf
(
params
)
{
this
.
showDiagnoseModal
=
true
;
let
list
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
$store
.
state
.
patientsDiagnose
.
selectedDiagList
));
this
.
choosedList
=
list
;
},
hideSelf
()
{
this
.
showDiagnoseModal
=
false
;
this
.
choosedList
=
[];
this
.
searchList
=
[];
this
.
searchInput
=
''
},
preventDefault
()
{
// console.log('prevent>>>>>>>>>>>>>>>>>>>')
},
hideNumLimitTips
()
{
this
.
limitTipsVisible
=
false
;
},
isSearchLiSelected
(
item
)
{
return
this
.
hasItem
(
this
.
choosedList
,
item
)
>
-
1
?
true
:
false
;
},
handleSearchLiClick
(
item
)
{
let
hasIndex
=
this
.
hasItem
(
this
.
choosedList
,
item
);
if
(
hasIndex
>
-
1
){
this
.
choosedList
.
splice
(
hasIndex
,
1
);
}
else
{
// 已选20个后,不能再添加,出Tips
if
(
this
.
choosedList
&&
this
.
choosedList
.
length
==
20
){
this
.
limitTipsVisible
=
true
;
return
;
}
this
.
choosedList
.
push
(
item
);
}
},
handleSearchListBlur
()
{
this
.
searchList
=
[];
clearTimeout
(
this
.
searchFlagTimer
);
// console.log('blur.....')
},
handleSearchWrapScroll
()
{
// console.log('ddxx88888888888')
// let that = this;
// // console.log('val: ', val)
// // 搜索时
// that.$nextTick(function(){
// let searchListWrap = document.querySelector('.search-list-wrap');
// console.log('>>> ', searchListWrap)
// if( searchListWrap ){
// // searchListWrap.onscroll = function(){
// let contentH = document.querySelector('.search-list').offsetHeight;
// let viewH = 290;
// let scrollTop = searchListWrap.scrollTop;
// if( that.canScroll && (contentH - viewH - scrollTop
<=
50
)
){
// console.log('到达临界点,开始加载下一页');
// that.canScroll = false;
// that.loadMoreSearchData();
// }
// // }
// }
// })
},
// 搜索框中输入文字 时 page=1 pageSize=30
handleInputSearch
()
{
// debugger;
clearTimeout
(
this
.
searchFlagTimer
);
let
that
=
this
;
that
.
page
=
1
;
that
.
isInputResponse
=
false
;
if
(
that
.
searchInput
==
''
){
that
.
searchList
=
[];
return
;
}
that
.
searchList
=
[];
let
params
=
{
diseaseName
:
that
.
searchInput
,
page
:
1
,
pageSize
:
30
,
};
this
.
searchFlagTimer
=
setTimeout
(()
=>
{
goToSearch
(
params
).
then
(
res
=>
{
// console.log('>>>>>>*********** search: ', res)
if
(
res
.
code
==
'000000'
){
that
.
isInputResponse
=
true
;
that
.
totalPageNum
=
Math
.
ceil
(
res
.
data
.
total
/
that
.
pageSize
);
// 总页数
let
list
=
res
.
data
.
icdContentsList
||
[];
if
(
list
.
length
>
0
){
if
(
that
.
searchInput
==
''
){
that
.
searchList
=
[];
return
;
}
that
.
searchList
=
list
;
that
.
hasNoResult
=
false
;
}
else
{
that
.
searchList
=
[];
that
.
hasNoResult
=
true
;
}
}
else
{
that
.
isInputResponse
=
false
;
that
.
searchList
=
[];
that
.
$message
({
message
:
data
.
message
,
type
:
'warning'
});
}
})
},
300
)
},
// 上拉加载更多
loadMore
()
{
// debugger;
// console.log('loadmore...')
let
that
=
this
;
if
(
!
that
.
isInputResponse
){
return
;
}
if
(
!
(
that
.
searchList
&&
that
.
searchList
.
length
>
0
)
){
return
;
}
that
.
busy
=
true
;
that
.
page
+=
1
;
// console.log('请求第几页数据: ', that.page)
if
(
that
.
page
>
that
.
totalPageNum
){
// console.log('没有更多了。。。。。');
that
.
busy
=
false
;
that
.
noMore
=
true
;
return
;
}
else
{
that
.
noMore
=
false
;
}
let
params
=
{
diseaseName
:
that
.
searchInput
,
page
:
that
.
page
,
pageSize
:
that
.
pageSize
,
}
setTimeout
(()
=>
{
goToSearch
(
params
).
then
(
res
=>
{
// console.log('>>>>>>*********** search: ', res)
// request ...加载完成后,可以继续滚动加载\
that
.
busy
=
false
;
if
(
res
.
code
==
'000000'
){
let
list
=
res
.
data
.
icdContentsList
||
[];
if
(
list
.
length
>
0
){
that
.
searchList
=
that
.
searchList
.
concat
(
list
);
}
}
else
{
that
.
$message
({
message
:
data
.
message
,
type
:
'warning'
});
}
})
},
500
)
},
handleInputSearchBlur
(){
this
.
searchList
=
[];
},
handleConfirm
()
{
let
list
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
choosedList
));
this
.
$store
.
dispatch
(
'patientsDiagnose/changeDiagnoseList'
,
list
)
this
.
showDiagnoseModal
=
false
;
this
.
searchInput
==
''
;
this
.
searchList
=
[];
},
handleClose
(
tag
)
{
this
.
choosedList
.
splice
(
this
.
hasItem
(
this
.
choosedList
,
tag
),
1
);
},
returnEachCommonLiClass
(
item
)
{
let
hasIndex
=
this
.
hasItem
(
this
.
choosedList
,
item
);
if
(
hasIndex
>
-
1
){
return
'active'
;
}
else
{
return
''
;
}
},
handleEachCommonLiClick
(
item
)
{
// console.log('ddd', item);
let
hasIndex
=
this
.
hasItem
(
this
.
choosedList
,
item
);
if
(
hasIndex
>
-
1
){
this
.
choosedList
.
splice
(
hasIndex
,
1
);
}
else
{
// 已选20个后,不能再添加,出Tips
if
(
this
.
choosedList
&&
this
.
choosedList
.
length
==
20
){
this
.
limitTipsVisible
=
true
;
return
;
}
this
.
choosedList
.
push
(
item
);
}
},
hasItem
(
list
,
item
)
{
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
){
if
(
list
[
i
].
icdCode
==
item
.
icdCode
){
return
i
;
}
}
return
-
1
;
},
},
}
</
script
>
<
style
lang=
"less"
>
.scroll-bar{
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
&::-webkit-scrollbar
{
width: 5px;
height: 5px;
background-color: #fff;
}
/*定义滚动条轨道 内阴影+圆角*/
&::-webkit-scrollbar-track
{
// border-radius: 10px;
// background-color: rgb(241, 239, 239);
// background: #fff;
}
/*定义滑块 内阴影+圆角*/
&::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #bbb;
}
}
.add-diagnose-wrap{
.fixed-wrap{
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
z-index: 1000;
.fullscreen-bg{
position: absolute;
width: 100%; height: 100%;
background: black; opacity: 0.3;
}
.add-diagnose-modal{
position: relative;
border-radius: 4px;
width: 910px; padding: 0 30px 0;
position: fixed;
left: 50%; margin-left: -455px;
top: 60px;
background: #fff;
.close-btn{
position: absolute; right: 20px; top: 20px;
cursor: pointer;
&:hover{
color: #409eff;
}
}
.title-text{
text-align: center;
line-height: 60px;
}
.search-disease{
width: 370px;
}
.main-content{
overflow: hidden;
.left{
float: left;
}
.left-box{
width: 370px;
height: 300px;
.common-diagnose{
width: 100%; height: 300px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
.no-result{
font-size: 14px;
color: #e6a23c;
margin-left: 28px;
}
}
.list{
width: 100%; height: 250px;
overflow: hidden;
overflow-y: scroll;
.scroll-bar;
padding: 10px;
border: 1px solid #DCDFE6;
li{
height: 35px; line-height: 35px; padding: 0 15px;
background: #fff;
border: 1px solid #dcdfe6;
color: #606266;
cursor: pointer;
font-size: 12px;
&.active{
color: #fff;
background: #409eff;
border-color: #409eff;
}
display: inline-block;
margin: 0 10px 10px 0;
border-radius: 4px;
max-width: 350px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
}
}
.search-list-wrap{
width: 100%; height: 290px; margin-top: 10px;
border: 1px solid #DCDFE6;
overflow: hidden;
overflow-y: scroll;
.scroll-bar;
.search-list{
border-radius: 4px;
width: 100%;
padding: 10px;
li{
position: relative;
line-height: 30px;
overflow: hidden;
cursor: pointer;
font-size: 12px;
&:hover{
background: #eee;
}
.left{
width: 310px;
float: left;
span{
color: #ff8429;
}
.disease-name{
font-size: 14px;
}
.one-line{
width: 100%; overflow: hidden;
font-size: 12px; color: #aaa;
.alias{
float: left;
}
.sign{
float: left;
margin: 0 5px;
}
.code{
float: left;
}
}
}
.right{
position: absolute;
right: 0;
top: 50%;
margin-top: -13px;
// width: 0px;
// float: left;
display: inline-block;
vertical-align: middle;
i{
font-size: 24px;
color: #449284;
font-weight: 700;
}
}
.code{
line-height: 30px;
}
}
.loading{
color: #ccc;
text-align: center;
margin: 0;
font-size: 12px;
margin-top: 5px;
}
}
}
}
.choosed-list-wrap{
width: 450px;
height: 300px;
margin-left: 30px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
}
.choosed-list{
overflow: hidden;
overflow-y: scroll;
width: 450px;
height: 250px;
padding: 10px;
border: 1px solid #DCDFE6;
.scroll-bar;
.el-tag {
margin: 0 10px 10px 0;;
.text{
display: inline-block;
max-width: 342px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.el-tag__close{
top: -12px;
}
}
}
}
}
}
.dialog-footer{
text-align: center;
margin: 20px auto;
}
}
.tips-wrap {
.know-confirm{
width: 98px;
height: 40px;
background: #449284;
border-radius: 4px;
text-align: center;
line-height: 40px;
color: #FFF;
margin: 0 auto;
font-size: 14px;
cursor: pointer;
}
}
}
</
style
>
src/store/index.js
浏览文件 @
3b5cff13
...
...
@@ -4,6 +4,8 @@ import common from './education/common';
//随访
import
followModules
from
'./followup/index'
;
import
getters
from
'./getters'
//居民诊断
import
patientsDiagnose
from
'./patientsManage/patientsDiagnose'
;
Vue
.
use
(
Vuex
)
...
...
@@ -11,7 +13,8 @@ Vue.use(Vuex)
export
default
new
Vuex
.
Store
({
modules
:
{
common
,
...
followModules
...
followModules
,
patientsDiagnose
,
},
getters
})
...
...
src/store/patientsManage/patientsDiagnose.js
0 → 100644
浏览文件 @
3b5cff13
const
patientsDiagnose
=
{
namespaced
:
true
,
state
:
{
selectedDiagList
:
[],
},
mutations
:
{
CHANGE_DIAGNOSE_LIST
:
(
state
,
data
)
=>
{
state
.
selectedDiagList
=
data
;
}
},
actions
:
{
changeDiagnoseList
({
commit
},
list
)
{
commit
(
'CHANGE_DIAGNOSE_LIST'
,
list
);
}
}
}
export
default
patientsDiagnose
;
\ No newline at end of file
src/utils/fetch.js
浏览文件 @
3b5cff13
...
...
@@ -54,7 +54,9 @@ service.interceptors.request.use(config => {
}
if
(
process
.
env
.
BUILD_ENV
==
"development"
){
// 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
config
.
headers
[
'token'
]
=
'D2E29BE9FF794703A482518A04D344E2'
;
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
config
.
headers
[
'token'
]
=
'A97A609C1A98467C9372ACF55DD3BA35'
;
}
else
{
config
.
headers
[
'token'
]
=
localStorage
.
getItem
(
'storageToken'
)
}
...
...
src/utils/patients/patientsapi.js
浏览文件 @
3b5cff13
...
...
@@ -377,6 +377,7 @@ export const getRemindPatient = (data) => {
})
};
// 保存并新增
export
const
savePatientInfo
=
(
data
)
=>
{
return
utils
.
checkAuth
(()
=>
{
return
fetch
({
...
...
@@ -426,3 +427,38 @@ export const getPatientInfoList = (data) => {
})
};
// 添加诊断:获取常用诊断列表
export
const
getCommonDiagnoseList
=
params
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`medicineDictionary/icdCommonDiagnosis`
),
method
:
'get'
,
params
:
params
,
description
:
'获取常用诊断列表'
,
})
}
// 添加诊断:搜索
export
const
goToSearch
=
params
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`medicineDictionary/icdContents`
),
method
:
'get'
,
params
:
params
,
description
:
'常用诊断搜索'
,
})
}
// 选择或搜索诊断
export
const
getIcdList
=
params
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`healths/icd/list`
),
// url: 'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/46/healths/icd/list',
method
:
'get'
,
params
:
params
,
description
:
'选择或搜索诊断'
,
})
}
src/views/patients/labels-manage/dialog/select-patitents.vue
浏览文件 @
3b5cff13
...
...
@@ -54,7 +54,7 @@
</el-select>
</el-form-item>
<el-form-item
prop=
"diseaseId"
>
<el-select
<
!--
<
el-select
v-model=
"searchData.diseaseId"
multiple
collapse-tags
...
...
@@ -67,8 +67,27 @@
:key=
"index"
:label=
"item.diseaseName"
:value=
"item.diseaseId"
>
</el-option>
</el-select>
</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
...
...
@@ -229,7 +248,7 @@
<
script
>
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
getConstants
,
getPatientInfoList
,
getDiseasesList
,
getLabelList
}
from
'@/utils/patients/patientsapi'
import
{
getConstants
,
getPatientInfoList
,
getDiseasesList
,
getLabelList
,
getIcdList
}
from
'@/utils/patients/patientsapi'
import
{
getPlanList
}
from
'@/utils/followup/followapis'
export
default
{
components
:
{},
...
...
@@ -248,7 +267,8 @@
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
searchCondition
:
''
,
icdCodeList
:
[],
},
paginationSet
:
{
pageNum
:
1
,
...
...
@@ -272,6 +292,8 @@
newSelects
:
[],
//新选中的人
oldPatientList
:
[],
showReloadModal
:
false
,
loading
:
false
,
icdOptions
:
[],
getRowKeys
(
row
)
{
return
row
.
patientId
;
},
...
...
@@ -292,6 +314,8 @@
isShowSelectPatient
(
val
){
if
(
val
){
this
.
getPatientsList
()
//获取搜索诊断
this
.
getDiseaseData
();
// 获取常量 性别、年龄
getConstants
({
numList
:
'P057,P006'
...
...
@@ -342,6 +366,29 @@
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
,
...
...
@@ -355,6 +402,7 @@
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
){
...
...
@@ -377,10 +425,10 @@
item
.
showLabelName
=
'-'
;
}
//转化
疾病
//转化
诊断
if
(
item
.
patientTypeModels
)
{
item
.
patientTypeModels
.
forEach
(
item
=>
{
diseaseNames
.
push
(
item
.
n
ame
)
diseaseNames
.
push
(
item
.
diseaseN
ame
)
})
item
.
showDiseaseNames
=
diseaseNames
.
join
(
'、'
);
...
...
@@ -486,7 +534,8 @@
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
searchCondition
:
''
,
icdCodeList
:
[],
}
this
.
$emit
(
'closeSelectPatient'
,
false
)
},
...
...
@@ -499,7 +548,8 @@
diseaseId
:
[],
labelId
:
[],
fuPlanIdList
:
[],
searchCondition
:
''
searchCondition
:
''
,
icdCodeList
:
[],
}
this
.
$emit
(
'sureSelectPatient'
,
false
,
this
.
newSelects
,
this
.
oldPatientList
)
}
else
{
...
...
src/views/patients/mypatients-manage/components/edit-information.vue
浏览文件 @
3b5cff13
<
template
>
<div
class=
"form-warp"
>
<addDiagnose
ref=
"addDiagnose"
></addDiagnose>
<el-form
:model=
"patientInfoForm"
:rules=
"rules"
...
...
@@ -30,46 +31,53 @@
</el-input>
</el-form-item>
</el-col>
</el-row>
<!--
<div
class=
"has-header"
>
数据记录
</div>
-->
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"诊断"
prop=
"diseaseIdList"
>
<!--
<el-select
v-model=
"diseaseIdList"
multiple
@
change=
"changeDiseases"
:popper-append-to-body=
"false"
placeholder=
"请选择居民疾病诊断"
>
<el-option
v-for=
"(item, index) in diseasesList"
:key=
"item.diseaseId"
:label=
"item.diseaseName"
:value=
"item.diseaseId"
>
</el-option>
</el-select>
-->
<el-button
icon=
"el-icon-plus"
@
click=
"handleAddDiagnose"
>
添加诊断
</el-button>
<ul
class=
"final-diagnose-list"
v-if=
"selectedDiagList && selectedDiagList.length > 0"
>
<li
v-for=
"diagnose in selectedDiagList"
v-html=
"diagnose.alias ? diagnose.alias+'; ' : diagnose.diseaseName+'; '"
></li>
</ul>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"分组"
prop=
"labelIdList"
>
<el-select
v-model=
"labelIdList"
multiple
@
change=
"changeLabels"
:popper-append-to-body=
"false"
placeholder=
"请选择居民分组"
>
<el-option
v-for=
"(item, index) in labelsList"
:key=
"index.labelId"
:label=
"item.labelName"
:value=
"item.labelId"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
style=
"text-align: center;margin-top:15px;"
v-show=
"!patientId"
>
<el-button
plain
size=
"small"
@
click=
"toggleClick"
>
{{
tipsText
}}
</el-button></el-col>
</el-row>
<div
v-show=
"isShowAll || patientId"
>
<div
class=
"has-header"
>
数据记录
</div>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"诊断"
prop=
"diseaseIdList"
>
<el-select
v-model=
"diseaseIdList"
multiple
@
change=
"changeDiseases"
:popper-append-to-body=
"false"
placeholder=
"请选择居民疾病诊断"
>
<el-option
v-for=
"(item, index) in diseasesList"
:key=
"item.diseaseId"
:label=
"item.diseaseName"
:value=
"item.diseaseId"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"分组"
prop=
"labelIdList"
>
<el-select
v-model=
"labelIdList"
multiple
@
change=
"changeLabels"
:popper-append-to-body=
"false"
placeholder=
"请选择居民分组"
>
<el-option
v-for=
"(item, index) in labelsList"
:key=
"index.labelId"
:label=
"item.labelName"
:value=
"item.labelId"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div
class=
"has-header"
>
基本信息
</div>
<el-row>
<el-col
:span=
"12"
>
...
...
@@ -240,7 +248,7 @@
<
/div
>
<
/template
>
<
script
>
import
{
mapGetters
}
from
'vuex'
;
import
{
mapGetters
,
mapState
}
from
'vuex'
;
import
{
checkMobile
}
from
'@/utils/patients/checkValid'
;
import
{
isCardNo
,
checkProvince
,
checkBirthday
,
checkParity
,
validateIdCard
}
from
'@/utils/patients/checkCardNum'
;
import
{
...
...
@@ -254,9 +262,10 @@
getCountyList
,
getTownList
}
from
'@/utils/patients/patientsapi'
;
let
vm
=
null
;
import
addDiagnose
from
'@/components/icd/addDiagnose.vue'
;
export
default
{
name
:
"basicInfo"
,
components
:
{
}
,
components
:
{
addDiagnose
}
,
data
()
{
let
validCode
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
)
{
...
...
@@ -427,7 +436,8 @@
this
.
patientInfoForm
=
val
;
this
.
baseInfoEdit
=
this
.
patientInfoForm
.
baseInfoEdit
;
let
customLabels
=
this
.
patientInfoForm
.
customLabels
;
let
diseases
=
this
.
patientInfoForm
.
diseases
;
// let diseases = this.patientInfoForm.diseases;
let
icdList
=
this
.
patientInfoForm
.
icdList
;
if
(
customLabels
&&
customLabels
.
length
>
0
){
customLabels
.
forEach
((
kkk
)
=>
{
this
.
labelIdList
.
push
(
Number
(
kkk
.
labelId
))
...
...
@@ -435,12 +445,17 @@
}
else
{
this
.
labelIdList
=
[];
}
if
(
diseases
&&
diseases
.
length
>
0
)
{
diseases
.
forEach
((
dis
)
=>
{
this
.
diseaseIdList
.
push
(
Number
(
dis
.
diseaseId
))
}
)
// if(diseases && diseases.length > 0)
{
// diseases.forEach((dis)=>
{
// this.diseaseIdList.push(Number(dis.diseaseId))
//
}
)
//
}
else
{
// this.diseaseIdList = [];
//
}
if
(
icdList
&&
icdList
.
length
>
0
)
{
this
.
$store
.
dispatch
(
'patientsDiagnose/changeDiagnoseList'
,
icdList
)
}
else
{
this
.
diseaseIdList
=
[];
this
.
$store
.
dispatch
(
'patientsDiagnose/changeDiagnoseList'
,
[])
}
if
(
this
.
patientInfoForm
.
idNo
)
{
this
.
hasIdNo
=
true
;
...
...
@@ -494,6 +509,9 @@
...
mapGetters
([
'_token'
,
]),
...
mapState
(
'patientsDiagnose'
,
{
selectedDiagList
:
state
=>
state
.
selectedDiagList
}
),
currentCount
(){
if
(
this
.
patientInfoForm
.
remark
)
{
return
this
.
patientInfoForm
.
remark
.
length
...
...
@@ -529,7 +547,12 @@
cityId
:
null
,
countyId
:
null
,
townId
:
null
,
}
}
,
this
.
$store
.
dispatch
(
'patientsDiagnose/changeDiagnoseList'
,
[])
}
,
// 点击 添加诊断
handleAddDiagnose
()
{
this
.
$refs
.
addDiagnose
.
showSelf
();
}
,
initConstant
(){
getDiseasesList
().
then
((
data
)
=>
{
...
...
@@ -559,17 +582,18 @@
}
);
this
.
getProvinceLists
();
}
,
changeDiseases
(
val
)
{
let
newDiseaseList
=
[];
val
.
forEach
((
valItem
)
=>
{
this
.
diseasesList
.
forEach
((
item2
)
=>
{
if
(
valItem
==
item2
.
diseaseId
){
newDiseaseList
.
push
({
parentDiseaseId
:
item2
.
diseaseId
}
);
}
}
)
}
);
this
.
patientInfoForm
.
patientDiseases
=
newDiseaseList
;
}
,
// changeDiseases(val)
{
// // 格式化数据 提交用
// let newDiseaseList = [];
// val.forEach((valItem) =>
{
// this.diseasesList.forEach((item2) =>
{
// if(valItem == item2.diseaseId)
{
// newDiseaseList.push(
{
parentDiseaseId
:
item2
.
diseaseId
}
);
//
}
//
}
)
//
}
);
// this.patientInfoForm.patientDiseases = newDiseaseList;
//
}
,
changeLabels
(
val
){
let
newLabelsList
=
[];
val
.
forEach
((
valItem
)
=>
{
...
...
@@ -654,6 +678,7 @@
status
:
true
,
patientInfoForm
:
{
...
this
.
patientInfoForm
,
icdList
:
this
.
selectedDiagList
,
birthTime
:
this
.
patientInfoForm
.
birthTime
?
`${this.patientInfoForm.birthTime
}
00:00:00`
:
''
,
}
}
)
...
...
@@ -663,6 +688,7 @@
// patientInfoForm: this.patientInfoForm,
patientInfoForm
:
{
...
this
.
patientInfoForm
,
icdList
:
this
.
selectedDiagList
,
birthTime
:
this
.
patientInfoForm
.
birthTime
?
`${this.patientInfoForm.birthTime
}
00:00:00`
:
''
,
}
}
)
...
...
@@ -871,5 +897,15 @@
.
idNoTxt
{
display
:
inline
-
flex
;
color
:
#
C0C4CC
;
line
-
height
:
20
px
;
vertical
-
align
:
middle
;
}
.
final
-
diagnose
-
list
{
color
:
#
BBB
;
line
-
height
:
20
px
;
margin
-
top
:
15
px
;
overflow
:
hidden
;
li
{
float
:
left
;
margin
-
right
:
5
px
;
}
}
}
<
/style
>
src/views/patients/mypatients-manage/patient-detail.vue
浏览文件 @
3b5cff13
...
...
@@ -35,11 +35,15 @@
<!--
<
div
><
p
class
=
"title"
>
健康档案编号:
<
/p><p class="info">{{patientInfo.fileLocator | emptyFilter
}}
</
p
><
/div>--
>
<!--
<
div
><
p
class
=
"title"
>
医保号:
<
/p><p class="info">{{patientInfo.socialCard | emptyFilter
}}
</
p
><
/div>--
>
<!--
<
/div>--
>
<
div
class
=
"has-header"
>
数据记录
<
/div
>
<
div
class
=
"item wrap-p"
>
<
div
><
p
class
=
"title"
>
诊断:
<
/p><p class="info">{{showDiseaseName | emptyFilter
}}
</
p
><
/div
>
<
div
><
p
class
=
"title"
>
分组:
<
/p><p class="info">{{showLabelName | emptyFilter
}}
</
p
><
/div
>
<
/div
>
<!--
<
div
class
=
"has-header"
>
数据记录
<
/div
>
<
div
class
=
"item wrap-p"
>
<
div
><
p
class
=
"title"
>
诊断:
<
/p><p class="info">{{showDiseaseName | emptyFilter
}}
</
p
><
/div
>
<
div
><
p
class
=
"title"
>
分组:
<
/p><p class="info">{{showLabelName | emptyFilter
}}
</
p
><
/div
>
<
/div>--
>
<
div
class
=
"has-header"
>
联系方式
<
/div
>
<
div
class
=
"item"
>
<
div
><
p
class
=
"title"
>
手机号:
<
/p><p class="info">{{patientInfo.mobilePhone | emptyFilter
}}
</
p
><
/div
>
...
...
@@ -180,7 +184,8 @@
if
(
this
.
patientInfo
){
this
.
doctorId
=
this
.
patientInfo
.
doctorId
;
let
customLabels
=
this
.
patientInfo
.
customLabels
;
let
diseases
=
this
.
patientInfo
.
diseases
;
// let diseases = this.patientInfo.diseases;
let
icdList
=
this
.
patientInfo
.
icdList
;
let
groupLabelNames
=
[];
let
groupDiseaseNames
=
[];
//对出生日期的处理
...
...
@@ -201,9 +206,18 @@
}
else
{
this
.
showLabelName
=
''
;
}
// 对诊断疾病的处理
if
(
diseases
)
{
diseases
.
forEach
(
item
=>
{
// 对诊断疾病的处理(老版诊断)
// if(diseases)
{
// diseases.forEach(item =>
{
// groupDiseaseNames.push(item.diseaseName)
//
}
);
// this.showDiseaseName = groupDiseaseNames.join(';');
//
}
else
{
// this.showDiseaseName = '';
//
}
// 对诊断疾病的处理(新版诊断)
if
(
icdList
)
{
icdList
.
forEach
(
item
=>
{
groupDiseaseNames
.
push
(
item
.
diseaseName
)
}
);
this
.
showDiseaseName
=
groupDiseaseNames
.
join
(
';'
);
...
...
src/views/patients/mypatients-manage/patients-list.vue
浏览文件 @
3b5cff13
...
...
@@ -30,15 +30,37 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"诊断:"
prop=
"startDate"
>
<
el-select
v-model=
"searchData.diseaseId"
size=
"small"
clearable
:popper-append-to-body=
"false
"
>
<el-form-item
label=
"诊断:"
prop=
"startDate"
class=
"diagnose-select-style"
>
<
!--
<el-select
v-model=
"searchData.diseaseId"
size=
"small"
clearable
:popper-append-to-body=
"false"
placeholder=
"请选择或搜索诊断
"
>
<el-option
v-for=
"item in diseaseList"
:key=
"item.diseaseId"
:label=
"item.diseaseName"
:value=
"item.diseaseId"
>
</el-option>
</el-select>
-->
<!-- new Start -->
<el-select
v-model=
"searchData.icdCodeList"
multiple
filterable
remote
size=
"small"
collapse-tags
reserve-keyword
placeholder=
"请选择或搜索诊断"
:remote-method=
"getDiseaseData"
:loading=
"loading"
:popper-append-to-body=
"false"
>
<el-option
v-for=
"item in options"
:key=
"item.icdCode"
:label=
"item.diseaseName"
:value=
"item.icdCode"
>
</el-option>
</el-select>
<!-- new End -->
</el-form-item>
<el-form-item
label=
"分组:"
prop=
"labelId"
>
<el-select
v-model=
"searchData.labelId"
size=
"small"
clearable
:popper-append-to-body=
"false"
>
...
...
@@ -138,7 +160,8 @@
<
script
>
import
BreadCrumb
from
'../../../components/breadcrumb.vue'
import
{
getConstants
,
getDiseasesList
,
// getDiseasesList,
getIcdList
,
getLabelList
,
getPatientList
}
from
'../../../utils/patients/patientsapi'
export
default
{
...
...
@@ -161,12 +184,14 @@
agesList
:
[],
//年龄
diseaseList
:
[],
groupList
:
[],
patientList
:
[]
patientList
:
[],
options
:
[],
loading
:
false
,
}
},
mounted
()
{
this
.
getConstantData
();
//获取性别、年龄段常量
this
.
getDiseaseData
();
//获取
疾病种类
this
.
getDiseaseData
();
//获取
搜索诊断
this
.
getGroupList
();
//获取分组
this
.
getPatients
({
...
this
.
searchData
...
...
@@ -188,10 +213,27 @@
});
});
},
getDiseaseData
()
{
getDiseasesList
().
then
((
data
)
=>
{
getDiseaseData
(
query
)
{
// getDiseasesList().then((data) => {
// if(data.code == "000000") {
// this.diseaseList = data.data;
// }
// }).catch((error) => {
// this.$message({
// message: error,
// type: 'error'
// });
// });
let
params
=
{
diseaseName
:
query
?
query
:
''
,
pageNum
:
1
,
pageSize
:
200
,
};
this
.
loading
=
true
;
getIcdList
(
params
).
then
(
data
=>
{
this
.
loading
=
false
;
if
(
data
.
code
==
"000000"
)
{
this
.
diseaseList
=
data
.
data
;
this
.
options
=
data
.
data
;
}
}).
catch
((
error
)
=>
{
this
.
$message
({
...
...
@@ -262,7 +304,7 @@
//转化疾病
if
(
item
.
patientTypeModels
)
{
item
.
patientTypeModels
.
forEach
(
item
=>
{
diseaseNames
.
push
(
item
.
n
ame
)
diseaseNames
.
push
(
item
.
diseaseN
ame
)
})
item
.
showDiseaseNames
=
diseaseNames
.
join
(
'、'
);
}
else
{
...
...
@@ -337,6 +379,22 @@
border-bottom
:
1px
solid
#efefef
;
.search-input
{
flex
:
1
;
.diagnose-select-style
{
.el-input__inner
{
height
:
32px
!
important
;
}
.el-select__tags-text
{
display
:
inline-block
;
max-width
:
75px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.el-tag__close.el-icon-close
{
top
:
-6px
;
}
}
}
.search-btn
{
text-align
:
right
;
...
...
src/views/patients/new-manage/new-patient.vue
浏览文件 @
3b5cff13
...
...
@@ -95,6 +95,9 @@
this
.
$refs
.
newForm
.
diseaseIdList
=
[];
this
.
$refs
.
newForm
.
labelIdList
=
[];
this
.
$refs
.
newForm
.
addressList
=
[];
// 清空已选的诊断列表
this
.
$store
.
dispatch
(
'patientsDiagnose/changeDiagnoseList'
,
[]);
// this.$router.go(0);//体验不好
},
500
)
}
else
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录