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
333e64c3
Commit
333e64c3
authored
Dec 14, 2023
by
jiaxu.yan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善评审模块
parent
231755e4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
577 additions
and
183 deletions
+577
-183
index.html
public/index.html
+1
-0
index.vue
src/components/MessageItem/index.vue
+69
-0
index.vue
src/components/TalkItem/index.vue
+92
-0
main.js
src/main.js
+3
-0
index.vue
src/views/review/already/index.vue
+129
-90
index.vue
src/views/review/sceneReview/index.vue
+157
-0
index.vue
src/views/review/view/index.vue
+87
-76
index.vue
src/views/review/wait/index.vue
+39
-17
No files found.
public/index.html
View file @
333e64c3
...
...
@@ -6,6 +6,7 @@
<meta
name=
"renderer"
content=
"webkit"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>favicon.ico"
>
<!-- <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet"> -->
<title><
%=
webpackConfig
.
name
%
></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
...
...
src/components/MessageItem/index.vue
0 → 100644
View file @
333e64c3
<
template
>
<div
class=
"message-box mt5"
>
<el-avatar
:size=
"40"
:src=
"circleUrl"
></el-avatar>
<div
class=
"message-detail"
>
<div
class=
"user-info mb5"
>
<el-tooltip
class=
"item"
effect=
"light"
content=
"英敏长英敏长英敏长英敏长英敏长"
placement=
"top-start"
>
<div
class=
"user-name"
>
英敏长英敏长英敏长英敏长英敏长
</div>
</el-tooltip>
<div
class=
"user-time"
>
<i
class=
"el-icon-time"
></i>
<span>
{{
parseTime
(
new
Date
())
}}
</span>
</div>
</div>
<div
class=
"message-result mb5"
>
评审意见:不通过
</div>
<div
class=
"message-reason mb5"
>
理由:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
circleUrl
:
"https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
,
};
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.message-box
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
flex-start
;
font-size
:
12px
;
box-shadow
:
0px
0px
5px
rgba
(
0
,
0
,
0
,
0
.09803921568627451
);
background-color
:
rgba
(
255
,
255
,
255
,
1
);
padding
:
10px
15px
;
border-radius
:
10px
;
.message-detail
{
margin-left
:
10px
;
.user-info
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
center
;
.user-name
{
width
:
100px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.user-time
{
margin-left
:
10px
;
span
{
color
:
#999999
;
}
}
}
}
}
</
style
>
src/components/TalkItem/index.vue
0 → 100644
View file @
333e64c3
<
template
>
<div
class=
"message-box mt5"
>
<el-avatar
:size=
"40"
:src=
"circleUrl"
></el-avatar>
<div
class=
"message-detail"
>
<div
class=
"user-info mb5"
>
<el-tooltip
class=
"item"
effect=
"light"
content=
"英敏长英敏长英敏长英敏长英敏长"
placement=
"top-start"
>
<div
class=
"user-name"
>
英敏长英敏长英敏长英敏长英敏长
</div>
</el-tooltip>
<div
class=
"user-back"
v-if=
"back"
>
: 回复 @ 英敏长
</div>
<div
v-else
class=
"user-time"
>
<i
class=
"el-icon-time"
></i>
<span>
{{
parseTime
(
new
Date
())
}}
</span>
</div>
<div
class=
"back-btn"
>
回复
</div>
</div>
<div
class=
"message-reason mb5"
>
这个提议需要深入探讨一下。
</div>
<div
v-if=
"hasChild"
class=
"mt10"
>
<talk-item
:back=
"true"
>
</talk-item>
<talk-item
:back=
"true"
>
</talk-item>
<talk-item
:back=
"true"
>
</talk-item>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:{
hasChild
:{
default
:
false
},
back
:{
default
:
false
}
},
data
()
{
return
{
circleUrl
:
"https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
,
};
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.message-box
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
flex-start
;
font-size
:
12px
;
background-color
:
rgba
(
255
,
255
,
255
,
1
);
padding
:
10px
15px
;
// border-radius: 10px;
.message-detail
{
margin-left
:
10px
;
.user-info
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
center
;
.user-name
{
width
:
100px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.back-btn
{
color
:
#409eff
;
margin-left
:
10px
;
font-weight
:
bold
;
cursor
:
pointer
;
}
.user-time
{
margin-left
:
10px
;
span
{
color
:
#999999
;
}
}
}
}
}
</
style
>
src/main.js
View file @
333e64c3
...
...
@@ -39,6 +39,8 @@ import DictTag from '@/components/DictTag'
import
VueMeta
from
'vue-meta'
// 字典数据组件
import
DictData
from
'@/components/DictData'
import
TalkItem
from
"@/components/TalkItem"
;
// if (process.env.NODE_ENV === 'production') {
// const { mockXHR } = require('../mock')
// mockXHR()
...
...
@@ -64,6 +66,7 @@ Vue.component('FileUpload', FileUpload)
Vue
.
component
(
'ImageUpload'
,
ImageUpload
)
Vue
.
component
(
'ImagePreview'
,
ImagePreview
)
Vue
.
component
(
'PageStandard'
,
PageStandard
)
Vue
.
component
(
'TalkItem'
,
TalkItem
)
Vue
.
use
(
directive
)
Vue
.
use
(
plugins
)
...
...
src/views/review/already/index.vue
View file @
333e64c3
<
template
>
<page-standard>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
>
<page-standard>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
>
<el-form-item
prop=
"deptName"
>
<el-select
v-model=
"queryParams.configType"
placeholder=
"场景分类"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_scene_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
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-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
style=
"width: 100%; min-height: 50vh"
border
v-if=
"refreshTable"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
v-loading="loading"
: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=
"评审单编号"
sortable
align=
"center"
>
</el-table-column>
<el-table-column
label=
"场景分类"
sortable
align=
"center"
>
</el-table-column>
<el-table-column
label=
"场景内容"
align=
"center"
>
</el-table-column>
<el-table-column
label=
"评审人员"
align=
"center"
>
<
template
slot-scope=
"scope"
>
xxx(主)、xxx、xxx、xxx、xxx
</
template
>
</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>
<el-table-column
label=
"操作"
align=
"left"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleDetail(scope.row)"
v-hasPermi=
"['review:already:detail']"
plain
>
查看
</el-button
>
</
template
>
</el-table-column>
</el-table>
<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
:showSearch
.
sync=
"showSearch"
@
queryTable=
"loadData"
></right-toolbar>
</el-row>
<el-table
style=
"width: 100%;min-height: 50vh;"
border
v-if=
"refreshTable"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }" v-loading="loading" :data="tableData">
<el-table-column
width=
"60"
label=
"序号"
sortable
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"left"
sortable
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
sortable
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['setting:rules:update']"
plain
>
修改
</el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['setting:rules:delete']"
plain
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
>
</pagination>
<yan-dialog
:dialogManger=
"dialogManger"
></yan-dialog>
</page-standard>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
>
</pagination>
<yan-dialog
:dialogManger=
"dialogManger"
></yan-dialog>
</page-standard>
</template>
<
script
>
import
page
from
'@/mixins/page'
import
dialog
from
'./components/dialog.vue'
import
page
from
"@/mixins/page"
;
import
dialog
from
"./components/dialog.vue"
;
export
default
{
components
:
{
'yan-dialog'
:
dialog
},
mixins
:
[
page
],
data
()
{
return
{
listUrl
:
"/system/role/list"
,
showSearch
:
true
,
tableData
:
[],
dialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{
}
}
};
components
:
{
"yan-dialog"
:
dialog
,
},
mixins
:
[
page
],
dicts
:
[
"sys_scene_type"
],
data
()
{
return
{
listUrl
:
"/system/role/list"
,
showSearch
:
true
,
tableData
:
[],
dialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{},
},
};
},
methods
:
{
handleDetail
()
{
this
.
$router
.
push
({
path
:
'/review/view'
})
},
methods
:
{
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
{}
},
handleDelete
()
{
},
handleUpdate
(
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
row
},
},
watch
:
{
"dialogManger.refreshList"
:
function
(
val
)
{
if
(
val
)
{
this
.
loadData
();
this
.
dialogManger
.
refreshList
=
false
;
}
},
watch
:
{
"dialogManger.refreshList"
:
function
(
val
)
{
if
(
val
)
{
this
.
loadData
()
this
.
dialogManger
.
refreshList
=
false
}
}
}
}
},
};
</
script
>
src/views/review/sceneReview/index.vue
0 → 100644
View file @
333e64c3
<
template
>
<page-standard>
<div
class=
"subtitle"
>
评审对象
</div>
<el-row
:gutter=
"20"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"20"
>
<el-form
label-suffix=
":"
>
<el-form-item
label=
"标准章节"
prop=
"deptName"
>
5.1
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"deptName"
>
标准章节: 5.1
车辆制造商应具备车辆全生命周期的汽车信息安全管理体系。
注:车辆全生命周期包括车辆的开发阶段、生产阶段及后生产阶段。
</el-form-item>
<el-form-item
label=
"审查要点"
prop=
"deptName"
>
车辆制造商是否建立汽车信息安全管理制度。
</el-form-item>
<el-form-item
label=
"审查细则"
prop=
"deptName"
>
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
<el-form-item
label=
"新增场景"
prop=
"deptName"
>
<audio
controls
ref=
"audio"
>
<source
src=
"/扫描成功.mp3"
/>
</audio>
</el-form-item>
<el-form-item
label=
"备注信息"
prop=
"deptName"
>
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row
:gutter=
"20"
class=
"mt10"
>
<el-col
:sm=
"24"
:md=
"12"
:lg=
"12"
>
<div
class=
"subtitle"
>
评审意见
</div>
<el-row
:gutter=
"20"
class=
"mt10"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"20"
>
<el-form
:model=
"model"
ref=
"model"
size=
"small"
>
<el-form-item
prop=
"deptName"
>
<el-radio-group
v-model=
"model.radio"
>
<el-radio
v-for=
"dict in dict.type.sys_review_result"
:key=
"dict.value"
:label=
"dict.value"
>
{{
dict
.
label
}}
</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"理由:"
prop=
"status"
>
<el-input
v-model=
"model.deptName"
placeholder=
"输入内容"
clearable
type=
"textarea"
show-word-limit
:maxlength=
"100"
:autosize=
"false"
:rows=
"5"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
发布评审意见
</el-button
>
</el-form-item>
</el-form>
</el-col>
</el-row>
</el-col>
<el-col
:sm=
"24"
:md=
"12"
:lg=
"12"
>
<div
class=
"subtitle"
>
评审动态
</div>
<el-row
:gutter=
"20"
class=
"mt10"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"20"
>
<message-item></message-item>
<message-item></message-item>
<message-item></message-item>
</el-col>
</el-row>
</el-col>
</el-row>
<div
class=
"subtitle"
>
讨论区
</div>
<el-row
:gutter=
"20"
class=
"mt10"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"22"
>
<div
class=
"message-box mt5"
>
<el-avatar
:size=
"60"
class=
"mr10"
:src=
"circleUrl"
></el-avatar>
<div
style=
"width: 100%"
>
<el-input
v-model=
"model.deptName"
placeholder=
"输入评论内容"
clearable
type=
"textarea"
:autosize=
"false"
show-word-limit
:maxlength=
"100"
:rows=
"5"
/>
<el-button
size=
"mini"
class=
"mt5"
type=
"primary"
plain
>
发布评论
</el-button
>
<div
class=
"subtitle mt10"
>
全部评论5条
</div>
<talk-item>
</talk-item>
<talk-item
:hasChild=
"true"
>
</talk-item>
<talk-item>
</talk-item>
</div>
</div>
</el-col>
</el-row>
</page-standard>
</
template
>
<
script
>
import
page
from
"@/mixins/page"
;
import
MessageItem
from
"@/components/MessageItem"
;
export
default
{
components
:
{
MessageItem
,
// 'yan-dialog': dialog
},
dicts
:
[
"sys_review_result"
],
mixins
:
[
page
],
data
()
{
return
{
model
:
{},
circleUrl
:
"https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
,
};
},
methods
:
{
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
;
this
.
dialogManger
.
source
=
{};
},
handleDelete
()
{},
handleUpdate
(
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
;
this
.
dialogManger
.
source
=
row
;
},
},
watch
:
{
"dialogManger.refreshList"
:
function
(
val
)
{
if
(
val
)
{
this
.
loadData
();
this
.
dialogManger
.
refreshList
=
false
;
}
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.message-box
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
flex-start
;
font-size
:
12px
;
}
</
style
>
src/views/review/view/index.vue
View file @
333e64c3
<
template
>
<page-standard>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
>
<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-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>
<div
class=
"subtitle"
>
评审对象
</div>
<el-row
:gutter=
"20"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"20"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
label-suffix=
":"
>
<el-form-item
label=
"标准章节"
prop=
"deptName"
>
5.1
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"deptName"
>
标准章节: 5.1
车辆制造商应具备车辆全生命周期的汽车信息安全管理体系。
注:车辆全生命周期包括车辆的开发阶段、生产阶段及后生产阶段。
</el-form-item>
<el-form-item
label=
"审查要点"
prop=
"deptName"
>
车辆制造商是否建立汽车信息安全管理制度。
</el-form-item>
<el-form-item
label=
"审查细则"
prop=
"deptName"
>
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
<el-form-item
label=
"新增场景"
prop=
"deptName"
>
<audio
controls
ref=
"audio"
>
<source
src=
"/扫描成功.mp3"
/>
</audio>
</el-form-item>
<el-form-item
label=
"备注信息"
prop=
"deptName"
>
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
</el-form>
</el-col>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"loadData"
></right-toolbar>
</el-row>
<el-table
style=
"width: 100%;min-height: 50vh;"
border
v-if=
"refreshTable"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }" v-loading="loading" :data="tableData">
<el-table-column
width=
"60"
label=
"序号"
sortable
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"left"
sortable
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
sortable
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['setting:rules:update']"
plain
>
修改
</el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['setting:rules:delete']"
plain
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
>
</pagination>
<yan-dialog
:dialogManger=
"dialogManger"
></yan-dialog>
<div
class=
"subtitle"
>
评审动态
</div>
<el-row
:gutter=
"20"
class=
"mt10"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"20"
>
<message-item></message-item>
<message-item></message-item>
<message-item></message-item>
</el-col>
</el-row>
<div
class=
"subtitle"
>
讨论区
</div>
<el-row
:gutter=
"20"
class=
"mt10"
justify=
"center"
type=
"flex"
>
<el-col
:span=
"22"
>
<div
class=
"message-box mt5"
>
<el-avatar
:size=
"60"
class=
"mr10"
:src=
"circleUrl"
></el-avatar>
<div
style=
"width: 100%"
>
<el-input
v-model=
"model.deptName"
placeholder=
"输入评论内容"
clearable
type=
"textarea"
:autosize=
"false"
show-word-limit
:maxlength=
"100"
:rows=
"5"
/>
<el-button
size=
"mini"
class=
"mt5"
type=
"primary"
plain
>
发布评论
</el-button
>
<div
class=
"subtitle mt10"
>
全部评论5条
</div>
<talk-item>
</talk-item>
<talk-item
:hasChild=
"true"
>
</talk-item>
<talk-item>
</talk-item>
</div>
</div>
</el-col>
</el-row>
</page-standard>
</
template
>
<
script
>
import
page
from
'@/mixins/page'
import
dialog
from
'./components/dialog.vue
'
import
page
from
"@/mixins/page"
;
import
MessageItem
from
'@/components/MessageItem
'
export
default
{
components
:
{
'yan-dialog'
:
dialog
MessageItem
// 'yan-dialog': dialog
},
mixins
:
[
page
],
data
()
{
return
{
listUrl
:
"/system/role/list"
,
showSearch
:
true
,
tableData
:
[],
dialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{
}
}
model
:{},
circleUrl
:
"https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
,
};
},
methods
:
{
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
{}
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
;
this
.
dialogManger
.
source
=
{}
;
},
handleDelete
()
{
},
handleUpdate
(
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
row
handleDelete
()
{
},
handleUpdate
(
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
;
this
.
dialogManger
.
source
=
row
;
},
},
watch
:
{
"dialogManger.refreshList"
:
function
(
val
)
{
if
(
val
)
{
this
.
loadData
()
this
.
dialogManger
.
refreshList
=
false
this
.
loadData
()
;
this
.
dialogManger
.
refreshList
=
false
;
}
}
}
}
}
,
}
,
}
;
</
script
>
<
style
lang=
"scss"
scoped
>
.message-box
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
flex-start
;
font-size
:
12px
;
}
</
style
>
\ No newline at end of file
src/views/review/wait/index.vue
View file @
333e64c3
<
template
>
<page-standard>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
>
<el-form-item
label=
"部门名称"
prop=
"deptName"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"请输入部门名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-form-item
prop=
"deptName"
>
<el-select
v-model=
"queryParams.configType"
placeholder=
"场景分类"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_scene_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"
请输入部门名称
"
clearable
<el-form-item
prop=
"status"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"
输入搜索关键词
"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
...
...
@@ -25,22 +26,40 @@
</el-row>
<el-table
style=
"width: 100%;min-height: 50vh;"
border
v-if=
"refreshTable"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }" v-loading="loading" :data="tableData">
<el-table-column
width=
"
60"
label=
"序号"
sortable
align=
"center"
>
<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"
sortable
prop=
"createTime"
>
<el-table-column
label=
"评审单编号"
sortable
align=
"center"
>
</el-table-column>
<el-table-column
label=
"场景分类"
sortable
align=
"center"
>
</el-table-column>
<el-table-column
label=
"场景内容"
align=
"center"
>
</el-table-column>
<el-table-column
label=
"评审人员"
align=
"center"
>
<
template
slot-scope=
"scope"
>
xxx(主)、xxx、xxx、xxx、xxx
</
template
>
</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>
<el-table-column
label=
"操作"
align=
"left"
sortable
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"left"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['setting:rules:update']"
plain
>
修改
</el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['setting:rules:delete']"
plain
>
删除
</el-button>
<el-button
size=
"mini"
type=
"danger"
@
click=
"handleReview(scope.row)"
v-hasPermi=
"['review:wait:review']"
plain
>
去评审
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['review:wait:submit']"
plain
>
提交
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -50,7 +69,6 @@
</pagination>
<yan-dialog
:dialogManger=
"dialogManger"
></yan-dialog>
</page-standard>
</template>
<
script
>
import
page
from
'@/mixins/page'
...
...
@@ -74,15 +92,19 @@ export default {
}
};
},
dicts
:
[
"sys_scene_type"
],
methods
:
{
handleAdd
()
{
handleReview
()
{
this
.
$router
.
push
({
path
:
'/review/sceneReview'
})
},
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
{}
},
handleDelete
()
{
},
handleUpdate
(
row
)
{
},
handleUpdate
(
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
row
},
...
...
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