<template>
|
<a-modal class='ant-modal-body' :title='title' :width='500' :visible='visible' :maskClosable='false'
|
:confirmLoading='confirmLoading'
|
:okButtonProps='{ props: {disabled: disableSubmit} }' @ok='handleOk' @cancel='handleCancel' cancelText='关闭'>
|
<a-spin :spinning='confirmLoading'>
|
<a-form :form='form'>
|
|
<a-row :gutter='12'>
|
<a-col :span='24'>
|
<a-form-item label='设备编号' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
<a-input :disabled='disableSubmit' :readOnly='disableSubmit' placeholder='请输入设备编号' allow-clear
|
:maxLength='15' v-decorator="['eqptCode', validatorRules.eqptCode]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row :gutter='12'>
|
<a-col :span='32'>
|
<a-form-item label='设备名称' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
<a-input :disabled='disableSubmit' :readOnly='disableSubmit' placeholder='请输入设备名称' allow-clear
|
:maxLength='20' v-decorator="[ 'eqptName', validatorRules.eqptName]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row :gutter='12'>
|
<a-col :span='32'>
|
<a-form-item label='是否采集' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
<a-radio-group name="tenantStatus" :disabled='disableSubmit'
|
:readOnly='disableSubmit' v-decorator="[ 'isCollection', {initialValue: 1 }]">
|
<a-radio :value="1">是</a-radio>
|
<a-radio :value="0">否</a-radio>
|
</a-radio-group>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row :gutter='12'>
|
<a-col :span='32'>
|
<a-form-model-item prop="controlSystem" label="控制系统" :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
<a-select placeholder="请选择控制系统" v-decorator="['controlSystem', validatorRules.controlSystem]" @change="handleFaultNameChange">
|
<a-select-option v-for="item in controlSystemList" :key="item.driveType">
|
{{ item.driveType }}
|
</a-select-option>
|
</a-select>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row :gutter='12'>
|
<a-col :span='32'>
|
<a-form-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='备注'>
|
<a-textarea :disabled='disableSubmit' :readOnly='disableSubmit' placeholder='请输入备注' allow-clear
|
v-decorator="['remark', validatorRules.remark]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
</a-form>
|
</a-spin>
|
<template slot='footer' v-if='disableSubmit == false'>
|
<a-button :style="{ marginRight: '8px' }" @click='handleCancel'>关闭</a-button>
|
<a-button @click='handleOk' type='primary'>确定</a-button>
|
</template>
|
<template slot='footer' v-if='disableSubmit == true'>
|
<a-button :style="{ marginRight: '8px' }" @click='handleCancel'>关闭</a-button>
|
</template>
|
</a-modal>
|
</template>
|
|
<script>
|
import pick from 'lodash.pick'
|
import { httpAction, getAction } from '@/api/manage'
|
|
export default {
|
|
name: 'EmptyEquipmentModel',
|
props: [
|
'serverId'
|
],
|
data() {
|
return {
|
controlSystem: '',
|
controlSystemList: null,
|
radioGroup: '1',
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 7 }
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 14 }
|
},
|
validatorRules: {
|
controlSystem: {
|
rules: [{
|
required: true,
|
message: '请选择系统'
|
},
|
]
|
},
|
eqptName: {
|
rules: [{
|
required: true,
|
message: '请输入终端名称'
|
},
|
{
|
min: 0,
|
max: 30,
|
message: '长度不超过 30 个字符',
|
trigger: 'blur'
|
}
|
]
|
},
|
eqptCode: {
|
rules: [{
|
required: true,
|
message: '请输入设备编码',
|
min: 0,
|
max: 30,
|
trigger: 'blur'
|
}
|
]
|
},
|
remark: {
|
rules: [{
|
min: 0,
|
max: 100,
|
message: '最长 100 个字符',
|
trigger: 'blur'
|
}]
|
}
|
},
|
title: '',
|
visible: false,
|
model: {},
|
confirmLoading: false,
|
form: this.$form.createForm(this),
|
url: {
|
add: '/equipment/add/empty',
|
edit: '/equipment/edit',
|
controlSystem: '/equipment/findControlSystem'
|
},
|
disableSubmit: false
|
}
|
},
|
|
methods: {
|
handleFaultNameChange(value) {
|
const faultReasonItem = this.controlSystemList.find(item => item.driveType === value)
|
this.model.controlSystem = faultReasonItem.driveType
|
},
|
add() {
|
this.edit({})
|
},
|
edit(record) {
|
this.form.resetFields()
|
this.model = Object.assign({}, record)
|
this.visible = true
|
if (this.model.id){
|
this.model.isCollection = parseInt(this.model.isCollection)
|
}
|
this.$nextTick(() => {
|
this.form.setFieldsValue(pick(this.model, 'eqptCode', 'eqptName','controlSystem','isCollection', 'remark'))
|
})
|
// 查询系统类型
|
getAction(this.url.controlSystem).then((res) => {
|
if (res.success) {
|
this.controlSystemList = res.result
|
if (!this.model.id){
|
this.model.controlSystem = this.controlSystemList[0].driveType
|
}
|
}
|
})
|
},
|
close() {
|
this.$emit('close')
|
this.visible = false
|
},
|
// 表单提交
|
handleOk() {
|
const that = this
|
// 触发表单验证
|
this.form.validateFields((err, values) => {
|
if (!err) {
|
that.confirmLoading = true
|
let formData = Object.assign(this.model, values)
|
// 采集信息
|
let obj
|
if (!this.model.id) {
|
formData.serverId = this.serverId
|
obj = httpAction(this.url.add, formData, 'post')
|
} else {
|
obj = httpAction(this.url.edit, formData, 'put')
|
}
|
obj.then((res) => {
|
if (res.code !== 500) {
|
that.$message.success(res.message)
|
this.$emit('ok', res.result)
|
that.close()
|
} else {
|
that.$message.warning(res.message)
|
}
|
}).finally(() => {
|
that.confirmLoading = false
|
})
|
}
|
})
|
},
|
handleCancel() {
|
this.close()
|
}
|
}
|
}
|
</script>
|