<template> <div> <el-form ref="dataForm" :model="form" :rules="rules" label-width="160px"> <div class="alarm-title">气象水文</div> <el-row> <el-col :span="10"> <el-form-item label="台风报警" prop="typhoonDistance"> <el-input v-model="form.typhoonDistance"> <template slot="prepend">小于</template> <template slot="append">海里</template> </el-input> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="风速报警" prop="typhoonSpeed"> <el-input v-model="form.typhoonSpeed"> <template slot="prepend">大于</template> <template slot="append">m/s</template> </el-input> </el-form-item> </el-col> </el-row> <div class="alarm-title">AIS&电子海图</div> <el-row> <el-col :span="10"> <el-form-item label="船舶报警" prop="shipDistance"> <el-input v-model="form.shipDistance" @keyup.native="value = oninput(value)"> <template slot="prepend">小于</template> <template slot="append">海里</template> </el-input> </el-form-item> </el-col> </el-row> <div class="alarm-title">水下机器人</div> <el-row> <el-col :span="10"> <el-form-item label="电量报警" prop="robotBattery"> <el-input v-model="form.robotBattery"> <template slot="prepend">小于</template> <template slot="append">%</template> </el-input> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="位置报警" prop="robotDistance"> <el-input v-model="form.robotDistance"> <template slot="prepend">大于</template> <template slot="append">海里</template> </el-input> </el-form-item> </el-col> </el-row> <div class="alarm-title">通信信号</div> <el-row> <el-col :span="10"> <el-form-item label="通信信号强度" prop="satelliteSignal"> <el-input v-model="form.satelliteSignal" > <template slot="prepend">小于</template> <template slot="append">kb/s</template> </el-input> </el-form-item> </el-col> </el-row> <div style="text-align: center;"> <el-button class="setting-btn" type="primary" @click="onSubmit">应 用</el-button> <el-button class="setting-btn" @click="read" style="margin-left: 20px">读取配置</el-button> <!--<el-button @click="save">保存配置</el-button>--> </div> </el-form> </div> </template> <script> import axios from 'axios' import { alarmUpdate,alarmRecentValue } from "@/api/alarm" export default { name: 'Alarm', components: {}, data() { const validatePoint = (rule, value, callback) => { if ((/^(([1-9][0-9]*|0)\.([0-9]{1,100})$)|^([1-9][0-9]*|0)$/).test(value) === false) { callback(new Error('请输入正数')) } else { callback() } } return { list: [], rules: { satelliteSignal:[{validator: validatePoint, trigger: ['blur', 'change'] }], typhoonDistance:[{validator: validatePoint, trigger: ['blur', 'change'] }], typhoonSpeed:[{validator: validatePoint, trigger: ['blur', 'change'] }], shipDistance:[{validator: validatePoint, trigger: ['blur', 'change'] }], robotBattery :[{validator: validatePoint, trigger: ['blur', 'change'] }], robotDistance:[{validator: validatePoint, trigger: ['blur', 'change'] }] }, form: { typhoonDistance:'', typhoonSpeed:'', shipDistance:'', robotBattery :'', robotDistance:'', satelliteSignal:'' } } }, created() { this.init() }, mounted() { this.init() }, methods: { onSubmit(){ alarmUpdate(this.form).then(res => { if (res.code === 200) { this.$message.success('阈值设置成功') this.init() } }) }, init(){ console.log('获取当前值') this.$nextTick(() => { this.$refs['dataForm'].clearValidate() }) alarmRecentValue().then(res => { if (res.code === 200) { this.form = res.data } }) }, read(){ var that = this axios.get('./config/alarm.json').then((result) => { that.form = result.data }).catch((error) => { console.error('get baseConfig error...' + error) }) } } } </script> <style rel="stylesheet/scss" lang="scss"> .el-input-group__append, .el-input-group__prepend { padding: 5px !important; min-width: 40px; font-size: 12px; background-color: white !important; /*border: 1px solid #DCDFE6;*/ } .alarm-title{ text-align: center; margin: 7px; margin-top:0px; font-size: 15px; font-weight: bold; max-width: 120px; color: white; padding: 5px; background-color: #409effee; border-radius: 6px; } .setting-btn{ width: 100px; } </style>