Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agcs2.0-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liang
agcs2.0-web
Commits
5c0f6e5d
Commit
5c0f6e5d
authored
Feb 02, 2023
by
刘予佳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
详情随访接口 表格样式
parent
1fb9382e
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
212 additions
and
186 deletions
+212
-186
followup.js
src/api/followup.js
+9
-4
index.vue
src/components/CustomsTable/index.vue
+3
-10
index.vue
src/components/TabComponents/index.vue
+51
-59
index.vue
src/layouts/components/ThemeBar/index.vue
+5
-15
dict.js
src/store/modules/dict.js
+3
-0
vab.scss
src/styles/vab.scss
+13
-1
index.js
src/utils/index.js
+10
-9
index.vue
src/views/audit-detail/index.vue
+3
-21
index.vue
src/views/audit-qualitycontrol/index.vue
+22
-11
followaudit.vue
src/views/followupentry/followaudit.vue
+20
-1
index.vue
src/views/followupresearch/index.vue
+73
-55
No files found.
src/api/followup.js
View file @
5c0f6e5d
...
...
@@ -30,10 +30,15 @@ export function getFollowUncheck(params = {}) {
});
}
//随访病例待审核(详情数据)
export
function
getFollowUnCheckDetail
(
params
=
{}
)
{
export
function
getFollowUnCheckDetail
(
id
)
{
return
request
({
url
:
"
/disease-data/dataCheck/follow/unCheck/detail/
"
,
url
:
`/disease-data/dataCheck/follow/unCheck/detail/
${
id
}
`
,
method
:
"
get
"
,
params
,
});
}
// export function getHproleDetail(id) {
// return request({
// url: `/cloud-upms//sys/role/${id}`,
// method: "get",
// })
// }
\ No newline at end of file
src/components/CustomsTable/index.vue
View file @
5c0f6e5d
...
...
@@ -34,16 +34,9 @@
</
template
>
<!-- 表内容插槽 -->
<
template
slot-scope=
"scope"
>
<!-- 转化文字 -->
<span
:style=
"
{ fontSize: fontSize + 'px' }"
v-if="column.transList"
>
{{
column
.
transList
[
scope
.
row
[
String
(
column
.
value
)]]
||
"
--
"
}}
</span>
<!-- 一般情况 -->
<span
:style=
"
{ fontSize: fontSize + 'px' }"
v-else
>
{{
String
(
scope
.
row
[
column
.
value
]
||
"
--
"
)
}}
</span>
<span
:style=
"
{ fontSize: fontSize + 'px' }">
<span>
{{
scope
.
row
[
column
.
value
]
||
"
--
"
}}
</span>
</span>
</
template
>
</el-table-column>
</template>
...
...
src/components/TabComponents/index.vue
View file @
5c0f6e5d
...
...
@@ -36,8 +36,7 @@
:label=
"tabLabel"
:selectable=
"selecTable"
:index=
"tabIndex"
>
</el-table-column>
></el-table-column>
<template
v-for=
"(column, index) in columns"
>
<template
v-if=
"!column.hidden"
>
...
...
@@ -101,9 +100,7 @@
"
>
<template
v-for=
"(op, opIndex) in col2.operations"
>
<template
v-if=
"!op.isHidden || !op.isHidden(scope.row)"
>
<template
v-if=
"!op.isHidden || !op.isHidden(scope.row)"
>
<el-button
:key=
"opIndex"
:disabled=
"
...
...
@@ -169,9 +166,11 @@
: {}
"
/>
<span
v-else
class=
"tableSpan"
>
{{
<span
v-else
class=
"tableSpan"
>
{{
scope
.
row
[
col2
.
value
]
}}
</span>
}}
</span>
</
template
>
<
template
v-else
>
<el-input
...
...
@@ -203,9 +202,11 @@
: {}
"
/>
<span
v-else
class=
"tableSpan"
>
{{
<span
v-else
class=
"tableSpan"
>
{{
scope
.
row
[
col2
.
value
]
}}
</span>
}}
</span>
</
template
>
</template>
...
...
@@ -292,7 +293,10 @@
>
<el-button
type=
"primary"
:size=
"size"
>
{{
op
.
title
||
"
更多操作
"
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
...
...
@@ -341,8 +345,7 @@
v-model=
"scope.row[column.value]"
:active-value=
"op.activeValue"
:inactive-value=
"op.inactiveValue"
>
</el-switch>
></el-switch>
</div>
<el-button
v-else
...
...
@@ -379,9 +382,7 @@
? column.operations.formatter(scope.row)
: column.operations"
>
<template
v-if=
"!operate.isHidden || !operate.isHidden(scope.row)"
>
<template
v-if=
"!operate.isHidden || !operate.isHidden(scope.row)"
>
<el-tooltip
v-if=
"operate.tips"
:key=
"operIndex + Date.parse(new Date())"
...
...
@@ -453,9 +454,11 @@
: {}
"
/>
<span
v-else
class=
"tableSpan"
>
{{
<span
v-else
class=
"tableSpan"
>
{{
scope
.
row
[
column
.
value
]
}}
</span>
}}
</span>
</
template
>
<
template
v-else
>
<el-input
...
...
@@ -487,9 +490,11 @@
: {}
"
/>
<span
v-else
class=
"tableSpan"
>
{{
<span
v-else
class=
"tableSpan"
>
{{
scope
.
row
[
column
.
value
]
}}
</span>
}}
</span>
</
template
>
</template>
...
...
@@ -506,9 +511,11 @@
:value-format=
"column.valueFormat"
:size=
"column.size"
></el-date-picker>
<span
v-else
class=
"tableSpan"
>
{{
<span
v-else
class=
"tableSpan"
>
{{
scope
.
row
[
column
.
value
]
}}
</span>
}}
</span>
</
template
>
<
template
v-if=
"column.operType === 'textarea'"
>
...
...
@@ -558,9 +565,7 @@
</
template
>
<
template
v-if=
"column.operType === 'checkbox'"
>
<el-checkbox
v-model=
"scope.row[column.value]"
></el-checkbox>
<el-checkbox
v-model=
"scope.row[column.value]"
></el-checkbox>
</
template
>
<!-- 模糊查询输入 -->
...
...
@@ -616,7 +621,7 @@
<template v-else-if="column.operType === 'label'">
<span>{{scope.row[column.value]}}</span>
</template>
-->
</template>
-->
<
template
v-else-if=
"column.operType === 'upload'"
>
<el-button
...
...
@@ -624,8 +629,7 @@
style=
"float: left"
type=
"primary"
@
click=
"column.func(scope.$index)"
>
上传
</el-button
>
>
上传
</el-button>
<span
v-if=
"scope.row.imgUrl"
style=
"
...
...
@@ -636,15 +640,13 @@
color: #409eff;
"
@
click=
"column.enlargeFunc(scope.row.imgUrl)"
>
{{
scope
.
row
.
imgUrl
}}
</span
>
>
{{
scope
.
row
.
imgUrl
}}
</span>
<el-button
v-if=
"scope.row.imgUrl"
style=
"float: left; margin-left: 5px"
type=
"primary"
@
click=
"column.delFunc(scope.row, scope.$index)"
>
删除
</el-button
>
>
删除
</el-button>
</
template
>
<!-- 图片 -->
<
template
v-if=
"column.operType === 'img'"
>
...
...
@@ -662,27 +664,16 @@
<!-- 消息 -->
<
template
v-if=
"column.operType === 'txt'"
>
<div
:style=
"column.style1"
>
{{
scope
.
row
[
column
.
value1
]
}}
</div>
<div
:style=
"column.style2"
>
{{
scope
.
row
[
column
.
value2
]
}}
</div>
<div
:style=
"column.style1"
>
{{
scope
.
row
[
column
.
value1
]
}}
</div>
<div
:style=
"column.style2"
>
{{
scope
.
row
[
column
.
value2
]
}}
</div>
</
template
>
<!-- html -->
<
template
v-if=
"column.type === 'html'"
>
<div
class=
"highlight"
v-html=
"scope.row[column.value]"
></div>
<div
class=
"highlight"
v-html=
"scope.row[column.value]"
></div>
</
template
>
<!-- 展开列表 -->
<
template
v-if=
"column.tabType === 'expand'"
>
<el-form
label-position=
"right"
class=
"demo-table-expand"
label-width=
"130px"
>
<el-form
label-position=
"right"
class=
"demo-table-expand"
label-width=
"130px"
>
<template
v-for=
"(expand, index) in column.expandColumns"
>
<el-form-item
v-if=
"!expand.hidden"
...
...
@@ -713,6 +704,7 @@
<div
v-if=
"pageSize && totalCounts > 0"
class=
"pagination-footer"
>
<span
class=
"description"
>
{{ description }}
</span>
<el-pagination
background
:current-page=
"currentPage"
:page-sizes=
"pageSizes"
:page-size=
"pageSize"
...
...
src/layouts/components/ThemeBar/index.vue
View file @
5c0f6e5d
<
template
>
<span
v-if=
"themeBar"
>
<vab-icon
title=
"主题配置"
:icon=
"['fas', 'palette']"
@
click=
"handleChangeTheme"
/>
<vab-icon
title=
"主题配置"
:icon=
"['fas', 'palette']"
@
click=
"handleChangeTheme"
/>
<div
class=
"theme-bar-setting"
>
<div
@
click=
"handleChangeTheme"
>
<vab-icon
:icon=
"['fas', 'palette']"
/>
...
...
@@ -86,11 +82,7 @@
></el-color-picker>
</el-form-item>
<el-form-item
label=
"菜单文字色"
>
<el-color-picker
v-model=
"theme.menuColor"
:predefine=
"['#000', '#fff']"
show-alpha
></el-color-picker>
<el-color-picker
v-model=
"theme.menuColor"
:predefine=
"['#000', '#fff']"
show-alpha
></el-color-picker>
</el-form-item>
<el-form-item
label=
"标签主题色"
>
<el-color-picker
...
...
@@ -115,13 +107,11 @@
</el-form-item>
<el-form-item>
<el-button
@
click=
"handleSetDfaultTheme"
>
恢复默认
</el-button>
<el-button
type=
"primary"
@
click=
"handleSaveTheme"
>
保存
</el-button
>
<el-button
type=
"primary"
@
click=
"handleSaveTheme"
>
保存
</el-button>
</el-form-item>
</el-form>
</div>
</el-scrollbar
>
</div>
</el-scrollbar
>
</el-drawer>
</span>
</
template
>
...
...
src/store/modules/dict.js
View file @
5c0f6e5d
...
...
@@ -32,6 +32,7 @@ const actions = {
newDictSet
.
push
(
v
.
type
)
}
})
console
.
log
(
'
执行getDictData
'
,
commit
,
state
)
commit
(
"
setDictSet
"
,
latestDict
)
newDictSet
=
Object
.
keys
(
dictMap
).
length
===
0
?
latestDictSet
:
newDictSet
// 存在新增加的字典
...
...
@@ -56,10 +57,12 @@ const actions = {
},
// 更新字典分类
async
updateDictType
({
commit
,
state
},
data
)
{
console
.
log
(
'
执行updateDictType
'
)
commit
(
"
setDictSet
"
,
data
)
},
// 更新字典详情
async
updateDictDetail
({
commit
,
state
},
{
type
,
data
})
{
console
.
log
(
'
执行updateDictDetail
'
)
const
dictMap
=
state
.
dictMap
if
(
type
)
{
const
list
=
data
.
map
((
item
)
=>
{
...
...
src/styles/vab.scss
View file @
5c0f6e5d
...
...
@@ -213,6 +213,18 @@ html {
text-align
:
center
;
white-space
:
nowrap
;
}
.is-background
{
button
,
.el-pager
li
{
border-radius
:
6px
!
important
;
}
button
,
.el-pager
li
:not
(
.active
)
{
border
:
1px
solid
#D9D9D9
;
background
:
transparent
!
important
;
}
.el-input__inner
{
border-radius
:
6px
!
important
;
}
}
/* 分页结束 */
...
...
src/utils/index.js
View file @
5c0f6e5d
...
...
@@ -471,7 +471,7 @@ export function formatDicList(list, value, connector = ",") {
if
(
!
list
)
return
""
if
(
list
.
constructor
!==
Array
)
return
""
// if (!value && value != 0) return ""
let
result
=
""
let
result
=
"
--
"
let
multiple
=
Array
.
isArray
(
value
)
?
true
:
false
if
(
multiple
)
{
const
resultList
=
[]
...
...
@@ -489,6 +489,7 @@ export function formatDicList(list, value, connector = ",") {
}
})
}
console
.
log
(
'
字典
'
,
list
,
value
,
result
)
return
result
}
/**
...
...
src/views/audit-detail/index.vue
View file @
5c0f6e5d
...
...
@@ -97,7 +97,7 @@
<
script
>
import
publicDialog
from
"
./components/publicDialog.vue
"
import
screenReview
from
"
./components/screenReview.vue
"
import
{
getFollowUnCheckDetail
}
from
"
@/api/followup
"
export
default
{
components
:
{
publicDialog
,
screenReview
},
data
()
{
...
...
@@ -128,13 +128,8 @@ export default {
}
},
watch
:
{},
computed
:{
unionId
(){
return
this
.
$route
.
query
.
id
}
},
mounted
()
{
this
.
getDetail
()
},
methods
:
{
showDialog
(
val
)
{
...
...
@@ -200,20 +195,7 @@ export default {
nextExample
()
{
this
.
onCancel
()
},
async
getDetail
(){
this
.
loading
=
true
let
params
=
{
unionId
:
this
.
unionId
,
}
let
res
=
await
getFollowUnCheckDetail
(
params
)
if
(
res
.
code
==
1
){
//分页内容
// const d = res.data
// this.total= d.total
// this.tableData=d['records']
}
this
.
loading
=
false
},
},
}
</
script
>
...
...
src/views/audit-qualitycontrol/index.vue
View file @
5c0f6e5d
...
...
@@ -18,7 +18,7 @@
</div>
</div>
<div
class=
"bot-table"
>
<
customs-table
<
el-table-self
ref=
"table"
:table-data=
"tableData"
:columns=
"columns"
...
...
@@ -70,15 +70,17 @@ export default {
sessionStorage
.
setItem
(
'
audit-status
'
,
val
)
switch
(
this
.
type
)
{
case
"
1
"
:
this
.
getFollowupList
()
this
.
handleSearch
()
break
}
console
.
log
(
'
status
'
,
val
)
},
type
(
val
)
{
console
.
log
(
'
type
'
,
val
)
sessionStorage
.
setItem
(
'
audit-type
'
,
val
)
switch
(
val
)
{
case
"
1
"
:
this
.
getFollowupList
()
this
.
handleSearch
()
break
}
},
...
...
@@ -180,9 +182,13 @@ export default {
}
},
mounted
()
{
if
(
sessionStorage
.
getItem
(
'
audit-status
'
)
||
sessionStorage
.
getItem
(
'
audit-type
'
)
){
this
.
auditStatus
=
sessionStorage
.
getItem
(
'
audit-status
'
)
||
"
0
"
this
.
type
=
sessionStorage
.
getItem
(
'
audit-type
'
)
||
"
0
"
this
.
getFollowupList
()
}
else
{
this
.
handleSearch
()
}
},
methods
:
{
handleClick
()
{
...
...
@@ -197,20 +203,25 @@ export default {
auditHandle
(
data
,
i
)
{
console
.
log
(
data
,
i
)
if
(
this
.
type
==
"
1
"
)
{
this
.
$router
.
push
(
"
/followaudit
"
)
this
.
$router
.
push
({
path
:
"
/followaudit
"
,
query
:
{
id
:
data
[
'
unionId
'
],
},
})
}
else
{
this
.
$router
.
push
({
path
:
"
/auditdetail
"
,
query
:
{
id
:
data
[
'
unionId
'
]
,
id
:
i
,
},
})
}
},
async
getFollowupList
()
{
async
handleSearch
()
{
let
params
=
{
pageSize
:
10
,
pageNum
:
1
,
pageSize
:
this
.
pageSize
,
pageNum
:
this
.
pageIndex
}
let
res
switch
(
this
.
auditStatus
)
{
...
...
@@ -221,8 +232,8 @@ export default {
res
=
await
getFollowCheck
(
params
)
//已审核
break
;
}
this
.
tableData
=
res
.
records
this
.
total
=
res
.
total
this
.
tableData
=
res
.
data
.
records
this
.
total
=
res
.
data
.
total
},
},
}
...
...
src/views/followupentry/followaudit.vue
View file @
5c0f6e5d
...
...
@@ -95,6 +95,7 @@
<
script
>
import
publicDialog
from
"
./components/publicDialog.vue
"
import
followReview
from
"
./components/followReview.vue
"
import
{
getFollowUnCheckDetail
}
from
"
@/api/followup
"
export
default
{
components
:
{
publicDialog
,
followReview
},
data
()
{
...
...
@@ -127,7 +128,14 @@ export default {
}
},
watch
:
{},
mounted
()
{},
mounted
()
{
this
.
getDetail
()
},
computed
:{
unionId
(){
return
this
.
$route
.
query
.
id
}
},
methods
:
{
showDialog
(
val
)
{
this
.
curBtn
=
val
...
...
@@ -192,6 +200,17 @@ export default {
nextExample
()
{
this
.
onCancel
()
},
async
getDetail
(){
this
.
loading
=
true
let
res
=
await
getFollowUnCheckDetail
(
this
.
unionId
)
if
(
res
.
code
==
1
){
//分页内容
// const d = res.data
// this.total= d.total
// this.tableData=d['records']
}
this
.
loading
=
false
},
},
}
</
script
>
...
...
src/views/followupresearch/index.vue
View file @
5c0f6e5d
...
...
@@ -5,7 +5,7 @@
<form-components
:forms=
"formList"
:formEdit=
"formEdit"
@
handleSearch=
"onSearch"
></form-components>
</div>
<div
class=
"bot"
>
<
customs-table
<
el-table-self
ref=
"table"
:table-data=
"tableData"
:columns=
"columns"
...
...
@@ -41,65 +41,82 @@ export default {
columns
:
[
{
label
:
"
医联体
"
,
value
:
"
unionName
"
,
minWidth
:
120
,
value
:
"
unionName
"
,
formatter
:
(
row
)
=>
{
return
row
.
unionName
?
row
.
unionName
:
"
--
"
},
},
{
label
:
"
姓名
"
,
value
:
"
name
"
,
minWidth
:
120
,
formatter
:
(
row
)
=>
{
return
row
.
name
?
row
.
name
:
"
--
"
},
value
:
"
name
"
,
},
{
label
:
"
性别
"
,
minWidth
:
80
,
value
:
"
sex
"
,
minWidth
:
120
,
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
d-sex
"
],
String
(
row
.
sex
)
)
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
d-sex
"
],
row
.
sex
+
""
)
},
},
{
label
:
"
身份证
"
,
value
:
"
idCard
"
,
minWidth
:
120
,
value
:
"
idCard
"
,
formatter
:
(
row
)
=>
{
return
row
.
idCard
?
row
.
idCard
:
"
--
"
},
},
{
label
:
"
年龄
"
,
value
:
"
age
"
,
minWidth
:
120
,
value
:
"
age
"
,
formatter
:
(
row
)
=>
{
return
row
.
age
?
row
.
age
:
"
--
"
},
},
{
label
:
"
筛查时间
"
,
minWidth
:
180
,
value
:
"
screeningTime
"
,
minWidth
:
120
,
formatter
:
(
row
)
=>
{
return
row
.
createTime
?
row
.
createTime
:
"
--
"
},
},
{
label
:
"
风险评估结果
"
,
minWidth
:
120
,
value
:
"
riskRank
"
,
trans
:
'
risk_level
'
,
transList
:{
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
risk_level
"
],
String
(
row
.
riskRank
))
},
minWidth
:
120
,
},
{
label
:
"
上次随访时间
"
,
value
:
"
followTime
"
,
minWidth
:
120
,
formatter
:
(
row
)
=>
{
return
row
.
followTime
?
row
.
followTime
:
"
--
"
},
},
{
label
:
"
随访进度
"
,
value
:
"
followBatch
"
,
trans
:
'
follow_type
'
,
transList
:{
},
minWidth
:
120
,
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
follow_type
"
],
String
(
row
.
followBatch
))
},
},
{
label
:
"
计划随访时间
"
,
value
:
"
nextFollowTime
"
,
trans
:
'
next_follow_time
'
,
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
next_follow_time
"
],
String
(
row
.
nextFollowTime
))
},
minWidth
:
120
,
},
{
...
...
@@ -143,7 +160,8 @@ export default {
"
formRecordId
"
:
""
,
//表单记录id
"
linkPhone
"
:
"
0556-5556666
"
,
//联系方式
"
isContinueFollow
"
:
1
,
//是否继续随访
"
checkStatus
"
:
""
//审核状态
"
checkStatus
"
:
""
,
//审核状态
"
riskRank
"
:
"
medium
"
},
{
name
:
'
11
'
,
...
...
@@ -284,7 +302,7 @@ export default {
}
},
created
(){
this
.
initColumn
()
//
this.initColumn()
},
mounted
()
{
this
.
formEdit
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
followResearch-form
'
))
||
{}
...
...
@@ -333,41 +351,41 @@ export default {
}
this
.
listLoading
=
false
},
initColumn
(){
this
.
columns
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
trans
){
this
.
initDict
(
item
.
trans
,
index
)
}
})
},
async
initDict
(
type
,
index
){
let
params
=
{
type
:
type
}
const
res
=
await
getDictDetail
(
params
)
let
item
=
this
.
formList
.
find
(
_
=>
_
.
trans
==
type
)
res
.
data
.
forEach
((
itemD
,
inx
)
=>
{
// if(!this.columns[index]['transList']){
// this.columns[index]['transList']={}
// initColumn(){
// this.columns.forEach((item,index) => {
// if(item.trans){
// this.initDict(item.trans,index)
// }
// else{
// this.columns[index]['transList'][itemD.code]=itemD.name
// })
// },
// async initDict(type,index){
// let params={
// type:type
// }
// const res = await getDictDetail(params)
// let item = this.formList.find(_ => _.trans == type)
// res.data.forEach((itemD,inx) => {
// // if(!this.columns[index]['transList']){
// // this.columns[index]['transList']={}
// // }
// // else{
// // this.columns[index]['transList'][itemD.code]=itemD.name
// // }
// if(item){
// if(!item['opts']){
// item['opts']=[]
// }
// else {
// item['opts']=res.data.map((_) => {
// return {
// label: _.name,
// value: _.code,
// }
// })
// }
// }
// })
// }
if
(
item
){
if
(
!
item
[
'
opts
'
]){
item
[
'
opts
'
]
=
[]
}
else
{
item
[
'
opts
'
]
=
res
.
data
.
map
((
_
)
=>
{
return
{
label
:
_
.
name
,
value
:
_
.
code
,
}
})
}
}
})
}
},
}
</
script
>
...
...
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