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
44fcec04
Commit
44fcec04
authored
Nov 24, 2022
by
miaojiale
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into dev_Miaojiale
parents
65b211f6
68255f88
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
169 additions
and
1127 deletions
+169
-1127
coop-group.js
src/api/coop-group.js
+3
-3
field.js
src/api/field.js
+1
-8
settings.js
src/config/settings.js
+2
-0
index.vue
src/layouts/components/AppMain/index.vue
+8
-8
settings.js
src/store/modules/settings.js
+22
-22
storage.js
src/utils/storage.js
+7
-6
ExportFieldConfig.vue
src/views/systems/colla-group/ExportFieldConfig.vue
+0
-244
ParameterConfig.vue
src/views/systems/colla-group/ParameterConfig.vue
+60
-49
QualityControlConfig.vue
src/views/systems/colla-group/QualityControlConfig.vue
+0
-761
index.vue
src/views/systems/colla-group/index.vue
+0
-13
FieldList.vue
src/views/systems/field-config/FieldList.vue
+5
-4
index.vue
src/views/systems/field-config/index.vue
+1
-1
FormAdd.vue
src/views/systems/form-config/FormAdd.vue
+18
-5
index.vue
src/views/systems/form-config/index.vue
+42
-3
No files found.
src/api/coop-group.js
View file @
44fcec04
...
...
@@ -341,7 +341,7 @@ export function getQualityDetail(patientId) {
// 协作组参数配置新增/修改
export
function
setParamConfig
(
data
)
{
return
request
({
url
:
`/disease-data/
sys/paramConfig/addOrUpdate
`
,
url
:
`/disease-data/
param/config
`
,
method
:
"
post
"
,
data
,
})
...
...
@@ -350,7 +350,7 @@ export function setParamConfig(data) {
// 协作组参数配置列表
export
function
getParamConfigList
(
params
)
{
return
request
({
url
:
`/disease-data/
sys/paramConfig/list
`
,
url
:
`/disease-data/
param/config/page
`
,
method
:
"
get
"
,
params
,
})
...
...
@@ -359,7 +359,7 @@ export function getParamConfigList(params) {
// 删除配置
export
function
delParamConfig
(
id
)
{
return
request
({
url
:
`/disease-data/
sys/paramConfig/
${
id
}
`
,
url
:
`/disease-data/
param/config?id=
${
id
}
`
,
method
:
"
delete
"
,
})
}
src/api/field.js
View file @
44fcec04
...
...
@@ -12,13 +12,6 @@ export function getFieldPage(params = {}) {
params
,
})
}
export
function
getFieldList
(
params
=
{})
{
return
request
({
url
:
"
/cloud-upms/field/dict/list/table
"
,
method
:
"
get
"
,
params
,
})
}
export
function
delField
(
id
)
{
return
request
({
...
...
@@ -92,7 +85,7 @@ export function copyForm(data = {}) {
// 获取
export
function
getFormDetail
(
id
)
{
return
request
({
url
:
`/cloud-upms/
/
org/form/
${
id
}
`
,
url
:
`/cloud-upms/org/form/
${
id
}
`
,
method
:
"
get
"
,
})
}
...
...
src/config/settings.js
View file @
44fcec04
...
...
@@ -44,6 +44,8 @@ module.exports = {
tokenTableName
:
"
agcs
"
,
//token存储位置localStorage sessionStorage cookie
storage
:
"
localStorage
"
,
// 前缀名
storagePrefixName
:
"
agcs
"
,
//是否显示logo
logo
:
true
,
//是否国定头部 固定fixed 不固定noFixed
...
...
src/layouts/components/AppMain/index.vue
View file @
44fcec04
...
...
@@ -58,14 +58,14 @@ export default {
},
},
watch
:
{
//
$route: {
//
handler(route) {
//
if ("mobile" === this.device) {
//
this.$store.dispatch("settings/foldSideBar")
//
}
//
},
//
immediate: true,
//
},
$route
:
{
handler
(
route
)
{
if
(
"
mobile
"
===
this
.
device
)
{
this
.
$store
.
dispatch
(
"
settings/foldSideBar
"
)
}
},
immediate
:
true
,
},
},
created
()
{
//重载所有路由
...
...
src/store/modules/settings.js
View file @
44fcec04
...
...
@@ -3,10 +3,10 @@
* @description 所有全局配置的状态管理,如无必要请勿修改
*/
import
defaultSettings
from
"
@/config/settings
"
;
import
defaultSettings
from
"
@/config/settings
"
const
{
tagsBar
,
logo
,
layout
,
header
,
themeBar
,
skeleton
}
=
defaultSettings
;
const
theme
=
JSON
.
parse
(
localStorage
.
getItem
(
"
BYUI-VUE-THEME
"
))
||
""
;
const
{
tagsBar
,
logo
,
layout
,
header
,
themeBar
,
skeleton
}
=
defaultSettings
const
theme
=
JSON
.
parse
(
localStorage
.
getItem
(
"
BYUI-VUE-THEME
"
))
||
""
const
state
=
{
tagsBar
:
theme
.
tagsBar
||
tagsBar
,
logo
,
...
...
@@ -16,7 +16,7 @@ const state = {
skeleton
,
device
:
"
desktop
"
,
themeBar
,
}
;
}
const
getters
=
{
collapse
:
(
state
)
=>
state
.
collapse
,
device
:
(
state
)
=>
state
.
device
,
...
...
@@ -26,51 +26,51 @@ const getters = {
tagsBar
:
(
state
)
=>
state
.
tagsBar
,
themeBar
:
(
state
)
=>
state
.
themeBar
,
skeleton
:
(
state
)
=>
state
.
skeleton
,
}
;
}
const
mutations
=
{
changeLayout
:
(
state
,
layout
)
=>
{
if
(
layout
)
state
.
layout
=
layout
;
if
(
layout
)
state
.
layout
=
layout
},
changeHeader
:
(
state
,
header
)
=>
{
if
(
header
)
state
.
header
=
header
;
if
(
header
)
state
.
header
=
header
},
changeTagsBar
:
(
state
,
tagsBar
)
=>
{
if
(
tagsBar
)
state
.
tagsBar
=
tagsBar
;
if
(
tagsBar
)
state
.
tagsBar
=
tagsBar
},
changeCollapse
:
(
state
)
=>
{
state
.
collapse
=
!
state
.
collapse
;
state
.
collapse
=
!
state
.
collapse
},
foldSideBar
:
(
state
)
=>
{
state
.
collapse
=
true
;
//
state.collapse = true;
},
openSideBar
:
(
state
)
=>
{
state
.
collapse
=
false
;
state
.
collapse
=
false
},
toggleDevice
:
(
state
,
device
)
=>
{
state
.
device
=
device
;
state
.
device
=
device
},
}
;
}
const
actions
=
{
changeLayout
({
commit
},
layout
)
{
commit
(
"
changeLayout
"
,
layout
)
;
commit
(
"
changeLayout
"
,
layout
)
},
changeHeader
({
commit
},
header
)
{
commit
(
"
changeHeader
"
,
header
)
;
commit
(
"
changeHeader
"
,
header
)
},
changeTagsBar
({
commit
},
tagsBar
)
{
commit
(
"
changeTagsBar
"
,
tagsBar
)
;
commit
(
"
changeTagsBar
"
,
tagsBar
)
},
changeCollapse
({
commit
})
{
commit
(
"
changeCollapse
"
)
;
commit
(
"
changeCollapse
"
)
},
foldSideBar
({
commit
})
{
commit
(
"
foldSideBar
"
)
;
commit
(
"
foldSideBar
"
)
},
openSideBar
({
commit
})
{
commit
(
"
openSideBar
"
)
;
commit
(
"
openSideBar
"
)
},
toggleDevice
({
commit
},
device
)
{
commit
(
"
toggleDevice
"
,
device
)
;
commit
(
"
toggleDevice
"
,
device
)
},
}
;
export
default
{
state
,
getters
,
mutations
,
actions
}
;
}
export
default
{
state
,
getters
,
mutations
,
actions
}
src/utils/storage.js
View file @
44fcec04
const
ls
=
window
.
localStorage
const
ss
=
window
.
sessionStorage
import
{
storagePrefixName
}
from
"
@/config/settings
"
export
const
Local
=
{
get
(
key
,
def
)
{
let
value
=
null
try
{
value
=
JSON
.
parse
(
ls
.
getItem
(
key
))
value
=
JSON
.
parse
(
ls
.
getItem
(
storagePrefixName
+
"
-
"
+
key
))
}
catch
(
e
)
{
console
.
log
(
"
"
)
}
...
...
@@ -19,14 +20,14 @@ export const Local = {
ls
.
setItem
(
i
,
JSON
.
stringify
(
setting
[
i
]))
}
}
else
{
ls
.
setItem
(
key
,
JSON
.
stringify
(
val
))
ls
.
setItem
(
storagePrefixName
+
"
-
"
+
key
,
JSON
.
stringify
(
val
))
}
}
catch
(
e
)
{
console
.
log
(
"
'
"
)
}
},
remove
(
key
)
{
ls
.
removeItem
(
key
)
ls
.
removeItem
(
storagePrefixName
+
"
-
"
+
key
)
},
clear
()
{
ls
.
clear
()
...
...
@@ -36,7 +37,7 @@ export const Local = {
export
const
Session
=
{
get
(
key
)
{
try
{
return
JSON
.
parse
(
ss
.
getItem
(
key
))
return
JSON
.
parse
(
ss
.
getItem
(
storagePrefixName
+
"
-
"
+
key
))
}
catch
(
e
)
{
return
null
}
...
...
@@ -48,11 +49,11 @@ export const Session = {
ss
.
setItem
(
i
,
JSON
.
stringify
(
setting
[
i
]))
}
}
else
{
ss
.
setItem
(
key
,
JSON
.
stringify
(
val
))
ss
.
setItem
(
storagePrefixName
+
"
-
"
+
key
,
JSON
.
stringify
(
val
))
}
},
remove
(
key
)
{
ss
.
removeItem
(
key
)
ss
.
removeItem
(
storagePrefixName
+
"
-
"
+
key
)
},
clear
()
{
ss
.
clear
()
...
...
src/views/systems/colla-group/ExportFieldConfig.vue
deleted
100644 → 0
View file @
65b211f6
<
template
>
<el-row
class=
"page-container dict"
>
<el-container
class=
"page-main"
:gutter=
"20"
>
<el-aside
width=
"250px"
class=
"left-content"
>
<el-col
:span=
"24"
class=
"left-search"
>
<el-input
v-model.trim=
"searchVal"
clearable
:placeholder=
"placeholder"
>
</el-input>
</el-col>
<el-col
class=
"dict-list"
ref=
"dict"
>
<el-col
v-for=
"(item, index) in tableList"
:key=
"item.id"
class=
"dict-item"
>
<span
@
click=
"handClick(index, item)"
:class=
"
{ active: index == isActive }"
style="cursor: pointer"
>
<strong>
{{
item
.
label
}}
</strong>
-
{{
item
.
value
}}
</span>
</el-col>
</el-col>
</el-aside>
<el-main>
<div
style=
"text-align: right"
>
<el-input
v-model.trim=
"keyWord"
clearable
placeholder=
"关键字"
style=
"width: 220px; margin-right: 5px"
>
</el-input>
<el-button
type=
"primary"
@
click=
"handleSave"
:loading=
"loading"
>
保存配置
</el-button
>
</div>
<el-table-self
style=
"margin-top: 10px"
ref=
"table"
:table-data=
"fields"
:columns=
"columns"
:list-loading=
"listLoading"
/>
</el-main>
</el-container>
</el-row>
</
template
>
<
script
>
import
{
setExportFields
,
getTableFields
,
getExportConfigFields
}
from
"
@/api/coop-group
"
export
default
{
name
:
"
ExportFieldConfig
"
,
props
:
{
groupId
:
String
,
},
data
()
{
return
{
isActive
:
-
1
,
placeholder
:
"
搜索数据库
"
,
name
:
""
,
searchVal
:
""
,
keyWord
:
""
,
typeId
:
""
,
fieldList
:
[],
configuredFieldList
:
[],
tableCode
:
""
,
loading
:
false
,
listLoading
:
false
,
columns
:
[
{
label
:
"
字段名称
"
,
minWidth
:
120
,
value
:
"
fieldName
"
,
},
{
label
:
"
字段code
"
,
minWidth
:
200
,
value
:
"
fieldCode
"
,
},
{
operType
:
"
checkbox
"
,
label
:
"
是否导出
"
,
minWidth
:
100
,
value
:
"
isExport
"
,
tabType
:
"
selection
"
,
},
{
operType
:
"
checkbox
"
,
label
:
"
是否脱敏
"
,
minWidth
:
100
,
value
:
"
isDesensitized
"
,
tabType
:
"
selection
"
,
},
{
operType
:
"
input
"
,
type
:
"
number
"
,
label
:
"
排序号
"
,
width
:
120
,
inputWidth
:
108
,
value
:
"
sort
"
,
showInput
:
true
,
},
],
}
},
watch
:
{
groupId
(
groupId
)
{
if
(
groupId
)
{
this
.
getTableFields
()
this
.
getFields
()
}
},
},
computed
:
{
// 数据库表过滤
tableList
()
{
const
dictTable
=
this
.
dictMap
[
"
table
"
]
||
[]
const
list
=
dictTable
.
filter
(
(
_
)
=>
!
this
.
searchVal
||
_
.
label
.
includes
(
this
.
searchVal
)
||
_
.
value
.
includes
(
this
.
searchVal
)
)
this
.
isActive
=
this
.
getListIdx
(
list
,
this
.
typeId
)
return
list
},
// 全部字段和已配置字段
fieldValue
()
{
return
this
.
fieldList
.
map
((
field
)
=>
{
let
configuredField
=
this
.
configuredFieldList
.
find
(
(
_
)
=>
_
.
fieldCode
===
field
.
fieldCode
)
return
{
...
field
,
sort
:
(
configuredField
&&
configuredField
.
sort
)
||
undefined
,
isExport
:
Boolean
(
configuredField
),
isDesensitized
:
Boolean
(
configuredField
&&
configuredField
.
isDesensitized
),
}
})
},
fields
()
{
return
this
.
fieldValue
.
filter
(
(
_
)
=>
!
this
.
keyWord
||
_
.
fieldName
.
includes
(
this
.
keyWord
)
||
_
.
fieldCode
.
includes
(
this
.
keyWord
)
)
},
},
methods
:
{
// 点击左侧列表
handClick
(
index
,
{
type
,
label
,
id
,
value
})
{
if
(
!
this
.
groupId
)
{
this
.
$message
.
warning
(
"
请先选择协作组
"
)
return
}
this
.
name
=
label
this
.
tableCode
=
value
this
.
isActive
=
index
this
.
typeId
=
id
this
.
fieldList
=
[]
this
.
getTableFields
()
this
.
getFields
()
},
// 全部字段
getTableFields
()
{
getTableFields
({
tableCode
:
this
.
tableCode
,
groupId
:
this
.
groupId
}).
then
(
(
res
)
=>
{
this
.
fieldList
=
res
.
data
}
)
},
// 已配置字段
getFields
()
{
getExportConfigFields
({
tableCode
:
this
.
tableCode
,
groupId
:
this
.
groupId
})
.
then
((
res
)
=>
{
this
.
configuredFieldList
=
res
.
data
})
.
catch
((
e
)
=>
{
this
.
configuredFieldList
=
[]
})
},
handleSave
()
{
if
(
!
this
.
groupId
)
{
this
.
$message
.
warning
(
"
请先选择协作组
"
)
return
}
if
(
!
this
.
fieldValue
.
length
)
{
this
.
$message
.
warning
(
"
没有可保存的数据
"
)
return
}
const
list
=
this
.
fieldValue
.
filter
((
_
)
=>
_
.
isExport
)
.
map
((
_
)
=>
{
delete
_
.
isExport
return
{
...
_
,
isDesensitized
:
_
.
isDesensitized
?
1
:
0
,
}
})
const
table
=
{
tableCode
:
this
.
tableCode
,
tableName
:
this
.
name
,
groupId
:
this
.
groupId
,
}
this
.
loading
=
true
setExportFields
(
table
,
list
)
.
then
((
res
)
=>
{
this
.
$message
.
success
(
"
配置成功
"
)
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
getListIdx
(
list
=
[],
id
)
{
let
listIdx
=
-
1
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
list
[
i
].
id
===
id
)
{
listIdx
=
i
break
}
}
return
listIdx
},
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-main
{
padding
:
0px
0
0
10px
;
}
</
style
>
src/views/systems/colla-group/ParameterConfig.vue
View file @
44fcec04
...
...
@@ -50,10 +50,13 @@ export default {
// 查询列表
searchList
:
[
{
label
:
"
参数代码
"
,
type
:
"
input
"
,
prop
:
"
code
"
,
placeholder
:
"
请输入参数代码
"
,
label
:
"
类型
"
,
type
:
"
select
"
,
prop
:
"
type
"
,
placeholder
:
"
请输入类型
"
,
optsFormatter
:
()
=>
{
return
this
.
dictMap
&&
this
.
dictMap
[
"
sys_param_type
"
]
},
},
{
label
:
"
参数值
"
,
...
...
@@ -61,12 +64,7 @@ export default {
prop
:
"
value
"
,
placeholder
:
"
请输入参数值
"
,
},
{
label
:
"
类型
"
,
type
:
"
input
"
,
prop
:
"
type
"
,
placeholder
:
"
请输入类型
"
,
},
{
type
:
"
button
"
,
value
:
"
查询
"
,
...
...
@@ -81,10 +79,29 @@ export default {
},
],
columns
:
[
{
label
:
"
类型
"
,
minWidth
:
100
,
value
:
"
type
"
,
formatter
:
(
row
)
=>
{
return
this
.
$handle
.
formatDicList
(
this
.
dictMap
[
"
sys_param_type
"
],
row
.
type
)
},
},
{
label
:
"
参数代码
"
,
minWidth
:
120
,
value
:
"
code
"
,
formatter
:
(
row
)
=>
{
const
item
=
this
.
dictMap
[
"
sys_param_type
"
].
find
(
(
_
)
=>
_
.
value
===
row
.
type
)
||
{}
const
list
=
item
.
children
||
[]
return
this
.
$handle
.
formatDicList
(
list
,
row
.
code
)
},
},
{
...
...
@@ -92,21 +109,7 @@ export default {
minWidth
:
120
,
value
:
"
value
"
,
},
{
label
:
"
类型
"
,
minWidth
:
100
,
value
:
"
type
"
,
},
{
label
:
"
目标值名称
"
,
minWidth
:
100
,
value
:
"
targetName
"
,
},
{
label
:
"
目标值
"
,
minWidth
:
100
,
value
:
"
targetValue
"
,
},
{
label
:
"
创建时间
"
,
minWidth
:
180
,
...
...
@@ -151,12 +154,24 @@ export default {
cacheForm
:
{},
formData
:
[
{
type
:
"
input
"
,
type
:
"
select
"
,
label
:
"
类型
"
,
placeholder
:
"
请选择类型
"
,
prop
:
"
type
"
,
rules
:
[{
required
:
true
,
message
:
"
请选择类型
"
}],
func
:
this
.
typeChange
,
optsFormatter
:
()
=>
{
return
this
.
dictMap
&&
this
.
dictMap
[
"
sys_param_type
"
]
},
},
{
type
:
"
select
"
,
label
:
"
参数代码
"
,
placeholder
:
"
请输入参数代码
"
,
prop
:
"
code
"
,
disabled
:
false
,
rules
:
[{
required
:
true
,
message
:
"
参数代码
"
}],
opts
:
[],
},
{
type
:
"
input
"
,
...
...
@@ -168,22 +183,9 @@ export default {
{
type
:
"
input
"
,
label
:
"
类型
"
,
placeholder
:
"
请选择类型
"
,
prop
:
"
type
"
,
rules
:
[{
required
:
true
,
message
:
"
请选择类型
"
}],
},
{
type
:
"
input
"
,
label
:
"
目标值名称
"
,
placeholder
:
"
请选择目标值名称
"
,
prop
:
"
targetName
"
,
},
{
type
:
"
input
"
,
label
:
"
目标值
"
,
placeholder
:
"
请选择目标值
"
,
prop
:
"
targetValue
"
,
label
:
"
默认参数值
"
,
placeholder
:
"
请选择默认参数值
"
,
prop
:
"
defaultValue
"
,
},
],
formEdit
:
{},
...
...
@@ -200,6 +202,11 @@ export default {
},
methods
:
{
typeChange
(
val
)
{
this
.
$refs
.
dialog
.
initFields
({
code
:
""
})
const
opt
=
this
.
dictMap
[
"
sys_param_type
"
].
find
((
_
)
=>
_
.
value
===
val
)
this
.
formData
[
1
].
opts
=
(
opt
&&
opt
.
children
)
||
[]
},
handleAdd
(
row
)
{
this
.
formEdit
=
Object
.
assign
({},
row
)
if
(
!
this
.
groupId
)
{
...
...
@@ -212,13 +219,17 @@ export default {
const
data
=
Object
.
assign
(
form
,
{
groupId
:
this
.
groupId
,
})
setParamConfig
(
data
).
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
this
.
$message
.
success
(
"
添加成功
"
)
this
.
handleSearch
()
this
.
$refs
.
dialog
.
close
()
}
})
setParamConfig
(
data
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
this
.
$message
.
success
(
"
添加成功
"
)
this
.
handleSearch
()
this
.
$refs
.
dialog
.
close
()
}
})
.
finally
(()
=>
{
this
.
$refs
.
dialog
.
loading
=
false
})
},
handleDel
(
row
)
{
this
.
$confirm
(
`是否删除【
${
row
.
code
||
""
}
】?`
,
"
提示
"
,
{
...
...
src/views/systems/colla-group/QualityControlConfig.vue
deleted
100644 → 0
View file @
65b211f6
<
template
>
<el-row
class=
"page-container dict"
>
<el-container
class=
"page-main"
:gutter=
"20"
>
<el-aside
width=
"250px"
class=
"left-content"
>
<el-col
:span=
"24"
class=
"left-search"
>
<el-input
v-model.trim=
"searchVal"
clearable
:placeholder=
"placeholder"
>
</el-input>
</el-col>
<el-col
class=
"dict-list"
ref=
"dict"
>
<el-col
v-for=
"(item, index) in tableList"
:key=
"item.id"
class=
"dict-item"
>
<span
@
click=
"handClick(index, item)"
:class=
"
{ active: index == isActive }"
style="cursor: pointer"
>
<strong>
{{
item
.
label
}}
</strong>
-
{{
item
.
value
}}
</span>
</el-col>
</el-col>
</el-aside>
<el-main>
<el-button
type=
"primary"
@
click=
"handleClone"
>
引用配置
</el-button>
<div
style=
"text-align: right"
>
<el-input
v-model.trim=
"keyWord"
clearable
placeholder=
"关键字"
style=
"width: 220px; margin-right: 5px"
>
</el-input>
<el-button
type=
"primary"
v-if=
"tableCode === 'data_lab_detail'"
@
click=
"handleAdd"
>
新增(检验细项)
</el-button
>
</div>
<el-table-self
style=
"margin-top: 10px"
ref=
"table"
:table-data=
"
tableCode === 'data_lab_detail' ? configuredFields : fields
"
:columns=
"columns"
:list-loading=
"listLoading"
/>
</el-main>
<dialog-form
width=
"650px"
:close-modal=
"false"
label-width=
"140px"
ref=
"dialog"
title=
"引用其他机构协作组配置"
:form-data=
"formData"
@
handleConfirm=
"handleConfirm"
></dialog-form>
<el-drawer
title=
"配置字段"
:visible.sync=
"widgetVisible"
:size=
"500"
:wrapperClosable=
"false"
>
<div
class=
"drawer__container"
>
<div
class=
"drawer__content"
>
<div
class=
"widget-config"
>
<el-form
label-suffix=
":"
labelPosition=
"left"
labelWidth=
"110px"
ref=
"form"
:rules=
"rules"
size=
"small"
:model=
"configForm"
>
<el-form-item
label=
"数据模块"
prop=
"firstType"
>
<el-select
v-model=
"configForm.firstType"
placeholder=
"选择数据模块"
style=
"width: 100%"
@
change=
"firstTypeChange"
clearable
filterable
>
<el-option
:label=
"item.label"
:value=
"item.value"
v-for=
"item in dictMap['data_module']"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"数据子模块"
>
<el-select
v-model=
"configForm.subType"
placeholder=
"选择数据子模块"
style=
"width: 100%"
clearable
filterable
>
<el-option
:label=
"item.label"
:value=
"item.value"
v-for=
"item in subTypeOpts"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
父级字段
</div>
<el-form-item
label=
"父级数据表"
>
<el-select
v-model=
"configForm.parentTableCode"
placeholder=
"选择父级数据表"
style=
"width: 100%"
@
change=
"tableChange"
clearable
filterable
>
<el-option
:label=
"item.label"
:value=
"item.value"
v-for=
"item in dictMap['table']"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"父级字段"
>
<el-select
v-model=
"configForm.parentFieldCode"
placeholder=
"选择父级字段"
style=
"width: 100%"
clearable
filterable
>
<el-option
:label=
"item.label"
:value=
"item.value"
v-for=
"item in parentFieldOpts"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
当前配置字段
</div>
<el-form-item
label=
"字段名称"
>
<el-input
v-model=
"configForm.fieldName"
:disabled=
"isDisabled"
></el-input>
</el-form-item>
<el-form-item
label=
"字段编码"
>
<el-input
v-model=
"configForm.fieldCode"
:disabled=
"isDisabled"
></el-input>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
完整性
</div>
<el-form-item
label=
"是否必填"
labelWidth=
"130px"
>
<el-switch
v-model=
"configForm.isRequired"
:active-value=
"1"
:inactive-value=
"0"
></el-switch>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
有效性
</div>
<el-form-item
label=
"字典值域范围"
>
<el-select
v-model=
"configForm.dictType"
placeholder=
"选择字典"
style=
"width: 100%"
@
change=
"dicTypeChange"
clearable
filterable
>
<el-option
:label=
"item.name"
:value=
"item.type"
v-for=
"item in dictList"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<div
class=
"el-form-item--small el-form--label-top"
style=
"padding-bottom: 14px"
>
<strong
class=
"el-form-item__label"
style=
"padding: 0"
>
字典数据示例:
</strong
>
<div
class=
"el-form-item__content"
>
<draggable
tag=
"ul"
:list=
"dicData"
:group=
"
{ name: 'dic' }"
ghost-class="ghost"
handle=".drag-item"
>
<li
v-for=
"(item, index) in dicData"
:key=
"index"
>
<i
class=
"drag-item el-icon-s-operation"
style=
"font-size: 16px; margin: 0 5px; cursor: move"
></i>
<el-input
style=
"margin-right: 5px"
size=
"mini"
readonly
clearable
v-model=
"item.label"
placeholder=
"label"
></el-input>
<el-input
size=
"mini"
clearable
readonly
v-model=
"item.value"
placeholder=
"value"
></el-input>
</li>
</draggable>
</div>
</div>
<el-form-item
label=
"正则表达式"
>
<el-input
v-model=
"configForm.regexStr"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
"Hutool校验"
>
<el-select
v-model=
"configForm.htType"
placeholder=
"选择Hutool校验"
style=
"width: 100%"
clearable
filterable
>
<el-option
:label=
"item.label"
:value=
"item.value"
v-for=
"item in dictMap['hutool_validator']"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"文本长度"
>
<div
style=
"display: flex"
>
<el-input-number
v-model.trim=
"configForm.minLen"
:min=
"0"
clearable
controls-position=
"right"
size=
"mini"
placeholder=
"最小长度"
></el-input-number>
<span
style=
"margin: 0 10px"
>
-
</span>
<el-input-number
v-model.trim=
"configForm.maxLen"
clearable
:min=
"configForm.minLen + 1"
controls-position=
"right"
size=
"mini"
placeholder=
"最大长度"
></el-input-number>
</div>
</el-form-item>
<el-form-item
label=
"数值范围"
>
<div
style=
"display: flex"
>
<el-input-number
v-model.trim=
"configForm.minValue"
clearable
controls-position=
"right"
size=
"mini"
placeholder=
"最小值"
></el-input-number>
<span
style=
"margin: 0 10px"
>
-
</span>
<el-input-number
v-model.trim=
"configForm.maxValue"
clearable
:min=
"configForm.minValue + 1"
controls-position=
"right"
size=
"mini"
placeholder=
"最大值"
></el-input-number>
</div>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
一致性
</div>
<el-form-item
label=
"逻辑质控"
>
<el-input
v-model.trim=
"configForm.logicStr"
type=
"textarea"
clearable
placeholder=
"逻辑质控"
></el-input>
</el-form-item>
<div
style=
"margin-bottom: 10px; font-size: 18px"
>
准确性
</div>
<el-form-item
label=
"逻辑质控"
>
<el-input
v-model.trim=
"configForm.note"
type=
"textarea"
clearable
placeholder=
"逻辑质控"
></el-input>
</el-form-item>
</el-form>
</div>
</div>
<div
class=
"footer"
>
<el-button
@
click=
"widgetVisible = false"
size=
"large"
>
取 消
</el-button
>
<el-button
size=
"large"
type=
"primary"
:loading=
"loading"
@
click=
"handleConfigConfirm"
>
确 定
</el-button
>
</div>
</div>
</el-drawer>
</el-container>
</el-row>
</
template
>
<
script
>
import
{
setQcConfigFields
,
getTableFields
,
getQcConfigFields
,
setQcConfigField
,
getQcGroupOption
,
setCloneConf
,
delConf
,
}
from
"
@/api/coop-group
"
import
Draggable
from
"
vuedraggable
"
import
{
mapGetters
}
from
"
vuex
"
export
default
{
name
:
"
QualityControlConfig
"
,
components
:
{
Draggable
},
props
:
{
groupId
:
String
,
groupName
:
String
,
},
data
()
{
return
{
isDisabled
:
true
,
subTypeOpts
:
[],
parentFieldOpts
:
[],
widgetVisible
:
false
,
configForm
:
{
firstType
:
""
,
subType
:
""
,
},
rules
:
{
firstType
:
[
{
required
:
true
,
message
:
"
请选择数据模块
"
,
trigger
:
"
change
"
},
],
},
isActive
:
-
1
,
placeholder
:
"
搜索数据库
"
,
name
:
""
,
searchVal
:
""
,
keyWord
:
""
,
typeId
:
""
,
fieldList
:
[],
configuredFieldList
:
[],
tableCode
:
""
,
loading
:
false
,
listLoading
:
false
,
configIndex
:
0
,
formData
:
[
{
type
:
"
select
"
,
label
:
"
引用机构/协作组
"
,
placeholder
:
"
请选择机构/协作组
"
,
prop
:
"
id
"
,
opts
:
[],
rules
:
[{
required
:
true
,
message
:
"
请选择机构/协作组
"
}],
},
],
columns
:
[
{
label
:
"
数据模块
"
,
minWidth
:
120
,
value
:
"
firstType
"
,
hidden
:
true
,
},
{
label
:
"
数据子模块
"
,
minWidth
:
120
,
value
:
"
subType
"
,
hidden
:
true
,
},
{
label
:
"
字段名称
"
,
minWidth
:
120
,
value
:
"
fieldName
"
,
},
{
label
:
"
字段code
"
,
minWidth
:
120
,
value
:
"
fieldCode
"
,
},
{
label
:
"
规则
"
,
minWidth
:
200
,
value
:
"
logicStr
"
,
},
{
label
:
"
操作
"
,
width
:
160
,
fixed
:
"
right
"
,
operType
:
"
button
"
,
operations
:
[
{
func
:
this
.
handleConfig
,
formatter
(
row
)
{
return
{
label
:
"
配置
"
,
type
:
"
text
"
,
}
},
},
{
func
:
this
.
handleDel
,
style
:
{
color
:
"
#F56C6C
"
,
},
formatter
(
row
)
{
return
{
label
:
"
删除配置
"
,
type
:
"
text
"
,
}
},
},
],
},
],
dicData
:
[],
}
},
watch
:
{
groupId
(
groupId
)
{
if
(
groupId
)
{
this
.
getTableFields
()
this
.
getFields
()
}
},
tableCode
(
tableCode
)
{
this
.
columns
[
0
].
hidden
=
this
.
columns
[
1
].
hidden
=
tableCode
===
"
data_lab_detail
"
?
false
:
true
},
},
computed
:
{
...
mapGetters
({
dictList
:
[
"
dict/dictSet
"
],
dictMap
:
[
"
dict/dictMap
"
],
}),
// 数据库表过滤
tableList
()
{
const
dictTable
=
(
this
.
dictMap
[
"
table
"
]
&&
this
.
dictMap
[
"
table
"
].
filter
((
_
)
=>
_
.
value
!==
"
data_lab_type
"
))
||
[]
const
list
=
dictTable
.
filter
(
(
_
)
=>
!
this
.
searchVal
||
_
.
label
.
includes
(
this
.
searchVal
)
||
_
.
value
.
includes
(
this
.
searchVal
)
)
this
.
isActive
=
this
.
getListIdx
(
list
,
this
.
typeId
)
return
list
},
fields
()
{
return
this
.
fieldList
.
filter
(
(
_
)
=>
!
this
.
keyWord
||
_
.
fieldName
.
includes
(
this
.
keyWord
)
||
_
.
fieldCode
.
includes
(
this
.
keyWord
)
)
},
configuredFields
()
{
return
this
.
configuredFieldList
.
filter
(
(
_
)
=>
!
this
.
keyWord
||
_
.
fieldName
.
includes
(
this
.
keyWord
)
||
_
.
fieldCode
.
includes
(
this
.
keyWord
)
)
},
},
methods
:
{
handleDel
(
row
)
{
this
.
$confirm
(
`是否删除【
${
row
.
fieldName
||
""
}
】配置?`
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
})
.
then
(()
=>
{
delConf
(
row
.
id
).
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
this
.
$message
({
type
:
"
success
"
,
message
:
"
删除成功!
"
,
})
this
.
getTableFields
()
}
})
})
.
catch
(()
=>
{})
},
handleClone
()
{
if
(
!
this
.
groupId
)
{
this
.
$message
.
warning
(
"
请先选择协作组
"
)
return
}
this
.
$refs
.
dialog
.
open
()
},
handleConfirm
({
id
})
{
const
{
diseaseCode
,
groupId
,
orgId
}
=
this
.
formData
[
0
].
opts
.
find
(
(
item
)
=>
item
.
groupId
===
id
)
const
params
=
{
sourceDiseaseCode
:
diseaseCode
,
sourceGroupId
:
groupId
,
sourceOrgId
:
orgId
,
targetGroupId
:
this
.
groupId
,
}
setCloneConf
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
配置成功
"
)
this
.
getFields
()
this
.
$refs
.
dialog
.
close
()
})
},
handleConfigConfirm
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
const
data
=
Object
.
assign
(
{
tableCode
:
this
.
tableCode
,
tableName
:
this
.
name
,
groupId
:
this
.
groupId
,
groupName
:
this
.
groupName
,
},
this
.
configForm
)
this
.
loading
=
true
setQcConfigField
(
data
)
.
then
((
res
)
=>
{
this
.
$message
.
success
(
"
配置成功
"
)
this
.
getFields
()
this
.
widgetVisible
=
false
})
.
finally
(()
=>
{
this
.
loading
=
false
})
}
else
{
}
})
},
tableChange
(
tableCode
)
{
if
(
!
tableCode
)
{
this
.
parentFieldOpts
=
[]
return
}
getTableFields
({
tableCode
,
groupId
:
this
.
groupId
}).
then
((
res
)
=>
{
this
.
parentFieldOpts
=
res
.
data
.
map
((
_
)
=>
{
return
{
...
_
,
label
:
_
.
fieldName
,
value
:
_
.
fieldCode
,
}
})
})
},
firstTypeChange
(
val
,
notEmpty
=
false
)
{
let
list
=
[]
const
current
=
this
.
dictMap
[
"
data_module
"
].
find
((
_
)
=>
_
.
value
===
val
)
if
(
current
&&
current
.
children
)
{
list
=
current
.
children
}
if
(
!
notEmpty
)
{
this
.
$set
(
this
.
configForm
,
"
subType
"
,
""
)
}
this
.
subTypeOpts
=
list
},
dicTypeChange
(
type
)
{
this
.
dicData
=
this
.
deepClone
(
this
.
dictMap
[
type
])
},
handleAdd
()
{
this
.
handleConfig
({},
-
1
)
},
handleConfig
(
row
,
index
)
{
this
.
configForm
=
Object
.
assign
({},
row
,
{
maxLen
:
this
.
formatter
(
row
.
maxLen
),
minLen
:
this
.
formatter
(
row
.
minLen
),
maxValue
:
this
.
formatter
(
row
.
maxValue
),
minValue
:
this
.
formatter
(
row
.
minValue
),
})
this
.
dicTypeChange
(
row
.
dictType
)
this
.
firstTypeChange
(
row
.
firstType
,
true
)
this
.
isDisabled
=
index
>
-
1
this
.
configIndex
=
index
this
.
widgetVisible
=
true
},
formatter
(
val
)
{
return
val
===
""
||
val
===
null
?
undefined
:
val
},
getQcGroupOption
()
{
getQcGroupOption
().
then
((
res
)
=>
{
this
.
formData
[
0
].
opts
=
res
.
data
.
map
((
item
)
=>
{
return
{
...
item
,
value
:
item
.
groupId
,
label
:
`机构:
${
item
.
orgName
}
| 疾病:
${
item
.
diseaseName
}
| 协作组:
${
item
.
groupName
}
`
,
}
})
})
},
// 点击左侧列表
handClick
(
index
,
{
type
,
label
,
id
,
value
})
{
if
(
!
this
.
groupId
)
{
this
.
$message
.
warning
(
"
请先选择协作组
"
)
return
}
this
.
name
=
label
this
.
tableCode
=
value
this
.
isActive
=
index
this
.
typeId
=
id
this
.
fieldList
=
[]
this
.
getTableFields
()
},
// 全部字段
getTableFields
()
{
getTableFields
({
tableCode
:
this
.
tableCode
,
groupId
:
this
.
groupId
}).
then
(
(
res
)
=>
{
this
.
fieldList
=
res
.
data
this
.
getFields
()
}
)
},
// 已配置字段
getFields
()
{
if
(
!
this
.
tableCode
)
return
getQcConfigFields
({
tableCode
:
this
.
tableCode
,
groupId
:
this
.
groupId
})
.
then
((
res
)
=>
{
this
.
configuredFieldList
=
res
.
data
this
.
fieldList
=
this
.
fieldList
.
map
((
field
)
=>
{
let
configuredField
=
this
.
configuredFieldList
.
find
(
(
_
)
=>
_
.
fieldCode
===
field
.
fieldCode
)
return
{
...
field
,
...
configuredField
,
}
})
})
.
catch
((
e
)
=>
{
this
.
configuredFieldList
=
[]
})
},
// 批量保存
handleSave
()
{
if
(
!
this
.
groupId
)
{
this
.
$message
.
warning
(
"
请先选择协作组
"
)
return
}
const
table
=
{
tableCode
:
this
.
tableCode
,
tableName
:
this
.
name
,
groupId
:
this
.
groupId
,
groupName
:
this
.
groupName
,
}
const
fieldList
=
this
.
tableCode
===
"
data_lab_detail
"
?
this
.
configuredFieldList
:
this
.
fieldList
const
list
=
fieldList
.
filter
((
_
)
=>
_
.
firstType
)
.
map
((
_
)
=>
{
return
{
...
_
,
...
table
,
}
})
if
(
!
list
.
length
)
{
this
.
$message
.
warning
(
"
没有可保存的数据
"
)
return
}
this
.
loading
=
true
setQcConfigFields
(
table
,
list
)
.
then
((
res
)
=>
{
this
.
$message
.
success
(
"
配置成功
"
)
this
.
getFields
()
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
getListIdx
(
list
=
[],
id
)
{
let
listIdx
=
-
1
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
list
[
i
].
id
===
id
)
{
listIdx
=
i
break
}
}
return
listIdx
},
},
created
()
{
this
.
getQcGroupOption
()
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-main
{
padding
:
0px
0
0
10px
;
}
.drawer__container
{
padding
:
0
20px
;
.drawer__content
{
height
:
calc
(
100vh
-
#{
"160px"
}
);
overflow-y
:
auto
;
::v-deep
.el-input-number
{
width
:
100%
;
}
&
:
:-
webkit-scrollbar
{
width
:
0px
;
height
:
0px
;
}
&
:
:-
webkit-scrollbar-thumb
{
background-color
:
#fff
;
}
}
.footer
{
margin-top
:
20px
;
display
:
flex
;
button
{
flex
:
1
;
}
}
}
</
style
>
src/views/systems/colla-group/index.vue
View file @
44fcec04
...
...
@@ -38,15 +38,6 @@
<el-tab-pane
label=
"表单管理"
name=
"second"
>
<GroupForm
:group-id=
"groupId"
></GroupForm>
</el-tab-pane>
<el-tab-pane
label=
"导出字段配置"
name=
"third"
>
<ExportFieldConfig
:group-id=
"groupId"
></ExportFieldConfig>
</el-tab-pane>
<el-tab-pane
label=
"质控配置"
name=
"fourth"
>
<QualityControlConfig
:group-id=
"groupId"
:group-name=
"groupName"
></QualityControlConfig>
</el-tab-pane>
<el-tab-pane
label=
"参数配置"
name=
"fifth"
>
<ParameterConfig
:group-id=
"groupId"
></ParameterConfig>
</el-tab-pane>
...
...
@@ -65,18 +56,14 @@
</
template
>
<
script
>
import
ExportFieldConfig
from
"
./ExportFieldConfig.vue
"
import
GroupUser
from
"
./GroupUser
"
import
GroupForm
from
"
./GroupForm
"
import
QualityControlConfig
from
"
./QualityControlConfig.vue
"
import
ParameterConfig
from
"
./ParameterConfig.vue
"
import
{
translateListToTree
}
from
"
@/utils/handleRoutes
"
import
{
getCoopGroupList
,
addCoopGroup
}
from
"
@/api/coop-group.js
"
export
default
{
name
:
"
CollaGroup
"
,
components
:
{
ExportFieldConfig
,
QualityControlConfig
,
GroupUser
,
GroupForm
,
ParameterConfig
,
...
...
src/views/systems/field-config/FieldList.vue
View file @
44fcec04
...
...
@@ -109,7 +109,7 @@
<
script
>
import
WidgetConfig
from
"
packages/WidgetConfig.vue
"
import
{
getFieldList
,
addField
,
delField
}
from
"
@/api/field.js
"
import
{
getFieldList
ByCode
,
addField
,
delField
}
from
"
@/api/field.js
"
// 新增所需字段
const
fields
=
[
"
id
"
,
...
...
@@ -264,9 +264,9 @@ export default {
this
.
widgetVisible
=
true
},
handleConfirm
(
form
)
{
if
(
!
/^
[
a-z
]
+
([
a-z0-9
]
*
([
_
]?[
a-z
]
+
)
*
)
*$/
.
test
(
form
.
prop
))
{
if
(
!
/^
[
a-z
A-Z
]
+
([
a-zA-Z0-9
]
*
([
_-
]?[
a-zA-Z0-9
]
+
)
*
)
*$/
.
test
(
form
.
prop
))
{
this
.
$message
.
error
(
"
只能包含字母、数字、下划线。必须以字母开始,下划线不可连续重复,下划线后不可紧跟着数字,不能以数字、下划线结束
"
"
只能包含
大小
字母、数字、下划线。必须以字母开始,下划线不可连续重复,下划线后不可紧跟着数字,不能以数字、下划线结束
"
)
return
}
...
...
@@ -325,6 +325,7 @@ export default {
this
.
handleSearch
(
form
)
},
handleSearch
(
form
)
{
if
(
!
this
.
tableCode
)
return
this
.
cacheForm
=
Object
.
assign
(
this
.
cacheForm
,
form
)
this
.
listLoading
=
true
const
params
=
Object
.
assign
(
...
...
@@ -338,7 +339,7 @@ export default {
delete
params
[
key
]
}
}
getFieldList
(
params
).
then
((
res
)
=>
{
getFieldList
ByCode
(
params
).
then
((
res
)
=>
{
this
.
listLoading
=
false
this
.
tableData
=
res
.
data
||
[]
})
...
...
src/views/systems/field-config/index.vue
View file @
44fcec04
...
...
@@ -43,7 +43,7 @@
{{
item
.
name
}}
|
{{
item
.
code
}}
</span>
<span
class=
"item-del"
>
<
i
class=
"el-icon-edit-outline"
@
click=
"handleAdd(item)"
></i
>
<
!--
<i
class=
"el-icon-edit-outline"
@
click=
"handleAdd(item)"
></i>
--
>
</span>
</el-col>
</el-col>
...
...
src/views/systems/form-config/FormAdd.vue
View file @
44fcec04
...
...
@@ -18,10 +18,10 @@
@
change=
"tableCodeChange"
>
<el-option
v-for=
"opt in
dictMap['table']
"
:key=
"opt.
valu
e"
:label=
"opt.
label
"
:value=
"opt.
valu
e"
v-for=
"opt in
tableList
"
:key=
"opt.
cod
e"
:label=
"opt.
name
"
:value=
"opt.
cod
e"
>
</el-option>
</el-select>
...
...
@@ -50,15 +50,19 @@ import {
getFormDetail
,
getHistoryInfo
,
}
from
"
@/api/field
"
import
{
getTableList
}
from
"
@/api/database
"
export
default
{
name
:
"
FormAdd
"
,
props
:
{
formEdit
:
{
type
:
Object
,
},
dbId
:
{},
},
data
()
{
return
{
tableList
:
[],
disabled
:
false
,
name
:
""
,
options
:
{},
...
...
@@ -70,11 +74,17 @@ export default {
},
methods
:
{
getTableList
()
{
if
(
!
this
.
dbId
)
return
getTableList
(
this
.
dbId
).
then
((
res
)
=>
{
this
.
tableList
=
res
.
data
})
},
// 获取数据表字段
tableCodeChange
(
tableCode
)
{
if
(
!
tableCode
)
return
this
.
$refs
.
form
.
customFieldsLoading
=
this
.
disabled
=
true
const
tableList
=
this
.
dictMap
[
"
table
"
]
const
tableList
=
this
.
tableList
this
.
tableName
=
tableList
.
find
((
_
)
=>
_
.
value
===
tableCode
)
&&
tableList
.
find
((
_
)
=>
_
.
value
===
tableCode
).
label
...
...
@@ -84,6 +94,7 @@ export default {
const
customOldFields
=
[]
const
d
=
res
.
data
d
.
forEach
((
item
)
=>
{
if
(
!
item
.
jsonStr
)
return
const
field
=
JSON
.
parse
(
item
.
jsonStr
)
if
(
field
.
id
)
delete
field
.
id
customOldFields
.
push
({
...
...
@@ -120,6 +131,7 @@ export default {
id
:
this
.
formEdit
.
id
,
formJson
:
""
,
name
:
this
.
name
,
dbId
:
this
.
dbId
,
}
let
fieldList
=
[]
form
[
"
formJson
"
]
=
await
this
.
$refs
.
form
.
getData
(
"
string
"
)
...
...
@@ -202,6 +214,7 @@ export default {
},
created
()
{
this
.
initForm
()
this
.
getTableList
()
},
}
</
script
>
...
...
src/views/systems/form-config/index.vue
View file @
44fcec04
<
template
>
<div
class=
"container"
>
<form-add
v-if=
"isAdd"
@
back=
"back"
:form-edit=
"formEdit"
></form-add>
<form-add
v-if=
"isAdd"
@
back=
"back"
:form-edit=
"formEdit"
:dbId=
"dbId"
></form-add>
<form-history
v-else-if=
"isHistory"
@
back=
"back"
:source-id=
"sourceId"
></form-history>
<div
v-else
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
:label=
"item.name"
:name=
"'index' + index"
v-for=
"(item, index) in dbList"
:key=
"item.id"
>
{{
}}
</el-tab-pane>
</el-tabs>
<direct-search
ref=
"form"
:forms=
"searchList"
...
...
@@ -40,6 +54,7 @@ import paginationMixin from "@/components/TabComponents/mixin"
import
FormAdd
from
"
./FormAdd
"
import
FormHistory
from
"
./FormHistory.vue
"
import
{
getFormPage
,
delForm
,
copyForm
}
from
"
@/api/field.js
"
import
{
getDbList
}
from
"
@/api/database
"
export
default
{
components
:
{
FormAdd
,
...
...
@@ -48,6 +63,9 @@ export default {
name
:
"
FormConfig
"
,
data
()
{
return
{
activeName
:
"
index0
"
,
dbList
:
[],
dbId
:
null
,
listLoading
:
false
,
isAdd
:
false
,
isHistory
:
false
,
...
...
@@ -174,6 +192,11 @@ export default {
mixins
:
[
paginationMixin
],
methods
:
{
handleTabClick
({
index
})
{
this
.
dbId
=
this
.
dbList
[
index
].
id
this
.
handleFormSearch
()
},
handleHistory
({
id
,
version
})
{
this
.
sourceId
=
id
||
""
this
.
isHistory
=
true
...
...
@@ -187,6 +210,7 @@ export default {
const
data
=
{
name
,
id
:
this
.
formId
,
dbId
:
this
.
dbId
,
}
copyForm
(
data
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
复制成功
"
)
...
...
@@ -233,7 +257,12 @@ export default {
handleSearch
(
form
)
{
this
.
cacheForm
=
Object
.
assign
(
this
.
cacheForm
,
form
)
this
.
listLoading
=
true
const
params
=
Object
.
assign
({},
this
.
cacheForm
)
const
params
=
Object
.
assign
(
{
dbId
:
this
.
dbId
,
},
this
.
cacheForm
)
for
(
let
key
in
params
)
{
if
(
params
[
key
]
===
""
)
{
delete
params
[
key
]
...
...
@@ -250,9 +279,19 @@ export default {
}
})
},
getDbList
()
{
getDbList
().
then
((
res
)
=>
{
this
.
dbList
=
res
.
data
if
(
this
.
dbList
[
0
])
{
this
.
dbId
=
this
.
dbList
[
0
].
id
}
this
.
handleFormSearch
()
})
},
},
created
()
{
this
.
handleFormSearch
()
this
.
getDbList
()
},
}
</
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