|
|
@ -13,11 +13,13 @@ export default { |
|
|
|
xcDeviceType:[], |
|
|
|
xcWarnningType:[], |
|
|
|
xcWarnningLevelType:[], |
|
|
|
xcDeviceStatus:[], |
|
|
|
sluiceType:[], |
|
|
|
ruleForm: { |
|
|
|
type: '', |
|
|
|
name: '', |
|
|
|
deviceId: '', |
|
|
|
status: '0', |
|
|
|
message: '', |
|
|
|
warningType: '', |
|
|
|
warningLevel: '', |
|
|
@ -32,23 +34,33 @@ export default { |
|
|
|
name: [ |
|
|
|
{ required: true, message: "请选择设备名称", trigger: "blur" }, |
|
|
|
], |
|
|
|
message: [ |
|
|
|
{ required: true, message: "请输入设备信息", trigger: "blur" }, |
|
|
|
], |
|
|
|
reportInterval: [ |
|
|
|
{ required: true, message: "请输入自动预警上报间隔", trigger: "blur" }, |
|
|
|
{ required: true, validator: this.validateReportInterval, trigger: "blur" }, |
|
|
|
], |
|
|
|
Threshold: [ |
|
|
|
{ validator: this.validateThresholds }, |
|
|
|
threshold: [ |
|
|
|
{ required: true, validator: this.validateThresholds, trigger: "blur" }, |
|
|
|
], |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
validateThresholds(rule, value, callback) { |
|
|
|
if (this.ruleForm.minThreshold > this.ruleForm.maxThreshold) { |
|
|
|
if (!this.ruleForm.minThreshold && this.ruleForm.minThreshold !== 0) { |
|
|
|
callback(new Error('请输入最小阈值')); |
|
|
|
} else if (!this.ruleForm.maxThreshold && this.ruleForm.maxThreshold !== 0) { |
|
|
|
callback(new Error('请输入最大阈值')); |
|
|
|
} else if (this.ruleForm.minThreshold > this.ruleForm.maxThreshold) { |
|
|
|
callback(new Error('最小阈值必须小于最大阈值')); |
|
|
|
} else { |
|
|
|
}else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
}, |
|
|
|
validateReportInterval(rule, value, callback) { |
|
|
|
if (!this.ruleForm.reportInterval && this.ruleForm.reportInterval !== 0) { |
|
|
|
callback(new Error('请输入自动预警上报间隔')); |
|
|
|
} else if (this.ruleForm.reportInterval > 60 || this.ruleForm.reportInterval < 0) { |
|
|
|
callback(new Error('间隔值为0-60之间的整数')); |
|
|
|
}else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
}, |
|
|
@ -60,6 +72,10 @@ export default { |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleInput(event) { |
|
|
|
// 使用正则表达式匹配非数字字符,并将其替换为空字符串 |
|
|
|
this.ruleForm.reportInterval = event.replace(/\D/g, ''); |
|
|
|
} |
|
|
|
}, |
|
|
|
async mounted() { |
|
|
@ -75,12 +91,17 @@ export default { |
|
|
|
getDicts("xc_device_type").then((res) => { |
|
|
|
this.xcDeviceType = res.data; |
|
|
|
}); |
|
|
|
// 获取设备类型 |
|
|
|
getDicts("xc_device_status").then((res) => { |
|
|
|
this.xcDeviceStatus = res.data; |
|
|
|
}); |
|
|
|
if (this.model) { |
|
|
|
const data = await getDFDevice(this.model.id) |
|
|
|
this.ruleForm.type = data.data.type + '' |
|
|
|
this.ruleForm.name = data.data.name |
|
|
|
this.ruleForm.deviceId = data.data.deviceId |
|
|
|
this.ruleForm.message = data.data.message |
|
|
|
this.ruleForm.status = data.data.status || '0' |
|
|
|
this.ruleForm.warningType = data.data.warningType |
|
|
|
this.ruleForm.warningLevel = data.data.warningLevel |
|
|
|
this.ruleForm.reportInterval = data.data.configs[0].reportInterval |
|
|
@ -125,7 +146,7 @@ export default { |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label-width="120px" label="设备名称" prop="name"> |
|
|
|
<el-input style="width: 202px" v-model="ruleForm.name" placeholder="请输入"></el-input> |
|
|
|
<el-input style="width: 202px" v-model="ruleForm.name" placeholder="请输入" maxlength="50" show-word-limit></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
@ -142,11 +163,12 @@ export default { |
|
|
|
resize="none" |
|
|
|
rows="3" |
|
|
|
placeholder="请输入" |
|
|
|
maxlength="30" |
|
|
|
maxlength="500" |
|
|
|
show-word-limit |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label-width="120px" label="预警类型" prop="warningType"> |
|
|
|
<el-select v-model="ruleForm.warningType" placeholder="请选择"> |
|
|
|
<el-option |
|
|
@ -158,7 +180,7 @@ export default { |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label-width="120px" label="预警级别" prop="warningLevel"> |
|
|
|
<el-select v-model="ruleForm.warningLevel" placeholder="请选择"> |
|
|
|
<el-option |
|
|
@ -170,6 +192,18 @@ export default { |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label-width="120px" label="在线情况" prop="warningLevel"> |
|
|
|
<el-select v-model="ruleForm.status" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in xcDeviceStatus" |
|
|
|
:label="item.dictLabel" |
|
|
|
:value="item.dictValue" |
|
|
|
:key="item.id" |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<div style="display: flex; margin-bottom: 16px"> |
|
|
|
<div |
|
|
@ -185,11 +219,11 @@ export default { |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label-width="200px" label="自动预警上报间隔(分钟)" prop="reportInterval"> |
|
|
|
<el-input style="width: 202px" v-model="ruleForm.reportInterval"></el-input> |
|
|
|
<el-input style="width: 202px" v-model="ruleForm.reportInterval" @input="handleInput"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label-width="120px" label="预警阈值" prop="Threshold"> |
|
|
|
<el-form-item label-width="120px" label="预警阈值" prop="threshold"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label-width="30px" label=">="> |
|
|
|
<el-input style="width: 100px" v-model="ruleForm.minThreshold"></el-input> |
|
|
|