Commit d45d3b0b authored by jiaxu.yan's avatar jiaxu.yan

feat(信息管理): 标准库管理 审查内容库 测试场景库管理 我的待审

parent 2667fa05
......@@ -7,8 +7,9 @@ const role = require('./role')
const article = require('./article')
const search = require('./remote-search')
const setting = require('./setting')
const review = require('./review')
const mocks = [...task,...setting]
const mocks = [...task, ...setting, ...review]
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
......
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
}
}
}
]
File added
......@@ -16,9 +16,24 @@
<el-form-item label="审查细则" prop="deptName">
车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。
</el-form-item>
<el-form-item label="新增场景" prop="deptName">
<el-form-item v-if="type == 1" label="新增场景" prop="deptName">
<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>
</el-form-item>
<el-form-item label="备注信息" prop="deptName">
......@@ -75,38 +90,10 @@
<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 :has-child="true"> </talk-item>
<talk-item> </talk-item>
</div>
</div>
</el-col>
</el-row>
</page-standard>
</template>
<script>
......@@ -122,6 +109,7 @@ export default {
data() {
return {
model: {},
type: 0,
circleUrl:
'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
}
......@@ -134,6 +122,9 @@ export default {
}
}
},
created() {
this.type = this.$route.query.type
},
methods: {
handleAdd() {
this.dialogManger.dialogVisible = true
......
......@@ -70,10 +70,11 @@
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
:scroll-x="'1500px'"
:default-sort="{ prop: 'createTime', order: 'descending' }"
:data="tableData"
>
<el-table-column width="100" label="序号" align="center">
<el-table-column width="60" label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
......@@ -81,19 +82,22 @@
<el-table-column
label="评审单编号"
sortable
min-width="200"
align="center"
prop="reviewNo"
>
</el-table-column>
<el-table-column
label="评审类型"
min-width="200"
sortable
align="center"
prop="reviewType"
>
</el-table-column>
<el-table-column
label="场景分类"
label="场景类型"
min-width="200"
sortable
align="center"
prop="sceneCategory"
......@@ -101,10 +105,16 @@
</el-table-column>
<el-table-column
label="场景内容"
min-width="200"
align="center"
prop="sceneContent"
></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
label="等待时长"
......@@ -115,12 +125,15 @@
<el-table-column
label="发起时间"
sortable
min-width="200"
align="left"
prop="createTime"
></el-table-column>
<el-table-column
label="操作"
align="left"
min-width="160"
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
......@@ -207,63 +220,7 @@ export default {
deptName: ''
},
tableData: [],
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',
listUrl: '/wait-list',
showSearch: true,
dialogManger: {
dialogVisible: false,
......@@ -322,8 +279,11 @@ export default {
})
},
/* 去评审按钮页面跳转*/
handleReview() {
this.$router.push({ path: '/review/sceneReview' })
handleReview(row) {
this.$router.push({
path: '/review/sceneReview',
query: { type: row.type }
})
},
/* 打开移交弹窗*/
handleHandOver(row) {
......@@ -341,39 +301,6 @@ export default {
this.queryParams.configType = ''
this.queryParams.changjingType = ''
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)
}
}
}
......
......@@ -82,40 +82,70 @@
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
:scroll-x="'1500px'"
:default-sort="{ prop: 'createTime', order: 'descending' }"
:data="tableData"
>
<el-table-column
type="index"
width="100"
width="60"
label="序号"
sortable
align="left"
align="center"
>
</el-table-column>
<el-table-column
label="企业名称"
prop="companyName"
min-width="200"
sortable
align="left"
>
</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 label="邮编" prop="mailCode" align="left">
<el-table-column
label="邮编"
prop="mailCode"
min-width="200"
align="left"
>
</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 label="联系电话" prop="phoneNum" align="left">
<el-table-column
label="联系电话"
prop="phoneNum"
min-width="200"
align="left"
>
</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 label="创建时间" prop="createTime" align="left" sortable>
<el-table-column
label="创建时间"
prop="createTime"
min-width="200"
align="left"
sortable
>
</el-table-column>
<el-table-column
label="操作"
align="left"
min-width="160"
sortable
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
......
<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>
<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>
......@@ -13,6 +13,7 @@
</div>
<el-form
v-show="showSearch"
v-if="queryParams.type > 1"
ref="queryForm"
:model="queryParams"
size="small"
......@@ -101,15 +102,22 @@
></right-toolbar>
</el-row>
<el-tree
v-if="queryParams.type == 1"
:data="tableData"
node-key="id"
default-expand-all
:expand-on-click-node="false"
>
<div slot-scope="{ node, data }" class="item-box">
<el-tooltip class="item" :content="node.label" placement="right">
<div class="title">{{ node.label }}</div>
</el-tooltip>
<!-- <el-tooltip class="item" :content="node.label" placement="right"> -->
<div class="title">
<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">
<!-- <el-button
......@@ -121,7 +129,7 @@
添加标准要求
</el-button> -->
<el-button
v-if="node.level == 2"
v-if="node.level == 1"
type="text"
size="mini"
@click="handlePointAdd"
......@@ -129,7 +137,7 @@
添加审查要点
</el-button>
<el-button
v-if="node.level == 3"
v-if="node.level == 2"
type="text"
size="mini"
@click="handleAdd"
......@@ -157,6 +165,161 @@
</div>
</div>
</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
:dialog-manger="dialogManger"
@close="dialogManger.dialogVisible = false"
......@@ -166,17 +329,29 @@
:dialog-manger="dialogPointManger"
@close="dialogPointManger.dialogVisible = false"
></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>
</template>
<script>
import page from '@/mixins/page'
import dialog from './components/dialog.vue'
import pointDialog from './components/pointDialog.vue'
import Chexingdialog from './components/Chexingdialog.vue'
import Wendangdialog from './components/Wendangdialog.vue'
export default {
components: {
'yan-dialog': dialog,
'point-dialog': pointDialog
'point-dialog': pointDialog,
'chexing-dialog': Chexingdialog,
'wendang-dialog': Wendangdialog
},
dicts: ['sys_scene_type'],
mixins: [page],
......@@ -189,6 +364,7 @@ export default {
children: 'children',
label: 'label'
},
queryParams: { type: '1' },
dialogManger: {
dialogVisible: false,
refreshList: false,
......@@ -198,6 +374,16 @@ export default {
dialogVisible: false,
refreshList: false,
source: {}
},
ChexingdialogManger: {
dialogVisible: false,
refreshList: false,
source: {}
},
WendangdialogManger: {
dialogVisible: false,
refreshList: false,
source: {}
}
}
},
......@@ -210,7 +396,7 @@ export default {
}
},
methods: {
handleAdd() {
handleAdd(type) {
this.dialogManger.dialogVisible = true
this.dialogManger.source = {}
},
......@@ -219,21 +405,33 @@ export default {
this.dialogPointManger.source = {}
},
handleDelete(node, data) {
console.log(node, data)
// this.$modal
// .confirm('是否确定删除该条数据?', '操作确认')
// .then(() => {
// // return delNotice(noticeIds)
// })
// .then(() => {
// this.loadData()
// this.$modal.msgSuccess('删除成功')
// })
// .catch(() => {})
// console.log(node, data)
this.$modal
.confirm('是否确定删除该条数据?', '操作确认')
.then(() => {
// return delNotice(noticeIds)
})
.then(() => {
this.loadData()
this.$modal.msgSuccess('删除成功')
})
.catch(() => {})
},
handleUpdate(row) {
this.dialogManger.dialogVisible = true
this.dialogManger.source = row
handleUpdate(type, row) {
switch (type) {
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
}
}
}
}
......
<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>
<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>
<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>
<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>
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment