Commit 6bb45e9f authored by zhang's avatar zhang

feat: (首页/检测内容) /标准文本:取消操作功能 新增 /检测要点 页面

parent 577b56fd
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
:model="queryParams" :model="queryParams"
size="small" size="small"
:inline="true" :inline="true"
label-width="68px" label-width="75px"
> >
<el-form-item prop="standardType"> <el-form-item prop="standardType" label="标准分类:">
<el-select <el-select
v-model="queryParams.standardType" v-model="queryParams.standardType"
placeholder="请选择标准分类" placeholder="请选择标准分类"
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
> >
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="standardNo"> <el-form-item prop="standardNo" label="标准号:">
<el-input <el-input
v-model="queryParams.standardNo" v-model="queryParams.standardNo"
placeholder="请输入标准号" placeholder="请输入标准号"
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item prop="name"> <el-form-item prop="name" label="标准名称:">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
placeholder="请输入标准名称" placeholder="请输入标准名称"
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item prop="standardStatus"> <el-form-item prop="standardStatus" label="标准状态:">
<el-select <el-select
v-model="queryParams.standardStatus" v-model="queryParams.standardStatus"
placeholder="请选择标准状态" placeholder="请选择标准状态"
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
v-loading="loading" v-loading="loading"
border border
:span-method="objectSpanMethod" :span-method="objectSpanMethod"
:row-style="{height:'50px'}"
:scroll-x="'1500px'" :scroll-x="'1500px'"
:default-sort="{ prop: 'releaseDate', order: 'descending' }" :default-sort="{ prop: 'releaseDate', order: 'descending' }"
:data="tableData" :data="tableData"
...@@ -155,7 +156,7 @@ ...@@ -155,7 +156,7 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
label="操作" label="操作"
align="center" align="center"
width="240" width="240"
...@@ -172,9 +173,10 @@ ...@@ -172,9 +173,10 @@
></page-button> ></page-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<pagination <pagination
style="height: 50px;"
v-show="total > 0" v-show="total > 0"
:total="total" :total="total"
:background="false" :background="false"
...@@ -290,11 +292,11 @@ export default { ...@@ -290,11 +292,11 @@ export default {
}) })
.catch(() => {}) .catch(() => {})
}, },
handleUpdate(row) { // handleUpdate(row) {
console.log('row', row) // console.log('row', row)
this.TixiDialogManger.dialogVisible = true // this.TixiDialogManger.dialogVisible = true
this.TixiDialogManger.dialogEditId = row.id // this.TixiDialogManger.dialogEditId = row.id
} // }
} }
} }
</script> </script>
......
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
:title="modelTitle"
width="1200"
append-to-body
destroy-on-close
:close-on-click-modal="false"
: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)
console.log('车型审查')
}
})
}
}
}
</script>
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
:title="modelTitle"
width="1200"
append-to-body
destroy-on-close
:close-on-click-modal="false"
: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)
console.log('检验测试')
}
})
}
}
}
</script>
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
title="修改"
width="1200"
append-to-body
destroy-on-close
:close-on-click-modal="false"
:before-close="handleClose"
>
<el-form ref="form" :model="model" :rules="rules">
<el-form-item label="标准分类" prop="standardType">
<el-select
v-model="model.standardType"
disabled
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="standardNo">
<el-input
v-model="model.standardNo"
disabled
placeholder="请输入"
clearable
/>
</el-form-item>
<el-form-item label="标准名称" prop="name">
<el-input
v-model="model.name"
disabled
placeholder="请输入"
clearable
/>
</el-form-item>
<el-form-item label="标准状态" prop="standardStatus">
<el-select
v-model="model.standardStatus"
style="width: 100%"
placeholder="请选择"
clearable
>
<el-option
v-for="dict in dict.type.sys_standard_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="发布日期" prop="releaseDate">
<el-date-picker
v-model="model.releaseDate"
style="width: 100%"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="实施日期" prop="implementationDate">
<el-date-picker
v-model="model.implementationDate"
style="width: 100%"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="检验项目(可多选)" prop="inspectionItemList">
<div class="test-scenario-container">
<div
v-for="(item, index) in inspectionItemList"
:key="index"
:class="{
'test-scenario': item.check === false,
'check-test-scenario': item.check === true
}"
@click="handleInspectionItem(item)"
>
<div>{{ item.label }}</div>
</div>
</div>
</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>
import { getDicts } from '@/api/system/dict/data'
import { projectList } from '@/api/setting/standard'
export default {
props: {
dialogManger: {
type: Object,
default() {
return {
dialogVisible: false,
dialogEditId: null
}
}
}
},
dicts: ['sys_detailed_classification', 'sys_standard_status'],
data() {
const validatePass = (rule, value, callback) => {
var result = this.inspectionItemList.findIndex(
value => value.check === true
)
if (result === -1) {
callback(new Error('请至少选择一个检验项目'))
} else {
callback()
}
}
return {
model: this.$modelDataSource({
url: '/standard',
dataKey: 'model',
attributes: {
standardType: '',
standardNo: '',
name: '',
standardStatus: '',
releaseDate: '',
implementationDate: '',
dictList: []
}
}),
inspectionItemList: [],
rules: {
standardType: [
{ required: true, message: '标准分类不能为空', trigger: 'blur' }
],
standardNo: [
{ required: true, message: '标准号不能为空', trigger: 'blur' }
],
name: [
{ required: true, message: '标准名称不能为空', trigger: 'blur' }
],
standardStatus: [
{ required: true, message: '标准状态不能为空', trigger: 'blur' }
],
releaseDate: [
{ required: true, message: '发布日期不能为空', trigger: 'blur' }
],
implementationDate: [
{ required: true, message: '实施日期不能为空', trigger: 'blur' }
],
inspectionItemList: [
{
type: 'array',
required: true,
trigger: 'change',
validator: validatePass
}
]
}
}
},
// computed: {
// modelTitle() {
// return this.dialogManger.dialogEditId ? '编辑标准' : '新增标准'
// }
// },
watch: {
'dialogManger.dialogEditId'(newValue) {
this.model.fetch(
newValue,
{},
() => {
this.dialogManger.dialogVisible = true
const dictList = this.model.dictList
if (dictList.length > 0) {
dictList.forEach((item, index) => {
this.inspectionItemList.forEach((item2, index2) => {
if (item2.value === item.dictCode) {
item2.check = true
}
})
})
} else {
this.inspectionItemList.forEach((item, index) => {
item.check = false
})
}
},
() => {
this.$emit('refresh')
}
)
}
},
mounted() {
this.getInspectionItemDict()
},
methods: {
handleInspectionItem(item) {
// console.log('字典', item)
item.check = !item.check
},
/** 获取检验项目字典数据 */
getInspectionItemDict() {
getDicts('inspection_item').then(response => {
this.inspectionItemList = response.data.map(
({ dictCode, dictLabel, ...rest }) => ({
label: dictLabel,
value: dictCode,
check: false,
...rest
})
)
console.log('inspectionItemList', this.inspectionItemList)
})
},
handleClose() {
this.model.reset()
this.inspectionItemList.forEach((item, index) => {
item.check = false
})
this.dialogManger.dialogEditId = null
this.dialogManger.dialogVisible = false
// this.$emit('close')
},
handleConfirm() {
// console.log('dialogManger', this.dialogManger)
// this.$refs['form'].validate(valid => {
// if (valid) {
// console.log(valid)
// console.log('体系审查')
// }
// })
this.model.dictList = []
this.$refs['form'].validate(valid => {
if (valid) {
this.inspectionItemList.forEach((item, index) => {
if (item.check === true) {
this.model.dictList.push({ dictCode: item.value })
}
})
this.model.save(
() => {
this.model.dictList = []
this.$message.success('保存成功')
this.$emit('refresh')
this.handleClose()
},
errors => {
this.handleClose()
}
)
} else {
console.log('表单验证失败')
}
})
}
}
}
</script>
<style scoped lang="scss">
.test-scenario-container {
display: flex;
flex-wrap: wrap;
.test-scenario {
width: 228px;
height: 32px;
border: 1px solid #dcdfe6;
background-color: #ffffff;
margin: 0 10px 10px 0;
border-radius: 30px;
div {
text-align: center;
position: relative;
}
}
.check-test-scenario {
width: 228px;
height: 32px;
border: 1px solid #1a6fd7;
background-color: #e3eefc;
margin: 0 10px 10px 0;
border-radius: 30px;
div {
color: #1a6fd7;
text-align: center;
position: relative;
font-size: 14px;
font-family: Microsoft YaHei, Microsoft YaHei-400;
font-weight: 400;
}
}
}
</style>
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
:title="modelTitle"
width="1200"
append-to-body
destroy-on-close
:close-on-click-modal="false"
: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)
console.log('文档审查')
}
})
}
}
}
</script>
<template>
<el-dialog
:visible.sync="dialogManger.dialogVisible"
:title="modelTitle"
width="1200"
append-to-body
destroy-on-close
:close-on-click-modal="false"
: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"
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"
:background="false"
: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.
...@@ -129,5 +129,10 @@ data(){ ...@@ -129,5 +129,10 @@ data(){
height: 70vh; height: 70vh;
overflow: auto; overflow: auto;
} }
.input ::v-deep .el-input__inner {
color: black;
}
.textarea ::v-deep .el-textarea__inner {
color: black;
}
</style> </style>
\ No newline at end of file
...@@ -382,7 +382,7 @@ export default { ...@@ -382,7 +382,7 @@ export default {
// res.rows[0].carReviewStatus = 'FINISH' // res.rows[0].carReviewStatus = 'FINISH'
// res.rows[0].reviewStatus = 'SIGNED' // res.rows[0].reviewStatus = 'SIGNED'
// res.rows[0].carReviewStatus = 'FINISH' // res.rows[0].carReviewStatus = 'FINISH'
if(res.rows=='' || !res.rows){ if(res.rows=='' || !res.rows){
this.tableData = [] this.tableData = []
this.loading = false this.loading = false
......
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