Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
car-database-web
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
中汽研标准应用数据库
car-database-web
Commits
78e23eaf
Commit
78e23eaf
authored
Sep 11, 2024
by
zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(检测内容/实施细则): 测试用例库并入实施细则,逻辑更新。
parent
2f0a1d41
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
820 additions
and
594 deletions
+820
-594
standard.js
src/api/standard/standard.js
+8
-0
chapterOption.vue
src/components/Page/chapterOption.vue
+291
-237
getters.js
src/store/getters.js
+4
-0
standard.js
src/store/modules/standard.js
+23
-0
index.vue
src/views/setting/standardPoint/index.vue
+0
-1
detailModel.vue
src/views/setting/standardTerms/components/detailModel.vue
+138
-98
index.vue
src/views/setting/standardTerms/index.vue
+356
-258
No files found.
src/api/standard/standard.js
View file @
78e23eaf
import
request
from
'@/utils/request'
import
{
method
}
from
'lodash'
//获取标准库分页
export
function
getStandardList
(
data
)
{
...
...
@@ -16,3 +17,10 @@ export function getReviewStandardList(data){
data
})
}
export
function
getStandardListNew
(){
return
request
({
url
:
'/standard/getStandardListNew'
,
method
:
'post'
})
}
\ No newline at end of file
src/components/Page/chapterOption.vue
View file @
78e23eaf
...
...
@@ -34,21 +34,30 @@ empty
</
template
>
-->
<el-tree
ref=
"tree"
class=
"tree"
class=
"tree"
v-loading=
"loading"
:data=
"tableData"
:props=
"defaultProps"
:default-expanded-keys=
"defaultExp
andI
ds"
:data=
"tableData"
:props=
"defaultProps"
:default-expanded-keys=
"defaultExp
en
ds"
node-key=
"key"
bordered
@
node-click=
"handleNodeClick"
@
node-expand=
"handleNodeExpand"
@
node-collapse=
"handleNodeCollapse"
@
node-expand=
"handleNodeExpand"
@
node-collapse=
"handleNodeCollapse"
>
<span
:class=
"{ clickChange: node.isCurrent }"
style=
"
display: flex;
justify-content: center;
align-items: center;
"
slot-scope=
"{ node, data }"
>
<span
:class=
"{'clickChange':node.isCurrent}"
style=
"display: flex; justify-content:center;align-items: center;"
slot-scope=
"{ node,data }"
>
<span
>
{{data.label}}
</span>
<span>
{{
data.label || data.type || data.chapter || data.standardNo
}}
</span>
</span>
</el-tree>
</ul>
</div>
...
...
@@ -73,9 +82,10 @@ empty
// import request from '@/utils/request'
import
{
mapGetters
}
from
'vuex'
import
request
from
'@/utils/request'
import
{
getReviewStandardList
}
from
'@/api/standard/standard.js'
import
{
forEach
}
from
'lodash'
;
import
standard
from
'../../store/modules/standard'
;
import
{
getReviewStandardList
}
from
'@/api/standard/standard.js'
import
{
forEach
}
from
'lodash'
import
{
getStandardListNew
}
from
'@/api/standard/standard.js'
import
standard
from
'../../store/modules/standard'
export
default
{
name
:
'standardOption'
,
props
:
{
...
...
@@ -84,223 +94,254 @@ export default {
data
()
{
return
{
//listUrl: '/review/standard/list',
queryParams
:
{
pageNum
:
1
,
pageSize
:
99
,
chapter
:
''
,
standardId
:
this
.
$store
.
getters
.
standard
,
type
:
'system'
},
tableData
:[],
loading
:
false
,
expandedList
:[],
clickChange
:
false
,
tableData
:
[],
loading
:
false
,
expandedList
:
[],
clickChange
:
false
,
defaultExpandIds
:
[],
// reviewTypeList: [ // 类型列表
// {
// label: '体系审查',
// type:'system'
// },
// {
// label: '车型审查',
// type:'car'
// },
// {
// label: '车型试验',
// type:'test'
// }
// ],
defaultProps
:
{
// node格式设置
children
:
'children'
,
label
:
'label'
,
defaultProps
:
{
// node格式设置
children
:
'children'
,
label
:
'label'
// isLeaf: (data, node) => {
// if (node.level === 2 || data.length == 1) {
// return true
// }
// }
},
count
:
0
},
checkedkeys
:
[],
defaultExpends
:
[],
standard
:
{}
}
},
created
()
{
this
.
$store
.
dispatch
(
'standard/setStandardList'
)
if
(
this
.
standardList
.
length
>
0
)
{
this
.
selectStandard
(
this
.
standardList
[
0
])
}
this
.
loadData
()
},
computed
:
{
...
mapGetters
([
'standard
'
,
'standardList
'
])
...
mapGetters
([
'standard
Obj
'
])
},
watch
:
{
'$store.getters.
s
tandard'
:
{
'$store.getters.
initS
tandard'
:
{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
standardId
=
newVal
this
.
count
++
if
(
this
.
count
<=
1
){
if
(
newVal
.
id
!=
this
.
standard
.
id
)
{
this
.
loadData
()
}
}
},
'$store.getters.standard_type'
:
{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
type
=
newVal
}
},
'$store.getters.standard_chapter'
:{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
chapter
=
newVal
}
},
deep
:
true
}
},
methods
:
{
search
()
{
this
.
queryParams
.
pageNum
=
1
this
.
$store
.
dispatch
(
'standard/setStandardList'
,
this
.
queryParams
.
name
)
},
selectStandard
(
value
)
{
this
.
$store
.
dispatch
(
'standard/setStandard'
,
value
)
this
.
loadData
()
},
handleNodeClick
(
node
,
data
){
if
(
data
.
isCurrent
){
node
.
isCurrent
=
true
}
if
(
data
.
isLeaf
){
this
.
queryParams
.
chapter
=
node
.
chapter
this
.
queryParams
.
type
=
node
.
type
let
standard
=
{
id
:
node
.
id
,
name
:
node
.
label
,
type
:
node
.
type
,
chapter
:
data
.
level
==
1
?
' '
:
node
.
label
}
this
.
$store
.
dispatch
(
'standard/setStandard'
,
standard
)
}
if
(
data
.
level
==
2
){
this
.
queryParams
.
type
=
node
.
type
let
standard
=
{
id
:
node
.
id
,
name
:
node
.
label
,
type
:
node
.
type
,
chapter
:
''
}
this
.
$store
.
dispatch
(
'standard/setStandard'
,
standard
)
}
handleNodeClick
(
node
,
data
)
{
if
(
data
.
isCurrent
)
{
node
.
isCurrent
=
true
}
if
(
data
.
isLeaf
)
{
let
standard
=
{
id
:
data
.
data
.
standardId
,
standardNo
:
data
.
parent
.
parent
.
data
.
standardNo
,
name
:
data
.
parent
.
parent
.
data
.
name
,
type
:
data
.
parent
.
data
.
value
,
chapter
:
node
.
chapter
}
this
.
$store
.
dispatch
(
'standard/setStandardObj'
,
standard
)
}
if
(
data
.
level
==
2
)
{
let
standard
=
{
id
:
data
.
parent
.
data
.
id
,
standardNo
:
data
.
parent
.
data
.
standardNo
,
name
:
data
.
parent
.
data
.
name
,
type
:
node
.
value
,
chapter
:
''
}
this
.
$store
.
dispatch
(
'standard/setStandardObj'
,
standard
)
}
document
.
documentElement
.
scrollTop
=
0
//this.$store.dispatch('standard/setStandard', standard)
},
handleNodeExpand
(
node
){
handleNodeExpand
(
node
)
{
let
flag
=
false
this
.
defaultExpandIds
.
some
(
item
=>
{
if
(
item
===
node
.
key
)
{
// 判断当前节点是否存在, 存在不做处理
flag
=
true
return
true
}
if
(
item
===
node
.
key
)
{
// 判断当前节点是否存在, 存在不做处理
flag
=
true
return
true
}
})
if
(
!
flag
)
{
// 不存在则存到数组里
this
.
defaultExpandIds
.
push
(
node
.
key
)
if
(
!
flag
)
{
// 不存在则存到数组里
this
.
defaultExpandIds
.
push
(
node
.
key
)
}
},
handleNodeCollapse
(
node
)
{
// 删除当前关闭的节点
this
.
defaultExpandIds
.
some
((
item
,
i
)
=>
{
if
(
item
===
node
.
key
)
{
this
.
defaultExpandIds
.
splice
(
i
,
1
)
}
if
(
item
===
node
.
key
)
{
this
.
defaultExpandIds
.
splice
(
i
,
1
)
}
})
this
.
removeChildrenIds
(
node
)
// 这里主要针对多级树状结构,当关闭父节点时,递归删除父节点下的所有子节点
},
},
removeChildrenIds
(
data
)
{
const
ts
=
this
if
(
data
.
children
)
{
data
.
children
.
forEach
(
function
(
item
)
{
removeChildrenIds
(
data
)
{
const
ts
=
this
if
(
data
.
children
)
{
data
.
children
.
forEach
(
function
(
item
)
{
const
index
=
ts
.
defaultExpandIds
.
indexOf
(
item
.
key
)
if
(
index
>
0
)
{
ts
.
defaultExpandIds
.
splice
(
index
,
1
)
ts
.
defaultExpandIds
.
splice
(
index
,
1
)
}
ts
.
removeChildrenIds
(
item
)
})
}
},
async
loadData
(){
this
.
loading
=
true
this
.
tableData
=
[]
console
.
log
(
this
.
standardList
)
for
(
let
i
=
0
;
i
<
this
.
standardList
.
length
;
i
++
){
let
data
=
{
standardId
:
this
.
standardList
[
i
].
id
,
standardNo
:
this
.
standardList
[
i
].
standardNo
}
await
getReviewStandardList
(
data
).
then
(
res
=>
{
if
(
res
.
code
===
200
){
let
typeList
=
res
.
data
.
typeList
forEach
(
typeList
,(
item
,
index
)
=>
{
item
.
isCurrent
=
false
,
item
.
id
=
this
.
standardList
[
i
].
id
item
.
children
=
item
.
reviewStandardChapterListResponses
forEach
(
item
.
children
,(
c
)
=>
{
c
.
label
=
c
.
chapter
})
let
cache
=
[]
forEach
(
item
.
children
,(
p
)
=>
{
// 去重
if
(
cache
.
find
(
c
=>
c
.
label
==
p
.
label
)){
}
else
{
item
.
length
=
1
cache
.
push
({
label
:
p
.
label
,
chapter
:
p
.
label
,
isCurrent
:
false
,
id
:
this
.
standardList
[
i
].
id
,
type
:
item
.
type
})
}
})
item
.
children
=
cache
switch
(
item
.
type
){
case
'system'
:
item
.
label
=
'体系审查'
break
;
case
'car'
:
item
.
label
=
'车型审查'
break
;
case
'test'
:
item
.
label
=
'车型实验'
break
;
}
})
let
obj
=
{
id
:
this
.
standardList
[
i
].
id
,
label
:
this
.
standardList
[
i
].
standardNo
,
children
:
typeList
,
isCurrent
:
false
}
this
.
tableData
.
push
(
obj
)
//let chapters = res.rows
// obj.children.forEach(t=>{
// if(t.type == this.queryParams.type){
// t.children = cache
// }
// })
normalizeTreeData
(
data
)
{
return
data
.
map
(
node
=>
{
if
(
node
.
typeList
)
{
node
.
children
=
this
.
normalizeTreeData
(
node
.
typeList
)
delete
node
.
typeList
}
if
(
node
.
reviewStandardChapterListResponses
)
{
node
.
children
=
this
.
normalizeTreeData
(
node
.
reviewStandardChapterListResponses
)
delete
node
.
reviewStandardChapterListResponses
}
return
node
})
},
/**
* 任务:
* 1.chapter去重
* 2.将类型映射位中文可渲染形式
*/
async
loadData
()
{
this
.
loading
=
true
// page.push(obj)
// this.tableData = page
// console.log(this.standardList)
// this.loading = false
getStandardListNew
().
then
(
res
=>
{
this
.
tableData
=
res
.
data
this
.
tableData
=
this
.
normalizeTreeData
(
this
.
tableData
)
forEach
(
this
.
tableData
,
(
t1
,
index
)
=>
{
t1
.
key
=
index
+
'_'
+
t1
.
id
forEach
(
t1
.
children
,
(
t2
,
index
)
=>
{
t2
.
key
=
index
+
'_'
+
t1
.
id
+
'_'
+
t2
.
type
switch
(
t2
.
type
)
{
case
'system'
:
t2
.
type
=
'体系审查'
t2
.
value
=
'system'
break
case
'car'
:
t2
.
type
=
'车型审查'
t2
.
value
=
'car'
break
case
'test'
:
t2
.
type
=
'车型实验'
t2
.
value
=
'test'
break
}
let
cache
=
[]
forEach
(
t2
.
children
,
(
p
,
index
)
=>
{
// 去重
if
(
cache
.
find
(
c
=>
c
.
chapter
==
p
.
chapter
))
{
}
else
{
cache
.
push
({
standardId
:
t1
.
id
,
chapter
:
p
.
chapter
,
key
:
index
+
'_'
+
t1
.
id
+
'_'
+
t2
.
type
+
'_'
+
p
.
chapter
})
}
})
t2
.
children
=
cache
})
})
this
.
$nextTick
(
function
()
{
this
.
defaultExpends
.
push
(
this
.
tableData
[
0
].
key
)
this
.
$refs
.
tree
.
setCurrentKey
(
this
.
tableData
[
0
].
children
[
0
].
key
)
let
standard
=
{
id
:
this
.
tableData
[
0
].
id
,
type
:
this
.
tableData
[
0
].
children
[
0
].
value
}
let
standardObj
=
{
id
:
this
.
tableData
[
0
].
id
,
type
:
this
.
tableData
[
0
].
children
[
0
].
value
,
name
:
''
,
chapter
:
''
,
standardNo
:
''
}
this
.
$store
.
dispatch
(
'standard/setInitStandard'
,
standard
)
this
.
$store
.
dispatch
(
'standard/setStandardObj'
,
standardObj
)
this
.
standard
=
standard
})
}
this
.
loading
=
false
})
//console.log(this.standardList)
// for(let i = 0; i
<
this
.
standardList
.
length
;
i
++
){
// let data = {
// standardId: this.standardList[i].id,
// standardNo: this.standardList[i].standardNo
// }
// await getReviewStandardList(data).then(res=>{
// if(res.code === 200){
// let typeList = res.data.typeList
// forEach(typeList,(item,index)=>{
// item.isCurrent = false,
// item.id = this.standardList[i].id
// item.children = item.reviewStandardChapterListResponses
// forEach(item.children,(c)=>{
// c.label = c.chapter
// })
// let cache = []
// forEach(item.children,(p)=>{// 去重
// if(cache.find(c=>c.label == p.label)){
// }else{
// item.length = 1
// cache.push({
// label:p.label,
// chapter:p.label,
// isCurrent:false,
// id:this.standardList[i].id,
// type:item.type
// })
// }
// })
// item.children = cache
// switch(item.type){
// case 'system':
// item.label='体系审查'
// break;
// case 'car':
// item.label='车型审查'
// break;
// case 'test':
// item.label='车型实验'
// break;
// }
// })
// let obj = {
// id:this.standardList[i].id,
// label:this.standardList[i].standardNo,
// children:typeList,
// isCurrent:false
// }
// //this.tableData.push(obj)
// //let chapters = res.rows
// // obj.children.forEach(t=>{
// // if(t.type == this.queryParams.type){
// // t.children = cache
// // }
// // })
// // page.push(obj)
// // this.tableData = page
// // console.log(this.standardList)
// // this.loading = false
// }
// })
// }
this
.
loading
=
false
}
}
}
...
...
@@ -363,59 +404,72 @@ export default {
font-weight
:
bold
;
}
.tree
{
padding
:
10px
10px
;
::v-deep
.el-tree-node
{
// 节点样式
position
:
relative
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
}
.tree
{
padding
:
10px
10px
;
::v-deep
.el-tree-node
{
// 节点样式
position
:
relative
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
}
::v-deep
.is-leaf
::before
{
// 叶子节点箭头样式设置:不显示
opacity
:
0
;
}
::v-deep
.el-tree-node__content
{
// 节点内容样式设置
width
:
100%
;
height
:
30px
;
//display: flex;
//justify-content: space-between;
margin-top
:
5px
;
color
:black
;
font-size
:
13px
;
border-radius
:
5px
;
}
::v-deep
.el-tree-node__content
:hover
{
// 节点内容样式设置
background-color
:
#f0f7ff
;
}
::v-deep
.el-tree-node__content
.el-tree-node__expand-icon
{
// 节点箭头样式设置
color
:
black
;
}
::v-deep
.el-tree-node__children
{
// 子节点样式设置
transition
:
all
0
.5s
;
}
::v-deep
.el-tree-node__children
.el-tree-node__content
{
// 子节点内容样式设置
width
:
200px
;
background-color
:
white
;
}
::v-deep
.el-tree-node__children
.el-tree-node__content
:hover
{
// 子节点内容样式设置
background-color
:
#f0f7ff
;
}
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content
.el-tree-node__expand-icon
{
opacity
:
0
;
}
::v-deep
.el-tree-label
{
// 树中显示标题(label)设置
text-align
:
center
;
font-size
:
13px
;
font-weight
:
bold
;
}
::v-deep
.el-tree-content
{
// 树中显示内容(content)设置
font-size
:
13px
;
}
::v-deep
.clickChange
{
color
:blue
;
::v-deep
.is-leaf
::before
{
// 叶子节点箭头样式设置:不显示
opacity
:
0
;
}
::v-deep
.el-tree-node__content
{
// 节点内容样式设置
width
:
100%
;
height
:
30px
;
//display: flex;
//justify-content: space-between;
margin-top
:
5px
;
color
:
black
;
font-size
:
13px
;
border-radius
:
5px
;
}
::v-deep
.el-tree-node__content
:hover
{
// 节点内容样式设置
background-color
:
#f0f7ff
;
}
::v-deep
.el-tree-node__content
.el-tree-node__expand-icon
{
// 节点箭头样式设置
color
:
black
;
}
::v-deep
.el-tree-node__children
{
// 子节点样式设置
transition
:
all
0
.5s
;
}
::v-deep
.el-tree-node__children
.el-tree-node__content
{
// 子节点内容样式设置
width
:
200px
;
background-color
:
white
;
}
::v-deep
.el-tree-node__children
.el-tree-node__content
:hover
{
// 子节点内容样式设置
background-color
:
#f0f7ff
;
}
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content
.el-tree-node__expand-icon
{
opacity
:
0
;
}
::v-deep
.el-tree-label
{
// 树中显示标题(label)设置
text-align
:
center
;
font-size
:
13px
;
font-weight
:
bold
;
}
::v-deep
.el-tree-content
{
// 树中显示内容(content)设置
font-size
:
13px
;
}
::v-deep
.clickChange
{
color
:
blue
;
}
}
}
}
</
style
>
src/store/getters.js
View file @
78e23eaf
import
standard
from
"./modules/standard"
const
getters
=
{
sidebar
:
state
=>
state
.
app
.
sidebar
,
size
:
state
=>
state
.
app
.
size
,
...
...
@@ -21,6 +23,8 @@ const getters = {
standard_type
:
state
=>
state
.
standard
.
standard_type
,
standard_chapter
:
state
=>
state
.
standard
.
standard_chapter
,
standard_name
:
state
=>
state
.
standard
.
standard_name
,
standardObj
:
state
=>
state
.
standard
.
standardObj
,
initStandard
:
state
=>
state
.
standard
.
initStandard
,
standardList
:
state
=>
state
.
standard
.
standardList
,
testScenarioList
:
state
=>
state
.
testScenario
.
testScenarioList
,
dept
:
state
=>
state
.
user
.
dept
...
...
src/store/modules/standard.js
View file @
78e23eaf
...
...
@@ -6,6 +6,17 @@ const standard = {
standard_name
:
''
,
standard_type
:
''
,
standard_chapter
:
''
,
standardObj
:{
id
:
''
,
name
:
''
,
type
:
''
,
chapter
:
''
,
standardNo
:
''
},
initStandard
:{
id
:
''
,
type
:
''
,
},
standardList
:
[]
},
...
...
@@ -24,6 +35,12 @@ const standard = {
},
SET_STANDARDCHAPTER
:
(
state
,
chapter
)
=>
{
state
.
standard_chapter
=
chapter
},
SET_STANDARD_OBJ
:
(
state
,
standardObj
)
=>
{
state
.
standardObj
=
standardObj
},
SET_INITSTANDARD
:
(
state
,
initStandard
)
=>
{
state
.
initStandard
=
initStandard
}
},
...
...
@@ -34,6 +51,12 @@ const standard = {
commit
(
'SET_STANDARDTYPE'
,
standard
.
type
)
commit
(
'SET_STANDARDCHAPTER'
,
standard
.
chapter
)
},
setStandardObj
({
commit
},
standardObj
){
commit
(
'SET_STANDARD_OBJ'
,
standardObj
)
},
setInitStandard
({
commit
},
initStandard
){
commit
(
'SET_INITSTANDARD'
,
initStandard
)
},
setStandardList
({
commit
},
name
)
{
getStandardList
({
keyWord
:
name
?
name
:
''
,
...
...
src/views/setting/standardPoint/index.vue
View file @
78e23eaf
...
...
@@ -275,7 +275,6 @@
downPdf
(
row
,
name
)
{
console
.
log
(
'row'
,
row
)
if
(
name
==
'name'
){
console
.
log
(
process
.
env
.
VUE_APP_IMAGE_API
+
row
.
file
)
window
.
open
(
process
.
env
.
VUE_APP_IMAGE_API
+
row
.
file
)
}
else
if
(
name
==
'keypointname'
){
window
.
open
(
process
.
env
.
VUE_APP_IMAGE_API
+
row
.
keypointFile
)
...
...
src/views/setting/standardTerms/components/detailModel.vue
View file @
78e23eaf
<
template
>
<el-dialog
title=
"检验内容"
:visible
.
sync=
"dialogManger.dialogVisible"
width=
"60%"
>
<el-form
class=
"form"
:model=
"dialogManger"
:inline=
"true"
>
<el-form-item
class=
"title"
>
<span
style=
"width: 500px"
>
标准信息
</span>
</el-form-item>
<el-form-item
label=
"标准号"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.standardNo"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"标准名称"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.name"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"标准章节"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.chapter"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"审查类型"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.type"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"标准要求"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{ minRows: 4, maxRows: 6 }"
type="textarea"
v-model="dialogManger.source.standard.text"
autocomplete="off"
>
</el-input>
</el-form-item>
</el-form>
<el-dialog
title=
"检验内容"
:visible
.
sync=
"dialogManger.dialogVisible"
width=
"60%"
>
<el-form
class=
"form"
:model=
"dialogManger"
:inline=
"true"
>
<el-form-item
class=
"title"
>
<span
style=
"width: 500px;"
>
标准信息
</span>
</el-form-item>
<el-form-item
label=
"标准号"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.standard.standardNo"
autocomplete=
"off"
:title=
"dialogManger.source.standard.standard.standardNo"
></el-input>
</el-form-item>
<el-form-item
label=
"标准名称"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.standard.name"
autocomplete=
"off"
:title=
"dialogManger.source.standard.standard.name"
></el-input>
</el-form-item>
<el-form-item
label=
"标准章节"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.chapter"
autocomplete=
"off"
:title=
"dialogManger.source.standard.chapter"
></el-input>
</el-form-item>
<el-form-item
label=
"审查类型"
:label-width=
"formLabelWidth"
>
<el-input
class=
"input"
disabled
v-model=
"dialogManger.source.standard.type"
autocomplete=
"off"
:title=
"dialogManger.source.standard.type"
></el-input>
</el-form-item>
<el-form-item
label=
"标准要求"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{minRows:4,maxRows:6}"
type="textarea"
v-model="dialogManger.source.standard.text"
:title="dialogManger.source.standard.text"
autocomplete="off">
</el-input>
</el-form-item>
</el-form>
<el-form
class=
"form"
:model=
"dialogManger"
title=
"'审查信息'"
style=
"margin-top: 10px;"
>
<el-form-item
class=
"title"
>
<span
style=
"width: 500px;"
>
审查信息
</span>
</el-form-item>
<el-form-item
label=
"审查要点"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{minRows:1,maxRows:6}"
type="textarea"
v-model="dialogManger.source.judge.content"
autocomplete="off"
:title="dialogManger.source.judge.content">
</el-input>
</el-form-item>
<div
v-for=
"(item,index) in dialogManger.source.judge.reviewDetailsList"
>
<el-form-item
label=
"审查细则"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{minRows:1,maxRows:6}"
type="textarea"
v-model="item.text"
autocomplete="off"
:title="item.text">
</el-input>
</el-form-item>
<el-form-item
label=
"关联场景"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{minRows:4,maxRows:6}"
type="textarea"
v-model="item.reviewSceneList"
:title="item.reviewSceneList"
autocomplete="off">
</el-input>
</el-form-item>
<el-form
class=
"form"
:model=
"dialogManger"
title=
"'审查信息'"
style=
"margin-top: 10px"
>
<el-form-item
class=
"title"
>
<span
style=
"width: 500px"
>
审查信息
</span>
</el-form-item>
<el-form-item
label=
"审查要点"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{ minRows: 1, maxRows: 6 }"
type="textarea"
v-model="dialogManger.source.judge.content"
autocomplete="off"
>
</el-input>
</el-form-item>
<div
v-for=
"(item, index) in dialogManger.source.judge.reviewDetailsList"
>
<el-form-item
label=
"审查细则"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{ minRows: 1, maxRows: 6 }"
type="textarea"
v-model="item.text"
autocomplete="off"
>
</el-input>
</el-form-item>
<el-form-item
label=
"关联场景"
:label-width=
"formLabelWidth"
>
<el-input
class=
"textarea"
disabled
resize=
"none"
:autosize=
"
{ minRows: 4, maxRows: 6 }"
type="textarea"
v-model="item.reviewSceneList"
autocomplete="off"
>
</el-input>
</el-form-item>
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dialogManger.dialogVisible = false"
>
确 定
</el-button
>
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dialogManger.dialogVisible = false"
>
确 定
</el-button>
</div>
</el-dialog>
</el-dialog>
</
template
>
<
script
>
export
default
{
name
:
''
,
data
()
{
name
:
''
,
data
()
{
return
{
titleWidth
:
'500px'
,
formLabelWidth
:
'120px'
titleWidth
:
'500px'
,
formLabelWidth
:
'120px'
}
},
props
:
{
},
props
:
{
dialogManger
:
{
type
:
Object
,
default
:
()
=>
{
return
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{},
source
:
{
standard
:
{
name
:
''
,
standardNo
:
''
,
chapter
:
''
,
type
:
''
,
text
:
''
,
},
judge
:{
content
:
''
,
reviewDetailsList
:[]
}
},
dialogEditId
:
undefined
}
}
}
},
methods
:{
cancel
(){
this
.
dialogManger
.
dialogVisible
=
false
}
methods
:
{
cancel
()
{
this
.
dialogManger
.
dialogVisible
=
false
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.form
.title
{
<
style
lang=
"scss"
scoped
>
.form
.title
{
width
:
600px
;
margin-right
:
50px
;
color
:
blue
;
...
...
@@ -118,21 +158,21 @@ data(){
border-left
:
blue
solid
6px
;
padding-left
:
10px
;
}
.form
.input
{
.form
.input
{
width
:
250px
;
}
.form
.textarea
{
.form
.textarea
{
width
:
630px
;
}
::v-deep
.el-dialog__body
{
height
:
70vh
;
overflow
:
auto
;
}
.
input
:
:
v-deep
.
el-input__inner
{
::v-deep
.el-dialog__body
{
height
:
70vh
;
overflow
:
auto
;
}
.
input
:
:
v-deep
.
el-input__inner
{
color
:
black
;
}
.
textarea
:
:
v-deep
.
el-textarea__inner
{
color
:
black
;
}
</
style
>
\ No newline at end of file
</
style
>
src/views/setting/standardTerms/index.vue
View file @
78e23eaf
...
...
@@ -9,7 +9,7 @@
size=
"small"
:inline=
"true"
>
<!--
<el-form-item
prop=
"status"
>
<!--
<el-form-item
prop=
"status"
>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入标准名称"
...
...
@@ -17,7 +17,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
-->
<!--
<el-form-item
prop=
"status"
>
<!--
<el-form-item
prop=
"status"
>
<el-select
v-model=
"queryParams.standardId"
placeholder=
"请选择标准号"
>
<el-option
v-for=
"item in standardList"
...
...
@@ -37,7 +37,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<!--标准要求输入:input-->
<!--标准要求输入:input-->
<el-form-item
prop=
"status"
>
<el-input
v-model=
"searchQueryParams.text"
...
...
@@ -60,6 +60,7 @@
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
:disabled=
" buttonDisibled"
@
click=
"handleQuery"
>
查询
</el-button
>
...
...
@@ -68,9 +69,16 @@
type=
"default"
icon=
"el-icon-refresh"
size=
"mini"
:disabled=
" buttonDisibled"
@
click=
"reset"
>
重置
</el-button
>
<el-button
type=
"text"
:icon=
" this.expandAll ? 'el-icon-caret-bottom' : 'el-icon-caret-top' "
@
click=
"onShrinkUnfold"
>
{{
this
.
expandAll
?
'收缩'
:
'展开'
}}
</el-button
>
</el-form-item>
</el-form>
</div>
...
...
@@ -144,36 +152,47 @@
(5) @node-click: 点击node时执行handleNodeClick函数
-->
<el-tree
ref=
"tree"
class=
"tree"
v-loading=
"loading"
:data=
"tableData"
:props=
"defaultProps"
bordered
@
node-click=
"handleNodeClick"
ref=
"tree"
class=
"tree"
v-loading=
"loading"
:data=
"tableData"
:props=
"defaultProps"
bordered
@
node-click=
"handleNodeClick"
:default-checked-keys=
"checkedkeys"
>
<!-- node:节点信息(由defaultProps定义) data: 当前节点包含的数据对象 -->
<span
slot-scope=
"{ node,data }"
style=
"display: flex;width: 1100px;;justify-content: space-between"
>
<div>
<span
class=
"el-tree-label"
>
{{ node.label | ellipsis }}
</span>
<!-- 多个空格 -->
<span
v-html=
"'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"
></span>
<span
v-if=
"data.chapter"
class=
"el-tree-content"
>
{{ data.chapter+"\u00a0"+data.content | ellipsis }}
</span>
<span
v-else
class=
"el-tree-content"
>
{{ data.content | ellipsis }}
</span>
</div>
<!-- 当三级树为审查要点时将详情图标向左移动20px -->
<span
v-if=
"data.label == '审查要点' "
style=
"margin-right: 30px;"
>
<!-- node:节点信息(由defaultProps定义) data: 当前节点包含的数据对象 -->
<span
slot-scope=
"{ node, data }"
style=
"display: flex; width: 1100px; justify-content: space-between"
>
<div>
<span
v-if=
"node.level == 1"
class=
"el-tree-label"
>
标准要求
</span>
<span
v-else
class=
"el-tree-label"
>
审查要点
</span>
<!-- 多个空格 -->
<span
v-html=
"'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"
></span>
<span
v-if=
"data.chapter"
class=
"el-tree-content"
>
{{ (data.chapter + '\u00a0' + data.text) | ellipsis }}
</span
>
<span
v-else
class=
"el-tree-content"
>
{{ data.text | ellipsis }}
</span
>
</div>
<!-- 当二级树为审查要点时将详情图标向左移动20px -->
<span
v-if=
"node.level == 2"
style=
"margin-right: 30px"
>
<page-button
v-hasPermi=
"['setting:standardTerms:content']"
icon=
"doc-search"
title=
"检验内容"
@
click
.
native=
"handleUpdate(data
)"
></page-button>
</span>
</span>
v-hasPermi=
"['setting:standardTerms:content']"
icon=
"doc-search"
title=
"检验内容"
@
click
.
native=
"handleUpdate(data, node
)"
></page-button>
</span>
</span>
</el-tree>
<pagination
style=
"height: 50px
;
"
style=
"height: 50px"
v-show=
"total > 0"
:total=
"total"
:background=
"false"
...
...
@@ -222,21 +241,23 @@ import { listInspection } from '../../../api/setting/standardTerms'
import
detailModel
from
'./components/detailModel.vue'
import
standard
from
'../../../store/modules/standard'
import
{
parse
}
from
'postcss'
import
stan
from
'highlight.js/lib/languages/stan'
export
default
{
// 绑定组件
components
:
{
'vehiclemodel-dialog'
:
vehicleModelDialog
,
'document-review-dialog'
:
documentReviewDialog
,
'detail-model'
:
detailModel
'detail-model'
:
detailModel
},
dicts
:
[
'sys_scene_type'
],
mixins
:
[
page
],
data
()
{
return
{
listUrl
:
'/review/standard/list'
,
// 获取章节数据信息路径
modelData
:[],
// 储存原始获取的数据
chapterOptions
:[],
// 储存章节选项
reviewTypeList
:
[
// 类型列表
modelData
:
[],
// 储存原始获取的数据
chapterOptions
:
[],
// 储存章节选项
reviewTypeList
:
[
// 类型列表
{
label
:
'体系审查'
,
value
:
'system'
...
...
@@ -250,83 +271,99 @@ export default {
value
:
'test'
}
],
defaultProps
:
{
// node格式设置
children
:
'children'
,
label
:
'label'
,
isLeaf
:
(
data
,
node
)
=>
{
defaultProps
:
{
// node格式设置
children
:
'children'
,
label
:
'label'
,
isLeaf
:
(
data
,
node
)
=>
{
if
(
node
.
level
===
2
||
data
.
length
==
1
)
{
return
true
}
return
true
}
}
},
listNewUrl
:
'/review/standard/listNew'
,
},
listNewUrl
:
'/review/standard/listNew'
,
showSearch
:
true
,
// 是否显示搜索框
tableData
:
[],
// 储存最终处理后的数据信息
queryParams
:
{
// 条件参数,储存用于搜索的条件
chapter
:
this
.
$store
.
getters
.
standard_chapter
,
queryParams
:
{
// 条件参数,储存用于搜索的条件
chapter
:
this
.
$store
.
getters
.
standardObj
.
chapter
,
text
:
''
,
name
:
''
,
standardNo
:
''
,
pageNum
:
1
,
pageSize
:
10
,
standardId
:
this
.
$store
.
getters
.
standard
,
type
:
this
.
$store
.
getters
.
standard_type
||
'system
'
name
:
''
,
standardNo
:
''
,
pageNum
:
1
,
pageSize
:
10
,
standardId
:
this
.
$store
.
getters
.
standard
Obj
.
id
||
''
,
type
:
this
.
$store
.
getters
.
standardObj
.
type
||
'
'
},
searchQueryParams
:{
chapter
:
''
,
text
:
''
searchQueryParams
:
{
chapter
:
''
,
text
:
''
},
detailModelManager
:
{
// 传递参数,储存传递给弹窗的信息
dialogVisible
:
false
,
// 弹窗是否显现
detailModelManager
:
{
// 传递参数,储存传递给弹窗的信息
dialogVisible
:
false
,
// 弹窗是否显现
refreshList
:
false
,
source
:
{
// 数据源
judge
:{},
// 标准信息
standard
:{
// 审查信息
standard
:{
standardNo
:
'4869'
source
:
{
standard
:
{
name
:
''
,
standardNo
:
''
,
chapter
:
''
,
type
:
''
,
text
:
''
,
},
judge
:{
content
:
''
,
reviewDetailsList
:[]
}
}
},
},
dialogEditId
:
''
},
vehicleModelDialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{},
dialogEditId
:
''
},
documentReviewDialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{},
dialogEditId
:
''
},
refreshList
:
false
,
count
:
0
// vehicleModelDialogManger: {
// dialogVisible: false,
// refreshList: false,
// source: {},
// dialogEditId: ''
// },
// documentReviewDialogManger: {
// dialogVisible: false,
// refreshList: false,
// source: {},
// dialogEditId: ''
// },
checkedkeys
:[],
buttonDisibled
:
false
,
expandAll
:
false
,
handleClick
:
null
,
refreshList
:
false
}
},
created
()
{
this
.
loadData
()
},
watch
:
{
// 公共组件左侧标准全局变量选中
'$store.getters.standard'
:
{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
standardId
=
newVal
console
.
log
(
newVal
)
this
.
loadData
()
}
},
'$store.getters.standard_type'
:
{
'$store.getters.standardObj'
:
{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
type
=
newVal
this
.
loadData
()
}
},
'$store.getters.standard_chapter'
:
{
handler
(
newVal
,
oldVal
)
{
this
.
queryParams
.
chapter
=
newVal
this
.
loadData
()
}
if
(
newVal
.
id
==
oldVal
.
id
&&
newVal
.
type
==
oldVal
.
type
&&
newVal
.
chapter
==
oldVal
.
chapter
&&
newVal
.
name
==
oldVal
.
name
){
console
.
log
(
true
)
}
else
{
this
.
queryParams
.
standardId
=
newVal
.
id
this
.
queryParams
.
type
=
newVal
.
type
this
.
queryParams
.
chapter
=
newVal
.
chapter
this
.
queryParams
.
name
=
newVal
.
name
this
.
loadData
()
}
// console.log(newVal)
// if(newVal){
// this.queryParams.chapter = newVal.chapter || '5.1'
// this.queryParams.standardId = newVal.id || ''
// this.queryParams.type = newVal.type || 'system'
// this.queryParams.standardNo = 'GB 44495-2024'
// this.loadData()
// }
},
deep
:
true
},
refreshList
(
val
)
{
if
(
val
)
{
...
...
@@ -336,188 +373,237 @@ export default {
},
'vehicleModelDialogManger.refreshList'
(
val
)
{
if
(
val
)
{
this
.
loadData
()
//
this.loadData()
this
.
vehicleModelDialogManger
.
refreshList
=
false
}
}
},
filters
:
{
// 过滤器:当字符串超过64位时,之后的字符用...代替
ellipsis
(
value
)
{
filters
:
{
// 过滤器:当字符串超过64位时,之后的字符用...代替
ellipsis
(
value
)
{
if
(
!
value
)
return
''
if
(
value
.
length
>
55
)
{
return
value
.
slice
(
0
,
55
)
+
'...'
if
(
value
.
length
>
60
)
{
return
value
.
slice
(
0
,
60
)
+
'...'
}
return
value
}
},
computed
:
{
// 获取store储存数据
...
mapGetters
([
'standard'
,
'standardList'
,
'standard_type'
])
},
created
()
{
// 进入页面时获取数据
this
.
loadData
()
computed
:
{
// 获取store储存数据
...
mapGetters
([
'standard'
,
'standardList'
,
'standardObj'
])
},
methods
:
{
printNode
(
node
){
printNode
(
node
)
{
console
.
log
(
node
)
},
handleNodeClick
(
data
)
{
console
.
log
(
data
);
},
async
loadData
()
{
console
.
log
(
this
.
queryParams
)
this
.
loading
=
true
await
request
({
url
:
this
.
listUrl
,
method
:
'post'
,
data
:
this
.
queryParams
})
.
then
(
async
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
modelData
=
res
.
rows
// 储存原始数据
// res.rows[0].carReviewStatus = 'FINISH'
// res.rows[0].reviewStatus = 'SIGNED'
// res.rows[0].carReviewStatus = 'FINISH'
if
(
res
.
rows
==
''
||
!
res
.
rows
){
this
.
tableData
=
[]
this
.
loading
=
false
}
else
{
this
.
loading
=
true
// 开始执行加载动画
this
.
tableData
=
[]
// 初始化结果数据容器
let
page
=
[]
// 临时结果容器
let
tempData
=
res
.
rows
// 临时数据
// for(let i = 0 ; i
<
tempData
.
length
;
i
++
){
// 处理数据,将临时数据的每条数据处理为模板对象,之后放入临时结果容器中
// // 模板对象格式
// let obj = {
// label:tempData[i].chapter,// 章节信息
// content:' ',// 章节内容(当章节下只有一个标准要求时用到)
// length:0,// 章节所包含的标准要求的数量
// children:[] // 章节所包含的具体的标准要求信息
// }
// page.push(obj)
// }
let
cache
=
[]
// 去重后结果容器
let
tempOptions
=
[]
// 临时章节选项容器
handleNodeClick
()
{
console
.
log
(
123
)
},
normalizeTreeData
(
data
){
return
data
.
map
(
node
=>
{
if
(
node
.
keyPointList
){
node
.
children
=
this
.
normalizeTreeData
(
node
.
keyPointList
)
delete
node
.
keyPointList
}
return
node
})
},
async
loadData
()
{
this
.
loading
=
true
await
request
({
url
:
this
.
listNewUrl
,
method
:
'post'
,
data
:
this
.
queryParams
}).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableData
=
this
.
normalizeTreeData
(
this
.
tableData
)
this
.
total
=
res
.
total
})
this
.
loading
=
false
// await request({
// url: this.listUrl,
// method: 'post',
// data: this.queryParams
// })
// .then(async res => {
// if (res.code === 200) {
// this.modelData = res.rows // 储存原始数据
// console.log(res.rows)
// if(res.rows=='' || !res.rows){
// this.tableData = []
// this.loading = false
// }else{
// this.loading = true // 开始执行加载动画
// this.tableData = [] // 初始化结果数据容器
// let page = [] // 临时结果容器
// let tempData = res.rows // 临时数据
// // for(let i = 0 ; i
<
tempData
.
length
;
i
++
){
// 处理数据,将临时数据的每条数据处理为模板对象,之后放入临时结果容器中
// // // 模板对象格式
// // let obj = {
// // label:tempData[i].chapter,// 章节信息
// // content:' ',// 章节内容(当章节下只有一个标准要求时用到)
// // length:0,// 章节所包含的标准要求的数量
// // children:[] // 章节所包含的具体的标准要求信息
// // }
// // page.push(obj)
// // }
// let cache = [] // 去重后结果容器
// let tempOptions = [] // 临时章节选项容器
// if(this.chapterOptions.length
<
tempOptions
.
length
||
this
.
chapterOptions
.
length
==
0
){
// this.chapterOptions = tempOptions
// }
if
(
this
.
chapterOptions
.
length
<
tempOptions
.
length
||
this
.
chapterOptions
.
length
==
0
){
this
.
chapterOptions
=
tempOptions
}
// let count = 0
// // 继续加工数据,对page容器中的每条数据pageItem处理
// forEach(tempData,async (tempDataItem)=>{ // 对临时数据tempData中每条数据tempDataItem处理
// // 当pageItem和tempDataItem章节属性匹配时,将tempDataItem数据进行模板化并储存到page容器中
// count++
// let obj = {
// index:count,
// id:tempDataItem.id,
// label:'标准要求',
// chapter:tempDataItem.chapter,
// content:tempDataItem.text,
// children:[]
// }
let
count
=
0
// 继续加工数据,对page容器中的每条数据pageItem处理
forEach
(
tempData
,
async
(
tempDataItem
)
=>
{
// 对临时数据tempData中每条数据tempDataItem处理
// 当pageItem和tempDataItem章节属性匹配时,将tempDataItem数据进行模板化并储存到page容器中
count
++
let
obj
=
{
index
:
count
,
id
:
tempDataItem
.
id
,
label
:
'标准要求'
,
chapter
:
tempDataItem
.
chapter
,
content
:
tempDataItem
.
text
,
children
:[]
}
// // 异步处理
// await listInspection({id:tempDataItem.id}).then(res=>{// 根据tempDataItem的id搜索详细数据
// if(res.code == 200){
// let temp = res.data
// forEach(temp,(pointItem)=>{
// forEach(pointItem,(pointDeepItem)=>{
// pointDeepItem.label = '审查要点'
// pointDeepItem.content = pointDeepItem.text
// pointDeepItem.quireId = tempDataItem.id
// pointDeepItem.type = tempDataItem.type
// pointDeepItem.name = tempDataItem.name
// pointDeepItem.standardNo = tempDataItem.standardNo
// obj.children.push(pointDeepItem)
// })
// })
// this.loading = false // 加载动画结束
// }
// page.push(obj)
// page = page.sort(function(a,b){
// return a.index - b.index
// })
// })
// 异步处理
await
listInspection
({
id
:
tempDataItem
.
id
}).
then
(
res
=>
{
// 根据tempDataItem的id搜索详细数据
if
(
res
.
code
==
200
){
let
temp
=
res
.
data
forEach
(
temp
,(
pointItem
)
=>
{
forEach
(
pointItem
,(
pointDeepItem
)
=>
{
pointDeepItem
.
label
=
'审查要点'
pointDeepItem
.
content
=
pointDeepItem
.
text
pointDeepItem
.
quireId
=
tempDataItem
.
id
pointDeepItem
.
type
=
tempDataItem
.
type
obj
.
children
.
push
(
pointDeepItem
)
})
})
this
.
loading
=
false
// 加载动画结束
}
page
.
push
(
obj
)
page
=
page
.
sort
(
function
(
a
,
b
){
return
a
.
index
-
b
.
index
})
})
// page=page.sort(function(a,b){
// return a.index - b.index
// })
})
// // page=page.sort(function(a,b){
// // return a.index - b.index
// // })
// })
this
.
tableData
=
page
// 将临时数据容器赋给结果数据容器
//this.tableData = res.rows
this
.
total
=
res
.
total
}
// this.tableData = page // 将临时数据容器赋给结果数据容器
// console.log(page)
// //this.tableData = res.rows
// this.total = res.total
// }
}
})
.
catch
(
error
=>
{
if
(
error
.
msg
)
{
this
.
$message
.
error
(
error
.
msg
)
}
this
.
loading
=
false
})
// }
// })
// .catch(error => {
// if (error.msg) {
// this.$message.error(error.msg)
// }
// this.loading = false
// })
},
reset
()
{
this
.
$store
.
dispatch
(
'standard/setStandard'
,
''
)
this
.
searchQueryParams
.
chapter
=
''
this
.
buttonDisibled
=
true
setTimeout
(()
=>
{
this
.
buttonDisibled
=
false
},
2000
)
this
.
searchQueryParams
.
text
=
''
this
.
searchQueryParams
.
chapter
=
''
this
.
queryParams
.
type
=
this
.
$store
.
getters
.
initStandard
.
type
this
.
queryParams
.
standardId
=
this
.
$store
.
getters
.
initStandard
.
id
this
.
queryParams
.
text
=
''
this
.
queryParams
.
chapter
=
''
this
.
queryParams
.
standard
=
''
this
.
queryParams
.
testMethod
=
''
this
.
queryParams
.
name
=
''
this
.
queryParams
.
standardNo
=
''
this
.
queryParams
.
type
=
''
this
.
loadData
()
},
handleQuery
(){
this
.
$store
.
dispatch
(
'standard/setStandard'
,
''
)
this
.
queryParams
.
chapter
=
this
.
searchQueryParams
.
chapter
this
.
queryParams
.
standard
=
''
this
.
queryParams
.
testMethod
=
''
this
.
queryParams
.
name
=
''
this
.
queryParams
.
standardNo
=
''
this
.
queryParams
.
type
=
''
let
standard
=
{
type
:
''
}
this
.
$store
.
dispatch
(
'standard/setInitStandard'
,
standard
)
//this.loadData()
},
handleQuery
()
{
this
.
buttonDisibled
=
true
setTimeout
(()
=>
{
this
.
buttonDisibled
=
false
},
2000
)
this
.
queryParams
.
text
=
this
.
searchQueryParams
.
text
this
.
loadData
()
let
obj
=
{
id
:
this
.
$store
.
getters
.
standardObj
.
id
,
type
:
this
.
$store
.
getters
.
standardObj
.
type
,
chapter
:
this
.
searchQueryParams
.
chapter
}
this
.
$store
.
dispatch
(
'standard/setStandardObj'
,
obj
)
},
async
onShrinkUnfold
()
{
this
.
expandAll
=
!
this
.
expandAll
this
.
changeTreeNodeStatus
(
this
.
$refs
.
tree
.
store
.
root
)
},
handleUpdate
(
node
)
{
// 查看检验内容 data:标准信息 node:审查信息
let
data
=
this
.
modelData
.
find
((
item
)
=>
item
.
id
===
node
.
quireId
)
// 获取当前审查信息
let
standard
=
this
.
standardList
.
find
((
item
)
=>
item
.
id
==
this
.
standard
)
// 获取当前审查信息的standard信息
if
(
standard
){
data
.
standard
=
standard
}
else
{
data
.
standard
=
'--'
}
let
review
=
this
.
reviewTypeList
.
find
((
item
)
=>
item
.
value
==
node
.
type
)
if
(
review
){
data
.
type
=
review
.
label
}
else
{
data
.
type
=
''
changeTreeNodeStatus
(
node
)
{
node
.
expanded
=
this
.
expandAll
for
(
let
i
=
0
;
i
<
node
.
childNodes
.
length
;
i
++
)
{
// 改变节点的自身expanded状态
node
.
expanded
=
this
.
expandAll
// 遍历子节点
if
(
node
.
childNodes
[
i
].
childNodes
.
length
>
0
)
{
this
.
changeTreeNodeStatus
(
node
.
childNodes
[
i
])
}
}
},
async
handleUpdate
(
node
,
Ddata
)
{
// 查看检验内容 data:标准信息 node:审查信息
await
request
({
url
:
'/review/standard/getDetailsAll'
,
method
:
'post'
,
data
:{
keypointId
:
node
.
id
}
}).
then
(
res
=>
{
let
temp
=
res
.
data
let
parent
=
Ddata
.
parent
.
data
let
standard
=
{
name
:
parent
.
name
,
standardNo
:
parent
.
standardNo
,
chapter
:
parent
.
chapter
,
type
:
parent
.
type
==
'system'
?
'体系审查'
:
parent
.
type
==
'car'
?
'车型审查'
:
parent
.
type
==
'test'
?
'车型实验'
:
''
,
text
:
parent
.
text
}
// 获取当前审查信息的类型
node
.
content
=
node
.
content
.
trim
()
// 去空格
this
.
detailModelManager
.
source
.
standard
=
data
// 赋值传递弹窗
this
.
detailModelManager
.
source
.
judge
=
node
// 当点击审查信息时,将审查信息中的关联场景拼接为字符串,如果已经为字符串了则不做更改,当关联场景没有数据时以"--"代替
forEach
(
node
.
reviewDetailsList
,(
detail
)
=>
{
if
(
typeof
detail
.
reviewSceneList
!=
'string'
){
forEach
(
temp
.
reviewDetailsList
,
detail
=>
{
if
(
typeof
detail
.
reviewSceneList
!=
'string'
)
{
let
str
=
''
forEach
(
detail
.
reviewSceneList
,(
scene
)
=>
{
str
=
str
+
scene
.
text
+
'
\
n'
})
if
(
str
==
''
||
!
str
){
str
=
'--'
forEach
(
detail
.
reviewSceneList
,
scene
=>
{
str
=
str
+
scene
.
text
+
'
\
n'
})
if
(
str
==
''
||
!
str
)
{
str
=
'--'
}
detail
.
reviewSceneList
=
str
}
detail
.
reviewSceneList
=
str
})
let
data
=
{
content
:
temp
.
text
,
reviewDetailsList
:
temp
.
reviewDetailsList
}
// 获取当前审查信息的类型
this
.
detailModelManager
.
source
.
standard
=
standard
// 赋值传递弹窗
this
.
detailModelManager
.
source
.
judge
=
data
this
.
detailModelManager
.
dialogVisible
=
true
})
//当点击审查信息时,将审查信息中的关联场景拼接为字符串,如果已经为字符串了则不做更改,当关联场景没有数据时以"--"代替
// if (this.queryParams.type === 'test') {
// this.documentReviewDialogManger.dialogVisible = true
// this.documentReviewDialogManger.dialogEditId = row.id
...
...
@@ -528,7 +614,7 @@ export default {
// this.$refs.vehicleModelDialog.init()
// }
// console.log('dialogEditId', this.vehicleModelDialogManger.dialogEditId)
this
.
detailModelManager
.
dialogVisible
=
true
}
// handleQuery(){
// this.$store.dispatch('standard/setStandard', this.standardList.find((item)=>item.id == this.queryParams.standardId))
...
...
@@ -537,7 +623,7 @@ export default {
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
.item-box
{
flex
:
1
;
display
:
flex
;
...
...
@@ -563,48 +649,60 @@ export default {
height
:
50px
;
}
// el-tree的样式设置
.tree
{
.tree
{
padding
:
10px
20px
;
::v-deep
.el-tree-node
{
// 节点样式
position
:
relative
;
::v-deep
.el-tree-node
{
// 节点样式
position
:
relative
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
}
::v-deep
.is-leaf
::before
{
// 叶子节点箭头样式设置:不显示
::v-deep
.is-leaf
::before
{
// 叶子节点箭头样式设置:不显示
opacity
:
0
;
}
::v-deep
.el-tree-node__content
{
// 节点内容样式设置
::v-deep
.el-tree-node__content
{
// 节点内容样式设置
width
:
100%
;
height
:
40px
;
//display: flex;
//justify-content: space-between;
margin-top
:
10px
;
color
:black
;
color
:
black
;
font-size
:
large
;
border-radius
:
5px
;
background-color
:
#f0f7ff
;
}
::v-deep
.el-tree-node__content
.el-tree-node__expand-icon
{
// 节点箭头样式设置
::v-deep
.el-tree-node__content
.el-tree-node__expand-icon
{
// 节点箭头样式设置
color
:
black
;
}
::v-deep
.el-tree-node__children
{
// 子节点样式设置
::v-deep
.el-tree-node__children
{
// 子节点样式设置
transition
:
all
0
.5s
;
}
::v-deep
.el-tree-node__children
.el-tree-node__content
{
// 子节点内容样式设置
::v-deep
.el-tree-node__children
.el-tree-node__content
{
// 子节点内容样式设置
height
:
30px
;
margin
:
5px
0
;
background-color
:
white
;
}
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content
.el-tree-node__expand-icon
{
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content
.el-tree-node__expand-icon
{
opacity
:
0
;
}
::v-deep
.el-tree-label
{
// 树中显示标题(label)设置
::v-deep
.el-tree-label
{
// 树中显示标题(label)设置
text-align
:
center
;
font-size
:
13px
;
font-weight
:
bold
;
}
::v-deep
.el-tree-content
{
// 树中显示内容(content)设置
::v-deep
.el-tree-content
{
// 树中显示内容(content)设置
font-size
:
14px
;
}
}
...
...
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