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
197b2705
Commit
197b2705
authored
Dec 22, 2023
by
小费同学阿
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(init): init
BREAKING CHANGE: init
parent
412e0e2f
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
2238 additions
and
619 deletions
+2238
-619
index.scss
src/assets/styles/index.scss
+2
-1
standard.vue
src/components/Page/standard.vue
+2
-7
task.js
src/router/modules/task.js
+12
-0
index.vue
src/views/processing/review-questionnaire/index.vue
+243
-340
index.vue
src/views/processing/unprocessed-review/index.vue
+8
-8
index.vue
src/views/review/already/index.vue
+227
-101
dialog.vue
src/views/review/wait/components/dialog.vue
+49
-23
index.vue
src/views/review/wait/index.vue
+294
-121
index.vue
src/views/task/detail/index.vue
+2
-0
index.vue
src/views/task/edit/index.vue
+628
-0
index.vue
src/views/task/on/index.vue
+176
-18
index.vue
src/views/task/task-detail/index.vue
+595
-0
No files found.
src/assets/styles/index.scss
View file @
197b2705
...
...
@@ -283,8 +283,9 @@ aside {
.bottom-button
{
display
:
flex
;
width
:
100%
;
align-items
:
center
;
justify-content
:
flex-end
;
justify-content
:
center
;
}
.subtitle
{
...
...
src/components/Page/standard.vue
View file @
197b2705
...
...
@@ -36,28 +36,23 @@ export default {
padding
:
1
.5rem
2rem
;
font-size
:
16px
;
}
.box-card
{
min-height
:
80vh
;
// background-color: #000;
}
.tabList
{
}
.header
{
font-size
:
16px
;
font-weight
:
500
;
}
.page-title
{
padding
:
15px
;
// background-color: #f9f9f9;
// background-color: #999;
width
:
100%
;
padding
:
15px
15px
;
box-shadow
:
0
0
4px
#ccc
;
box-shadow
:
0
0
4px
#cccccc
;
}
::v-deep
{
.el-card__header
{
background-color
:
#f9f9f9
;
...
...
src/router/modules/task.js
View file @
197b2705
...
...
@@ -33,6 +33,18 @@ export default [
component
:
()
=>
import
(
'@/views/task/detail/index'
),
name
:
'任务详情'
,
meta
:
{
title
:
'已归档任务'
,
activeMenu
:
'/task/detail'
}
},
{
path
:
'edit'
,
component
:
()
=>
import
(
'@/views/task/edit/index'
),
name
:
'edit'
,
meta
:
{
title
:
'任务编辑'
,
activeMenu
:
'/task/edit'
}
},
{
path
:
'task-detail'
,
component
:
()
=>
import
(
'@/views/task/task-detail/index'
),
name
:
'task-detail'
,
meta
:
{
title
:
'任务详情'
,
activeMenu
:
'/task/task-detail'
}
}
]
}
...
...
src/views/processing/review-questionnaire/index.vue
View file @
197b2705
This diff is collapsed.
Click to expand it.
src/views/processing/unprocessed-review/index.vue
View file @
197b2705
...
...
@@ -267,13 +267,13 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.card-cell
{
color
:
rgb
(
153
,
153
,
153
);
height
:
80px
;
display
:
flex
;
justify-content
:
space-around
;
align-items
:
flex-start
;
height
:
80px
;
color
:
rgb
(
153
153
153
);
flex-direction
:
column
;
flex-wrap
:
nowrap
;
align-items
:
flex-start
;
justify-content
:
space-around
;
}
.box-card
{
margin-bottom
:
15px
;
...
...
@@ -282,14 +282,14 @@ export default {
display
:
flex
;
justify-content
:
space-between
;
}
::v-deep
.el-link.is-underline
:after
{
content
:
''
;
::v-deep
.el-link.is-underline
::after
{
position
:
absolute
;
left
:
0
;
right
:
0
;
height
:
0
;
bottom
:
0
;
left
:
0
;
height
:
0
;
border-bottom
:
1px
solid
#1890ff
;
content
:
''
;
}
.cell-progress
{
width
:
200px
;
...
...
src/views/review/already/index.vue
View file @
197b2705
<
template
>
<page-standard>
<!--1-抬头标题-->
<div
class=
"title-style"
>
<div
class=
"title-content-style"
>
我的已审
</div>
</div>
<div
class=
"content-display"
>
<el-form
v-show=
"showSearch"
ref=
"queryForm"
...
...
@@ -35,47 +40,82 @@
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
>
重置
</el-button
>
</el-form-item>
</el-form>
<!--
<el-row
:gutter=
"10"
class=
"mb10"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['setting:rules:add']"
>
新增
</el-button>
</el-col>
<right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"loadData"
></right-toolbar>
</el-row>
-->
<el-table
v-if=
"refreshTable"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
border
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:data="tableData
"
:data="tableData1
"
>
<el-table-column
width=
"100"
label=
"序号"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"评审单编号"
sortable
align=
"center"
>
<el-table-column
label=
"评审单编号"
sortable
align=
"center"
prop=
"reviewNo"
>
</el-table-column>
<el-table-column
label=
"场景分类"
sortable
align=
"center"
>
<el-table-column
label=
"评审类型"
sortable
align=
"center"
prop=
"reviewType"
>
</el-table-column>
<el-table-column
label=
"场景内容"
align=
"center"
>
</el-table-column>
<el-table-column
label=
"评审人员"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
scope
?
'xxx(主)、xxx、xxx、xxx、xxx'
:
'xxx(主)、xxx、xxx、xxx、xxx'
}}
</
template
>
<el-table-column
label=
"场景分类"
sortable
align=
"center"
prop=
"sceneCategory"
>
</el-table-column>
<el-table-column
label=
"等待时长"
align=
"center"
>
</el-table-column>
<el-table-column
label=
"发起时间"
align=
"left"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
<el-table-column
label=
"场景内容"
align=
"center"
prop=
"sceneContent"
></el-table-column>
<el-table-column
label=
"评审人员"
align=
"center"
prop=
"reviewer"
>
</el-table-column>
<el-table-column
label=
"等待时长"
sortable
align=
"center"
prop=
"waitingTime"
></el-table-column>
<el-table-column
label=
"发起时间"
sortable
align=
"left"
prop=
"createTime"
></el-table-column>
<el-table-column
label=
"操作"
align=
"left"
...
...
@@ -86,15 +126,14 @@
v-hasPermi=
"['review:already:detail']"
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
plain
@
click=
"handleDetail(scope.row)"
>
查看
</el-button
>
>
查看
</el-button
>
</
template
>
</el-table-column>
</el-table>
<!--分页-->
<pagination
v-show=
"total > 0"
:total=
"total"
...
...
@@ -103,12 +142,14 @@
@
pagination=
"loadData"
>
</pagination>
</div>
<yan-dialog
:dialog-manger=
"dialogManger"
></yan-dialog>
</page-standard>
</template>
<
script
>
import
page
from
'@/mixins/page'
import
dialog
from
'./components/dialog.vue'
export
default
{
components
:
{
'yan-dialog'
:
dialog
...
...
@@ -117,9 +158,64 @@ export default {
dicts
:
[
'sys_scene_type'
],
data
()
{
return
{
tableData1
:
[
{
reviewNo
:
'20231209001'
,
reviewType
:
'新增场景'
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'制度发布会音频文件'
,
reviewer
:
'赵晓东,盖献康,刘佳'
,
waitingTime
:
'1天12小时'
,
createTime
:
'2023-11-24 10:14:08'
},
{
reviewNo
:
'20231209002'
,
reviewType
:
'新增场景'
,
sceneCategory
:
'体系审查'
,
sceneContent
:
'TBOX-蜂窝以太网接口'
,
reviewer
:
'赵晓东,尚志伟,闫嘉旭'
,
waitingTime
:
'1天13小时'
,
createTime
:
'2023-11-22 13:56:34'
},
{
reviewNo
:
'20231209003'
,
reviewType
:
'修改场景'
,
sceneCategory
:
'体系审查'
,
sceneContent
:
'TBOX-车辆定位系统'
,
reviewer
:
'周朋,李宇涵,李亚涛'
,
waitingTime
:
'2天1小时'
,
createTime
:
'2023-11-13 17:26:54'
},
{
reviewNo
:
'20231209004'
,
reviewType
:
'修改场景'
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'发布会车辆制动相关样品'
,
reviewer
:
'张鹏伟,李旭,张鑫'
,
waitingTime
:
'2天1小时'
,
createTime
:
'2023-11-12 14:43:22'
},
{
reviewNo
:
'20231209005'
,
reviewType
:
'删除场景'
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'保障智能网联汽车时空数据存储文件'
,
reviewer
:
'孟同伟,孙钊涵,邵亮'
,
waitingTime
:
'3天3小时'
,
createTime
:
'2023-11-06 12:45:23'
},
{
reviewNo
:
'20231209001'
,
reviewType
:
'删除场景'
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'智能网联汽车的访问控制-加密操作硬件'
,
reviewer
:
'李旭,孟同伟,张鑫'
,
waitingTime
:
'5天5小时'
,
createTime
:
'2023-11-02 08:12:56'
}
],
listUrl
:
'/system/role/list'
,
showSearch
:
true
,
tableData
:
[],
dialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
...
...
@@ -141,9 +237,39 @@ export default {
},
handleCancel
()
{
// const aaa = []
this
.
visible
=
false
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
/* 标题样式 */
.title-style
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
padding-right
:
2rem
;
width
:
100%
;
height
:
3
.5rem
;
background-color
:
#f9f9f9
;
}
/* 标题文字样式 */
.title-content-style
{
margin-left
:
1
.5rem
;
font-size
:
1rem
;
font-weight
:
bold
;
color
:
#666666
;
}
::v-deep
.el-card__body
{
padding
:
unset
!
important
;
}
/* 主体内容样式 */
.content-display
{
display
:
flex
;
padding
:
1
.5rem
2rem
2rem
;
width
:
100%
;
flex-direction
:
column
;
}
</
style
>
src/views/review/wait/components/dialog.vue
View file @
197b2705
...
...
@@ -8,11 +8,11 @@
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"细则分类"
prop=
"
status
"
>
<el-form-item
label=
"细则分类"
prop=
"
fenlei
"
>
<el-select
v-model=
"model.
status
"
v-model=
"model.
fenlei
"
style=
"width: 100%"
placeholder=
"请选择"
placeholder=
"请选择
细则分类
"
clearable
>
<el-option
...
...
@@ -23,47 +23,51 @@
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准章节"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
clearable
/>
<el-form-item
label=
"标准章节"
prop=
"zhangjie"
>
<el-input
v-model=
"model.zhangjie"
placeholder=
"请输入标准章节"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"
status
"
>
<el-form-item
label=
"标准要求"
prop=
"
yaoqiu
"
>
<el-input
v-model=
"model.
status
"
placeholder=
"请输入"
v-model=
"model.
yaoqiu
"
placeholder=
"请输入
标准要求
"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"审查要点"
prop=
"
status
"
>
<el-form-item
label=
"审查要点"
prop=
"
yaodian
"
>
<el-input
v-model=
"model.
status
"
placeholder=
"请输入"
v-model=
"model.
yaodian
"
placeholder=
"请输入
审查要点
"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"审查细则"
prop=
"
status
"
>
<el-form-item
label=
"审查细则"
prop=
"
xize
"
>
<el-input
v-model=
"model.
status
"
placeholder=
"请输入"
v-model=
"model.
xize
"
placeholder=
"请输入
审查细则
"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"关联场景"
prop=
"
status
"
>
<el-button>
选择场景
</el-button>
<el-form-item
label=
"关联场景"
prop=
"
changjing
"
>
<el-button>
选择场景
</el-button>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</
template
>
...
...
@@ -82,11 +86,23 @@ export default {
return
{
model
:
{},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
fenlei
:
[
{
required
:
true
,
message
:
'细则分类不能为空'
,
trigger
:
'blur'
}
],
zhangjie
:
[
{
required
:
true
,
message
:
'标准章节不能为空'
,
trigger
:
'blur'
}
],
yaoqiu
:
[
{
required
:
true
,
message
:
'标准要求不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
yaodian
:
[
{
required
:
true
,
message
:
'审查要点不能为空'
,
trigger
:
'blur'
}
],
xize
:
[
{
required
:
true
,
message
:
'审查细则不能为空'
,
trigger
:
'blur'
}
],
changjing
:
[
{
required
:
true
,
message
:
'关联场景不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
}
...
...
@@ -105,7 +121,17 @@ export default {
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
valid
)
this
.
$confirm
(
'确认提交吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
// 确认提交的逻辑
})
.
catch
(()
=>
{
// 取消提交的逻辑
})
}
})
}
...
...
src/views/review/wait/index.vue
View file @
197b2705
This diff is collapsed.
Click to expand it.
src/views/task/detail/index.vue
View file @
197b2705
...
...
@@ -236,10 +236,12 @@
</page-standard>
</template>
<
script
>
import
image
from
'@/assets/images/login-background.jpg'
export
default
{
data
()
{
return
{
formType
:
1
,
image
,
model
:
{},
loading
:
false
,
tableData
:
[],
...
...
src/views/task/edit/index.vue
0 → 100644
View file @
197b2705
This diff is collapsed.
Click to expand it.
src/views/task/on/index.vue
View file @
197b2705
<
template
>
<page-standard>
<div
slot=
"tab"
>
<div
class=
"mb10"
>
<el-radio-group
v-model=
"taskType"
>
<el-radio-button
label=
"0"
>
体系审查
</el-radio-button>
<el-radio-button
label=
"1"
>
车型测评
</el-radio-button>
<el-radio-group
v-model=
"queryParams.status"
@
change=
"handleQuery()"
>
<el-radio-button
:label=
"0"
>
全部任务
</el-radio-button>
<el-radio-button
v-for=
"dict in dict.type.sys_task_status"
:key=
"dict.value"
:label=
"dict.value"
>
{{
dict
.
label
}}
</el-radio-button>
</el-radio-group>
</div>
<el-form
v-show=
"showSearch"
ref=
"queryForm"
:model=
"queryParams"
size=
"small"
:inline=
"true"
>
<el-form-item
label=
"部门名称"
prop=
"deptName"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"请输入部门名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"请输入部门名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-table
v-if=
"refreshTable"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
border
:data=
"tableData"
>
<el-table-column
width=
"100"
label=
"序号"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"开始时间"
align=
"left"
prop=
"createTime"
>
<
template
slot-scope=
"{ row }"
>
<span>
{{
parseTime
(
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"任务名称"
align=
"left"
prop=
"createTime"
/>
<el-table-column
label=
"任务组长"
align=
"left"
prop=
"createTime"
/>
<el-table-column
label=
"任务状态"
align=
"left"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<div
class=
"task-status"
@
click=
"handleNotStarted(scope)"
>
<div
class=
"t0"
>
<div>
● 未开始
</div>
</div>
<systemReview
v-if=
"taskType === '0'"
/>
<vehicleModelEvaluation
v-if=
"taskType === '1'"
/>
<div
class=
"t1"
>
<div>
● 进行中
</div>
</div>
<div
class=
"t2"
>
<div>
● 暂停
</div>
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"紧要程度"
align=
"left"
prop=
"createTime"
>
<
template
>
紧急
</
template
>
</el-table-column>
<el-table-column
label=
"审查问卷"
align=
"left"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"(scope.$index + 1) % 2 == 0"
class=
"task-status"
>
<div>
<div
@
click=
"handleCheckQuestionnaire"
>
确定结果
</div>
</div>
</div>
<div
v-else-if=
"(scope.$index + 1) % 2 == 1"
>
<a
@
click=
"handleWriteQuestionnaire(scope)"
>
填写问卷
</a>
</div>
<div
v-else
>
<a>
查看问卷
</a>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"完成进度"
width=
"200"
align=
"left"
prop=
"createTime"
>
<
template
slot-scope=
"{ row }"
>
<el-progress
:percentage=
"50"
@
click=
"handleProgress(row)"
></el-progress>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
width=
"120"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"{ row }"
>
<div
class=
"button-list"
>
<div
class=
"button-item b1"
@
click=
"handleCeshi(row)"
>
<i
class=
"iconfont icon-kaishi"
></i>
</div>
<div
class=
"button-item b2"
>
<i
class=
"iconfont icon-fenxiang"
></i>
</div>
<div
class=
"button-item b3"
>
<i
class=
"iconfont icon-feiji"
></i>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
/>
</page-standard>
</template>
<
script
>
import
systemReview
from
'./components/systemReview
'
import
vehicleModelEvaluation
from
'./components/vehicleModelEvaluation
'
import
page
from
'@/mixins/page
'
import
{
parseTime
}
from
'../../../utils/ruoyi
'
export
default
{
name
:
'Index'
,
components
:
{
systemReview
,
vehicleModelEvaluation
},
mixins
:
[
page
],
dicts
:
[
'sys_task_status'
],
data
()
{
return
{
taskType
:
'0'
listUrl
:
'/system/role/list'
,
showSearch
:
true
,
tableData
:
[],
queryParams
:
{
status
:
0
}
}
},
methods
:
{}
methods
:
{
parseTime
,
/* 跳转到任务详情*/
handleDetail
()
{
this
.
$router
.
push
({
path
:
'/task/task-detail'
})
},
handleAdd
()
{},
handleDelete
()
{},
handleUpdate
()
{},
// 点击填写问卷按钮回调函数
handleWriteQuestionnaire
(
scope
)
{
this
.
$router
.
push
({
path
:
'/task/questionnaire'
})
},
// 点击确认审查结果
handleCheckQuestionnaire
()
{
this
.
$router
.
push
({
path
:
'/task/confirm-result'
})
},
handleCeshi
(
row
)
{},
handleProgress
(
row
)
{},
handleNotStarted
(
scope
)
{}
}
}
</
script
>
src/views/task/task-detail/index.vue
0 → 100644
View file @
197b2705
This diff is collapsed.
Click to expand it.
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