Commit 959e722a authored by forevertyler's avatar forevertyler

fix:sth

parent 089eca97
...@@ -96,4 +96,13 @@ export function draDeviceName(query) { ...@@ -96,4 +96,13 @@ export function draDeviceName(query) {
method: 'get', method: 'get',
params: query params: query
}) })
}
//风机系统风机名称下拉
export function fanDeviceName(query) {
return request({
url: '/business/fan/base/deviceName',
method: 'get',
params: query
})
} }
\ No newline at end of file
...@@ -8,3 +8,21 @@ export function listFanHis(query) { ...@@ -8,3 +8,21 @@ export function listFanHis(query) {
params: query params: query
}) })
} }
// 查询风机运行报警列表
export function listalarmFan(query) {
return request({
url: '/business/fan/alarm/list',
method: 'get',
params: query
})
}
// 修改风机运行报警列表
export function alarmFanEdit(query) {
return request({
url: '/business/fan/alarm/edit',
method: 'post',
data: query
})
}
\ No newline at end of file
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<div class="sub-header-mid"> <div class="sub-header-mid">
<div class="top-change"> <div class="top-change">
<span @click="changeMenu(0)">首页</span> <span @click="changeMenu(0)">首页</span>
<span>企业宣传</span> <span @click="openVideo">企业宣传</span>
<span @click="goToSys">后台管理</span> <span @click="goToSys">后台管理</span>
</div> </div>
</div> </div>
...@@ -75,6 +75,8 @@ ...@@ -75,6 +75,8 @@
<script> <script>
// import * as echarts from "echarts"; // import * as echarts from "echarts";
// import { getScale } from "@/utils/tylerlcl"; // import { getScale } from "@/utils/tylerlcl";
import { listVideo } from "@/api/tyler/mainVideo";
import screenfull from "screenfull"; import screenfull from "screenfull";
import rydw from "./items/rydw.vue"; import rydw from "./items/rydw.vue";
import hjjc from "./items/hjjc.vue"; import hjjc from "./items/hjjc.vue";
...@@ -92,10 +94,13 @@ export default { ...@@ -92,10 +94,13 @@ export default {
}, },
data() { data() {
return { return {
previewUrl: process.env.VUE_APP_API_TARGET,
showMenu: 0, showMenu: 0,
videoData:null,
}; };
}, },
mounted() { mounted() {
this.getVideo()
if (screenfull && screenfull.enabled && !screenfull.isFullscreen) { if (screenfull && screenfull.enabled && !screenfull.isFullscreen) {
screenfull.request(); screenfull.request();
} }
...@@ -103,6 +108,13 @@ export default { ...@@ -103,6 +108,13 @@ export default {
// this.alarm30(); // this.alarm30();
}, },
methods: { methods: {
getVideo(){
this.videoData = null;
listVideo().then(res => {
this.videoData = this.previewUrl + res.data;
})
},
changeMenu(val) { changeMenu(val) {
this.showMenu = val; this.showMenu = val;
}, },
...@@ -114,6 +126,10 @@ export default { ...@@ -114,6 +126,10 @@ export default {
window.open(link.href); window.open(link.href);
return; return;
}, },
openVideo(){
window.open(this.videoData);
return;
},
}, },
}; };
</script> </script>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-table v-loading="loading" :data="historyList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="historyList" @selection-change="handleSelectionChange">
<el-table-column label="设备名称" align="center" prop="sumpName" /> <el-table-column label="设备名称" align="center" prop="sumpName" />
<el-table-column label="设备编号" align="center" prop="sumpId" /> <el-table-column label="设备编号" align="center" prop="sumpId" />
<el-table-column label="设备安装位置" align="center" prop="installationLocation" /> <el-table-column label="设备安装描述" align="center" prop="installationLocation" />
<el-table-column label="液位高度(m)" align="center" prop="heghtThreshold" /> <el-table-column label="液位高度(m)" align="center" prop="heghtThreshold" />
<el-table-column label="报警时间" align="center" prop="alarmTime" width="180"> <el-table-column label="报警时间" align="center" prop="alarmTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-table v-loading="loading" :data="historyList"> <el-table v-loading="loading" :data="historyList">
<el-table-column label="设备名称" align="center" prop="sumpName" /> <el-table-column label="设备名称" align="center" prop="sumpName" />
<el-table-column label="设备编号" align="center" prop="sumpId" /> <el-table-column label="设备编号" align="center" prop="sumpId" />
<el-table-column label="设备安装位置" align="center" prop="installationLocation" /> <el-table-column label="设备安装描述" align="center" prop="installationLocation" />
<el-table-column label="液位高度(m)" align="center" prop="heghtThreshold" /> <el-table-column label="液位高度(m)" align="center" prop="heghtThreshold" />
<el-table-column label="监测时间" align="center" prop="time" width="180"> <el-table-column label="监测时间" align="center" prop="time" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-table v-loading="loading" :data="historyList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="historyList" @selection-change="handleSelectionChange">
<el-table-column label="水泵名称" align="center" prop="pumpName" /> <el-table-column label="水泵名称" align="center" prop="pumpName" />
<el-table-column label="水泵编号" align="center" prop="pumpId" /> <el-table-column label="水泵编号" align="center" prop="pumpId" />
<el-table-column label="水泵安装位置" align="center" prop="installationLocation" /> <el-table-column label="水泵安装描述" align="center" prop="installationLocation" />
<el-table-column label="报警项" align="center" prop="alarmProduct" /> <el-table-column label="报警项" align="center" prop="alarmProduct" />
<el-table-column label="监测值" align="center" prop="alarmValue" /> <el-table-column label="监测值" align="center" prop="alarmValue" />
<el-table-column label="报警时间" align="center" prop="alarmTime" width="180"> <el-table-column label="报警时间" align="center" prop="alarmTime" width="180">
......
<template> <template>
<div> <div class="app-container">
暂无 <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="" prop="deviceName">
<el-select v-model="queryParams.deviceName" placeholder="风机名称" clearable>
<el-option
v-for="dict in deviceName"
:key="dict.value"
:label="dict.name"
:value="dict.name"
/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="infoList">
<el-table-column label="风机名称" align="center" prop="deviceName"/>
<el-table-column label="风机编号" align="center" prop="deviceId"/>
<el-table-column label="风机安装描述" align="center" prop="installationLocation" />
<el-table-column label="报警项" align="center" prop="alarmProduct" />
<el-table-column label="监测值" align="center" prop="alarmValue" />
<el-table-column label="报警时间" align="center" prop="alarmTime" />
<el-table-column label="状态" align="center" prop="status" >
<template slot-scope="scope">
<el-button
type="primary"
@click="handleUpdate(scope.row)"
v-if="scope.row.status==1"
>处置</el-button>
<span v-else>已处置</span>
</template>
</el-table-column>
<el-table-column label="解除报警时间" align="center" prop="delAlarmTime" />
<el-table-column label="解除原因" align="center" prop="delAlarmResion" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-form-item label="解除原因" prop="delAlarmResion">
<el-input type="textarea" v-model="form.delAlarmResion" placeholder="请输入解除原因" />
</el-form-item>
<el-form-item label="解除报警时长(h)" prop="time">
<el-input v-model="form.time" placeholder="请输入解除报警时长(h)" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
\ No newline at end of file
<script>
import { listalarmFan, alarmFanEdit } from "@/api/tyler/fan";
import { fanDeviceName } from "@/api/tyler/common";
export default {
name: "Info",
data() {
return {
// 根路径
baseURL: process.env.VUE_APP_BASE_API,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 风机基本信息表格数据
infoList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
deviceName: null,
deviceId: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "id不能为空", trigger: "blur" }
],
delAlarmResion: [
{ required: true, message: "解除原因不能为空", trigger: "blur" }
],
time: [
{ required: true, message: "解除时长不能为空", trigger: "blur" }
],
},
deviceName:[],
dateRange: [],
};
},
created() {
fanDeviceName().then(res=>{
this.deviceName = res.data;
})
this.getList();
},
methods: {
/** 查询风机基本信息列表 */
getList() {
this.loading = true;
listalarmFan(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.infoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
delAlarmResion:null,
time:null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm");
this.handleQuery();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.form.id = row.id;
this.open = true;
// getHistory(id).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改设备历史信息";
// });
},
/** 提交按钮 */
submitForm() {
console.log(this.form)
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
alarmFanEdit(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHistory(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
}
};
</script>
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="风机名称" prop="deviceName">
<el-input <el-form-item label="" prop="deviceName">
v-model="queryParams.deviceName" <el-select v-model="queryParams.deviceName" placeholder="风机名称" clearable>
placeholder="请输入风机名称" <el-option
clearable v-for="dict in deviceName"
@keyup.enter.native="handleQuery" :key="dict.value"
/> :label="dict.name"
:value="dict.name"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
...@@ -24,7 +27,7 @@ ...@@ -24,7 +27,7 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="风机名称" align="center" prop="deviceName" width="120"/> <el-table-column label="风机名称" align="center" prop="deviceName" width="120"/>
<el-table-column label="风机编号" align="center" prop="deviceId" width="120"/> <el-table-column label="风机编号" align="center" prop="deviceId" width="120"/>
<el-table-column label="风机安装位置" align="center" prop="installationLocation" width="120" /> <el-table-column label="监测时间" align="center" prop="time" width="160" />
<el-table-column label="电源电压预警值(V)" align="center" prop="powerSupplyVoltage" width="140" /> <el-table-column label="电源电压预警值(V)" align="center" prop="powerSupplyVoltage" width="140" />
<el-table-column label="电机电流预警值(A)" align="center" prop="motorCurrent" width="140" /> <el-table-column label="电机电流预警值(A)" align="center" prop="motorCurrent" width="140" />
<el-table-column label="运行频率预警值(HZ)" align="center" prop="operatingFrequency" width="140" /> <el-table-column label="运行频率预警值(HZ)" align="center" prop="operatingFrequency" width="140" />
...@@ -53,7 +56,8 @@ ...@@ -53,7 +56,8 @@
</template> </template>
<script> <script>
import { listFanHis, } from "@/api/tyler/fan"; import { listFanHis } from "@/api/tyler/fan";
import { fanDeviceName } from "@/api/tyler/common";
export default { export default {
name: "Info", name: "Info",
...@@ -100,17 +104,22 @@ ...@@ -100,17 +104,22 @@
deviceId: [ deviceId: [
{ required: true, message: "风机编号不能为空", trigger: "blur" } { required: true, message: "风机编号不能为空", trigger: "blur" }
], ],
} },
deviceName:[],
dateRange:[],
}; };
}, },
created() { created() {
fanDeviceName().then(res=>{
this.deviceName = res.data;
})
this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询风机基本信息列表 */ /** 查询风机基本信息列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listFanHis(this.queryParams).then(response => { listFanHis(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.infoList = response.rows; this.infoList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
...@@ -150,6 +159,7 @@ ...@@ -150,6 +159,7 @@
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRange = []
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="风机名称" align="center" prop="deviceName" width="120"/> <el-table-column label="风机名称" align="center" prop="deviceName" width="120"/>
<el-table-column label="风机编号" align="center" prop="deviceId" width="120"/> <el-table-column label="风机编号" align="center" prop="deviceId" width="120"/>
<el-table-column label="风机安装位置" align="center" prop="installationLocation" width="120" /> <el-table-column label="风机安装描述" align="center" prop="installationLocation" width="120" />
<el-table-column label="电源电压预警值(V)" align="center" prop="powerSupplyVoltage" width="140" /> <el-table-column label="电源电压预警值(V)" align="center" prop="powerSupplyVoltage" width="140" />
<el-table-column label="电机电流预警值(A)" align="center" prop="motorCurrent" width="140" /> <el-table-column label="电机电流预警值(A)" align="center" prop="motorCurrent" width="140" />
<el-table-column label="运行频率预警值(HZ)" align="center" prop="operatingFrequency" width="140" /> <el-table-column label="运行频率预警值(HZ)" align="center" prop="operatingFrequency" width="140" />
...@@ -102,8 +102,8 @@ ...@@ -102,8 +102,8 @@
<el-form-item label="风机编号" prop="deviceId"> <el-form-item label="风机编号" prop="deviceId">
<el-input v-model="form.deviceId" placeholder="请输入风机编号" /> <el-input v-model="form.deviceId" placeholder="请输入风机编号" />
</el-form-item> </el-form-item>
<el-form-item label="风机安装位置" prop="installationLocation"> <el-form-item label="风机安装描述" prop="installationLocation">
<el-input v-model="form.installationLocation" placeholder="请输入风机安装位置" /> <el-input v-model="form.installationLocation" placeholder="请输入风机安装描述" />
</el-form-item> </el-form-item>
<el-divider content-position="left">设置设备参数预警值</el-divider> <el-divider content-position="left">设置设备参数预警值</el-divider>
<el-row> <el-row>
......
<template> <template>
<div class="automation-control"> <div class="automation-control">
<!-- 自动化控制排水系统开关 --> <!-- 自动化控制排水系统开关 -->
<div class="control-header"> <el-card>
<span>自动化控制排水系统</span> <div class="control-header">
<el-switch <span>自动化控制排水系统</span>
v-model="formData.status" <el-switch
active-text="已开启" v-model="formData.status"
inactive-text="已关闭" active-text="已开启"
active-value="1" inactive-text="已关闭"
inactive-value="0" active-value="1"
@change="handleStatusChange" inactive-value="0"
></el-switch> @change="handleStatusChange"
</div> ></el-switch>
</div>
</el-card>
<!-- 峰谷值时间段设置 --> <!-- 峰谷值时间段设置 -->
<div class="section"> <el-card>
<h3>设置峰谷值时间段</h3> <div class="section">
<el-time-picker <h3>设置峰谷值时间段</h3>
is-range <el-time-picker
v-model="timeRange" is-range
range-separator="至" v-model="timeRange"
start-placeholder="开始时间" range-separator="至"
end-placeholder="结束时间" start-placeholder="开始时间"
format="HH:mm:ss" end-placeholder="结束时间"
value-format="HH:mm:ss" format="HH:mm:ss"
@change="handleTimeRangeChange" value-format="HH:mm:ss"
></el-time-picker> @change="handleTimeRangeChange"
</div> ></el-time-picker>
</div>
<!-- 液体高度设置 --> <el-divider></el-divider>
<div class="section"> <!-- 液体高度设置 -->
<h3>设置液体高度 <el-link type="primary" :underline="false">设置说明</el-link></h3> <div class="section">
<h3>设置液体高度 <el-link type="primary" :underline="false">设置说明</el-link></h3>
<!-- 每个水仓的设置 -->
<div v-for="(sump, index) in formData.draPeakSumpVos" :key="sump.sumpId"> <!-- 每个水仓的设置 -->
<div class="sump-item"> <div v-for="(sump, index) in formData.draPeakSumpVos" :key="sump.sumpId">
<div class="sump-header"> <div class="sump-item">
<span>{{ sump.sumpName }}液位高度(m):</span> <div class="sump-header">
</div> <span>{{ sump.sumpName }}液位高度(m):</span>
<div class="threshold-inputs">
<div class="threshold-item">
<span>A点值</span>
<el-input v-model="sump.heghtThresholdA" placeholder="请输入A点值" size="small"></el-input>
</div>
<div class="threshold-item">
<span>B点值</span>
<el-input v-model="sump.heghtThresholdB" placeholder="请输入B点值" size="small"></el-input>
</div> </div>
<div class="threshold-item">
<span>C点值</span> <div class="threshold-inputs">
<el-input v-model="sump.heghtThresholdC" placeholder="请输入C点值" size="small"></el-input> <div class="threshold-item">
<span>A点值</span>
<el-input v-model="sump.heghtThresholdA" placeholder="请输入A点值" size="small"></el-input>
</div>
<div class="threshold-item">
<span>B点值</span>
<el-input v-model="sump.heghtThresholdB" placeholder="请输入B点值" size="small"></el-input>
</div>
<div class="threshold-item">
<span>C点值</span>
<el-input v-model="sump.heghtThresholdC" placeholder="请输入C点值" size="small"></el-input>
</div>
<div class="threshold-item">
<span>D点值</span>
<el-input v-model="sump.heghtThresholdD" placeholder="请输入D点值" size="small"></el-input>
</div>
</div> </div>
<div class="threshold-item">
<span>D点值</span> <div class="pump-selection">
<el-input v-model="sump.heghtThresholdD" placeholder="请输入D点值" size="small"></el-input> <span>对应控制水泵:</span>
<div class="pump-checkboxes">
<el-checkbox
v-for="pump in sump.draPeakPumpVos"
:key="pump.pumpId"
v-model="pump.pumpStatus"
:true-label="1"
:false-label="0"
size="small"
>
{{ pump.pumpName }}
</el-checkbox>
</div>
</div> </div>
</div> </div>
<div class="pump-selection"> <el-divider v-if="index < formData.draPeakSumpVos.length - 1"></el-divider>
<span>对应控制水泵:</span>
<div class="pump-checkboxes">
<el-checkbox
v-for="pump in sump.draPeakPumpVos"
:key="pump.pumpId"
v-model="pump.pumpStatus"
:true-label="1"
:false-label="0"
size="small"
>
{{ pump.pumpName }}
</el-checkbox>
</div>
</div>
</div> </div>
<el-divider v-if="index < formData.draPeakSumpVos.length - 1"></el-divider>
</div> </div>
</div>
<!-- 按钮区域 --> <!-- 按钮区域 -->
<div class="button-group"> <div class="button-group">
<el-button @click="handleCancel">取消</el-button> <el-button @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleSave">保存设置</el-button> <el-button type="primary" @click="handleSave">保存设置</el-button>
</div> </div>
</el-card>
<!-- 弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<div>
<div>tu</div>
<div>wen</div>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -94,6 +105,7 @@ export default { ...@@ -94,6 +105,7 @@ export default {
name: 'AutomationControl', name: 'AutomationControl',
data() { data() {
return { return {
open: false,
formData: { formData: {
status: "1", // 默认开启 status: "1", // 默认开启
peakBeginTime: '', peakBeginTime: '',
...@@ -187,6 +199,9 @@ export default { ...@@ -187,6 +199,9 @@ export default {
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
border-radius: 4px; border-radius: 4px;
display: flex;
flex-direction: column;
gap: 20px;
} }
.control-header { .control-header {
...@@ -194,8 +209,9 @@ export default { ...@@ -194,8 +209,9 @@ export default {
align-items: center; align-items: center;
justify-content: start; justify-content: start;
gap: 20px; gap: 20px;
padding: 15px 0; span{
border-bottom: 1px solid #eee; font-weight: bold;
}
} }
.section { .section {
...@@ -206,6 +222,7 @@ export default { ...@@ -206,6 +222,7 @@ export default {
font-size: 16px; font-size: 16px;
margin-bottom: 15px; margin-bottom: 15px;
color: #333; color: #333;
font-weight: bold;
} }
.sump-item { .sump-item {
...@@ -241,7 +258,7 @@ export default { ...@@ -241,7 +258,7 @@ export default {
.button-group { .button-group {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-start0.21;
gap: 15px; gap: 15px;
margin-top: 20px; margin-top: 20px;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment