Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue-composition-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
宁路鹏
vue-composition-api
Commits
d9ba3c13
Commit
d9ba3c13
authored
Apr 18, 2023
by
唐玉峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临床
parent
e3acde94
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
585 additions
and
7 deletions
+585
-7
src/App.vue
+12
-7
src/router/index.js
+12
-0
src/views/clinicalLog.vue
+118
-0
src/views/clinicalPathMaintenance.vue
+104
-0
src/views/outHistorygrouping.vue
+4
-0
src/views/relationMapping.vue
+335
-0
No files found.
src/App.vue
View file @
d9ba3c13
<
template
>
<div
id=
"app"
>
<router-view/>
</div>
<div
id=
"app"
>
<router-view
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'App'
,
}
name
:
"App"
,
};
</
script
>
<
style
>
html
,
body
,
#app
{
width
:
100%
;
height
:
100%
;
margin
:
0
;
}
</
style
>
src/router/index.js
View file @
d9ba3c13
...
...
@@ -59,6 +59,18 @@ const router = new Router({
path
:
"/test"
,
component
:
(
resolve
)
=>
require
([
"@/views/test.vue"
],
resolve
),
},
{
path
:
"/clinicalPathMaintenance"
,
component
:
(
resolve
)
=>
require
([
"@/views/clinicalPathMaintenance.vue"
],
resolve
),
},
{
path
:
"/relationMapping"
,
component
:
(
resolve
)
=>
require
([
"@/views/relationMapping.vue"
],
resolve
),
},
{
path
:
"/clinicalLog"
,
component
:
(
resolve
)
=>
require
([
"@/views/clinicalLog.vue"
],
resolve
),
},
],
// mode: 'history' /*hash*/ /*不显示路由中的#*/
});
...
...
src/views/clinicalLog.vue
0 → 100644
View file @
d9ba3c13
<
template
>
<div
class=
"clinicalPathMaintenance"
>
<div
style=
"height: 10px; background-color: #0283bb"
></div>
<div
class=
"top"
>
<el-select
style=
"width: 200px; margin-right: 15px"
v-model=
"type"
placeholder=
"请选择类型"
size=
"mini"
clearable
@
clear=
"clearFn"
>
<el-option
label=
"添加"
:value=
"1"
/>
<el-option
label=
"删除"
:value=
"2"
/>
</el-select>
<el-input
style=
"width: 280px"
v-model
.
trim=
"searchForm"
size=
"mini"
placeholder=
"请输入用户名/医师名/科室名/路径名"
clearable
@
clear=
"clearFn"
></el-input>
<el-button
type=
"primary"
style=
"background-color: #0283bb; color: #ffff; margin-left: 15px"
size=
"mini"
@
click=
"getList"
>
查询
</el-button>
</div>
<div
style=
"padding: 20px"
>
<el-table
:data=
"tableData"
stripe
style=
"width: 100%"
border
size=
"mini"
>
<el-table-column
align=
"center"
type=
"index"
width=
"50"
:index=
"(currentPage - 1) * pageSize + 1"
fixed
></el-table-column>
<el-table-column
:prop=
"item.prop"
min-width=
"160"
:label=
"item.label"
v-for=
"item in columnList"
:key=
"item.label"
show-overflow-tooltip
>
</el-table-column>
</el-table>
<div
style=
"text-align: right; margin-top: 20px"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
:page-size=
"pageSize"
layout=
"total, prev, pager, next"
:total=
"totalCount"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
<
script
>
import
http
from
"../utils/http"
;
import
{
setItem
,
getItem
}
from
"../utils/auth"
;
import
{
Message
,
Loading
}
from
"element-ui"
;
export
default
{
name
:
"clinicalPathMaintenance"
,
data
()
{
return
{
columnList
:
[
{
label
:
"用户名"
,
prop
:
"userName"
},
{
label
:
"医师名"
,
prop
:
"doctorName"
},
{
label
:
"科室名"
,
prop
:
"deptName"
},
{
label
:
"路径名"
,
prop
:
"route_name"
},
{
label
:
"方案名"
,
prop
:
"advice_name"
},
{
label
:
"方案时间"
,
prop
:
"inHosDays"
},
{
label
:
"项目详细名"
,
prop
:
"project_name"
},
],
totalCount
:
0
,
//总条数
currentPage
:
1
,
//当前页
pageSize
:
10
,
tableData
:
[],
searchForm
:
""
,
type
:
undefined
,
typeObj
:
{
1
:
"添加"
,
2
:
"删除"
,
},
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
//获取频率,频率的下拉数据
getList
()
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/GetRouteLogList?PageNumber=
${
this
.
currentPage
}
&PageSize=
${
this
.
pageSize
}
&SearchQuery=
${
this
.
searchForm
}
&Type=
${
this
.
type
||
0
}
`
,
{}
)
.
then
((
data
)
=>
{
this
.
tableData
=
data
.
list
;
this
.
totalCount
=
data
.
totalCount
;
})
.
catch
((
error
)
=>
{});
},
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
;
this
.
getList
();
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
getList
();
},
clearFn
()
{
this
.
getList
();
},
search
()
{
this
.
pageSize
=
10
;
this
.
currentPage
=
1
;
this
.
getList
();
},
},
};
</
script
>
<
style
lang=
"scss"
>
.clinicalPathMaintenance
{
height
:
100%
;
background-color
:
white
;
overflow
:
hidden
;
position
:
relative
;
.top
{
display
:
flex
;
align-items
:
center
;
margin
:
20px
;
}
}
</
style
>
src/views/clinicalPathMaintenance.vue
0 → 100644
View file @
d9ba3c13
<
template
>
<div
class=
"clinicalPathMaintenance"
>
<div
style=
"height: 10px; background-color: #0283bb"
></div>
<div
class=
"top"
>
<div>
路径名称:
<el-input
size=
"mini"
v-model=
"SearchQuery"
style=
"width: 200px"
placeholder=
"请输入路径名称"
clearable
@
clear=
"getList"
>
</el-input>
</div>
<el-button
type=
"primary"
style=
"background-color: #0283bb; color: #ffff; margin-left: 15px"
size=
"mini"
@
click=
"getList"
>
查询
</el-button>
</div>
<div
style=
"padding: 20px"
>
<el-table
:data=
"tableData"
stripe
style=
"width: 100%"
border
size=
"mini"
>
<el-table-column
align=
"center"
type=
"index"
width=
"50"
:index=
"(currentPage - 1) * pageSize + 1"
fixed
></el-table-column>
<el-table-column
:prop=
"item.prop"
min-width=
"160"
:label=
"item.label"
v-for=
"item in columnList"
:key=
"item.label"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"140"
fixed=
"right"
>
<template
#
default=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
style=
"background-color: #0283bb"
@
click=
"editbtn(scope.row)"
>
编辑
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
style=
"text-align: right; margin-top: 20px"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
:page-size=
"pageSize"
layout=
"total, prev, pager, next"
:total=
"totalCount"
>
</el-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
http
from
"../utils/http"
;
import
{
setItem
,
getItem
}
from
"../utils/auth"
;
import
{
Message
,
Loading
}
from
"element-ui"
;
export
default
{
name
:
"clinicalPathMaintenance"
,
data
()
{
return
{
columnList
:
[
{
label
:
"路径名称"
,
prop
:
"clinical_route_name"
},
{
label
:
"文件夹名称"
,
prop
:
"clinical_route_foldername"
},
{
label
:
"适用对象"
,
prop
:
"applicable_objects"
},
{
label
:
"标准住院日"
,
prop
:
"hospital_stay"
},
{
label
:
"最小住院日"
,
prop
:
"min_stay"
},
{
label
:
"最大住院日"
,
prop
:
"max_stay"
},
],
totalCount
:
0
,
//总条数
currentPage
:
1
,
//当前页
pageSize
:
10
,
tableData
:
[],
SearchQuery
:
""
,
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
//获取频率,频率的下拉数据
getList
()
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/List?PageNumber=
${
this
.
currentPage
}
&PageSize=
${
this
.
pageSize
}
&SearchQuery=
${
this
.
SearchQuery
}
`
,
{})
.
then
((
data
)
=>
{
this
.
tableData
=
data
.
list
;
this
.
totalCount
=
data
.
totalCount
;
})
.
catch
((
error
)
=>
{});
},
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
;
this
.
getList
();
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
getList
();
},
editbtn
(
obj
)
{
this
.
$router
.
push
({
path
:
"relationMapping"
,
query
:
{
cid
:
obj
.
id
,
ApplyDoctor
:
this
.
$route
.
query
.
ApplyDoctor
??
0
,
},
});
},
},
};
</
script
>
<
style
lang=
"scss"
>
.clinicalPathMaintenance
{
height
:
100%
;
background-color
:
white
;
overflow
:
hidden
;
position
:
relative
;
.top
{
display
:
flex
;
align-items
:
center
;
margin
:
20px
;
}
}
</
style
>
src/views/outHistorygrouping.vue
View file @
d9ba3c13
...
...
@@ -2198,5 +2198,9 @@ export default {
}
}
}
input
[
type
=
"radio"
i
]
{
width
:
16px
;
height
:
16px
;
}
}
</
style
>
src/views/relationMapping.vue
0 → 100644
View file @
d9ba3c13
<
template
>
<div
class=
"relationMapping"
>
<div
style=
"height: 10px; background-color: #0283bb"
></div>
<div
class=
"top"
>
<el-radio-group
v-model=
"radio"
@
change=
"radiochange"
>
<el-radio
:label=
"1"
>
长期医嘱
</el-radio>
<el-radio
:label=
"2"
>
临时医嘱
</el-radio>
</el-radio-group>
<div
style=
"color: red"
v-if=
"show"
>
有未保存排序内容!
</div>
<div
class=
""
>
<el-button
size=
"mini"
type=
"primary"
style=
"background-color: #0283bb"
@
click=
"saveSort"
>
保存排序
</el-button>
<el-button
size=
"mini"
type=
"primary"
style=
"background-color: #0283bb"
@
click=
"rightadd()"
>
添加
</el-button>
<el-button
size=
"mini"
type=
"danger"
@
click=
"rightdelarr()"
>
删除
</el-button>
<el-button
size=
"mini"
@
click=
"
() =>
{
$router.go(-1);
}
"
>返回
</el-button
>
</div>
</div>
<div
class=
"main"
>
<div
class=
"left"
>
<el-table
:data=
"lefttableData"
stripe
style=
"width: 100%"
border
height=
"99%"
size=
"mini"
highlight-current-row
@
row-click=
"rowclick"
>
<el-table-column
:prop=
"item.prop"
min-width=
"160"
:label=
"item.label"
v-for=
"item in columnList"
:key=
"item.label"
show-overflow-tooltip
>
</el-table-column>
</el-table>
</div>
<div
class=
"right"
>
<el-table
:data=
"righttableData"
stripe
style=
"width: 100%"
border
height=
"99%"
size=
"mini"
@
selection-change=
"righthandleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
prop=
"project_name"
label=
"收费项目名称"
show-overflow-tooltip
/>
<el-table-column
prop=
"sort"
label=
"排序"
width=
"80"
type=
"index"
/>
<el-table-column
label=
"操作"
width=
"150"
>
<template
#
default=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
style=
"background-color: #0283bb"
@
click=
"onMove(scope.row.id, 1)"
>
上移
</el-button>
<el-button
size=
"mini"
type=
"primary"
style=
"background-color: #0283bb"
@
click=
"onMove(scope.row.id, 0)"
>
下移
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<!-- 右侧的添加弹框开始 -->
<el-dialog
:visible
.
sync=
"RightdialogTableVisible"
class=
"relationMapping_rightdiaglogbox"
max-height=
"600px"
>
<div
class=
"relationMapping_rightdiaglogbox_top"
>
<div
class=
"relationMapping_rightdiaglogbox_top_input"
>
<span
class=
"relationMapping_rightdiaglogbox_top_input_span"
>
项目名称:
</span>
<el-input
v-model=
"rightnameinput"
placeholder=
"请输入项目名称"
size=
"mini"
style=
"width: 200px; margin-right: 15px"
clearable
/>
<el-button
type=
"primary"
size=
"mini"
style=
"background-color: #0283bb"
@
click=
"rightselectbtn()"
>
查询
</el-button>
</div>
<div
class=
"relationMapping_rightdiaglogbox_top_btn"
>
<el-button
type=
"primary"
size=
"mini"
style=
"background-color: #0283bb"
@
click=
"rightok()"
>
保存
</el-button>
</div>
</div>
<el-table
:data=
"rightdialogData"
@
selection-change=
"rightselectchange"
max-height=
"400px"
border
size=
"mini"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
prop=
"code"
label=
"项目编码"
></el-table-column>
<el-table-column
prop=
"name"
label=
"规则名称"
/>
</el-table>
</el-dialog>
<!--右侧的添加弹框结束 -->
</div>
</template>
<
script
>
import
http
from
"../utils/http"
;
import
{
Message
,
Loading
,
MessageBox
}
from
"element-ui"
;
import
{
transformTimestamp
}
from
"../utils/formatTime"
;
export
default
{
name
:
"relationMapping"
,
data
()
{
return
{
radio
:
1
,
show
:
false
,
columnList
:
[
{
label
:
"方案名称"
,
prop
:
"advice_name"
},
{
label
:
"住院天数"
,
prop
:
"inhosdays"
},
],
columnRList
:
[
{
label
:
"收费项目名称"
,
prop
:
"project_name"
},
{
label
:
"sort"
,
prop
:
"排序"
},
],
lefttableData
:
[],
righttableData
:
[],
adviceid
:
0
,
rightarr
:
[],
RightdialogTableVisible
:
false
,
rightdialogData
:
[],
rightnameinput
:
""
,
rightchange
:
[],
};
},
mounted
()
{
this
.
getleftlist
();
},
methods
:
{
rightok
()
{
if
(
!
this
.
rightchange
.
length
)
{
return
;
}
this
.
RightdialogTableVisible
=
false
;
let
arr
=
[];
Object
.
keys
(
this
.
rightchange
).
forEach
((
key
)
=>
{
let
item
=
{
map_advice_id
:
this
.
adviceid
,
project_code
:
this
.
rightchange
[
key
].
code
,
project_name
:
this
.
rightchange
[
key
].
name
,
crid
:
this
.
$route
.
query
.
cid
?
this
.
$route
.
query
.
cid
*
1
:
0
,
id
:
0
,
create_time
:
transformTimestamp
(
new
Date
()),
sort
:
0
,
};
arr
.
push
(
item
);
});
http
.
post
(
`/ClinicalRoute/ClinicalRoute/CreateMapCRAProject?ApplyDoctor=
${
this
.
$route
.
query
.
ApplyDoctor
*
1
}
`
,
arr
)
.
then
((
data
)
=>
{
Message
.
success
({
message
:
"添加成功!"
,
type
:
"success"
,
});
this
.
getRightList
();
this
.
rightdialogData
=
[];
this
.
rightnameinput
=
""
;
})
.
catch
((
error
)
=>
{});
},
rightselectchange
(
val
)
{
this
.
rightchange
=
val
;
},
rightselectbtn
()
{
if
(
this
.
rightnameinput
)
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/GetProjectInfo?searchQuery=
${
this
.
rightnameinput
}
`
,
{})
.
then
((
data
)
=>
{
this
.
rightdialogData
=
data
;
})
.
catch
((
error
)
=>
{});
}
},
//获取左侧 初始化数据
getleftlist
()
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/GetMapCRAdvices?crid=
${
this
.
$route
.
query
.
cid
}
&type=
${
this
.
radio
}
`
,
{})
.
then
((
data
)
=>
{
this
.
show
=
false
;
this
.
lefttableData
=
data
;
})
.
catch
((
error
)
=>
{});
},
//获取左侧 初始化数据
getRightList
()
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/GetMapCRAProjectInfo?adviceid=
${
this
.
adviceid
}
`
,
{})
.
then
((
data
)
=>
{
this
.
show
=
false
;
this
.
righttableData
=
data
;
})
.
catch
((
error
)
=>
{});
},
righthandleSelectionChange
(
val
)
{
this
.
rightarr
=
val
;
},
//点击左侧表格数据
rowclick
(
row
,
column
,
event
)
{
this
.
adviceid
=
row
.
id
;
this
.
getRightList
();
},
onMove
(
code
,
dir
)
{
let
moveComm
=
(
curIndex
,
nextIndex
)
=>
{
let
arr
=
this
.
righttableData
;
arr
[
curIndex
]
=
arr
.
splice
(
nextIndex
,
1
,
arr
[
curIndex
])[
0
];
return
arr
;
};
this
.
righttableData
.
some
((
val
,
index
)
=>
{
if
(
val
.
id
===
code
)
{
if
(
dir
===
1
&&
index
===
0
)
{
Message
.
warning
({
message
:
"已在顶部!"
,
type
:
"warning"
,
});
}
else
if
(
dir
===
0
&&
index
===
this
.
righttableData
.
length
-
1
)
{
Message
.
warning
({
message
:
"已在底部!"
,
type
:
"warning"
,
});
}
else
{
this
.
show
=
true
;
let
nextIndex
=
dir
===
1
?
index
-
1
:
index
+
1
;
this
.
righttableData
=
moveComm
(
index
,
nextIndex
);
}
return
true
;
}
return
false
;
});
},
radiochange
(
val
)
{
this
.
show
=
false
;
this
.
righttableData
=
[];
this
.
getleftlist
();
},
saveSort
()
{
if
(
!
this
.
righttableData
.
length
)
{
return
;
}
let
newarr
=
[];
this
.
righttableData
.
forEach
((
item
,
index
)
=>
{
let
obj
=
{
id
:
item
.
id
,
sort
:
index
+
1
,
};
newarr
.
push
(
obj
);
});
http
.
post
(
`/ClinicalRoute/ClinicalRoute/UpdateMapCRAProject`
,
newarr
)
.
then
((
data
)
=>
{
Message
.
success
({
message
:
"保存成功!"
,
type
:
"success"
,
});
this
.
show
=
false
;
this
.
getRightList
();
})
.
catch
((
error
)
=>
{});
},
rightadd
()
{
if
(
this
.
adviceid
)
{
this
.
RightdialogTableVisible
=
true
;
}
else
{
Message
.
warning
({
message
:
"请选择项目!"
,
type
:
"warning"
,
});
}
},
rightdelarr
()
{
if
(
!
this
.
rightarr
.
length
)
{
Message
.
warning
({
message
:
"请选择删除项目!"
,
type
:
"warning"
,
});
return
;
}
MessageBox
.
confirm
(
"是否删除此选项?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
let
newarr
=
[];
Object
.
keys
(
this
.
rightarr
).
forEach
((
key
)
=>
{
newarr
.
push
(
this
.
rightarr
[
key
].
id
);
});
if
(
newarr
.
length
>
0
)
{
http
.
post
(
`/ClinicalRoute/ClinicalRoute/RemoveMapCRAProject?ApplyDoctor=
${
this
.
$route
.
query
.
ApplyDoctor
*
1
}
`
,
newarr
)
.
then
((
data
)
=>
{
Message
.
success
({
message
:
`
${
data
.
message
}
`
,
type
:
"success"
,
});
this
.
getRightList
();
})
.
catch
((
error
)
=>
{});
}
})
.
catch
(()
=>
{
Message
.
info
({
message
:
"已取消删除"
,
type
:
"info"
,
});
});
},
},
};
</
script
>
<
style
lang=
"scss"
>
.relationMapping
{
height
:
100%
;
background-color
:
white
;
overflow
:
hidden
;
position
:
relative
;
.top
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin
:
20px
;
}
.main
{
display
:
flex
;
padding
:
0
20px
;
justify-content
:
space-between
;
height
:
calc
(
100%
-
100px
);
.left
{
width
:
40%
;
height
:
100%
;
}
.right
{
width
:
58%
;
height
:
100%
;
}
}
&
_rightdiaglogbox
{
&_top
{
width
:
100%
;
height
:
50px
;
display
:
flex
;
align-items
:
center
;
&_input
{
width
:
70%
;
height
:
100%
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
&_span
{
width
:
80px
;
height
:
50px
;
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
}
&
_span2
{
margin-left
:
20px
;
}
}
&
_btn
{
width
:
30%
;
display
:
flex
;
justify-content
:
flex-end
;
}
}
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment