integrated_traffic_admin_vue/src/views/hiddenDangerCheckStandardLi.../common/components/itemEdit.vue

265 lines
11 KiB
Vue

<template>
<el-dialog v-if="visible" :visible.sync="visible" :title="title" width="600px" @close="close">
<el-form v-loading="loading" ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;">
<el-form-item label="标准类别" prop="CHECK_CATEGORY">
<div class="uo-flex">
<el-select v-if="form.CHECK_CATEGORY_WAY === 'select'" v-model="form.CHECK_CATEGORY" placeholder="选择标准类别..." clearable style="width: 100%" class="filter-item" @change="changeCategory">
<el-option v-for="item in checkCategoryList" :key="item.DICTIONARY_ID" :label="item.DICTIONARY_NAME" :value="item.DICTIONARY_ID" />
</el-select>
<el-input v-if="form.CHECK_CATEGORY_WAY === 'value'" id="leaPostVal" :disabled="form.CHECK_CATEGORY_WAY === 'select'" v-model="form.CHECK_CATEGORY" placeholder="这里输入新的标准类别..." />
<el-button
type="success"
style="margin-left: 5px;height: 32px;"
size="mini"
@click="changeEditWay">{{ form.CHECK_CATEGORY_WAY === 'select' ? '输入' : '选择' }}</el-button>
</div>
</el-form-item>
<el-form-item label="标准项目" prop="CHECK_ITEM">
<div class="uo-flex">
<el-select v-if="form.CHECK_ITEM_WAY === 'select'" v-model="form.CHECK_ITEM" placeholder="选择标准项目..." clearable style="width: 100%" class="filter-item">
<el-option v-for="item in checkItemList" :key="item.DICTIONARY_ID" :label="item.DICTIONARY_NAME" :value="item.DICTIONARY_ID" />
</el-select>
<el-input v-if="form.CHECK_ITEM_WAY === 'value'" id="leaPostVal" :disabled="form.CHECK_ITEM_WAY === 'select'" v-model="form.CHECK_ITEM" placeholder="这里输入新的标准项目..." />
<el-button
:disabled="form.CHECK_CATEGORY_WAY === 'value'"
type="success"
style="margin-left: 5px;height: 32px;"
size="mini"
@click="changeEditItemWay">{{ form.CHECK_ITEM_WAY === 'select' ? '输入' : '选择' }}</el-button>
</div>
</el-form-item>
<el-form-item label="检查内容" prop="CHECK_CONTENT">
<el-input v-model="form.CHECK_CONTENT" :autosize="{ minRows: 1}" type="textarea" maxlength="500" placeholder="输入检查内容..." />
</el-form-item>
<el-form-item label="检查标准" prop="CHECK_STANDARD">
<el-input v-model="form.CHECK_STANDARD" :autosize="{ minRows: 1}" type="textarea" maxlength="500" placeholder="输入检查标准..." />
</el-form-item>
<el-form-item label="参考依据" prop="REFERENCE_BASIS">
<el-input v-model="form.REFERENCE_BASIS" :autosize="{ minRows: 1}" type="textarea" maxlength="500" placeholder="输入参考依据..." />
</el-form-item>
<el-form-item label="检查合格项" prop="CHECK_QUALIFIED">
<el-input v-model="form.CHECK_QUALIFIED" :autosize="{ minRows: 1}" type="textarea" maxlength="500" placeholder="输入检查合格项..." />
</el-form-item>
<el-form-item label="检查不合格项" prop="CHECK_UNQUALIFIED">
<el-input v-model="form.CHECK_UNQUALIFIED" :autosize="{ minRows: 1}" type="textarea" maxlength="500" placeholder="输入检查不合格项..." />
</el-form-item>
<el-form-item label="操作类型" prop="OPERATION_TYPE">
<el-select v-model="form.OPERATION_TYPE" placeholder="选择操作类型..." style="width: 100%" class="filter-item">
<el-option v-for="item in operationTypeList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="排序" prop="COMMON_ITEM_SORT">
<el-input-number :min="1" :precision="0" v-model="form.COMMON_ITEM_SORT" style="width: 100%;" controls-position="right" autocomplete="off" placeholder="这里输入排序..." />
</el-form-item>
<el-form-item label="状态" prop="COMMON_ITEM_STATUS">
<el-select v-model="form.COMMON_ITEM_STATUS" placeholder="状态" style="width: 100px" class="filter-item">
<el-option v-for="item in commonItemStatusList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="close">取 消</el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves'
import CascaderDict from '../../../../components/CascaderDict'
export default {
components: { CascaderDict },
directives: { waves },
props: {
title: {
type: String,
default: ''
}
},
data() {
return {
loading: false,
dialogType: 'addItem',
checkCategoryList: [], // 标准类别
checkItemAllList: [], // 标准项目
checkItemList: [], // 标准项目
operationTypeList: [
{ id: 1, name: '选择' },
{ id: 2, name: '填写' }
],
commonItemStatusList: [
{ id: 1, name: '有效' },
{ id: 2, name: '停用' }
],
tempData: {
CHECK_CATEGORY: '',
CHECK_ITEM: ''
},
form: {
COMMON_ITEM_ID: '',
COMMON_ID: this.$parent.COMMON_ID,
CHECK_CATEGORY_WAY: 'select',
CHECK_ITEM_WAY: 'select',
CHECK_CATEGORY: '',
CHECK_ITEM: '',
CHECK_CONTENT: '',
CHECK_STANDARD: '',
REFERENCE_BASIS: '',
CHECK_QUALIFIED: '',
CHECK_UNQUALIFIED: '',
OPERATION_TYPE: '',
COMMON_ITEM_SORT: '',
COMMON_ITEM_STATUS: ''
},
rules: {
CHECK_CATEGORY: [{ required: true, message: '标准类别不能为空', trigger: 'blur' }],
CHECK_ITEM: [{ required: true, message: '标准项目不能为空', trigger: 'blur' }],
CHECK_CONTENT: [{ required: true, message: '检查内容不能为空', trigger: 'blur' }],
CHECK_STANDARD: [{ required: true, message: '检查标准不能为空', trigger: 'blur' }],
REFERENCE_BASIS: [{ required: true, message: '参考依据不能为空', trigger: 'blur' }],
CHECK_QUALIFIED: [{ required: true, message: '检查合格项不能为空', trigger: 'blur' }],
CHECK_UNQUALIFIED: [{ required: true, message: '检查不合格项不能为空', trigger: 'blur' }],
OPERATION_TYPE: [{ required: true, message: '操作类型不能为空', trigger: 'blur' }],
COMMON_ITEM_SORT: [{ required: true, message: '排序不能为空', trigger: 'blur' }],
COMMON_ITEM_STATUS: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
},
listQuery: {
page: 1,
limit: 10
},
corp_info_list: [],
risk_unit_list: [],
visible: false,
info: {}
}
},
methods: {
init(e) {
this.visible = true
this.checkCategoryList = e.checkCategoryList
this.checkItemAllList = e.checkItemAllList
this.form.COMMON_ID = e.form.COMMON_ID
this.form.COMMON_ITEM_SORT = e.form.COMMON_ITEM_SORT
if (e.form.COMMON_ITEM_ID) {
this.checkItemList = this.checkItemAllList.filter(item => item.PARENT_IDS.includes(e.form.CHECK_CATEGORY))
this.$forceUpdate()
this.dialogType = 'editItem'
this.form = e.form
this.tempData.CHECK_CATEGORY = e.form.CHECK_CATEGORY
this.tempData.CHECK_ITEM = e.form.CHECK_ITEM
this.$set(this.form, 'CHECK_CATEGORY_WAY', 'select')
this.$set(this.form, 'CHECK_ITEM_WAY', 'select')
}
console.log(this.form)
},
changeEditWay() {
this.form.CHECK_CATEGORY_WAY = this.form.CHECK_CATEGORY_WAY === 'select' ? 'value' : 'select'
this.form.CHECK_ITEM_WAY = this.form.CHECK_CATEGORY_WAY
if (this.form.CHECK_CATEGORY_WAY === 'select') {
this.form.CHECK_CATEGORY = this.tempData.CHECK_CATEGORY
this.form.CHECK_ITEM = this.tempData.CHECK_ITEM
} else {
this.form.CHECK_CATEGORY = ''
this.form.CHECK_ITEM = ''
}
},
changeEditItemWay() {
this.form.CHECK_ITEM_WAY = this.form.CHECK_ITEM_WAY === 'select' ? 'value' : 'select'
if (this.form.CHECK_ITEM_WAY === 'select') {
this.form.CHECK_ITEM = this.tempData.CHECK_ITEM
} else {
this.form.CHECK_ITEM = ''
}
},
changeCategory() {
this.form.CHECK_ITEM = ''
this.checkItemList = []
this.checkItemAllList.forEach((item) => {
if (item.PARENT_IDS.includes(this.form.CHECK_CATEGORY)) {
this.checkItemList.push(item)
}
})
this.$forceUpdate()
},
async confirm() {
this.$refs.form.validate(async valid => {
if (valid) {
if (this.form.CHECK_CATEGORY_WAY === 'value') {
const { count } = await requestFN(
'/hiddenDangerCheckStandardDictionary/validateExist',
{
DICTIONARY_NAME: this.form.CHECK_CATEGORY,
DICTIONARY_LEVEL: 1
}
)
if (count > 0) {
this.$message.warning('新标准类别名称已存在!')
return
}
}
if (this.form.CHECK_ITEM_WAY === 'value') {
const { count } = await requestFN(
'/hiddenDangerCheckStandardDictionary/validateExist',
{
DICTIONARY_NAME: this.form.CHECK_ITEM,
PARENT_ID: this.form.CHECK_CATEGORY,
DICTIONARY_LEVEL: 2
}
)
if (count > 0) {
this.$message.warning('新标准项目名称已存在!')
return
}
}
this.loading = true
requestFN(
'/hiddenDangerCheckStandardCommon/' + this.dialogType,
this.form
).then((data) => {
this.loading = false
this.close()
this.$emit('beforeClose', '')
this.$message.success('操作成功')
}).catch((e) => {
this.loading = false
})
} else {
return false
}
})
},
resetForm() {
// this.$refs.refIndustryType.clearNodes()
this.form = {
COMMON_ITEM_ID: '',
COMMON_ID: this.$parent.COMMON_ID,
CHECK_CATEGORY: '',
CHECK_ITEM: '',
CHECK_CONTENT: '',
CHECK_STANDARD: '',
REFERENCE_BASIS: '',
CHECK_QUALIFIED: '',
CHECK_UNQUALIFIED: '',
OPERATION_TYPE: '',
COMMON_ITEM_SORT: '',
COMMON_ITEM_STATUS: ''
}
},
close() {
this.resetForm()
this.visible = false
},
getDicTree() {
}
}
}
</script>
<style lang="scss" scoped>
.uo-flex {
display: flex;
}
</style>