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
fe53ba58
Commit
fe53ba58
authored
Sep 10, 2024
by
zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.91isoft.com:90/car-database/car-database-web
parents
6bc78b1e
028a3763
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
975 additions
and
246 deletions
+975
-246
reviewer.js
src/api/reviewer/reviewer.js
+11
-0
test.js
src/api/task/test.js
+11
-0
box1.png
src/assets/images/home/box1.png
+0
-0
box2.png
src/assets/images/home/box2.png
+0
-0
box3.png
src/assets/images/home/box3.png
+0
-0
box4.png
src/assets/images/home/box4.png
+0
-0
box5.png
src/assets/images/home/box5.png
+0
-0
home.scss
src/assets/styles/home.scss
+220
-34
checkInputUpload.vue
src/components/CheckCoiumns/checkInputUpload.vue
+17
-7
checkboxUpload.vue
src/components/CheckCoiumns/checkboxUpload.vue
+21
-17
inputUpload.vue
src/components/CheckCoiumns/inputUpload.vue
+22
-11
radioUpload.vue
src/components/CheckCoiumns/radioUpload.vue
+18
-8
pieChart.vue
src/components/homeComponents/pieChart.vue
+45
-17
planChart.vue
src/components/homeComponents/planChart.vue
+3
-2
planChart2.vue
src/components/homeComponents/planChart2.vue
+150
-0
table.vue
src/components/homeComponents/table.vue
+20
-16
table2.vue
src/components/homeComponents/table2.vue
+86
-0
index.vue
src/views/index.vue
+125
-32
login.vue
src/views/login.vue
+2
-2
detail.vue
src/views/plan/customized/detail.vue
+3
-3
index.vue
src/views/plan/customized/index.vue
+7
-2
index.vue
src/views/plan/list/index.vue
+13
-1
index.vue
src/views/review/already/index.vue
+51
-18
index.vue
src/views/review/createReview/deleteReviewDetails/index.vue
+7
-4
index.vue
...views/review/createReview/deleteReviewKeypoints/index.vue
+7
-4
index.vue
src/views/review/createReview/deleteReviewScene/index.vue
+10
-4
index.vue
src/views/review/createReview/deleteUseCase/index.vue
+1
-1
index.vue
src/views/review/createReview/newReviewDetails/index.vue
+7
-4
index.vue
src/views/review/createReview/newReviewKeypoints/index.vue
+7
-4
index.vue
src/views/review/createReview/newReviewScene/index.vue
+25
-8
index.vue
src/views/review/createReview/newUseCase/index.vue
+37
-29
index.vue
src/views/review/createReview/updateUseCase/index.vue
+1
-1
index.vue
src/views/review/initiatedReview/index.vue
+18
-3
index.vue
src/views/review/wait/index.vue
+25
-13
index.vue
src/views/setting/template/index.vue
+5
-1
No files found.
src/api/reviewer/reviewer.js
View file @
fe53ba58
...
...
@@ -52,6 +52,17 @@ export function alreadyReviewer(query) {
headers
:{
'Content-Type'
:
'application/json'
,
},
data
:
query
})
}
export
function
listReviewerFinish
(
query
)
{
return
request
({
url
:
'/review/scene/change/task/FindFinish'
,
method
:
'post'
,
headers
:{
'Content-Type'
:
'application/json'
,
},
data
:
query
})
}
\ No newline at end of file
src/api/task/test.js
View file @
fe53ba58
...
...
@@ -50,6 +50,17 @@ export function testType(query) {
data
:
query
})
}
// 发起评审页面 用例查标准
export
function
testTypeUse
(
query
)
{
return
request
({
url
:
'/system/testCase/getStandardList'
,
method
:
'post'
,
headers
:{
'Content-Type'
:
'application/json'
,
},
data
:
query
})
}
// 发起评审页面 点击选择审查要点按钮后 调用接口 查询审查要点
export
function
testKeypoint
(
query
)
{
return
request
({
...
...
src/assets/images/home/box1.png
0 → 100644
View file @
fe53ba58
71.8 KB
src/assets/images/home/box2.png
0 → 100644
View file @
fe53ba58
71.7 KB
src/assets/images/home/box3.png
0 → 100644
View file @
fe53ba58
76.6 KB
src/assets/images/home/box4.png
0 → 100644
View file @
fe53ba58
76.4 KB
src/assets/images/home/box5.png
0 → 100644
View file @
fe53ba58
82.8 KB
src/assets/styles/home.scss
View file @
fe53ba58
...
...
@@ -14,9 +14,9 @@
&
-title
{
color
:
#ffffff
;
text-align
:
center
;
font-size
:
26
px
;
font-size
:
32
px
;
font-family
:
Microsoft
YaHei
;
padding-top
:
1
0px
;
padding-top
:
2
0px
;
padding-right
:
50px
;
color
:
#ffffff
;
font-weight
:
700
;
...
...
@@ -26,6 +26,7 @@
}
.home-page
{
position
:
absolute
;
overflow
:
hidden
;
left
:
0
;
right
:
0
;
top
:
0
;
...
...
@@ -41,16 +42,158 @@
height
:
100%
;
}
&
-center
{
margin-top
:
10%
;
width
:
40%
;
height
:
100%
;
background
:
url('../images/home/huxian.png')
no-repeat
;
background-size
:
100%
100%
;
position
:
relative
;
.center-item-1
{
position
:
absolute
;
left
:
60px
;
top
:
20px
;
.center-item-img
{
width
:
192px
;
height
:
192px
;
}
.center-item-title
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
14px
;
text-align
:
center
;
top
:
20px
;
width
:
100px
;
left
:
20px
;
}
.center-item-number
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
16px
;
font-weight
:
700
;
top
:
50px
;
text-align
:
center
;
width
:
100px
;
left
:
20px
;
}
}
.center-item-2
{
position
:
absolute
;
right
:
190px
;
top
:
-20px
;
.center-item-img
{
width
:
192px
;
height
:
192px
;
}
.center-item-title
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
14px
;
text-align
:
center
;
top
:
20px
;
width
:
100px
;
left
:
70px
;
}
.center-item-number
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
16px
;
font-weight
:
700
;
top
:
50px
;
text-align
:
center
;
width
:
100px
;
left
:
70px
;
}
}
.center-item-3
{
position
:
absolute
;
right
:
30px
;
top
:
220px
;
.center-item-img
{
width
:
276px
;
height
:
219px
;
}
.center-item-title
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
14px
;
text-align
:
center
;
top
:
150px
;
width
:
100px
;
left
:
150px
;
}
.center-item-number
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
16px
;
font-weight
:
700
;
top
:
170px
;
text-align
:
center
;
width
:
100px
;
left
:
150px
;
}
}
.center-item-4
{
position
:
absolute
;
left
:
280px
;
top
:
310px
;
.center-item-img
{
width
:
202px
;
height
:
275px
;
}
.center-item-title
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
14px
;
text-align
:
center
;
top
:
210px
;
width
:
100px
;
left
:
80px
;
}
.center-item-number
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
16px
;
font-weight
:
700
;
top
:
230px
;
text-align
:
center
;
width
:
100px
;
left
:
80px
;
}
}
.center-item-5
{
position
:
absolute
;
left
:
60px
;
top
:
260px
;
.center-item-img
{
width
:
202px
;
height
:
275px
;
}
.center-item-title
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
14px
;
text-align
:
center
;
top
:
210px
;
width
:
100px
;
left
:
25px
;
}
.center-item-number
{
position
:
absolute
;
color
:
#3ff4ff
;
font-size
:
16px
;
font-weight
:
700
;
top
:
230px
;
text-align
:
center
;
width
:
100px
;
left
:
25px
;
}
}
}
&
-bottom
{
position
:
absolute
;
bottom
:
0
;
width
:
100%
;
height
:
1
2
0px
;
height
:
1
8
0px
;
background
:
url('../images/home/bottom.png')
no-repeat
;
background-size
:
95%
100%
;
display
:
flex
;
...
...
@@ -60,11 +203,48 @@
display
:
flex
;
flex-wrap
:
wrap
;
margin-right
:
3%
;
align-items
:
center
;
justify-content
:
center
;
.bottom-item
{
flex
:
1
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
}
}
}
.bottom-card
{
width
:
8rem
;
padding
:
0
10px
;
cursor
:
pointer
;
&
:hover
{
animation
:
jump
2s
linear
infinite
;
@keyframes
jump
{
0
%
,
100
%
{
transform
:
translateY
(
20px
);
}
50
%
{
transform
:
translateY
(
-20px
);
}
}
}
&
-img
{
width
:
40px
;
height
:
40px
;
}
&
-title
{
font-size
:
14px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
400
;
text-align
:
center
;
color
:
#ffffff
;
line-height
:
16px
;
}
}
.card-box
{
height
:
3
0
%
;
height
:
3
4
%
;
&
-header
{
width
:
100%
;
height
:
36px
;
...
...
@@ -81,38 +261,62 @@
}
&
-title
{
position
:
absolute
;
font-size
:
18
px
;
font-size
:
20
px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-700
;
font-weight
:
700
;
color
:
#ffffff
;
line-height
:
20px
;
letter-spacing
:
0
.24px
;
left
:
50
px
;
left
:
65
px
;
top
:
0
;
}
&
-title2
{
position
:
absolute
;
font-size
:
18
px
;
font-size
:
20
px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-700
;
font-weight
:
700
;
color
:
#ffffff
;
line-height
:
20px
;
letter-spacing
:
0
.24px
;
right
:
50
px
;
right
:
65
px
;
top
:
0
;
}
&
-body
{
padding
:
5px
20px
;
}
}
.center-back
{
background
:
url('../images/home/huxian.png')
no-repeat
;
background-size
:
100%
100%
;
position
:
absolute
;
left
:
-35px
;
top
:
-30px
;
width
:
821px
;
height
:
673px
;
animation
:
rotate
5s
linear
infinite
;
@keyframes
rotate
{
0
%
{
transform
:
scale
(
1
.1
);
}
50
%
{
transform
:
scale
(
0
.9
);
}
100
%
{
transform
:
scale
(
1
.1
);
}
}
}
.show-card
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-start
;
height
:
5rem
;
height
:
8rem
;
&
-img
{
width
:
8
0px
;
height
:
8
0px
;
width
:
10
0px
;
height
:
10
0px
;
}
&
-body
{
margin-left
:
10px
;
...
...
@@ -120,14 +324,14 @@
align-items
:
flex-start
;
flex-flow
:
column
;
&
-title
{
font-size
:
1
4
px
;
font-size
:
1
8
px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
text-align
:
LEFT
;
color
:
#b4dbfc
;
}
&
-number
{
font-size
:
28px
;
margin-top
:
5px
;
font-size
:
32px
;
font-family
:
'PMZDBTiTiMianFeiBan'
;
font-weight
:
400
;
text-align
:
LEFT
;
...
...
@@ -135,21 +339,3 @@
}
}
}
.bottom-card
{
width
:
14%
;
margin
:
0
1%
;
padding
:
0
10px
;
cursor
:
pointer
;
&
-img
{
width
:
40px
;
height
:
40px
;
}
&
-title
{
font-size
:
14px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
400
;
text-align
:
center
;
color
:
#ffffff
;
line-height
:
16px
;
}
}
src/components/CheckCoiumns/checkInputUpload.vue
View file @
fe53ba58
...
...
@@ -27,6 +27,7 @@
</div>
<el-upload
class=
"upload-demo"
ref=
"fileUpload"
:action=
"uploadImgUrl"
:on-preview=
"handlePreview"
v-model=
"model.file"
...
...
@@ -36,11 +37,16 @@
:limit=
"1"
:on-success=
"handleSuccess"
:on-exceed=
"handleExceed"
:headers=
"headers"
>
<el-button
size=
"small"
:disabled=
"status"
type=
"primary"
>
上传文件
</el-button
>
<div
slot=
"tip"
class=
"el-upload__tip"
></div>
<div
slot=
"tip"
class=
"el-upload__tip"
>
<div
v-if=
"model.path"
>
<el-link
:href=
"model.path"
>
{{
model
.
name
}}
</el-link>
</div>
</div>
</el-upload>
</div>
</
template
>
...
...
@@ -60,7 +66,6 @@ export default {
default
:
false
},
defaultValue
:
{
default
:
''
}
},
...
...
@@ -70,7 +75,11 @@ export default {
value
:
''
,
list
:
[],
file
:
''
,
path
:
''
path
:
''
,
name
:
''
},
headers
:
{
Authorization
:
'Bearer '
+
this
.
$store
.
getters
.
token
},
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
'/common/uploadMinio'
// 上传的图片服务器地址
}
...
...
@@ -92,7 +101,7 @@ export default {
mounted
()
{
if
(
this
.
defaultValue
)
{
this
.
model
=
this
.
defaultValue
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
result
})
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
result
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:
this
.
model
})
}
else
{
this
.
reset
()
...
...
@@ -127,12 +136,13 @@ export default {
console
.
log
(
file
)
},
handleSuccess
(
res
,
file
)
{
if
(
res
===
200
)
{
this
.
model
.
path
=
res
.
url
if
(
res
.
code
===
200
)
{
this
.
model
.
path
=
process
.
env
.
VUE_APP_IMAGE_API
+
res
.
url
this
.
model
.
name
=
res
.
originalFilename
this
.
$refs
.
fileUpload
.
clearFiles
()
this
.
$message
.
success
(
'上传成功'
)
}
else
{
this
.
$message
.
error
(
'error'
)
console
.
log
(
res
,
file
)
}
},
handleExceed
(
files
,
fileList
)
{
...
...
src/components/CheckCoiumns/checkboxUpload.vue
View file @
fe53ba58
<
template
>
<div
class=
"checkbox-upload"
>
<el-checkbox-group
:disabled=
"status"
v-model=
"model.value"
@
change=
"input"
>
<el-checkbox
v-for=
"(i, k) in items.options"
:label=
"i.id"
:key=
"k"
>
{{
i
.
object
}}
<el-checkbox
v-for=
"(i, k) in items.options"
:label=
"i.id"
:key=
"k"
>
{{
i
.
object
}}
</el-checkbox>
</el-checkbox-group>
<el-upload
...
...
@@ -18,13 +14,19 @@
:before-remove=
"beforeRemove"
:show-file-list=
"false"
:limit=
"1"
ref=
"fileUpload"
:on-success=
"handleSuccess"
:on-exceed=
"handleExceed"
:headers=
"headers"
>
<el-button
size=
"small"
:disabled=
"status"
type=
"primary"
>
上传文件
</el-button
>
<div
slot=
"tip"
class=
"el-upload__tip"
></div>
<div
slot=
"tip"
class=
"el-upload__tip"
>
<div
v-if=
"model.path"
>
<el-link
:href=
"model.path"
>
{{
model
.
name
}}
</el-link>
</div>
</div>
</el-upload>
</div>
</
template
>
...
...
@@ -44,7 +46,6 @@ export default {
default
:
false
},
defaultValue
:
{
default
:
''
}
},
...
...
@@ -53,7 +54,11 @@ export default {
model
:
{
value
:
[],
file
:
''
,
path
:
''
path
:
''
,
name
:
''
},
headers
:
{
Authorization
:
'Bearer '
+
this
.
$store
.
getters
.
token
},
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
'/common/uploadMinio'
// 上传的图片服务器地址
}
...
...
@@ -71,7 +76,7 @@ export default {
mounted
()
{
if
(
this
.
defaultValue
)
{
this
.
model
=
this
.
defaultValue
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
value
})
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
value
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:
this
.
result
})
}
else
{
this
.
reset
()
...
...
@@ -81,9 +86,6 @@ export default {
input
()
{
let
arr
=
[]
this
.
items
.
options
.
map
(
i
=>
{
console
.
log
(
this
.
model
.
value
)
console
.
log
(
i
)
if
(
this
.
model
.
value
.
includes
(
i
.
id
))
{
arr
.
push
(
i
.
useCaseNo
)
}
...
...
@@ -99,7 +101,8 @@ export default {
this
.
model
=
{
value
:
[],
file
:
''
,
path
:
''
path
:
''
,
name
:
''
}
},
setDefaultValue
(
val
)
{
...
...
@@ -112,12 +115,13 @@ export default {
console
.
log
(
file
)
},
handleSuccess
(
res
,
file
)
{
if
(
res
===
200
)
{
this
.
model
.
path
=
res
.
url
if
(
res
.
code
===
200
)
{
this
.
model
.
path
=
process
.
env
.
VUE_APP_IMAGE_API
+
res
.
url
this
.
model
.
name
=
res
.
originalFilename
this
.
$refs
.
fileUpload
.
clearFiles
()
this
.
$message
.
success
(
'上传成功'
)
}
else
{
this
.
$message
.
error
(
'error'
)
console
.
log
(
res
,
file
)
}
},
handleExceed
(
files
,
fileList
)
{
...
...
src/components/CheckCoiumns/inputUpload.vue
View file @
fe53ba58
...
...
@@ -14,17 +14,23 @@
:action=
"uploadImgUrl"
:on-preview=
"handlePreview"
v-model=
"model.file"
ref=
"fileUpload"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
:show-file-list=
"false"
:limit=
"1"
:on-success=
"handleSuccess"
:on-exceed=
"handleExceed"
:headers=
"headers"
>
<el-button
size=
"small"
:disabled=
"status"
type=
"primary"
>
上传文件
</el-button
>
<div
slot=
"tip"
class=
"el-upload__tip"
></div>
<div
slot=
"tip"
class=
"el-upload__tip"
>
<div
v-if=
"model.path"
>
<el-link
:href=
"model.path"
>
{{
model
.
name
}}
</el-link>
</div>
</div>
</el-upload>
</div>
</
template
>
...
...
@@ -44,7 +50,6 @@ export default {
default
:
false
},
defaultValue
:
{
default
:
''
}
},
...
...
@@ -53,7 +58,11 @@ export default {
model
:
{
value
:
''
,
file
:
''
,
path
:
''
path
:
''
,
name
:
''
},
headers
:
{
Authorization
:
'Bearer '
+
this
.
$store
.
getters
.
token
},
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
'/common/uploadMinio'
// 上传的图片服务器地址
}
...
...
@@ -65,13 +74,13 @@ export default {
status
(
newVal
)
{
this
.
reset
()
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
[]
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:{}
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:
{}
})
}
},
mounted
()
{
if
(
this
.
defaultValue
)
{
this
.
model
=
this
.
defaultValue
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
result
})
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
this
.
result
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:
this
.
model
})
}
else
{
this
.
reset
()
...
...
@@ -85,8 +94,8 @@ export default {
arr
.
push
(
i
.
useCaseNo
)
})
}
console
.
log
(
arr
)
;
console
.
log
(
arr
)
this
.
$emit
(
'changeVal'
,
{
name
:
this
.
prop
,
val
:
arr
.
join
(
','
)
})
this
.
$emit
(
'makeRecord'
,
{
name
:
this
.
prop
,
record
:
this
.
model
})
},
...
...
@@ -94,7 +103,8 @@ export default {
this
.
model
=
{
value
:
''
,
file
:
''
,
path
:
''
path
:
''
,
name
:
''
}
},
setDefaultValue
(
val
)
{
...
...
@@ -107,12 +117,13 @@ export default {
console
.
log
(
file
)
},
handleSuccess
(
res
,
file
)
{
if
(
res
===
200
)
{
this
.
model
.
path
=
res
.
url
if
(
res
.
code
===
200
)
{
this
.
model
.
path
=
process
.
env
.
VUE_APP_IMAGE_API
+
res
.
url
this
.
model
.
name
=
res
.
originalFilename
this
.
$refs
.
fileUpload
.
clearFiles
()
this
.
$message
.
success
(
'上传成功'
)
}
else
{
this
.
$message
.
error
(
'error'
)
console
.
log
(
res
,
file
)
}
},
handleExceed
(
files
,
fileList
)
{
...
...
src/components/CheckCoiumns/radioUpload.vue
View file @
fe53ba58
...
...
@@ -7,6 +7,7 @@
</el-radio-group>
<el-upload
class=
"upload-demo"
ref=
"fileUpload"
:action=
"uploadImgUrl"
:on-preview=
"handlePreview"
v-model=
"model.file"
...
...
@@ -16,11 +17,16 @@
:limit=
"1"
:on-success=
"handleSuccess"
:on-exceed=
"handleExceed"
:headers=
"headers"
>
<el-button
size=
"small"
:disabled=
"status"
type=
"primary"
>
上传文件
</el-button
>
<div
slot=
"tip"
class=
"el-upload__tip"
></div>
<div
slot=
"tip"
class=
"el-upload__tip"
>
<div
v-if=
"model.path"
>
<el-link
:href=
"model.path"
>
{{
model
.
name
}}
</el-link>
</div>
</div>
</el-upload>
</div>
</
template
>
...
...
@@ -40,7 +46,6 @@ export default {
default
:
false
},
defaultValue
:
{
default
:
''
}
},
...
...
@@ -49,9 +54,12 @@ export default {
model
:
{
value
:
''
,
file
:
''
,
path
:
''
path
:
''
,
name
:
''
},
headers
:
{
Authorization
:
'Bearer '
+
this
.
$store
.
getters
.
token
},
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
'/common/uploadMinio'
// 上传的图片服务器地址
}
},
...
...
@@ -89,7 +97,8 @@ export default {
this
.
model
=
{
value
:
''
,
file
:
''
,
path
:
''
path
:
''
,
name
:
''
}
},
setDefaultValue
(
val
)
{
...
...
@@ -102,12 +111,13 @@ export default {
console
.
log
(
file
)
},
handleSuccess
(
res
,
file
)
{
if
(
res
===
200
)
{
this
.
model
.
path
=
res
.
url
if
(
res
.
code
===
200
)
{
this
.
model
.
path
=
process
.
env
.
VUE_APP_IMAGE_API
+
res
.
url
this
.
model
.
name
=
res
.
originalFilename
this
.
$refs
.
fileUpload
.
clearFiles
()
this
.
$message
.
success
(
'上传成功'
)
}
else
{
this
.
$message
.
error
(
'error'
)
console
.
log
(
res
,
file
)
}
},
handleExceed
(
files
,
fileList
)
{
...
...
src/components/homeComponents/pieChart.vue
View file @
fe53ba58
<
template
>
<div
ref=
"chart"
style=
"width: 100%; height: 10
0%; display: flex
; justify-content: center"
style=
"width: 100%; height: 10
rem; display: flex;margin-top: 2rem
; justify-content: center"
></div>
</
template
>
<
script
>
...
...
@@ -33,9 +33,15 @@ export default {
series
:
[
{
type
:
'liquidFill'
,
name
:
'添加'
,
//data: [0.6, 0.5, 0.4, 0.3],
data
:
[
0.6
,
0.5
,
0.4
,
0.3
],
radius
:
'80%'
,
data
:
[
{
name
:
'添加'
,
value
:
1
}
],
radius
:
'75%'
,
// 水球颜色
color
:
[
'#49d088'
,
'#38b470'
,
'#2aaf66'
],
center
:
[
'15%'
,
'55%'
],
...
...
@@ -52,8 +58,11 @@ export default {
normal
:
{
// textStyle: {
color
:
'#49d088'
,
insideColor
:
'yellow'
,
fontSize
:
24
// insideColor: 'yellow',
formatter
:
e
=>
{
return
'添加
\
n
\
n'
+
e
.
value
.
toFixed
(
2
)
*
100
+
'%'
},
fontSize
:
18
// }
}
},
...
...
@@ -67,8 +76,14 @@ export default {
{
type
:
'liquidFill'
,
//data: [0.6, 0.5, 0.4, 0.3],
data
:
[
0.3
,
0.2
,
0.1
,
0.05
],
radius
:
'80%'
,
data
:
[
{
name
:
'修改'
,
value
:
0
}
],
name
:
'修改'
,
radius
:
'75%'
,
// 水球颜色
color
:
[
'#FE5555'
,
'#F07581'
,
'#FB5E61'
],
center
:
[
'50%'
,
'55%'
],
...
...
@@ -84,10 +99,13 @@ export default {
label
:
{
normal
:
{
textStyle
:
{
color
:
'#FE5555'
,
insideColor
:
'yellow'
,
fontSize
:
24
}
color
:
'#FE5555'
// insideColor: 'yellow',
},
formatter
:
e
=>
{
return
'修改
\
n
\
n'
+
e
.
value
.
toFixed
(
2
)
*
100
+
'%'
},
fontSize
:
18
}
},
// 内图 背景色 边
...
...
@@ -99,9 +117,16 @@ export default {
},
{
type
:
'liquidFill'
,
name
:
'删除'
,
data
:
[
{
name
:
'删除'
,
value
:
0
}
],
//data: [0.6, 0.5, 0.4, 0.3],
data
:
[
0
.1
,
0.05
,
0.25
],
radius
:
'
80
%'
,
data
:
[
0
,
0
,
0
,
0
],
radius
:
'
75
%'
,
// 水球颜色
color
:
[
'#FFBF11'
,
'#F4B30E'
,
'#EACE36'
],
center
:
[
'85%'
,
'55%'
],
...
...
@@ -117,10 +142,13 @@ export default {
label
:
{
normal
:
{
textStyle
:
{
color
:
'#FFBF11'
,
insideColor
:
'yellow'
,
fontSize
:
24
}
color
:
'#FFBF11'
// insideColor: 'yellow',
},
fontSize
:
18
,
formatter
:
e
=>
{
return
'删除
\
n
\
n'
+
e
.
value
.
toFixed
(
2
)
*
100
+
'%'
},
}
},
// 内图 背景色 边
...
...
src/components/homeComponents/planChart.vue
View file @
fe53ba58
...
...
@@ -30,7 +30,7 @@ export default {
// 3.配置数据
const
option
=
{
grid
:
{
top
:
'1
0
%'
,
top
:
'1
5
%'
,
bottom
:
'20%'
,
//也可设置left和right设置距离来控制图表的大小
left
:
'10%'
,
right
:
'10%'
...
...
@@ -65,6 +65,7 @@ export default {
},
yAxis
:
{
type
:
'value'
,
name
:
'(个)'
,
nameTextStyle
:
{
color
:
'#b4dbfc'
},
...
...
@@ -108,7 +109,7 @@ export default {
])
}
},
data
:
[
12
0
,
380
,
248
,
135
,
290
,
280
,
320
,
125
]
data
:
[
12
,
38
,
24
,
13
,
20
,
28
,
32
,
12
]
}
]
}
...
...
src/components/homeComponents/planChart2.vue
0 → 100644
View file @
fe53ba58
<
template
>
<div
class=
"chart-box"
>
<div
ref=
"chart"
style=
"width: 130%; height: 100%; display: flex; justify-content: center"
></div>
<div
class=
"chart-x"
>
● 攻击手段
</div>
<div
class=
"chart-y"
>
攻击方式
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'AverageTest'
,
props
:
{
value
:
{
type
:
Number
,
default
:
20
}
},
data
()
{
return
{
chart
:
null
}
},
mounted
()
{
this
.
init
()
},
methods
:
{
init
()
{
// 2.初始化
this
.
chart
=
this
.
$echarts
.
init
(
this
.
$refs
.
chart
)
this
.
chart
.
setOption
({},
true
)
// 3.配置数据
const
option
=
{
grid
:
{
top
:
'15%'
,
bottom
:
'30%'
,
//也可设置left和right设置距离来控制图表的大小
left
:
'8%'
,
right
:
'2%'
},
xAxis
:
{
data
:
[
'信息
\
n收集'
,
'环境
\
n控制'
,
'初始
\
n访问'
,
'命令
\
n/脚本
\
n执行'
,
'持久
\
n化控
\
n制'
,
'权限
\
n提升'
,
'绕过'
,
'凭证
\
n获取'
,
'信息
\
n发现'
,
'横向
\
n移动'
],
axisLine
:
{
show
:
false
,
//隐藏X轴轴线
lineStyle
:
{
color
:
'#01FCE3'
}
},
axisTick
:
{
show
:
false
//隐藏X轴刻度
},
axisLabel
:
{
show
:
true
,
textStyle
:
{
color
:
'#b4dbfc'
,
fontSize
:
12
//X轴文字颜色,
}
}
},
yAxis
:
{
type
:
'value'
,
name
:
'(个)'
,
nameTextStyle
:
{
color
:
'#b4dbfc'
},
splitLine
:
{
show
:
false
},
axisTick
:
{
show
:
false
},
axisLine
:
{
show
:
false
,
lineStyle
:
{
color
:
'#FFFFFF'
,
fontSize
:
12
}
},
axisLabel
:
{
show
:
true
,
textStyle
:
{
color
:
'#b4dbfc'
}
}
},
series
:
[
{
name
:
'主营业务'
,
type
:
'bar'
,
barWidth
:
15
,
itemStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#00FFE3'
},
{
offset
:
1
,
color
:
'#4693EC'
}
])
}
},
data
:
[
3
,
6
,
6
,
2
,
4
,
5
,
6
,
6
,
10
,
5
]
}
]
}
// 4.传入数据
this
.
chart
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.chart-box
{
position
:
relative
;
height
:
100%
;
.chart-x
{
color
:
#00FFE3
;
position
:
absolute
;
z-index
:
100
;
right
:
10px
;
top
:
5px
;
font-weight
:
bold
;
font-size
:
12px
;
}
.chart-y
{
color
:
#fff
;
font-size
:
12px
;
position
:
absolute
;
z-index
:
100
;
right
:
10px
;
bottom
:
10px
;
font-weight
:
bold
;
}
}
</
style
>
src/components/homeComponents/table.vue
View file @
fe53ba58
...
...
@@ -9,27 +9,28 @@
</tr>
<tr>
<td>
1
</td>
<td>
1
</td>
<td><el-tag
type=
"warning"
effect=
"plain"
>
111
</el-tag></td>
<td>
1
</td>
<td>
0
1
</td>
<td>
2024.09.0
1
</td>
<td><el-tag
type=
"warning"
effect=
"plain"
>
体系审查
</el-tag></td>
<td>
发布第一版,V2024090
1
</td>
</tr>
<tr>
<td>
2
</td>
<td>
2
</td>
<td><el-tag
type=
"
warning"
effect=
"plain"
>
222
</el-tag></td>
<td>
2
</td>
<td>
0
2
</td>
<td>
2
024.09.01
</td>
<td><el-tag
type=
"
danger"
effect=
"plain"
>
车型审查
</el-tag></td>
<td>
发布第一版,v20240901
</td>
</tr>
<tr>
<td>
1
</td>
<td>
1
</td>
<td><el-tag
type=
"
warning"
effect=
"plain"
>
111
</el-tag></td>
<td>
1
</td>
<td>
03
</td>
<td>
2024.09.0
1
</td>
<td><el-tag
type=
"
success"
effect=
"plain"
>
车型检验
</el-tag></td>
<td>
发布第一版,V2024090
1
</td>
</tr>
</table>
<
div
class=
"desc"
>
检验标准:汽车整车信息安全技术要求
</div
>
<
!--
<div
class=
"desc"
>
检验标准:汽车整车信息安全技术要求
</div>
--
>
</div>
</
template
>
<
script
>
...
...
@@ -59,7 +60,7 @@ td {
}
th
,
td
{
padding
:
2
px
;
padding
:
10
px
;
text-align
:
center
;
border-top
:
rgba
(
255
,
255
,
255
,
0
.3
);
border-bottom
:
rgba
(
255
,
255
,
255
,
0
.3
);
...
...
@@ -67,7 +68,10 @@ td {
::v-deep
{
.el-tag--plain
{
background
:
transparent
;
width
:
60px
;
width
:
100px
;
height
:
30px
;
line-height
:
30px
;
font-size
:
14px
;
}
}
.desc
{
...
...
src/components/homeComponents/table2.vue
0 → 100644
View file @
fe53ba58
<
template
>
<div>
<table
class=
"chart-table"
>
<tr>
<th>
名称
</th>
<th>
更新时间
</th>
<th>
检验类型
</th>
<th>
内容详情
</th>
</tr>
<tr>
<td>
01
</td>
<td>
2024.09.01
</td>
<td><el-tag
type=
"warning"
effect=
"plain"
>
体系审查
</el-tag></td>
<td>
发布第一版,V20240901
</td>
</tr>
<tr>
<td>
02
</td>
<td>
2024.09.01
</td>
<td><el-tag
type=
"danger"
effect=
"plain"
>
车型审查
</el-tag></td>
<td>
发布第一版,v20240901
</td>
</tr>
<tr>
<td>
03
</td>
<td>
2024.09.01
</td>
<td><el-tag
type=
"success"
effect=
"plain"
>
车型检验
</el-tag></td>
<td>
发布第一版,V20240901
</td>
</tr>
</table>
<!--
<div
class=
"desc"
>
检验标准:汽车整车信息安全技术要求
</div>
-->
</div>
</
template
>
<
script
>
export
default
{
name
:
'card'
,
props
:
{
title
:
String
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.chart-table
{
width
:
100%
;
border-collapse
:
collapse
;
}
th
{
background
:
#2c89f2
;
color
:
#fff
;
}
td
{
font-size
:
14px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
text-align
:
LEFT
;
color
:
#b4dbfc
;
background
:
rgba
(
44
,
137
,
242
,
0
.15
);
}
th
,
td
{
padding
:
10px
;
text-align
:
center
;
border-top
:
rgba
(
255
,
255
,
255
,
0
.3
);
border-bottom
:
rgba
(
255
,
255
,
255
,
0
.3
);
}
::v-deep
{
.el-tag--plain
{
background
:
transparent
;
width
:
100px
;
height
:
30px
;
line-height
:
30px
;
font-size
:
14px
;
}
}
.desc
{
font-size
:
12px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
text-align
:
center
;
color
:
#ffffff
;
line-height
:
24px
;
margin-top
:
10px
;
}
</
style
>
src/views/index.vue
View file @
fe53ba58
...
...
@@ -37,28 +37,50 @@
</div>
</card>
</div>
<div
class=
"home-page-center"
></div>
<div
class=
"home-page-center"
>
<div
class=
"center-back"
></div>
<div
v-for=
"(item, key) in center"
:key=
"key"
:class=
"'center-item-' + (key + 1)"
>
<el-image
:src=
"item.img"
alt=
""
class=
"center-item-img"
/>
<div
class=
"center-item-title"
>
{{
item
.
title
}}
</div>
<div
class=
"center-item-number"
>
{{
item
.
number
}}
</div>
</div>
</div>
<div
class=
"home-page-other"
>
<cardRight
title=
"
变更检验内容-重点
"
>
<cardRight
title=
"
信息安全变更的检验内容
"
>
<table-chart></table-chart>
</cardRight>
<cardRight
title=
"
检验内容变更方式占比
"
>
<
pieChart></pieChart
>
<cardRight
title=
"
软件升级变更的检验内容
"
>
<
table-chart-2></table-chart-2
>
</cardRight>
<cardRight
title=
"知识库"
>
<cardRight
title=
"
汽车安全场景
知识库"
>
<div
style=
"height: 24vh"
>
<planChart
></planChart
>
<planChart
2></planChart2
>
</div>
</cardRight>
</div>
</div>
<div
class=
"home-page-bottom"
>
<div
class=
"bottom-list"
>
<div
v-for=
"(item, key) in bottom"
:key=
"key"
class=
"bottom-card"
@
click=
"$router.push(item.link)"
>
<div
v-for=
"(item, key) in bottom"
:key=
"key"
class=
"bottom-item"
@
click=
"$router.push(item.link)"
>
<div
class=
"bottom-card"
>
<el-image
:src=
"item.img"
class=
"bottomd-card-img"
/>
<div
class=
"bottom-card-title"
>
{{
item
.
title
}}
</div>
</div>
</div>
</div>
</div>
...
...
@@ -68,8 +90,11 @@
import
card
from
'../components/homeComponents/card.vue'
import
cardRight
from
'../components/homeComponents/cardRight.vue'
import
planChart
from
'../components/homeComponents/planChart.vue'
import
planChart2
from
'../components/homeComponents/planChart2.vue'
import
pieChart
from
'../components/homeComponents/pieChart.vue'
import
table
from
'../components/homeComponents/table.vue'
import
table2
from
'../components/homeComponents/table2.vue'
import
{
mapGetters
}
from
'vuex'
export
default
{
name
:
'HomePage'
,
components
:
{
...
...
@@ -77,90 +102,158 @@ export default {
planChart
,
cardRight
,
pieChart
,
'table-chart'
:
table
planChart2
,
'table-chart'
:
table
,
'table-chart-2'
:
table2
},
data
()
{
return
{
info
:
[
{
title
:
'审查要点(条)'
,
number
:
'
22
'
,
number
:
'
47
'
,
img
:
require
(
'@/assets/images/home/card1.png'
)
},
{
title
:
'审查细则(条)'
,
number
:
'
73
'
,
number
:
'
161
'
,
img
:
require
(
'@/assets/images/home/card2.png'
)
},
{
title
:
'审查场景(条)'
,
number
:
'
22
'
,
number
:
'
121
'
,
img
:
require
(
'@/assets/images/home/card3.png'
)
},
{
title
:
'测试用例(条)'
,
number
:
'
73
'
,
number
:
'
122
'
,
img
:
require
(
'@/assets/images/home/card4.png'
)
}
],
soft
:
[
{
title
:
'审查要点(条)'
,
number
:
'1
42
'
,
number
:
'1
56
'
,
img
:
require
(
'@/assets/images/home/card5.png'
)
},
{
title
:
'审查细则(条)'
,
number
:
'
345
'
,
number
:
'
189
'
,
img
:
require
(
'@/assets/images/home/card6.png'
)
},
{
title
:
'审查场景(条)'
,
number
:
'
545
'
,
number
:
'
266
'
,
img
:
require
(
'@/assets/images/home/card7.png'
)
},
{
title
:
'测试用例(条)'
,
number
:
'
556
'
,
number
:
'
39
'
,
img
:
require
(
'@/assets/images/home/card8.png'
)
}
],
bottom
:
[
{
title
:
'标准文本'
,
link
:
'/setting/standard'
,
link
:
'/setting/standard'
,
img
:
require
(
'@/assets/images/home/bottom1.png'
)
},
{
title
:
'检测要点'
,
link
:
'/setting/standardPoint'
,
img
:
require
(
'@/assets/images/home/bottom2.png'
)
},
{
title
:
'实施细则'
,
link
:
'/setting/standardTerms'
,
img
:
require
(
'@/assets/images/home/bottom3.png'
)
}
],
center
:
[
{
title
:
'数据抓包'
,
number
:
13
,
img
:
require
(
'@/assets/images/home/box1.png'
)
},
{
title
:
'
测试用例
'
,
link
:
'/setting/standardTerms'
,
img
:
require
(
'@/assets/images/home/bo
ttom4
.png'
)
title
:
'
访问控制
'
,
number
:
9
,
img
:
require
(
'@/assets/images/home/bo
x2
.png'
)
},
{
title
:
'检测方案'
,
link
:
'/plan/customized'
,
img
:
require
(
'@/assets/images/home/bottom5.png'
)
title
:
'扫描漏洞'
,
number
:
9
,
img
:
require
(
'@/assets/images/home/box5.png'
)
},
{
title
:
'拒绝服务'
,
number
:
9
,
img
:
require
(
'@/assets/images/home/box4.png'
)
},
{
title
:
'
内容评审
'
,
link
:
'/review/review/createReview'
,
img
:
require
(
'@/assets/images/home/bo
ttom6
.png'
)
title
:
'
非授权访问写入
'
,
number
:
13
,
img
:
require
(
'@/assets/images/home/bo
x3
.png'
)
}
]
}
},
cumputed
:
{
...
mapGetters
([
'roles'
])
},
created
()
{},
mounted
()
{},
mounted
()
{
let
role
=
this
.
$store
.
state
.
user
.
roles
[
0
]
this
.
bottom
.
push
()
switch
(
role
)
{
case
'testing-institution'
:
this
.
bottom
=
this
.
bottom
.
concat
(
{
title
:
'检测方案'
,
link
:
'/plan/customized'
,
img
:
require
(
'@/assets/images/home/bottom5.png'
)
},
{
title
:
'内容评审'
,
link
:
'/review/review/createReview'
,
img
:
require
(
'@/assets/images/home/bottom6.png'
)
}
)
break
case
'government-department'
:
this
.
bottom
=
this
.
bottom
.
concat
({
title
:
'车企档案'
,
link
:
'/basic/archives?view=2'
,
img
:
require
(
'@/assets/images/home/bottom5.png'
)
})
break
case
'standard_change_review'
:
this
.
bottom
=
this
.
bottom
.
concat
(
{
title
:
'我的待审'
,
link
:
'/review/wait'
,
img
:
require
(
'@/assets/images/home/bottom5.png'
)
},
{
title
:
'我的已审'
,
link
:
'/review/already'
,
img
:
require
(
'@/assets/images/home/bottom6.png'
)
}
)
break
case
'admin'
:
this
.
bottom
=
this
.
bottom
.
concat
(
{
title
:
'车企档案'
,
link
:
'/basic/archives?view=2'
,
img
:
require
(
'@/assets/images/home/bottom5.png'
)
},
{
title
:
'权限管理'
,
link
:
'/system/role'
,
img
:
require
(
'@/assets/images/home/bottom6.png'
)
}
)
break
default
:
break
}
},
methods
:
{}
}
</
script
>
src/views/login.vue
View file @
fe53ba58
...
...
@@ -91,8 +91,8 @@ export default {
logoImg
:
logoImg
,
codeUrl
:
''
,
loginForm
:
{
username
:
'
admin
'
,
password
:
'
123456@a
'
,
username
:
''
,
password
:
''
,
rememberMe
:
false
,
code
:
''
,
uuid
:
''
...
...
src/views/plan/customized/detail.vue
View file @
fe53ba58
...
...
@@ -248,14 +248,14 @@ export default {
let
queryParams
=
{
inspectionTtem
:
this
.
inspectionItem
,
inspectionStandardId
:
this
.
task
.
inspectionStandardId
,
inspection
standardName
:
this
.
task
.
inspections
tandardName
,
inspection
StandardName
:
this
.
task
.
inspectionS
tandardName
,
inspectCarCompanyName
:
this
.
task
.
inspectCarCompanyName
,
carModel
:
this
.
task
.
carModel
,
test
organizationName
:
this
.
task
.
testo
rganizationName
,
test
OrganizationName
:
this
.
task
.
testO
rganizationName
,
createTime
:
this
.
task
.
createTime
,
carExperimentRequest
:
{
regulationName
:
this
.
task
.
inspectionStandardName
,
matchUseCases
:
this
.
task
.
useCaseNo
.
split
(
','
)
matchUseCases
:
this
.
task
.
useCaseNo
?
this
.
task
.
useCaseNo
.
split
(
','
):[]
}
}
console
.
log
(
queryParams
)
...
...
src/views/plan/customized/index.vue
View file @
fe53ba58
...
...
@@ -185,12 +185,17 @@ export default {
})
},
async
handleConfirm
()
{
const
res
=
await
this
.
$refs
.
check
.
getValidateVaule
()
this
.
$refs
.
form
.
validate
(
valid
=>
{
this
.
$refs
.
form
.
validate
(
async
valid
=>
{
if
(
valid
)
{
let
form
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
))
if
(
form
.
inspectionItem
.
indexOf
(
'trfis'
)
!==
-
1
){
const
res
=
await
this
.
$refs
.
check
.
getValidateVaule
()
form
.
specifyPlan
=
JSON
.
stringify
(
res
.
record
)
form
.
useCaseNo
=
res
.
codes
}
form
.
inspectionItem
=
form
.
inspectionItem
.
join
(
','
)
add
(
form
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
...
...
src/views/plan/list/index.vue
View file @
fe53ba58
...
...
@@ -45,6 +45,14 @@
></right-toolbar>
</el-form-item> -->
</el-form>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
style=
"margin-bottom: 10px"
@
click=
"handleAdd"
>
定制方案
</el-button
>
<el-table
v-if=
"refreshTable"
v-loading=
"loading"
...
...
@@ -263,7 +271,11 @@ export default {
path
:
'/plan/customized?id='
+
id
})
},
handleAdd
()
{
this
.
$router
.
push
({
path
:
'/plan/customized'
})
},
getComponentSelect
()
{
componentSelect
({
pageNum
:
1
,
...
...
src/views/review/already/index.vue
View file @
fe53ba58
...
...
@@ -34,7 +34,7 @@
clearable
>
<el-option
v-for=
"dict in dict.type.
type
"
v-for=
"dict in dict.type.
cene_type_wait
"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
...
...
@@ -78,14 +78,7 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"评审单编号"
sortable
min-width=
"200"
align=
"left"
prop=
"id"
>
</el-table-column>
<el-table-column
label=
"检验标准"
sortable
...
...
@@ -146,7 +139,8 @@
sortable
min-width=
"200"
align=
"left"
prop=
"innovationBaseResult"
prop=
"decision"
:formatter=
"formatDecision"
></el-table-column>
<el-table-column
label=
"操作"
...
...
@@ -215,7 +209,9 @@
import
page
from
'@/mixins/page'
import
dialog
from
'./components/dialog.vue'
import
{
getDicts
}
from
'../../../api/system/dict/data'
import
{
listInnovationFinsh
}
from
'../../../api/innovation/innovation'
;
import
{
listReviewerFinish
}
from
'@/views/review/already'
;
export
default
{
components
:
{
'yan-dialog'
:
dialog
...
...
@@ -252,7 +248,8 @@ export default {
}
},
reviewTypeList
:[],
typeList
:[]
typeList
:[],
reviewStatusList
:[]
}
},
watch
:
{
...
...
@@ -270,6 +267,7 @@ export default {
gainDictDataList
(){
const
obj
=
'scene_type_wait'
const
obj1
=
'review_type'
const
obj2
=
'system_review_test'
// 获取 review_type 字典数据
getDicts
(
'review_type'
).
then
(
response
=>
{
this
.
reviewTypeList
=
response
.
data
||
[]
...
...
@@ -278,16 +276,45 @@ export default {
// 获取 type 字典数据
getDicts
(
'scene_type_wait'
).
then
(
response
=>
{
this
.
typeList
=
response
.
data
||
[]
})
// 获取 system_review_test 字典数据
getDicts
(
'system_review_test'
).
then
(
response
=>
{
this
.
reviewStatusList
=
response
.
data
||
[]
})
},
formatOperationSort
(
row
,
column
)
{
const
reviewTypeList
=
this
.
reviewTypeList
.
find
(
item
=>
item
.
dictValue
===
row
.
operationSort
)
return
reviewTypeList
?
reviewTypeList
.
dictLabel
:
''
formatOperationSort
(
row
,
column
,
cellValue
)
{
switch
(
cellValue
)
{
case
'ADD_SCENE'
:
return
'+新增审查场景'
;
case
'ADD_DETAILS'
:
return
'+新增审查细则'
;
case
'ADD_KEYPOINT'
:
return
'+新增审查要点'
;
case
'DELETE_SCENE'
:
return
'×删除审查场景'
;
case
'DELETE_DETAILS'
:
return
'×删除审查细则'
;
case
'DELETE_KEYPOINT'
:
return
'×删除审查要点'
;
case
'ADD_USECASE'
:
return
'+新增测试用例'
;
case
'DELETE_USECASE'
:
return
'×删除测试用例'
;
case
'UPDATE_USECASE'
:
return
'修改测试用例'
;
default
:
return
cellValue
}
},
formatType
(
row
,
column
){
const
typeList
=
this
.
typeList
.
find
(
item
=>
item
.
dictValue
===
row
.
type
)
return
typeList
?
typeList
.
dictLabel
:
''
},
formatReviewStatus
(
row
,
column
){
const
reviewStatusList
=
this
.
reviewStatusList
.
find
(
item
=>
item
.
dictValue
===
row
.
decision
)
return
reviewStatusList
?
reviewStatusList
.
dictLabel
:
''
},
/* 关闭移交弹窗-保存*/
handleClose
()
{
this
.
handOverDialog
.
visible
=
false
...
...
@@ -345,10 +372,16 @@ export default {
//打印参数
// console.log(this.queryParams)
// console.log(6666)
list
InnovationFin
sh
(
this
.
queryParams
).
then
(
response
=>
{
list
ReviewerFini
sh
(
this
.
queryParams
).
then
(
response
=>
{
this
.
tableData
=
response
.
rows
}).
catch
(
error
=>
{
console
.
error
(
"Error fetching data:"
,
error
)})
},
formatDecision
(
row
,
column
)
{
if
(
row
.
decision
===
'PASS'
)
{
return
'通过'
}
else
if
(
row
.
decision
===
'REJECT'
)
{
return
'不通过'
}
}
},
/* 重置*/
resetQuery
()
{
this
.
queryParams
.
page
=
1
...
...
@@ -359,9 +392,9 @@ export default {
this
.
handleQuery
()
},
/* 数据字典转换*/
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
/* 标题样式 */
...
...
src/views/review/createReview/deleteReviewDetails/index.vue
View file @
fe53ba58
...
...
@@ -386,6 +386,9 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -414,9 +417,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -526,7 +529,7 @@ export default {
const
aa
=
response
if
(
aa
){
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
});
this
.
$router
.
push
({
path
:
'/
review/createReview
'
});
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/deleteReviewKeypoints/index.vue
View file @
fe53ba58
...
...
@@ -331,6 +331,9 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -359,9 +362,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -472,7 +475,7 @@ export default {
const
aa
=
response
if
(
aa
){
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
});
this
.
$router
.
push
({
path
:
'/
review/createReview
'
});
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/deleteReviewScene/index.vue
View file @
fe53ba58
...
...
@@ -431,6 +431,9 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -459,9 +462,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -555,6 +558,7 @@ export default {
.
then
(
response
=>
{
this
.
receivedScene
=
response
this
.
newResDataAdd
.
newText
=
this
.
receivedScene
.
scene
this
.
newResDataAdd
.
reviewSceneId
=
this
.
receivedScene
.
reviewSceneId
this
.
dialogVisibleScene
=
true
})
.
catch
(
error
=>
{
...
...
@@ -575,13 +579,15 @@ export default {
this
.
newResDataAdd
.
newText
=
this
.
newReviewSceneText
this
.
newResDataAdd
.
remark
=
this
.
newReviewSceneRemark
this
.
newResDataAdd
.
reviewSceneId
=
this
.
selectedSceneSave
.
id
console
.
log
(
this
.
newResDataAdd
,
'提交之前'
)
testInitatereviewAdd
(
this
.
newResDataAdd
)
.
then
(
response
=>
{
const
aa
=
response
if
(
aa
){
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
});
this
.
$router
.
push
({
path
:
'/
review/createReview
'
});
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/deleteUseCase/index.vue
View file @
fe53ba58
...
...
@@ -454,7 +454,7 @@ export default {
const
aa
=
response
if
(
aa
)
{
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
})
this
.
$router
.
push
({
path
:
'/
review/createReview
'
})
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/newReviewDetails/index.vue
View file @
fe53ba58
...
...
@@ -349,6 +349,9 @@
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -377,9 +380,9 @@
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -488,7 +491,7 @@
const
aa
=
response
if
(
aa
){
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
});
this
.
$router
.
push
({
path
:
'/
review/createReview
'
});
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/newReviewKeypoints/index.vue
View file @
fe53ba58
...
...
@@ -318,6 +318,9 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
// 表单提交验证
...
...
@@ -353,9 +356,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -465,7 +468,7 @@ export default {
const
aa
=
response
if
(
aa
)
{
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
})
this
.
$router
.
push
({
path
:
'/
review/createReview
'
})
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/newReviewScene/index.vue
View file @
fe53ba58
...
...
@@ -219,12 +219,26 @@
<el-col
:span=
"18"
>
<el-form-item
label=
""
>
<div
class=
"assessor-text"
>
评审人员:
<div
v-for=
"(reviewer, index) in this.receivedReviewer"
:key=
"index"
style=
"margin-bottom: 10px"
style=
"
margin-bottom: 30px;
display: flex;
position: relative;
flex-flow: row;
"
>
{{ reviewer.dept.deptName }}:{{ reviewer.dept.leader }}
<p
style=
"
display: inline-block;
white-space: normal;
word-wrap: break-word;
"
>
{{ reviewer.nickName }} ({{ reviewer.dept.deptName }})
</p>
</div>
</div>
</el-form-item>
...
...
@@ -315,7 +329,7 @@ export default {
standard
:
''
,
type
:
''
,
keypointId
:
''
,
keypointId
:
''
,
keypoint
:
''
,
detailsId
:
''
,
details
:
''
,
...
...
@@ -396,6 +410,9 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -424,9 +441,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -484,7 +501,7 @@ export default {
this
.
receivedkeypoints
=
response
//keypointId => /review/scene/change/task/getKeyPointList
//keypoint => /review/scene/change/task/getKeyPointList
this
.
newResDataAdd
.
keypointId
=
this
.
receivedkeypoints
.
data
.
keypointId
this
.
newResDataAdd
.
keypoint
=
this
.
receivedkeypoints
.
data
.
keypoint
this
.
dialogVisibleKeypoints
=
true
...
...
@@ -536,7 +553,7 @@ export default {
const
aa
=
response
if
(
aa
)
{
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
})
this
.
$router
.
push
({
path
:
'/
review/createReview
'
})
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/createReview/newUseCase/index.vue
View file @
fe53ba58
...
...
@@ -27,9 +27,7 @@
placeholder=
"车型检验"
@
change=
"handleSelectType(formModel.tiaokuanfenlei)"
>
<el-option
:value =
'车型检验'
/>
<el-option
:value=
"'test'"
/>
</el-select>
</el-form-item>
</el-col>
...
...
@@ -97,7 +95,7 @@
<el-input
v-model=
"formModel.yonglibianhao"
placeholder=
"请输入用例编号"
:autosize=
"{ minRows: 3, maxRows: 6 }"
:autosize=
"{ minRows: 3, maxRows: 6 }"
></el-input>
</el-form-item>
</el-col>
...
...
@@ -105,7 +103,6 @@
<el-col
:span=
"10"
><p></p></el-col>
</el-row>
<el-row>
<el-col
:span=
"3"
><p></p></el-col>
<el-col
:span=
"8"
>
...
...
@@ -179,12 +176,13 @@
<
script
>
import
{
testType
,
testType
Use
,
testKeypoint
,
testDetails
,
testInitatereviewAdd
,
testReviewer
}
from
'@/api/task/test'
import
{
stringify
}
from
'postcss'
;
export
default
{
name
:
'ReviewData'
,
...
...
@@ -204,6 +202,17 @@ export default {
standardId
:
''
,
keypointId
:
''
,
detailsId
:
''
,
newResDataUse
:
{
offset
:
{
offset
:
0
,
limit
:
9999
},
searchFields
:
{
serialNumber
:
''
,
requirements
:
''
}
},
stringifyNewResDataUse
:
''
,
newResData
:
{
pageNum
:
'1'
,
pageSize
:
'10'
,
...
...
@@ -293,7 +302,7 @@ export default {
yonglibianhao
:
''
,
shenchaxize
:
''
,
// shenchachangjing: '',
yonglimiaoshu
:
''
,
yonglimiaoshu
:
''
}
}
},
...
...
@@ -307,7 +316,10 @@ export default {
.
catch
(
error
=>
{
console
.
log
(
'testReviewer方法出错'
,
error
)
})
this
.
newResData
.
type
=
'car'
this
.
newResData
.
type
=
'car'
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
},
methods
:
{
//下拉框 选择检验类型
...
...
@@ -336,9 +348,9 @@ export default {
},
// 选择标准要求弹窗确认
submitRequirement
()
{
this
.
newResData
.
standardNo
=
this
.
pageIndexSec
.
standardNo
this
.
newResData
.
standardId
=
this
.
pageIndexSec
.
id
this
.
newResData
.
name
=
this
.
pageIndexSec
.
name
//
this.newResData.standardNo = this.pageIndexSec.standardNo
//
this.newResData.standardId = this.pageIndexSec.id
//
this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
//operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
...
...
@@ -352,18 +364,10 @@ export default {
},
// 按钮-选择标准要求
handleReSelectRequirements
()
{
// this.newResData.standardNo = this.pageIndexSec.standardNo
// this.newResData.standardId = this.pageIndexSec.id
// this.newResData.name = this.pageIndexSec.name
//根据 inspectStandardId => standard/findStandardList 的id
// inspectStandardNo => standard/findStandardList 的standardNo
// //operationSort => 这个在点击下一步的界面 通过选择新增场景时就已经设置好了 为新增 ADD_SENCE 或删除
// this.newResDataAdd.inspectStandardId = this.pageIndexSec.id
// this.newResDataAdd.inspectStandardNo = this.pageIndexSec.standardNo
// this.newResDataAdd.operationSort = this.pageIndexSec.operationSort
// //这里newResData有type name inspectstandardNo inspectStandardId
this
.
stringifyNewResDataUse
=
JSON
.
stringify
(
this
.
newResDataUse
)
testType
(
this
.
newResData
)
testTypeUse
(
this
.
stringifyNewResDataUse
)
.
then
(
response
=>
{
this
.
receivedRequirements
=
response
...
...
@@ -374,7 +378,7 @@ export default {
this
.
dialogVisible
=
true
})
.
catch
(
error
=>
{
console
.
log
(
'testType方法出错'
,
error
)
console
.
log
(
'testType
Use
方法出错'
,
error
)
})
//弹窗展示ReceivedRequirements内容 并且可以选择更改为哪一条标准要求
},
...
...
@@ -439,11 +443,11 @@ export default {
this
.
newResDataAdd
.
newText
=
this
.
formModel
.
yonglibianhao
this
.
newResDataAdd
.
remark
=
this
.
newReviewSceneRemark
this
.
newResDataAdd
.
usecaseId
=
this
.
formModel
.
yonglibianhao
this
.
newResDataAdd
.
usecaseDescribe
=
this
.
formModel
.
yonglimiaoshu
this
.
newResDataAdd
.
reviewUsecaseId
=
''
this
.
newResDataAdd
.
type
=
'car'
this
.
newResDataAdd
.
usecaseId
=
this
.
formModel
.
yonglibianhao
this
.
newResDataAdd
.
usecaseDescribe
=
this
.
formModel
.
yonglimiaoshu
this
.
newResDataAdd
.
reviewUsecaseId
=
''
this
.
newResDataAdd
.
type
=
'car'
console
.
log
(
this
.
newResDataAdd
,
'提交之前'
)
testInitatereviewAdd
(
this
.
newResDataAdd
)
...
...
@@ -451,7 +455,7 @@ export default {
const
aa
=
response
if
(
aa
)
{
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
})
this
.
$router
.
push
({
path
:
'/
review/createReview
'
})
}
else
{
alert
(
'提交失败'
)
}
...
...
@@ -463,6 +467,10 @@ export default {
//remark => 由填写的时候赋值
// this.newResDataAdd.newText = newText
// this.newResDataAdd.remark = remark
},
//字符串化
stringify
(
obj
)
{
return
JSON
.
stringify
(
obj
)
}
},
watch
:
{
...
...
src/views/review/createReview/updateUseCase/index.vue
View file @
fe53ba58
...
...
@@ -645,7 +645,7 @@ export default {
const
aa
=
response
if
(
aa
)
{
alert
(
'提交成功'
)
this
.
$router
.
push
({
path
:
'/
login
'
})
this
.
$router
.
push
({
path
:
'/
review/createReview
'
})
}
else
{
alert
(
'提交失败'
)
}
...
...
src/views/review/initiatedReview/index.vue
View file @
fe53ba58
...
...
@@ -299,14 +299,29 @@ export default {
return
'×删除审查细则'
;
case
'DELETE_KEYPOINT'
:
return
'×删除审查要点'
;
case
'ADD_USECASE'
:
return
'+新增测试用例'
;
case
'DELETE_USECASE'
:
return
'×删除测试用例'
;
case
'UPDATE_USECASE'
:
return
'修改测试用例'
;
default
:
return
cellValue
}
},
formatType
(
row
,
column
)
{
const
typeList
=
this
.
typeList
.
find
(
item
=>
item
.
dictValue
===
row
.
type
)
return
typeList
?
typeList
.
dictLabel
:
''
formatType
(
row
,
column
,
cellValue
)
{
switch
(
cellValue
){
case
'car'
:
return
'车型审查'
;
case
'system'
:
return
'体系审查'
;
case
'test'
:
return
'车型检验'
;
default
:
return
cellValue
}
},
formatTaskResult
(
row
,
column
,
cellValue
)
{
switch
(
cellValue
)
{
...
...
src/views/review/wait/index.vue
View file @
fe53ba58
...
...
@@ -78,14 +78,7 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"评审单编号"
sortable
min-width=
"200"
align=
"left"
prop=
"id"
>
</el-table-column>
<el-table-column
label=
"检验标准"
sortable
...
...
@@ -301,11 +294,30 @@ export default {
this
.
typeList
=
response
.
data
||
[]
})
},
formatOperationSort
(
row
,
column
)
{
const
reviewTypeList
=
this
.
reviewTypeList
.
find
(
item
=>
item
.
dictValue
===
row
.
operationSort
)
return
reviewTypeList
?
reviewTypeList
.
dictLabel
:
''
formatOperationSort
(
row
,
column
,
cellValue
)
{
switch
(
cellValue
)
{
case
'ADD_SCENE'
:
return
'+新增审查场景'
;
case
'ADD_DETAILS'
:
return
'+新增审查细则'
;
case
'ADD_KEYPOINT'
:
return
'+新增审查要点'
;
case
'DELETE_SCENE'
:
return
'×删除审查场景'
;
case
'DELETE_DETAILS'
:
return
'×删除审查细则'
;
case
'DELETE_KEYPOINT'
:
return
'×删除审查要点'
;
case
'ADD_USECASE'
:
return
'+新增测试用例'
;
case
'DELETE_USECASE'
:
return
'×删除测试用例'
;
case
'UPDATE_USECASE'
:
return
'修改测试用例'
;
default
:
return
cellValue
}
},
formatType
(
row
,
column
)
{
console
.
log
(
'row.type:'
,
row
.
type
);
...
...
src/views/setting/template/index.vue
View file @
fe53ba58
...
...
@@ -95,7 +95,11 @@
:
file
-
list
=
"fileList"
>
<
el
-
button
size
=
"small"
type
=
"primary"
>
更新模板文件
<
/el-button
>
<
div
slot
=
"tip"
class
=
"el-upload__tip"
><
/div
>
<
div
slot
=
"tip"
class
=
"el-upload__tip"
>
<
div
v
-
if
=
"model.path"
>
<
el
-
link
:
href
=
"model.path"
>
{{
model
.
name
}}
<
/el-link
>
<
/div
>
<
/div
>
<
/el-upload
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"检验结论"
prop
=
"conclusion"
>
...
...
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