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
d45d3b0b
Commit
d45d3b0b
authored
Jan 02, 2024
by
jiaxu.yan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(信息管理): 标准库管理 审查内容库 测试场景库管理 我的待审
parent
2667fa05
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1557 additions
and
187 deletions
+1557
-187
index.js
mock/index.js
+2
-1
review.js
mock/review.js
+74
-0
test.mp3
public/test.mp3
+0
-0
index.vue
src/views/review/sceneReview/index.vue
+21
-30
index.vue
src/views/review/wait/index.vue
+22
-95
index.vue
src/views/setting/company/index.vue
+38
-8
Chexingdialog.vue
src/views/setting/rules/components/Chexingdialog.vue
+170
-0
Wendangdialog.vue
src/views/setting/rules/components/Wendangdialog.vue
+144
-0
index.vue
src/views/setting/rules/index.vue
+219
-21
Chexingdialog.vue
src/views/setting/standard/components/Chexingdialog.vue
+0
-0
Jianyandialog.vue
src/views/setting/standard/components/Jianyandialog.vue
+157
-0
Tixidialog.vue
src/views/setting/standard/components/Tixidialog.vue
+115
-0
Wendangdialog.vue
src/views/setting/standard/components/Wendangdialog.vue
+126
-0
sceneSelect.vue
src/views/setting/standard/components/sceneSelect.vue
+146
-0
index.vue
src/views/setting/standard/index.vue
+323
-32
No files found.
mock/index.js
View file @
d45d3b0b
...
@@ -7,8 +7,9 @@ const role = require('./role')
...
@@ -7,8 +7,9 @@ const role = require('./role')
const
article
=
require
(
'./article'
)
const
article
=
require
(
'./article'
)
const
search
=
require
(
'./remote-search'
)
const
search
=
require
(
'./remote-search'
)
const
setting
=
require
(
'./setting'
)
const
setting
=
require
(
'./setting'
)
const
review
=
require
(
'./review'
)
const
mocks
=
[...
task
,
...
setting
]
const
mocks
=
[...
task
,
...
setting
,
...
review
]
// for front mock
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
// please use it cautiously, it will redefine XMLHttpRequest,
...
...
mock/review.js
0 → 100644
View file @
d45d3b0b
module
.
exports
=
[
{
url
:
'/wait-list'
,
type
:
'get'
,
response
:
config
=>
{
temp
=
[
{
reviewNo
:
'20231209001'
,
reviewType
:
'新增场景'
,
type
:
1
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'制度发布会音频文件'
,
reviewer
:
'赵晓东,盖献康,刘佳'
,
waitingTime
:
'1天12小时'
,
createTime
:
'2023-11-24 10:14:08'
},
{
reviewNo
:
'20231209002'
,
reviewType
:
'修改场景'
,
type
:
2
,
sceneCategory
:
'体系审查'
,
sceneContent
:
'TBOX-蜂窝以太网接口'
,
reviewer
:
'赵晓东,尚志伟,闫嘉旭'
,
waitingTime
:
'1天13小时'
,
createTime
:
'2023-11-22 13:56:34'
},
{
reviewNo
:
'20231209003'
,
reviewType
:
'删除场景'
,
type
:
3
,
sceneCategory
:
'体系审查'
,
sceneContent
:
'TBOX-车辆定位系统'
,
reviewer
:
'周朋,李宇涵,李亚涛'
,
waitingTime
:
'2天1小时'
,
createTime
:
'2023-11-13 17:26:54'
},
{
reviewNo
:
'20231209004'
,
reviewType
:
'修改场景'
,
type
:
2
,
sceneCategory
:
'车型审查'
,
sceneContent
:
'发布会车辆制动相关样品'
,
reviewer
:
'张鹏伟,李旭,张鑫'
,
waitingTime
:
'2天1小时'
,
createTime
:
'2023-11-12 14:43:22'
},
{
reviewNo
:
'20231209005'
,
reviewType
:
'删除场景'
,
type
:
3
,
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'
}
]
return
{
rows
:
temp
,
code
:
200
,
total
:
10
}
}
}
]
public/test.mp3
0 → 100644
View file @
d45d3b0b
File added
src/views/review/sceneReview/index.vue
View file @
d45d3b0b
...
@@ -16,9 +16,24 @@
...
@@ -16,9 +16,24 @@
<el-form-item
label=
"审查细则"
prop=
"deptName"
>
<el-form-item
label=
"审查细则"
prop=
"deptName"
>
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
</el-form-item>
<el-form-item
label=
"新增场景"
prop=
"deptName"
>
<el-form-item
v-if=
"type == 1"
label=
"新增场景"
prop=
"deptName"
>
<audio
ref=
"audio"
controls
>
<audio
ref=
"audio"
controls
>
<source
src=
"/扫描成功.mp3"
/>
<source
src=
"/test.mp3"
/>
</audio>
</el-form-item>
<el-form-item
v-if=
"type == 2"
label=
"修改前场景"
prop=
"deptName"
>
<audio
ref=
"audio"
controls
>
<source
src=
"/test.mp3"
/>
</audio>
</el-form-item>
<el-form-item
v-if=
"type == 2"
label=
"修改后场景"
prop=
"deptName"
>
<audio
ref=
"audio"
controls
>
<source
src=
"/test.mp3"
/>
</audio>
</el-form-item>
<el-form-item
v-if=
"type == 3"
label=
"删除场景"
prop=
"deptName"
>
<audio
ref=
"audio"
controls
>
<source
src=
"/test.mp3"
/>
</audio>
</audio>
</el-form-item>
</el-form-item>
<el-form-item
label=
"备注信息"
prop=
"deptName"
>
<el-form-item
label=
"备注信息"
prop=
"deptName"
>
...
@@ -75,38 +90,10 @@
...
@@ -75,38 +90,10 @@
<el-col
:span=
"20"
>
<el-col
:span=
"20"
>
<message-item></message-item>
<message-item></message-item>
<message-item></message-item>
<message-item></message-item>
<message-item></message-item>
</el-col>
</el-col>
</el-row>
</el-row>
</el-col>
</el-col>
</el-row>
</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
:has-child=
"true"
>
</talk-item>
<talk-item>
</talk-item>
</div>
</div>
</el-col>
</el-row>
</page-standard>
</page-standard>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -122,6 +109,7 @@ export default {
...
@@ -122,6 +109,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
model
:
{},
model
:
{},
type
:
0
,
circleUrl
:
circleUrl
:
'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
}
}
...
@@ -134,6 +122,9 @@ export default {
...
@@ -134,6 +122,9 @@ export default {
}
}
}
}
},
},
created
()
{
this
.
type
=
this
.
$route
.
query
.
type
},
methods
:
{
methods
:
{
handleAdd
()
{
handleAdd
()
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
dialogVisible
=
true
...
...
src/views/review/wait/index.vue
View file @
d45d3b0b
...
@@ -70,10 +70,11 @@
...
@@ -70,10 +70,11 @@
v-loading=
"loading"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
style=
"width: 100%; min-height: 50vh"
border
border
:scroll-x=
"'1500px'"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:data="tableData"
:data="tableData"
>
>
<el-table-column
width=
"
10
0"
label=
"序号"
align=
"center"
>
<el-table-column
width=
"
6
0"
label=
"序号"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</
template
>
...
@@ -81,19 +82,22 @@
...
@@ -81,19 +82,22 @@
<el-table-column
<el-table-column
label=
"评审单编号"
label=
"评审单编号"
sortable
sortable
min-width=
"200"
align=
"center"
align=
"center"
prop=
"reviewNo"
prop=
"reviewNo"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"评审类型"
label=
"评审类型"
min-width=
"200"
sortable
sortable
align=
"center"
align=
"center"
prop=
"reviewType"
prop=
"reviewType"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"场景分类"
label=
"场景类型"
min-width=
"200"
sortable
sortable
align=
"center"
align=
"center"
prop=
"sceneCategory"
prop=
"sceneCategory"
...
@@ -101,10 +105,16 @@
...
@@ -101,10 +105,16 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"场景内容"
label=
"场景内容"
min-width=
"200"
align=
"center"
align=
"center"
prop=
"sceneContent"
prop=
"sceneContent"
></el-table-column>
></el-table-column>
<el-table-column
label=
"评审人员"
align=
"center"
prop=
"reviewer"
>
<el-table-column
label=
"评审人员"
min-width=
"200"
align=
"center"
prop=
"reviewer"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"等待时长"
label=
"等待时长"
...
@@ -115,12 +125,15 @@
...
@@ -115,12 +125,15 @@
<el-table-column
<el-table-column
label=
"发起时间"
label=
"发起时间"
sortable
sortable
min-width=
"200"
align=
"left"
align=
"left"
prop=
"createTime"
prop=
"createTime"
></el-table-column>
></el-table-column>
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
align=
"left"
align=
"left"
min-width=
"160"
fixed=
"right"
class-name=
"small-padding fixed-width"
class-name=
"small-padding fixed-width"
>
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -207,63 +220,7 @@ export default {
...
@@ -207,63 +220,7 @@ export default {
deptName
:
''
deptName
:
''
},
},
tableData
:
[],
tableData
:
[],
tableData1
:
[
listUrl
:
'/wait-list'
,
{
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
,
showSearch
:
true
,
dialogManger
:
{
dialogManger
:
{
dialogVisible
:
false
,
dialogVisible
:
false
,
...
@@ -322,8 +279,11 @@ export default {
...
@@ -322,8 +279,11 @@ export default {
})
})
},
},
/* 去评审按钮页面跳转*/
/* 去评审按钮页面跳转*/
handleReview
()
{
handleReview
(
row
)
{
this
.
$router
.
push
({
path
:
'/review/sceneReview'
})
this
.
$router
.
push
({
path
:
'/review/sceneReview'
,
query
:
{
type
:
row
.
type
}
})
},
},
/* 打开移交弹窗*/
/* 打开移交弹窗*/
handleHandOver
(
row
)
{
handleHandOver
(
row
)
{
...
@@ -341,39 +301,6 @@ export default {
...
@@ -341,39 +301,6 @@ export default {
this
.
queryParams
.
configType
=
''
this
.
queryParams
.
configType
=
''
this
.
queryParams
.
changjingType
=
''
this
.
queryParams
.
changjingType
=
''
this
.
handleQuery
()
this
.
handleQuery
()
},
/* 假数据筛选*/
loadData
()
{
this
.
loading
=
true
setTimeout
(()
=>
{
/* 过滤器*/
this
.
tableData
=
this
.
tableData1
.
filter
(
item
=>
{
let
flag
=
true
if
(
this
.
queryParams
.
deptName
)
{
flag
&=
item
.
sceneContent
.
indexOf
(
this
.
queryParams
.
deptName
)
>
-
1
||
item
.
reviewNo
.
indexOf
(
this
.
queryParams
.
deptName
)
>
-
1
}
if
(
this
.
queryParams
.
configType
)
{
flag
&=
item
.
reviewType
===
selectDictLabel
(
this
.
dict
.
type
.
review_type
,
this
.
queryParams
.
configType
)
}
if
(
this
.
queryParams
.
changjingType
)
{
flag
&=
item
.
sceneCategory
===
selectDictLabel
(
this
.
dict
.
type
.
scene_type
,
this
.
queryParams
.
changjingType
)
}
return
flag
})
this
.
loading
=
false
},
1000
)
}
}
}
}
}
}
...
...
src/views/setting/company/index.vue
View file @
d45d3b0b
...
@@ -82,40 +82,70 @@
...
@@ -82,40 +82,70 @@
v-loading=
"loading"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
style=
"width: 100%; min-height: 50vh"
border
border
:scroll-x=
"'1500px'"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:data="tableData"
:data="tableData"
>
>
<el-table-column
<el-table-column
type=
"index"
type=
"index"
width=
"
10
0"
width=
"
6
0"
label=
"序号"
label=
"序号"
sortable
sortable
align=
"
left
"
align=
"
center
"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"企业名称"
label=
"企业名称"
prop=
"companyName"
prop=
"companyName"
min-width=
"200"
sortable
sortable
align=
"left"
align=
"left"
>
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"地址"
prop=
"address"
align=
"left"
>
<el-table-column
label=
"地址"
min-width=
"200"
prop=
"address"
align=
"left"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"邮编"
prop=
"mailCode"
align=
"left"
>
<el-table-column
label=
"邮编"
prop=
"mailCode"
min-width=
"200"
align=
"left"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"企业联系人"
prop=
"companyPeople"
align=
"left"
>
<el-table-column
label=
"企业联系人"
prop=
"companyPeople"
min-width=
"200"
align=
"left"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"联系电话"
prop=
"phoneNum"
align=
"left"
>
<el-table-column
label=
"联系电话"
prop=
"phoneNum"
min-width=
"200"
align=
"left"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建人员"
prop=
"phoneNum"
align=
"left"
>
<el-table-column
label=
"创建人员"
prop=
"phoneNum"
min-width=
"200"
align=
"left"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建时间"
prop=
"createTime"
align=
"left"
sortable
>
<el-table-column
label=
"创建时间"
prop=
"createTime"
min-width=
"200"
align=
"left"
sortable
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
align=
"left"
align=
"left"
min-width=
"160"
sortable
sortable
fixed=
"right"
class-name=
"small-padding fixed-width"
class-name=
"small-padding fixed-width"
>
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
...
src/views/setting/rules/components/Chexingdialog.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"审查分类"
prop=
"status"
>
<el-select
v-model=
"model.status"
style=
"width: 100%"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_detailed_classification"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"审查要点"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"审查细则"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"关联场景"
prop=
"status"
>
<br
/>
<template
v-for=
"(item, key) in model.scene"
>
<el-row
:key=
"key"
class=
"mb10"
:gutter=
"20"
>
<el-col
:span=
"22"
>
<el-input
v-model=
"model.text"
placeholder=
"请输入"
clearable
/>
</el-col>
<el-col
:span=
"2"
>
<template
v-if=
"key === 0"
>
<i
class=
"icon el-icon-circle-plus-outline"
@
click=
"add()"
></i>
</
template
>
<
template
v-else
>
<i
class=
"icon el-icon-remove-outline"
@
click=
"remove(key)"
></i>
</
template
>
</el-col>
</el-row>
</template>
</el-form-item>
</el-form>
<detail-select
:dialog-manger=
"detailManger"
@
close=
"detailManger.dialogVisible = false"
></detail-select>
<point-select
:dialog-manger=
"pointManger"
@
close=
"pointManger.dialogVisible = false"
></point-select>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</template>
<
script
>
export
default
{
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{
scene
:
[
{
text
:
''
}
]
},
sceneManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{}
},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
},
detailManger
:
{
dialogVisible
:
false
,
refreshList
:
false
},
pointManger
:
{
dialogVisible
:
false
,
refreshList
:
false
}
}
},
computed
:
{
modelTitle
()
{
return
this
.
dialogManger
.
source
.
id
?
'编辑'
:
'新增'
+
'审查内容'
}
},
methods
:
{
addDetail
()
{
this
.
detailManger
.
dialogVisible
=
true
},
addPoint
()
{
this
.
pointManger
.
dialogVisible
=
true
},
add
()
{
this
.
model
.
scene
.
push
({
text
:
''
})
},
remove
(
key
)
{
this
.
model
.
scene
.
splice
(
key
,
1
)
},
handleClose
()
{
this
.
$emit
(
'close'
)
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{})
}
}
}
</
script
>
<
style
scoped
>
.icon
{
font-size
:
20px
;
}
</
style
>
src/views/setting/rules/components/Wendangdialog.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"细则分类"
prop=
"status"
>
<el-select
v-model=
"model.status"
style=
"width: 100%"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_detailed_classification"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准章节"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"审查方法"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{
scene
:
[
{
text
:
''
}
]
},
sceneManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{}
},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
},
detailManger
:
{
dialogVisible
:
false
,
refreshList
:
false
},
pointManger
:
{
dialogVisible
:
false
,
refreshList
:
false
}
}
},
computed
:
{
modelTitle
()
{
return
this
.
dialogManger
.
source
.
id
?
'编辑'
:
'新增'
+
'审查内容'
}
},
methods
:
{
addDetail
()
{
this
.
detailManger
.
dialogVisible
=
true
},
addPoint
()
{
this
.
pointManger
.
dialogVisible
=
true
},
add
()
{
this
.
model
.
scene
.
push
({
text
:
''
})
},
remove
(
key
)
{
this
.
model
.
scene
.
splice
(
key
,
1
)
},
handleClose
()
{
this
.
$emit
(
'close'
)
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{})
}
}
}
</
script
>
<
style
scoped
>
.icon
{
font-size
:
20px
;
}
</
style
>
src/views/setting/rules/index.vue
View file @
d45d3b0b
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
</div>
</div>
<el-form
<el-form
v-show=
"showSearch"
v-show=
"showSearch"
v-if=
"queryParams.type > 1"
ref=
"queryForm"
ref=
"queryForm"
:model=
"queryParams"
:model=
"queryParams"
size=
"small"
size=
"small"
...
@@ -101,15 +102,22 @@
...
@@ -101,15 +102,22 @@
></right-toolbar>
></right-toolbar>
</el-row>
</el-row>
<el-tree
<el-tree
v-if=
"queryParams.type == 1"
:data=
"tableData"
:data=
"tableData"
node-key=
"id"
node-key=
"id"
default-expand-all
default-expand-all
:expand-on-click-node=
"false"
:expand-on-click-node=
"false"
>
>
<div
slot-scope=
"
{ node, data }" class="item-box">
<div
slot-scope=
"
{ node, data }" class="item-box">
<el-tooltip
class=
"item"
:content=
"node.label"
placement=
"right"
>
<!--
<el-tooltip
class=
"item"
:content=
"node.label"
placement=
"right"
>
-->
<div
class=
"title"
>
{{
node
.
label
}}
</div>
<div
class=
"title"
>
</el-tooltip>
<span
v-if=
"node.level == 1"
>
标准要求:
</span>
<span
v-if=
"node.level == 2"
>
审查要点:
</span>
<span
v-if=
"node.level == 3"
>
审查细则:
</span>
<span
v-if=
"node.level == 4"
>
关联场景:
</span>
{{
node
.
label
}}
</div>
<!--
</el-tooltip>
-->
<div
class=
"buttons-list"
>
<div
class=
"buttons-list"
>
<!--
<el-button
<!--
<el-button
...
@@ -121,7 +129,7 @@
...
@@ -121,7 +129,7 @@
添加标准要求
添加标准要求
</el-button>
-->
</el-button>
-->
<el-button
<el-button
v-if=
"node.level ==
2
"
v-if=
"node.level ==
1
"
type=
"text"
type=
"text"
size=
"mini"
size=
"mini"
@
click=
"handlePointAdd"
@
click=
"handlePointAdd"
...
@@ -129,7 +137,7 @@
...
@@ -129,7 +137,7 @@
添加审查要点
添加审查要点
</el-button>
</el-button>
<el-button
<el-button
v-if=
"node.level ==
3
"
v-if=
"node.level ==
2
"
type=
"text"
type=
"text"
size=
"mini"
size=
"mini"
@
click=
"handleAdd"
@
click=
"handleAdd"
...
@@ -157,6 +165,161 @@
...
@@ -157,6 +165,161 @@
</div>
</div>
</div>
</div>
</el-tree>
</el-tree>
<el-table
v-if=
"refreshTable && Number(queryParams.type) === 2"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
border
:scroll-x=
"'1500px'"
:default-sort=
"
{ prop: 'createTime', order: 'descending' }"
:data="tableData"
>
<el-table-column
prop=
"section"
label=
"标准章节"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"request"
label=
"标准要求"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"way"
label=
"标准测试方法"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"resultYes"
label=
"审查方法"
min-width=
"200"
align=
"left"
>
</el-table-column>
<el-table-column
prop=
"resultNO"
label=
"更新时间"
min-width=
"200"
align=
"left"
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
min-width=
"160"
fixed=
"right"
class-name=
"fixed-width"
>
<template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['setting:standard:update']"
plain
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(2, scope.row)"
>
修改
</el-button
>
<el-button
v-hasPermi=
"['setting:standard:delete']"
plain
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
<el-table
v-if=
"refreshTable && Number(queryParams.type) === 3"
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
border
:scroll-x=
"'1500px'"
:default-sort=
"{ prop: 'createTime', order: 'descending' }"
:data=
"tableData"
>
<el-table-column
prop=
"section"
label=
"标准章节"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"request"
label=
"标准要求"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"way"
label=
"标准测试方法"
min-width=
"200"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"resultYes"
label=
"审查方法"
min-width=
"200"
align=
"left"
>
</el-table-column>
<el-table-column
prop=
"resultNO"
label=
"更新时间"
min-width=
"200"
align=
"left"
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
min-width=
"160"
fixed=
"right"
class-name=
"fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['setting:standard:update']"
plain
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(3, scope.row)"
>
修改
</el-button
>
<el-button
v-hasPermi=
"['setting:standard:delete']"
plain
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button
>
</
template
>
</el-table-column>
</el-table>
<pagination
v-if=
"queryParams.type > 1"
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
>
</pagination>
<yan-dialog
<yan-dialog
:dialog-manger=
"dialogManger"
:dialog-manger=
"dialogManger"
@
close=
"dialogManger.dialogVisible = false"
@
close=
"dialogManger.dialogVisible = false"
...
@@ -166,17 +329,29 @@
...
@@ -166,17 +329,29 @@
:dialog-manger=
"dialogPointManger"
:dialog-manger=
"dialogPointManger"
@
close=
"dialogPointManger.dialogVisible = false"
@
close=
"dialogPointManger.dialogVisible = false"
></point-dialog>
></point-dialog>
<chexing-dialog
:dialog-manger=
"ChexingdialogManger"
@
close=
"ChexingdialogManger.dialogVisible = false"
></chexing-dialog>
<wendang-dialog
:dialog-manger=
"WendangdialogManger"
@
close=
"WendangdialogManger.dialogVisible = false"
></wendang-dialog>
</page-standard>
</page-standard>
</template>
</template>
<
script
>
<
script
>
import
page
from
'@/mixins/page'
import
page
from
'@/mixins/page'
import
dialog
from
'./components/dialog.vue'
import
dialog
from
'./components/dialog.vue'
import
pointDialog
from
'./components/pointDialog.vue'
import
pointDialog
from
'./components/pointDialog.vue'
import
Chexingdialog
from
'./components/Chexingdialog.vue'
import
Wendangdialog
from
'./components/Wendangdialog.vue'
export
default
{
export
default
{
components
:
{
components
:
{
'yan-dialog'
:
dialog
,
'yan-dialog'
:
dialog
,
'point-dialog'
:
pointDialog
'point-dialog'
:
pointDialog
,
'chexing-dialog'
:
Chexingdialog
,
'wendang-dialog'
:
Wendangdialog
},
},
dicts
:
[
'sys_scene_type'
],
dicts
:
[
'sys_scene_type'
],
mixins
:
[
page
],
mixins
:
[
page
],
...
@@ -189,6 +364,7 @@ export default {
...
@@ -189,6 +364,7 @@ export default {
children
:
'children'
,
children
:
'children'
,
label
:
'label'
label
:
'label'
},
},
queryParams
:
{
type
:
'1'
},
dialogManger
:
{
dialogManger
:
{
dialogVisible
:
false
,
dialogVisible
:
false
,
refreshList
:
false
,
refreshList
:
false
,
...
@@ -198,6 +374,16 @@ export default {
...
@@ -198,6 +374,16 @@ export default {
dialogVisible
:
false
,
dialogVisible
:
false
,
refreshList
:
false
,
refreshList
:
false
,
source
:
{}
source
:
{}
},
ChexingdialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{}
},
WendangdialogManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{}
}
}
}
}
},
},
...
@@ -210,7 +396,7 @@ export default {
...
@@ -210,7 +396,7 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
handleAdd
()
{
handleAdd
(
type
)
{
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
{}
this
.
dialogManger
.
source
=
{}
},
},
...
@@ -219,21 +405,33 @@ export default {
...
@@ -219,21 +405,33 @@ export default {
this
.
dialogPointManger
.
source
=
{}
this
.
dialogPointManger
.
source
=
{}
},
},
handleDelete
(
node
,
data
)
{
handleDelete
(
node
,
data
)
{
console
.
log
(
node
,
data
)
//
console.log(node, data)
//
this.$modal
this
.
$modal
//
.confirm('是否确定删除该条数据?', '操作确认')
.
confirm
(
'是否确定删除该条数据?'
,
'操作确认'
)
//
.then(() => {
.
then
(()
=>
{
//
// return delNotice(noticeIds)
// return delNotice(noticeIds)
//
})
})
//
.then(() => {
.
then
(()
=>
{
//
this.loadData()
this
.
loadData
()
//
this.$modal.msgSuccess('删除成功')
this
.
$modal
.
msgSuccess
(
'删除成功'
)
//
})
})
//
.catch(() => {})
.
catch
(()
=>
{})
},
},
handleUpdate
(
row
)
{
handleUpdate
(
type
,
row
)
{
this
.
dialogManger
.
dialogVisible
=
true
switch
(
type
)
{
this
.
dialogManger
.
source
=
row
case
1
:
this
.
dialogManger
.
dialogVisible
=
true
this
.
dialogManger
.
source
=
row
break
case
2
:
this
.
ChexingdialogManger
.
dialogVisible
=
true
this
.
ChexingdialogManger
.
source
=
row
break
case
3
:
this
.
WendangdialogManger
.
dialogVisible
=
true
this
.
WendangdialogManger
.
source
=
row
break
}
}
}
}
}
}
}
...
...
src/views/setting/standard/components/dialog.vue
→
src/views/setting/standard/components/
Chexing
dialog.vue
View file @
d45d3b0b
File moved
src/views/setting/standard/components/Jianyandialog.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"标准分类"
prop=
"status"
>
<el-select
v-model=
"model.status"
style=
"width: 100%"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_detailed_classification"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准章节"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"200"
show-word-limit
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(不符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准测试方法"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"对象"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"场景"
prop=
"status"
>
<br
/>
<el-button
type=
"default"
@
click=
"addDetail()"
>
选择场景
</el-button>
</el-form-item>
<scene-select
:dialog-manger=
"sceneManger"
@
close=
"sceneManger.dialogVisible = false"
></scene-select>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
sceneSelect
from
'./sceneSelect'
export
default
{
components
:
{
'scene-select'
:
sceneSelect
},
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
},
sceneManger
:
{
dialogVisible
:
false
,
refreshList
:
false
,
source
:
{}
}
}
},
computed
:
{
modelTitle
()
{
return
this
.
dialogManger
.
source
.
id
?
'编辑'
:
'新增'
+
'标准'
}
},
methods
:
{
handleClose
()
{
this
.
$emit
(
'close'
)
},
addDetail
()
{
this
.
sceneManger
.
dialogVisible
=
true
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
valid
)
}
})
}
}
}
</
script
>
src/views/setting/standard/components/Tixidialog.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"标准分类"
prop=
"status"
>
<el-select
v-model=
"model.status"
style=
"width: 100%"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_detailed_classification"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准章节"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"200"
show-word-limit
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(不符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
}
}
},
computed
:
{
modelTitle
()
{
return
this
.
dialogManger
.
source
.
id
?
'编辑'
:
'新增'
+
'标准'
}
},
methods
:
{
handleClose
()
{
this
.
$emit
(
'close'
)
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
valid
)
}
})
}
}
}
</
script
>
src/views/setting/standard/components/Wendangdialog.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
ref=
"form"
:model=
"model"
:rules=
"rules"
>
<el-form-item
label=
"标准分类"
prop=
"status"
>
<el-select
v-model=
"model.status"
style=
"width: 100%"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_detailed_classification"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标准章节"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准要求"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"100"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
maxlength=
"200"
show-word-limit
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"检验结果描述(不符合)"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
<el-form-item
label=
"标准测试方法"
prop=
"status"
>
<el-input
v-model=
"model.status"
placeholder=
"请输入"
type=
"textarea"
show-word-limit
maxlength=
"200"
:autosize=
"
{ minRows: 4, maxRows: 4 }"
clearable
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
保存
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{},
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
}
}
},
computed
:
{
modelTitle
()
{
return
this
.
dialogManger
.
source
.
id
?
'编辑'
:
'新增'
+
'标准'
}
},
methods
:
{
handleClose
()
{
this
.
$emit
(
'close'
)
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
valid
)
}
})
}
}
}
</
script
>
src/views/setting/standard/components/sceneSelect.vue
0 → 100644
View file @
d45d3b0b
<
template
>
<el-dialog
:visible
.
sync=
"dialogManger.dialogVisible"
:title=
"modelTitle"
width=
"1200"
append-to-body
destroy-on-close
:before-close=
"handleClose"
>
<el-form
v-show=
"showSearch"
ref=
"queryForm"
:model=
"queryParams"
size=
"small"
:inline=
"true"
>
<el-form-item
prop=
"status"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"场景编号"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</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
type=
"default"
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
</el-form-item>
</el-form>
<el-table
v-loading=
"loading"
style=
"width: 100%; min-height: 50vh"
border
tooltip-effect=
"dark"
@
selection-change=
"handleSelectionChange"
>
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"场景编号"
align=
"left"
></el-table-column>
<el-table-column
label=
"场景内容"
align=
"left"
></el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.size"
@
pagination=
"loadData"
>
</pagination>
<div
slot=
"footer"
>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
选择
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
page
from
'@/mixins/page'
export
default
{
mixins
:
[
page
],
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
source
:
{}
}
}
}
},
dicts
:
[
'sys_detailed_classification'
],
data
()
{
return
{
model
:
{},
listUrl
:
'/system/role/list'
,
total
:
0
,
showSearch
:
true
,
multipleSelection
:
[],
tableData
:
[],
rules
:
{
status
:
[
{
required
:
true
,
message
:
'菜单名称不能为空'
,
trigger
:
'blur'
}
],
orderNum
:
[
{
required
:
true
,
message
:
'菜单顺序不能为空'
,
trigger
:
'blur'
}
],
path
:
[{
required
:
true
,
message
:
'路由地址不能为空'
,
trigger
:
'blur'
}]
}
}
},
computed
:
{
modelTitle
()
{
return
'选择场景'
}
},
methods
:
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
},
add
()
{
this
.
model
.
scene
.
push
({
text
:
''
})
},
remove
(
key
)
{
this
.
model
.
scene
.
splice
(
key
,
1
)
},
handleClose
()
{
this
.
$emit
(
'close'
)
},
handleConfirm
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
valid
)
}
})
}
}
}
</
script
>
<
style
scoped
>
.icon
{
font-size
:
20px
;
}
</
style
>
src/views/setting/standard/index.vue
View file @
d45d3b0b
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