<template>
|
<el-dialog v-diadrag :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible">
|
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="80px" class="l-mes">
|
<el-form-item label="参数编号" prop="code">
|
<el-input v-model="dataForm.code" placeholder="参数编号"></el-input>
|
</el-form-item>
|
<el-form-item label="参数项" prop="parameterItem">
|
<el-input v-model="dataForm.parameterItem" placeholder="参数项"></el-input>
|
</el-form-item>
|
<el-form-item label="二级参数" prop="secondId">
|
<el-select v-model="dataForm.secondId" multiple collapse-tags style="width: 100%;" placeholder="请选择">
|
<el-option v-for="item in optionsSecond" :key="item.id" :label="item.label" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="三级级参数" prop="thirdId">
|
<el-select v-model="dataForm.thirdId" multiple collapse-tags style="width: 100%;" placeholder="请选择">
|
<el-option v-for="item in optionsThird" :key="item.id" :label="item.label" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-form-item label="参数类型" prop="type">
|
<el-select
|
v-model="dataForm.type"
|
filterable
|
placeholder="请选择参数类型"
|
style="width:100%"
|
@change="changeType"
|
>
|
<el-option
|
v-for="(item, index) in this.typeOptions"
|
:label="item.label"
|
:value="item.value"
|
:key="index"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
v-show="dataForm.type !== '2'"
|
label="参数格式"
|
prop="parameterFormat"
|
>
|
<el-input
|
v-model="dataForm.parameterFormat"
|
placeholder="参数格式"
|
></el-input>
|
</el-form-item>
|
<el-form-item v-show="dataForm.type === '2'" label="数据字典" prop="dict">
|
<el-select
|
v-model="dataForm.dict"
|
filterable
|
placeholder="请选择数据字典"
|
style="width:100%"
|
>
|
<el-option
|
v-for="(item, index) in this.dictOptions"
|
:label="item.description"
|
:value="item.type"
|
:key="index"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="单位" prop="unit">
|
<el-input v-model="dataForm.unit" placeholder="单位"></el-input>
|
</el-form-item> -->
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="visible = false">取消</el-button>
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
</span>
|
</el-dialog>
|
</template>
|
|
<script>
|
import { getObj, addObj, putObj, checkItemRepeat } from '@/api/basic/param'
|
import { remote, fetchList } from '../../../api/admin/dict'
|
|
export default {
|
data() {
|
return {
|
typeOptions: [],
|
dictOptions: [],
|
optionsSecond: [],
|
optionsThird: [],
|
visible: false,
|
dataForm: {
|
id: 0,
|
code: '',
|
parameterItem: '',
|
secondId: null,
|
thirdId: null,
|
type: '',
|
parameterFormat: '',
|
unit: '',
|
createUser: '',
|
updateUser: '',
|
createTime: '',
|
updateTime: '',
|
dict: ''
|
},
|
secondParam: null,
|
thirdParam: null,
|
dataRule: {
|
code: [
|
{ required: true, message: '参数编号不能为空', trigger: 'blur' }
|
],
|
parameterItem: [
|
{ required: true, message: '参数项不能为空', trigger: 'blur' }
|
],
|
// type: [
|
// { required: true, message: '参数类型不能为空', trigger: 'blur' }
|
// ],
|
// unit: [{ required: true, message: '单位不能为空', trigger: 'blur' }]
|
},
|
clickDateArr: []
|
}
|
},
|
created() {
|
this.getParamType()
|
this.getDictOptions()
|
remote('second_param').then((response) => {
|
if (response.data.code === 0) {
|
this.optionsSecond = response.data.data
|
}
|
})
|
remote('third_param').then((response) => {
|
if (response.data.code === 0) {
|
this.optionsThird = response.data.data
|
}
|
})
|
},
|
methods: {
|
init(id) {
|
this.dataForm.id = id || 0
|
this.clickDateArr = []
|
this.visible = true
|
this.$nextTick(() => {
|
this.$refs.dataForm.resetFields()
|
if (this.dataForm.id) {
|
getObj(this.dataForm.id).then((response) => {
|
this.dataForm = response.data.data
|
})
|
}
|
})
|
},
|
// 修改参数类型
|
changeType(val) {
|
if (val === '1') {
|
if (!this.dataForm.id) {
|
this.dataForm.parameterFormat = '#.0000'
|
}
|
} else {
|
if (!this.dataForm.id) {
|
this.dataForm.parameterFormat = ''
|
}
|
}
|
},
|
// 获取工序参数类型
|
getParamType() {
|
remote('technology_param').then((response) => {
|
if (response.data.code === 0) {
|
this.typeOptions = response.data.data
|
}
|
})
|
},
|
// 获取所有字典
|
getDictOptions() {
|
fetchList(
|
Object.assign({
|
current: 1,
|
size: 200
|
})
|
).then((response) => {
|
if (response.data.code === 0) {
|
this.dictOptions = response.data.data.records
|
}
|
})
|
},
|
// 表单提交
|
dataFormSubmit() {
|
var canClickFlag = true
|
this.clickDateArr.push(new Date().getTime())
|
if (this.clickDateArr.length > 1) {
|
if (
|
this.clickDateArr[this.clickDateArr.length - 1] -
|
this.clickDateArr[this.clickDateArr.length - 2] <
|
2000
|
) {
|
// 小于2秒则认为重复提交
|
canClickFlag = false
|
}
|
}
|
if (canClickFlag) {
|
this.$refs.dataForm.validate((valid) => {
|
if (valid) {
|
checkItemRepeat(this.dataForm).then((response) => {
|
if (!response.data.data) {
|
this.addOrUpdate()
|
} else {
|
this.message.error('编号重复!')
|
// // 增加参数项内容重复提示
|
// this.$confirm(
|
// '参数项内容重复,编号:' +
|
// response.data.data +
|
// ',请确认是否继续',
|
// '提示',
|
// {
|
// confirmButtonText: '确定',
|
// cancelButtonText: '取消',
|
// closeOnClickModal: false,
|
// type: 'warning'
|
// }
|
// )
|
// .then(() => {
|
// this.addOrUpdate()
|
// })
|
// .catch(() => { })
|
}
|
})
|
}
|
})
|
}
|
},
|
addOrUpdate() {
|
if (this.dataForm.id) {
|
putObj(this.dataForm).then((response) => {
|
const data = response.data.data
|
if (data.code === 0) {
|
this.$message.success('修改成功')
|
this.visible = false
|
this.$emit('refreshDataList')
|
} else {
|
this.$message.error(data.msg)
|
}
|
})
|
} else {
|
|
addObj(this.dataForm).then((response) => {
|
const data = response.data.data
|
if (data.code === 0) {
|
this.$message.success('添加成功')
|
this.visible = false
|
this.$emit('refreshDataList')
|
} else {
|
this.$message.error(data.msg)
|
}
|
})
|
}
|
}
|
}
|
}
|
</script>
|