Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
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
中汽测评-信息安全测评系统
web
Commits
1968a4cd
Commit
1968a4cd
authored
Mar 13, 2024
by
mzx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(任务处理): 确认试验方案
parent
ebd08657
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
437 additions
and
0 deletions
+437
-0
index.vue
src/views/task/testReview/confirmation-test/index.vue
+431
-0
index.vue
src/views/task/testReview/review-form/index.vue
+6
-0
No files found.
src/views/task/testReview/confirmation-test/index.vue
0 → 100644
View file @
1968a4cd
<
template
>
<!--查看审查问卷页面-->
<task-standard
v-loading=
"loading"
>
<div
slot=
"header-right"
>
<header-button
icon=
"arrow-left"
type=
"no-line"
@
click=
"goBack"
>
返回
</header-button>
</div>
<!--2-统计值-->
<div
class=
"main-content-style"
>
<!--任务编号,名称,单位-->
<div
class=
"task-box"
>
<div
class=
"task-header"
>
<div
class=
"task-item"
>
<span
class=
"task-label"
>
任务编号:
</span>
<span
class=
"task-content"
>
{{
model
.
carReviewTask
.
taskNo
}}
</span>
</div>
<div
class=
"task-item"
>
<span
class=
"task-label"
>
任务名称:
</span>
<span
class=
"task-content"
>
{{
task
.
taskName
}}
</span>
</div>
<div
class=
"task-item"
>
<span
class=
"task-label"
>
委托单位:
</span>
<span
class=
"task-content"
>
{{
task
.
entrustedUnit
}}
</span>
</div>
<div
class=
"task-item"
>
<span
class=
"task-label"
>
任务状态:
</span>
<span
class=
"task-content"
>
{{
getDictData
(
dict
.
type
.
test_cartype_type
,
model
.
carReviewTask
.
taskStatus
)
}}
</span>
</div>
</div>
<div
class=
"task-body"
>
<!--card统计值-->
<div
class=
"message-list"
>
<div
class=
"message-box"
style=
"background-color: #2eba3c"
>
<div
class=
"message-detail"
>
<div
class=
"detail-title"
>
审查细则(条)
</div>
<div
class=
"detail-num mt10"
>
{{
model
.
carReviewTask
.
details
}}
</div>
</div>
<svg-icon
class=
"message-icon"
width=
"64px"
height=
"64px"
icon-class=
"tag_shechaxize"
></svg-icon>
</div>
<div
class=
"message-box"
style=
"background-color: #477bba"
>
<div
class=
"message-detail"
>
<div
class=
"detail-title"
>
审查细则符合率(%)
</div>
<div
class=
"detail-num mt10"
>
{{
model
.
carReviewTask
.
detailsPass
}}
%
</div>
</div>
<svg-icon
class=
"message-icon"
width=
"64px"
height=
"64px"
icon-class=
"tag_fuhelv"
></svg-icon>
</div>
<div
class=
"message-box"
style=
"background-color: #eca740"
>
<div
class=
"message-detail"
>
<div
class=
"detail-title"
>
标准条款(条)
</div>
<div
class=
"detail-num mt10"
>
{{
model
.
carReviewTask
.
standards
}}
</div>
</div>
<svg-icon
class=
"message-icon"
width=
"64px"
height=
"64px"
icon-class=
"tag_biaozhuntiaokuan"
></svg-icon>
</div>
<div
class=
"message-box"
style=
"background-color: #47baba"
>
<div
class=
"message-detail"
>
<div
class=
"detail-title"
>
标准条款通过率
</div>
<div
class=
"detail-num mt10"
>
{{
model
.
carReviewTask
.
standardsPass
}}
%
</div>
</div>
<svg-icon
class=
"message-icon"
width=
"64px"
height=
"64px"
icon-class=
"tag_biaozhuntiaokuan"
></svg-icon>
</div>
<div
class=
"message-box"
style=
"background-color: #6c47ba"
>
<div
class=
"message-detail"
>
<div
class=
"detail-title"
>
参与审查人数(人)
</div>
<div
class=
"detail-num mt10"
>
{{
model
.
carReviewTask
.
person
}}
</div>
</div>
<svg-icon
class=
"message-icon"
icon-class=
"tag_shenehrenshu"
width=
"64px"
height=
"64px"
></svg-icon>
</div>
</div>
</div>
</div>
<!--审查表单概要-->
<div>
<div
class=
"form-review-questionnaire"
>
<div
class=
"title-display"
>
<span
class=
"title-i"
></span>
<span
class=
"title-content"
>
审查表单概要
</span>
<div
class=
"control-btns"
>
<div
class=
"control-btn"
@
click=
"openAll()"
>
<icon-park
type=
"down-c"
theme=
"outline"
size=
"16"
style=
"margin-right: 5px"
fill=
"#303133"
/>
全部展开
</div>
<div
class=
"control-btn"
@
click=
"closeAll()"
>
<icon-park
type=
"up-c"
theme=
"outline"
size=
"16"
style=
"margin-right: 5px"
fill=
"#303133"
/>
全部收起
</div>
</div>
</div>
<!--审查表单概要-->
<collapse
v-model=
"activeNames"
class=
"mt10"
>
<collapse-item
v-for=
"(item, key) in model.carReviewTask.standard"
:key=
"key"
:name=
"item.chapter"
>
<span
slot=
"title"
style=
"width: 100%"
>
<div
class=
"standard-box"
>
<div
class=
"standard-left"
>
<div
class=
"standard"
>
标准:
</div>
<div
class=
"standard-title"
>
{{
item
.
chapter
+
item
.
text
}}
</div>
</div>
<div
class=
"standard-result"
>
审查结果:
<span
v-if=
"item.passed == 1"
class=
"green"
>
符合
</span>
<span
v-else
class=
"orange"
>
不符合
</span>
</div>
</div>
</span>
<table
class=
"table"
>
<tr>
<th>
审查要点
</th>
<th>
审查细则
</th>
<th
class=
"investigate-result"
>
审查结果
</th>
<th
class=
"written-by"
>
填写人
</th>
</tr>
<template
v-for=
"(keyPoint, keyPointKey) in item.keyPointList"
>
<tr
:key=
"keyPointKey"
>
<td
:rowspan=
"keyPoint.reviewDetailsList.length + 1"
>
{{
keyPoint
.
text
}}
</td>
</tr>
<template
v-for=
"(
reviewDetail, reviewDetailKey
) in keyPoint.reviewDetailsList"
>
<tr
:key=
"reviewDetailKey"
>
<td
align=
"center"
>
{{
reviewDetail
.
text
}}
</td>
<td
align=
"center"
class=
"investigate-result"
>
<el-tag
v-if=
"reviewDetail.result.passed === 1"
size=
"medium"
type=
"success"
>
符合
</el-tag
>
<el-tag
v-if=
"reviewDetail.result.passed === 0"
size=
"medium"
type=
"danger"
>
不符合
</el-tag
>
</td>
<td
align=
"center"
class=
"written-by"
>
{{
reviewDetail
.
result
?
reviewDetail
.
result
.
userName
?
reviewDetail
.
result
.
userName
:
'__'
:
'__'
}}
</td>
</tr>
</
template
>
</template>
</table>
</collapse-item>
</collapse>
</div>
<!--签字确认-->
<div
class=
"form-signature-confirmation"
>
<div
class=
"title-display"
>
<span
class=
"title-i"
></span>
<span
class=
"title-content"
>
签字确认
</span>
</div>
<div
class=
"img-display"
>
<div
class=
"img-item"
>
<div
class=
"img-label label-required"
>
检验负责人
</div>
<img
v-if=
"ruleForm.inspectionLeader"
class=
"img"
:src=
"ruleForm.inspectionLeader"
/>
<div
v-else
class=
"img"
>
<iconpark-icon
name=
"wuqianzi"
size=
"120"
></iconpark-icon>
<div
class=
"img-text"
>
暂无签字
</div>
</div>
</div>
</div>
</div>
<!--返回按钮-->
<div
class=
"bottom-btn"
>
<footer-button
type=
"default"
icon=
"arrow-left"
@
click=
"$router.go(-1)"
>
返回
</footer-button>
<footer-button
type=
"primary"
icon=
"hard-disk-one"
@
click=
"goToProcessedReview"
>
确认提交
</footer-button>
</div>
</div>
</div>
</task-standard>
</template>
<!--js逻辑-->
<
script
>
import
{
checkTaskDetail
,
carTaskSubmit
,
getBySubtaskId
}
from
'@/api/task/task'
import
collapse
from
'@/components/Collapse/collapse'
import
collapseItem
from
'@/components/Collapse/collapse-item'
import
routerMixins
from
'@/mixins/router'
export
default
{
components
:
{
collapse
:
collapse
,
'collapse-item'
:
collapseItem
},
dicts
:
[
'test_cartype_type'
],
mixins
:
[
routerMixins
],
data
()
{
return
{
isShow
:
true
,
task
:
{},
auditRequirement
:
0
,
testScenarioList
:
[
{
value
:
0
,
label
:
'TBOX-蜂窝以太网接口'
,
check
:
false
},
{
value
:
1
,
label
:
'WiFi AP接口'
,
check
:
false
},
{
value
:
2
,
label
:
'WiFi Client接口'
,
check
:
false
},
{
value
:
3
,
label
:
'充电以太网接口'
,
check
:
false
},
{
value
:
4
,
label
:
'CAN 诊断接口(OBD)'
,
check
:
false
},
{
value
:
5
,
label
:
'以太网诊断接口(OBD)'
,
check
:
false
},
{
value
:
6
,
label
:
'车载摄像头以太网接口(无线)'
,
check
:
false
},
{
value
:
7
,
label
:
'第三方应用软件'
,
check
:
false
},
{
value
:
8
,
label
:
'远程控车应用'
,
check
:
false
},
{
value
:
9
,
label
:
'USB接口'
,
check
:
false
},
{
value
:
10
,
label
:
'XCB标定'
,
check
:
false
},
{
value
:
11
,
label
:
'CCP标定'
,
check
:
false
},
{
value
:
12
,
label
:
'安全启动'
,
check
:
false
},
{
value
:
13
,
label
:
'远程控车'
,
check
:
false
},
{
value
:
14
,
label
:
'V2X'
,
check
:
false
},
{
value
:
15
,
label
:
'BT'
,
check
:
false
},
{
value
:
16
,
label
:
'BLE'
,
check
:
false
},
{
value
:
17
,
label
:
'NFC'
,
check
:
false
},
{
value
:
18
,
label
:
'射频钥匙'
,
check
:
false
},
{
value
:
19
,
label
:
'软件升级'
,
check
:
false
},
{
value
:
20
,
label
:
'ECU固体'
,
check
:
false
}
],
checkTestScenarioList
:
[],
model
:
{
carReviewTask
:
{},
reviewSceneChangeTasks
:
{},
detailsList
:
[]
},
columns
:
[],
ruleForm
:
{
enterpriseLeader
:
''
,
inspectionLeader
:
''
,
result
:
[]
},
activeNames
:
[],
rules
:
{
enterpriseLeader
:
[
{
required
:
true
,
message
:
'请输入车企负责人'
,
trigger
:
'blur'
}
],
inspectionLeader
:
[
{
required
:
true
,
message
:
'请输入检验负责人'
,
trigger
:
'blur'
}
]
},
taskId
:
''
,
loading
:
false
}
},
// async mounted() {
// if (this.$route.query.id) {
// this.taskId = this.$route.query.id
// }
// await this.getTask()
// this.openAll()
// },
methods
:
{
/**
* 获取任务详情
*/
async
getTask
()
{
this
.
loading
=
true
const
res
=
await
checkTaskDetail
({
taskId
:
this
.
taskId
})
this
.
loading
=
false
if
(
res
.
code
===
200
)
{
this
.
model
=
res
.
data
await
this
.
getTaskDetail
()
if
(
this
.
model
.
carReviewTask
.
imagesUrl
)
{
const
imgs
=
this
.
model
.
carReviewTask
.
imagesUrl
.
split
(
','
)
this
.
ruleForm
.
enterpriseLeader
?
process
.
env
.
VUE_APP_IMAGE_API
+
imgs
[
0
]
:
''
this
.
ruleForm
.
inspectionLeader
?
process
.
env
.
VUE_APP_IMAGE_API
+
imgs
[
1
]
:
''
}
}
else
{
this
.
$modal
.
msgError
(
res
.
msg
)
}
},
/**
* 获取任务详情
*/
async
getTaskDetail
()
{
const
result
=
await
getBySubtaskId
({
id
:
this
.
taskId
})
if
(
result
.
code
===
200
)
{
this
.
task
=
result
.
data
}
},
/* 返回跳转*/
goToProcessedReview
()
{
// if (!this.ruleForm.enterpriseLeader) {
// this.$message.error('请车企负责人签字')
// return
// }
// if (!this.ruleForm.inspectionLeader) {
// this.$message.error('请检验负责人签字')
// return
// }
this
.
ruleForm
.
taskId
=
this
.
taskId
const
formData
=
{
imagesUrl
:
[
this
.
ruleForm
.
enterpriseLeader
,
this
.
ruleForm
.
inspectionLeader
],
taskId
:
this
.
taskId
}
carTaskSubmit
(
formData
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
$modal
.
msgSuccess
(
'确认提交成功'
)
this
.
$router
.
push
({
path
:
'/processing/unprocessed-review'
})
}
else
{
this
.
$modal
.
msgError
(
res
.
msg
)
}
})
},
handleTestScenario
(
item
)
{
// 查看item.value在this.checkTestScenarioList里面存不存在
// 存在则删除
if
(
this
.
checkTestScenarioList
.
includes
(
item
.
value
))
{
this
.
checkTestScenarioList
.
splice
(
this
.
checkTestScenarioList
.
indexOf
(
item
.
label
),
1
)
item
.
check
=
false
}
else
{
item
.
check
=
true
this
.
checkTestScenarioList
.
push
(
item
.
value
)
}
console
.
log
(
'李斯特'
,
this
.
checkTestScenarioList
)
},
openAll
()
{
this
.
activeNames
=
this
.
model
.
carReviewTask
.
standard
.
map
(
i
=>
{
return
i
.
chapter
})
},
closeAll
()
{
this
.
activeNames
=
[]
}
}
}
</
script
>
src/views/task/testReview/review-form/index.vue
View file @
1968a4cd
...
...
@@ -156,6 +156,7 @@ export default {
dicts
:
[
'task_test_status'
],
data
()
{
return
{
tableData
:
[],
model
:
{
systemReviewTask
:
{},
reviewSceneChangeTasks
:
{},
...
...
@@ -207,3 +208,8 @@ export default {
}
}
</
script
>
<
style
scoped
>
.table
th
{
background-color
:
#f2f2f2
!important
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment