Browse Source

修复动态和调度第一轮bug

sy-water-data-board-ui
hejunjie 1 year ago
parent
commit
fa3d215757
  1. 62
      src/views/dike/runManage/monitoring/dike/manage/components/edit.vue
  2. 15
      src/views/dike/runManage/monitoring/dike/manage/index.vue
  3. 17
      src/views/sluice/runManage/dispatch/plan/components/edit.vue
  4. 69
      src/views/sluice/runManage/dispatch/record/components/edit.vue
  5. 59
      src/views/sluice/runManage/monitoring/sluice/manage/components/edit.vue
  6. 17
      src/views/sluice/runManage/monitoring/sluice/manage/index.vue

62
src/views/dike/runManage/monitoring/dike/manage/components/edit.vue

@ -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>

15
src/views/dike/runManage/monitoring/dike/manage/index.vue

@ -19,6 +19,7 @@ export default {
xcWarnningType: [],
xcWarnningLevelType: [],
xcDeviceType: [],
xcDeviceStatus: [],
searchForm: {
type: -1,
warningLevel: "",
@ -177,6 +178,11 @@ export default {
const data = that.xcDeviceType.filter((res) => res.dictValue == price);
return data[0] ? data[0].dictLabel : "/";
},
//
filterStatus(price) {
const data = that.xcDeviceStatus.filter((res) => res.dictValue == price);
return data[0] ? data[0].dictLabel : "离线";
},
},
async mounted() {
//
@ -191,6 +197,10 @@ export default {
getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data;
});
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
//
await this.getTableData();
},
@ -271,6 +281,11 @@ export default {
{{ scope.row.warningLevel | filterwarnningLevel }}
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="设备状态">
<template slot-scope="scope">
{{ scope.row.status | filterStatus }}
</template>
</el-table-column>
<el-table-column
min-width="200"
prop="createTime"

17
src/views/sluice/runManage/dispatch/plan/components/edit.vue

@ -43,6 +43,7 @@ export default {
],
planName: [
{required: true, message: "请输入计划名称", trigger: "blur"},
{max: 50, message: "不能超过50个字符", trigger: "blur"},
],
engineeringManagementUnit: [
{required: true, message: "请选择主管单位", trigger: "blur"},
@ -91,6 +92,9 @@ export default {
name: res.fileName,
url: res.url,
})
if (this.ruleForm.docs.length === 1) {
this.ruleForm.planName = res.fileName
}
this.fileList = this.ruleForm.docs
})
},
@ -108,12 +112,6 @@ export default {
//
this.ruleForm.docs.splice(index, 1);
},
submitOpinionUpload(res, file) {
this.ruleForm.docs.push({
name: res.fileName,
url: res.url,
})
},
// dialog
closeDialog() {
this.dialog.visible = false
@ -167,7 +165,12 @@ export default {
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="计划名称" prop="planName">
<el-input style="width: 202px" v-model="ruleForm.planName" placeholder="请输入计划名称"></el-input>
<el-input
style="width: 202px"
v-model="ruleForm.planName"
placeholder="请输入计划名称"
maxlength="50"
show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">

69
src/views/sluice/runManage/dispatch/record/components/edit.vue

@ -2,6 +2,7 @@
import {
getRunSzOperaRecord
} from "@/api/scheduling/operaRecord";
export default {
name: "Edit",
props: {
@ -26,16 +27,16 @@ export default {
},
rules: {
gate: [
{ required: true, message: "请输入闸门名称", trigger: "blur" },
{required: true, message: "请输入闸门名称", trigger: "blur"},
],
controlLevel: [
{ required: true, message: "请输入控制水位", trigger: "blur" },
{required: true, message: "请输入控制水位", trigger: "blur"},
],
leftDry: [
{ required: true, message: "请输入左干", trigger: "blur" },
{required: true, message: "请输入左干", trigger: "blur"},
],
rightDry: [
{ required: true, message: "请输入右干", trigger: "blur" },
{required: true, message: "请输入右干", trigger: "blur"},
],
}
}
@ -57,6 +58,12 @@ export default {
}
},
methods: {
handleInputVal(val, e) {
this.ruleForm[val] = e.replace(/[\W]/g, '');
},
handleInput(val, e) {
this.ruleForm[val] = e.replace(/\D/g, '');
},
submitForm(callback) {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
@ -92,58 +99,58 @@ export default {
>
<el-col :span="12">
<el-form-item label-width="120px" label="闸门" prop="gate">
<el-input style="width: 202px" v-model="ruleForm.gate"></el-input>
<el-input style="width: 202px" v-model="ruleForm.gate" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="闸号" prop="gateNum">
<el-input style="width: 202px" v-model="ruleForm.gateNum"></el-input>
</el-form-item>
<el-form-item label-width="120px" label="闸号" prop="gateNum">
<el-input style="width: 202px" v-model="ruleForm.gateNum" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="控制水位" prop="controlLevel">
<el-input style="width: 202px" v-model="ruleForm.controlLevel"></el-input>
<el-input style="width: 202px" v-model="ruleForm.controlLevel" maxlength="50" show-word-limit @input="(e) => handleInput('controlLevel', e)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="指令号" prop="commandNum">
<el-input style="width: 202px" v-model="ruleForm.commandNum"></el-input>
<el-input style="width: 202px" v-model="ruleForm.commandNum" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="左干" prop="leftDry">
<el-input style="width: 202px" v-model="ruleForm.leftDry"></el-input>
<el-input style="width: 202px" v-model="ruleForm.leftDry" maxlength="50" show-word-limit @input="(e) => handleInput('leftDry', e)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="右干" prop="rightDry">
<el-input style="width: 202px" v-model="ruleForm.rightDry"></el-input>
</el-form-item>
<el-form-item label-width="120px" label="右干" prop="rightDry">
<el-input style="width: 202px" v-model="ruleForm.rightDry" maxlength="50" show-word-limit @input="(e) => handleInput('rightDry', e)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="上游水位" prop="upstream">
<el-input style="width: 202px" v-model="ruleForm.upstreamLevel"></el-input>
</el-form-item>
<el-form-item label-width="120px" label="上游水位" prop="upstream" @input="(e) => handleInput('upstreamLevel', e)">
<el-input style="width: 202px" v-model="ruleForm.upstreamLevel" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="下游水位" prop="downstream">
<el-input style="width: 202px" v-model="ruleForm.downstreamLevel"></el-input>
</el-form-item>
<el-form-item label-width="120px" label="下游水位" prop="downstream" @input="(e) => handleInput('downstreamLevel', e)">
<el-input style="width: 202px" v-model="ruleForm.downstreamLevel" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="开度" prop="opening">
<el-input style="width: 202px" v-model="ruleForm.opening"></el-input>
</el-form-item>
<el-form-item label-width="120px" label="开度" prop="opening" @input="(e) => handleInput('opening', e)">
<el-input style="width: 202px" v-model="ruleForm.opening" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="时间" prop="time">
<el-date-picker
v-model="ruleForm.operatorTime"
type="datetime"
value-format="timestamp"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label-width="120px" label="时间" prop="time">
<el-date-picker
v-model="ruleForm.operatorTime"
type="datetime"
value-format="timestamp"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-form>
</div>

59
src/views/sluice/runManage/monitoring/sluice/manage/components/edit.vue

@ -13,11 +13,13 @@ export default {
xcDeviceType:[],
xcWarnningType:[],
xcWarnningLevelType:[],
xcDeviceStatus:[],
sluiceType:[],
ruleForm: {
type: '',
name: '',
deviceId: '',
status: '0',
message: '',
warningType: '',
warningLevel: '',
@ -36,19 +38,32 @@ export default {
{ 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 +75,10 @@ export default {
})
}
})
},
handleInput(event) {
// 使
this.ruleForm.reportInterval = event.replace(/\D/g, '');
}
},
async mounted() {
@ -75,12 +94,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 getSZDevice(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 +149,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 +166,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 +183,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 +195,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 +222,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>

17
src/views/sluice/runManage/monitoring/sluice/manage/index.vue

@ -19,6 +19,7 @@ export default {
xcWarnningType: [],
xcWarnningLevelType: [],
xcDeviceType: [],
xcDeviceStatus: [],
searchForm: {
type: -1,
warningLevel: '',
@ -166,7 +167,12 @@ export default {
filterdeviceType (price) {
const data = that.xcDeviceType.filter((res) => res.dictValue == price)
return data[0] ? data[0].dictLabel : '/'
}
},
//
filterStatus(price) {
const data = that.xcDeviceStatus.filter((res) => res.dictValue == price);
return data[0] ? data[0].dictLabel : "离线";
},
},
async mounted() {
//
@ -181,6 +187,10 @@ export default {
getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data;
});
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
//
await this.getTableData();
},
@ -251,6 +261,11 @@ export default {
{{ scope.row.warningLevel | filterwarnningLevel }}
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="设备状态">
<template slot-scope="scope">
{{ scope.row.status | filterStatus }}
</template>
</el-table-column>
<el-table-column
min-width="200"
prop="createTime"

Loading…
Cancel
Save