Browse Source

Merge branch 'release-sy-v1.0.0' of ssh://gitlab.datameta.com:2224/project/water/shuili-vue into release-sy-v1.0.0

sy-water-data-board-ui
chenhaojie 1 year ago
parent
commit
50851369a5
  1. 13
      src/views/dike/runManage/dangerWeakProject/inspectItemsSetting/index.vue
  2. 14
      src/views/dike/runManage/dangerWeakProject/inspectTasks/index.vue
  3. 62
      src/views/dike/runManage/monitoring/dike/manage/components/edit.vue
  4. 15
      src/views/dike/runManage/monitoring/dike/manage/index.vue
  5. 26
      src/views/dike/runManage/pestAnimalControl/governanceRecords/index.vue
  6. 12
      src/views/sluice/runManage/dangerWeakProject/inspectItemsSetting/index.vue
  7. 4
      src/views/sluice/runManage/dangerWeakProject/inspectTasks/index.vue
  8. 21
      src/views/sluice/runManage/dispatch/plan/components/edit.vue
  9. 69
      src/views/sluice/runManage/dispatch/record/components/edit.vue
  10. 59
      src/views/sluice/runManage/monitoring/sluice/manage/components/edit.vue
  11. 17
      src/views/sluice/runManage/monitoring/sluice/manage/index.vue

13
src/views/dike/runManage/dangerWeakProject/inspectItemsSetting/index.vue

@ -12,7 +12,7 @@
class="items-list-item" class="items-list-item"
@click="handleToItemsSetting(item)" @click="handleToItemsSetting(item)"
> >
<div class="font-14 font-bold">{{ item.name }}</div> <div class="font-14 font-bold text-overflow-2">{{ item.name }}</div>
<div class="font-12 mt-18">创建时间{{ item.createTime }}</div> <div class="font-12 mt-18">创建时间{{ item.createTime }}</div>
<div class="font-12 mt-6"> <div class="font-12 mt-6">
最后更新: {{ getCreator(item.updateUid) }} 最后更新: {{ getCreator(item.updateUid) }}
@ -48,7 +48,7 @@
class="" class=""
> >
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="ruleForm.name" :maxlength="100"></el-input> <el-input v-model="ruleForm.name" :maxlength="50"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -212,5 +212,14 @@ export default {
} }
} }
} }
// 2
.text-overflow-2 {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
} }
</style> </style>

14
src/views/dike/runManage/dangerWeakProject/inspectTasks/index.vue

@ -304,9 +304,19 @@ export default {
{{ formatAdcd(scope.row.adcdStart) }} {{ formatAdcd(scope.row.adcdStart) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" align="center" label="创建时间"> <el-table-column
prop="createTime"
align="center"
sortable
label="创建时间"
>
</el-table-column> </el-table-column>
<el-table-column prop="updateTime" align="center" label="更新时间" /> <el-table-column
prop="updateTime"
align="center"
sortable
label="更新时间"
/>
<el-table-column prop="operate" align="center" label="操作"> <el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button

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

@ -13,11 +13,13 @@ export default {
xcDeviceType:[], xcDeviceType:[],
xcWarnningType:[], xcWarnningType:[],
xcWarnningLevelType:[], xcWarnningLevelType:[],
xcDeviceStatus:[],
sluiceType:[], sluiceType:[],
ruleForm: { ruleForm: {
type: '', type: '',
name: '', name: '',
deviceId: '', deviceId: '',
status: '0',
message: '', message: '',
warningType: '', warningType: '',
warningLevel: '', warningLevel: '',
@ -32,23 +34,33 @@ export default {
name: [ name: [
{ required: true, message: "请选择设备名称", trigger: "blur" }, { required: true, message: "请选择设备名称", trigger: "blur" },
], ],
message: [
{ required: true, message: "请输入设备信息", trigger: "blur" },
],
reportInterval: [ reportInterval: [
{ required: true, message: "请输入自动预警上报间隔", trigger: "blur" }, { required: true, validator: this.validateReportInterval, trigger: "blur" },
], ],
Threshold: [ threshold: [
{ validator: this.validateThresholds }, { required: true, validator: this.validateThresholds, trigger: "blur" },
], ],
} }
} }
}, },
methods: { methods: {
validateThresholds(rule, value, callback) { 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('最小阈值必须小于最大阈值')); 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() callback()
} }
}, },
@ -60,6 +72,10 @@ export default {
}) })
} }
}) })
},
handleInput(event) {
// 使
this.ruleForm.reportInterval = event.replace(/\D/g, '');
} }
}, },
async mounted() { async mounted() {
@ -75,12 +91,17 @@ export default {
getDicts("xc_device_type").then((res) => { getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data; this.xcDeviceType = res.data;
}); });
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
if (this.model) { if (this.model) {
const data = await getDFDevice(this.model.id) const data = await getDFDevice(this.model.id)
this.ruleForm.type = data.data.type + '' this.ruleForm.type = data.data.type + ''
this.ruleForm.name = data.data.name this.ruleForm.name = data.data.name
this.ruleForm.deviceId = data.data.deviceId this.ruleForm.deviceId = data.data.deviceId
this.ruleForm.message = data.data.message this.ruleForm.message = data.data.message
this.ruleForm.status = data.data.status || '0'
this.ruleForm.warningType = data.data.warningType this.ruleForm.warningType = data.data.warningType
this.ruleForm.warningLevel = data.data.warningLevel this.ruleForm.warningLevel = data.data.warningLevel
this.ruleForm.reportInterval = data.data.configs[0].reportInterval this.ruleForm.reportInterval = data.data.configs[0].reportInterval
@ -125,7 +146,7 @@ export default {
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="120px" label="设备名称" prop="name"> <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"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -142,11 +163,12 @@ export default {
resize="none" resize="none"
rows="3" rows="3"
placeholder="请输入" placeholder="请输入"
maxlength="30" maxlength="500"
show-word-limit
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label-width="120px" label="预警类型" prop="warningType"> <el-form-item label-width="120px" label="预警类型" prop="warningType">
<el-select v-model="ruleForm.warningType" placeholder="请选择"> <el-select v-model="ruleForm.warningType" placeholder="请选择">
<el-option <el-option
@ -158,7 +180,7 @@ export default {
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label-width="120px" label="预警级别" prop="warningLevel"> <el-form-item label-width="120px" label="预警级别" prop="warningLevel">
<el-select v-model="ruleForm.warningLevel" placeholder="请选择"> <el-select v-model="ruleForm.warningLevel" placeholder="请选择">
<el-option <el-option
@ -170,6 +192,18 @@ export default {
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </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"> <el-col :span="24">
<div style="display: flex; margin-bottom: 16px"> <div style="display: flex; margin-bottom: 16px">
<div <div
@ -185,11 +219,11 @@ export default {
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="200px" label="自动预警上报间隔(分钟)" prop="reportInterval"> <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <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-col :span="8">
<el-form-item label-width="30px" label=">="> <el-form-item label-width="30px" label=">=">
<el-input style="width: 100px" v-model="ruleForm.minThreshold"></el-input> <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: [], xcWarnningType: [],
xcWarnningLevelType: [], xcWarnningLevelType: [],
xcDeviceType: [], xcDeviceType: [],
xcDeviceStatus: [],
searchForm: { searchForm: {
type: -1, type: -1,
warningLevel: "", warningLevel: "",
@ -177,6 +178,11 @@ export default {
const data = that.xcDeviceType.filter((res) => res.dictValue == price); const data = that.xcDeviceType.filter((res) => res.dictValue == price);
return data[0] ? data[0].dictLabel : "/"; 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() { async mounted() {
// //
@ -191,6 +197,10 @@ export default {
getDicts("xc_device_type").then((res) => { getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data; this.xcDeviceType = res.data;
}); });
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
// //
await this.getTableData(); await this.getTableData();
}, },
@ -271,6 +281,11 @@ export default {
{{ scope.row.warningLevel | filterwarnningLevel }} {{ scope.row.warningLevel | filterwarnningLevel }}
</template> </template>
</el-table-column> </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 <el-table-column
min-width="200" min-width="200"
prop="createTime" prop="createTime"

26
src/views/dike/runManage/pestAnimalControl/governanceRecords/index.vue

@ -570,6 +570,7 @@ export default {
<el-form-item label-width="120px" label="防治计划名称" prop="planId"> <el-form-item label-width="120px" label="防治计划名称" prop="planId">
<el-select <el-select
v-model="planForm.planId" v-model="planForm.planId"
:disabled="prohibitEditing"
remote remote
:remote-method="(query) => handleGetRemotePlanData(query)" :remote-method="(query) => handleGetRemotePlanData(query)"
@focus="handleGetRemotePlanData('')" @focus="handleGetRemotePlanData('')"
@ -829,7 +830,11 @@ export default {
> >
<div style="display: flex"> <div style="display: flex">
<el-form-item label-width="120px" label="施工地点" prop="location"> <el-form-item label-width="120px" label="施工地点" prop="location">
<el-select v-model="recordForm.location" placeholder="请选择"> <el-select
:disabled="prohibitEditing"
v-model="recordForm.location"
placeholder="请选择"
>
<el-option <el-option
v-for="item in locationList" v-for="item in locationList"
:label="item.dictLabel" :label="item.dictLabel"
@ -843,10 +848,17 @@ export default {
label="检查施工情况" label="检查施工情况"
prop="constructionStatus" prop="constructionStatus"
> >
<el-input v-model="recordForm.constructionStatus" /> <el-input
:disabled="prohibitEditing"
v-model="recordForm.constructionStatus"
/>
</el-form-item> </el-form-item>
<el-form-item label-width="80px" label="有害生物" prop="pest"> <el-form-item label-width="80px" label="有害生物" prop="pest">
<el-select v-model="recordForm.pest" placeholder="请输入"> <el-select
:disabled="prohibitEditing"
v-model="recordForm.pest"
placeholder="请输入"
>
<el-option <el-option
v-for="(item, index) in pestAnimalList" v-for="(item, index) in pestAnimalList"
:label="item.dictLabel" :label="item.dictLabel"
@ -872,6 +884,7 @@ export default {
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
v-model="scope.row.drugName" v-model="scope.row.drugName"
:disabled="prohibitEditing"
maxlength="100" maxlength="100"
placeholder="请输入药物名称" placeholder="请输入药物名称"
/> />
@ -881,6 +894,7 @@ export default {
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
v-model="scope.row.concentration" v-model="scope.row.concentration"
:disabled="prohibitEditing"
maxlength="100" maxlength="100"
placeholder="请输入浓度" placeholder="请输入浓度"
/> />
@ -890,6 +904,7 @@ export default {
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
v-model="scope.row.dose" v-model="scope.row.dose"
:disabled="prohibitEditing"
maxlength="100" maxlength="100"
placeholder="请输入剂量" placeholder="请输入剂量"
/> />
@ -902,7 +917,7 @@ export default {
type="text" type="text"
size="small" size="small"
@click="addWorkItem" @click="addWorkItem"
:disabled="recordForm.drugs.length >= 10" :disabled="prohibitEditing || recordForm.drugs.length >= 10"
>添加</el-button >添加</el-button
> >
<el-popconfirm <el-popconfirm
@ -911,6 +926,7 @@ export default {
icon="el-icon-info" icon="el-icon-info"
icon-color="red" icon-color="red"
title="确定删除吗?" title="确定删除吗?"
:disabled="prohibitEditing"
@confirm="deleteWorkTableItem(scope.row.id)" @confirm="deleteWorkTableItem(scope.row.id)"
> >
<el-button <el-button
@ -964,6 +980,7 @@ export default {
list-type="picture-card" list-type="picture-card"
:http-request="handleUpload" :http-request="handleUpload"
:auto-upload="true" :auto-upload="true"
:disabled="prohibitEditing"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:showFileList="false" :showFileList="false"
accept=".jpg,.png,.jpeg" accept=".jpg,.png,.jpeg"
@ -977,6 +994,7 @@ export default {
type="textarea" type="textarea"
:rows="3" :rows="3"
:maxlength="500" :maxlength="500"
:disabled="prohibitEditing"
placeholder="请输入" placeholder="请输入"
v-model="recordForm.remark" v-model="recordForm.remark"
> >

12
src/views/sluice/runManage/dangerWeakProject/inspectItemsSetting/index.vue

@ -12,7 +12,7 @@
class="items-list-item" class="items-list-item"
@click="handleToItemsSetting(item)" @click="handleToItemsSetting(item)"
> >
<div class="font-14 font-bold">{{ item.name }}</div> <div class="font-14 font-bold text-overflow-2">{{ item.name }}</div>
<div class="font-12 mt-18">创建时间{{ item.createTime }}</div> <div class="font-12 mt-18">创建时间{{ item.createTime }}</div>
<div class="font-12 mt-6"> <div class="font-12 mt-6">
最后更新: {{ getCreator(item.updateUid) }} 最后更新: {{ getCreator(item.updateUid) }}
@ -48,7 +48,7 @@
class="" class=""
> >
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="ruleForm.name" :maxlength="100"></el-input> <el-input v-model="ruleForm.name" :maxlength="50"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -214,4 +214,12 @@ export default {
} }
} }
} }
// 2
.text-overflow-2 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
</style> </style>

4
src/views/sluice/runManage/dangerWeakProject/inspectTasks/index.vue

@ -307,9 +307,9 @@ export default {
{{ formatAdcd(scope.row.adcd) }} {{ formatAdcd(scope.row.adcd) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" align="center" label="创建时间"> <el-table-column prop="createTime" align="center" sortable label="创建时间">
</el-table-column> </el-table-column>
<el-table-column prop="updateTime" align="center" label="更新时间" /> <el-table-column prop="updateTime" align="center" sortable label="更新时间" />
<el-table-column prop="operate" align="center" label="操作"> <el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button

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

@ -43,6 +43,7 @@ export default {
], ],
planName: [ planName: [
{required: true, message: "请输入计划名称", trigger: "blur"}, {required: true, message: "请输入计划名称", trigger: "blur"},
{max: 50, message: "不能超过50个字符", trigger: "blur"},
], ],
engineeringManagementUnit: [ engineeringManagementUnit: [
{required: true, message: "请选择主管单位", trigger: "blur"}, {required: true, message: "请选择主管单位", trigger: "blur"},
@ -84,6 +85,7 @@ export default {
handleUpload(e) { handleUpload(e) {
const {file} = e; const {file} = e;
let formData = new FormData(); let formData = new FormData();
console.log(file)
formData.append("file", file); formData.append("file", file);
uploadFileData(formData) uploadFileData(formData)
.then((res) => { .then((res) => {
@ -91,6 +93,9 @@ export default {
name: res.fileName, name: res.fileName,
url: res.url, url: res.url,
}) })
if (this.ruleForm.docs.length === 1) {
this.ruleForm.planName = file.name.split('.')[0]
}
this.fileList = this.ruleForm.docs this.fileList = this.ruleForm.docs
}) })
}, },
@ -108,12 +113,6 @@ export default {
// //
this.ruleForm.docs.splice(index, 1); this.ruleForm.docs.splice(index, 1);
}, },
submitOpinionUpload(res, file) {
this.ruleForm.docs.push({
name: res.fileName,
url: res.url,
})
},
// dialog // dialog
closeDialog() { closeDialog() {
this.dialog.visible = false this.dialog.visible = false
@ -167,7 +166,12 @@ export default {
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="120px" label="计划名称" prop="planName"> <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -204,14 +208,13 @@ export default {
:before-remove="beforeRemove" :before-remove="beforeRemove"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-remove="handleOpinionRemove" :on-remove="handleOpinionRemove"
:on-success="submitOpinionUpload"
multiple multiple
accept=".doc, .docx, .pdf, .png, .jpg" accept=".doc, .docx, .pdf, .png, .jpg"
:limit="5" :limit="5"
:on-exceed="handleExceed" :on-exceed="handleExceed"
:file-list="fileList"> :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传doc/docx/pdf/png/JPG文件且不能超过50m</div> <div slot="tip" class="el-upload__tip">只能上传doc/docx/pdf/png/jpg且不能超过50m</div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>

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

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

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

@ -13,11 +13,13 @@ export default {
xcDeviceType:[], xcDeviceType:[],
xcWarnningType:[], xcWarnningType:[],
xcWarnningLevelType:[], xcWarnningLevelType:[],
xcDeviceStatus:[],
sluiceType:[], sluiceType:[],
ruleForm: { ruleForm: {
type: '', type: '',
name: '', name: '',
deviceId: '', deviceId: '',
status: '0',
message: '', message: '',
warningType: '', warningType: '',
warningLevel: '', warningLevel: '',
@ -36,19 +38,32 @@ export default {
{ required: true, message: "请输入设备信息", trigger: "blur" }, { required: true, message: "请输入设备信息", trigger: "blur" },
], ],
reportInterval: [ reportInterval: [
{ required: true, message: "请输入自动预警上报间隔", trigger: "blur" }, { required: true, validator: this.validateReportInterval, trigger: "blur" },
], ],
Threshold: [ threshold: [
{ validator: this.validateThresholds }, { required: true, validator: this.validateThresholds, trigger: "blur" },
], ],
} }
} }
}, },
methods: { methods: {
validateThresholds(rule, value, callback) { 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('最小阈值必须小于最大阈值')); 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() callback()
} }
}, },
@ -60,6 +75,10 @@ export default {
}) })
} }
}) })
},
handleInput(event) {
// 使
this.ruleForm.reportInterval = event.replace(/\D/g, '');
} }
}, },
async mounted() { async mounted() {
@ -75,12 +94,17 @@ export default {
getDicts("xc_device_type").then((res) => { getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data; this.xcDeviceType = res.data;
}); });
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
if (this.model) { if (this.model) {
const data = await getSZDevice(this.model.id) const data = await getSZDevice(this.model.id)
this.ruleForm.type = data.data.type + '' this.ruleForm.type = data.data.type + ''
this.ruleForm.name = data.data.name this.ruleForm.name = data.data.name
this.ruleForm.deviceId = data.data.deviceId this.ruleForm.deviceId = data.data.deviceId
this.ruleForm.message = data.data.message this.ruleForm.message = data.data.message
this.ruleForm.status = data.data.status || '0'
this.ruleForm.warningType = data.data.warningType this.ruleForm.warningType = data.data.warningType
this.ruleForm.warningLevel = data.data.warningLevel this.ruleForm.warningLevel = data.data.warningLevel
this.ruleForm.reportInterval = data.data.configs[0].reportInterval this.ruleForm.reportInterval = data.data.configs[0].reportInterval
@ -125,7 +149,7 @@ export default {
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="120px" label="设备名称" prop="name"> <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"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -142,11 +166,12 @@ export default {
resize="none" resize="none"
rows="3" rows="3"
placeholder="请输入" placeholder="请输入"
maxlength="30" maxlength="500"
show-word-limit
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label-width="120px" label="预警类型" prop="warningType"> <el-form-item label-width="120px" label="预警类型" prop="warningType">
<el-select v-model="ruleForm.warningType" placeholder="请选择"> <el-select v-model="ruleForm.warningType" placeholder="请选择">
<el-option <el-option
@ -158,7 +183,7 @@ export default {
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label-width="120px" label="预警级别" prop="warningLevel"> <el-form-item label-width="120px" label="预警级别" prop="warningLevel">
<el-select v-model="ruleForm.warningLevel" placeholder="请选择"> <el-select v-model="ruleForm.warningLevel" placeholder="请选择">
<el-option <el-option
@ -170,6 +195,18 @@ export default {
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </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"> <el-col :span="24">
<div style="display: flex; margin-bottom: 16px"> <div style="display: flex; margin-bottom: 16px">
<div <div
@ -185,11 +222,11 @@ export default {
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label-width="200px" label="自动预警上报间隔(分钟)" prop="reportInterval"> <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <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-col :span="8">
<el-form-item label-width="30px" label=">="> <el-form-item label-width="30px" label=">=">
<el-input style="width: 100px" v-model="ruleForm.minThreshold"></el-input> <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: [], xcWarnningType: [],
xcWarnningLevelType: [], xcWarnningLevelType: [],
xcDeviceType: [], xcDeviceType: [],
xcDeviceStatus: [],
searchForm: { searchForm: {
type: -1, type: -1,
warningLevel: '', warningLevel: '',
@ -166,7 +167,12 @@ export default {
filterdeviceType (price) { filterdeviceType (price) {
const data = that.xcDeviceType.filter((res) => res.dictValue == price) const data = that.xcDeviceType.filter((res) => res.dictValue == price)
return data[0] ? data[0].dictLabel : '/' 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() { async mounted() {
// //
@ -181,6 +187,10 @@ export default {
getDicts("xc_device_type").then((res) => { getDicts("xc_device_type").then((res) => {
this.xcDeviceType = res.data; this.xcDeviceType = res.data;
}); });
//
getDicts("xc_device_status").then((res) => {
this.xcDeviceStatus = res.data;
});
// //
await this.getTableData(); await this.getTableData();
}, },
@ -251,6 +261,11 @@ export default {
{{ scope.row.warningLevel | filterwarnningLevel }} {{ scope.row.warningLevel | filterwarnningLevel }}
</template> </template>
</el-table-column> </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 <el-table-column
min-width="200" min-width="200"
prop="createTime" prop="createTime"

Loading…
Cancel
Save