热成像

newCac1.0
fanluyan 2 months ago
parent b91a8297fb
commit d693343209

@ -93,6 +93,10 @@ export default {
path: "/iecserver",
name: "控制台",
},
{
path: "/thermalConfig",
name: "热成像配置",
},
],
},

@ -271,6 +271,14 @@ const routes = [
},
],
},
{
path: "/thermalConfig",
component: () => import("../views/thermalConfig/index.vue"),
name: "thermalConfig",
meta: {
title: "热成像配置",
},
},
],
},
];

@ -1181,3 +1181,24 @@ export function ieddlDownloadAllApi(data) {
},
});
}
// 热成像相关接口
//查询配置
export function thermalGetConfigApi(data) {
return request({
url: "/thermal/getConfig",
method: "get",
params: data,
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
},
});
}
//修改配置
export function thermalSaveConfigApi(data) {
return request({
url: "/thermal/saveConfig",
method: "post",
data,
});
}

@ -364,6 +364,17 @@ export default {
},
async getSubNodes() {
this.formdata.starttime = this.$moment(this.formdata.starttime).format(
"YYYY-MM-DD HH:mm:ss"
);
this.formdata.endtime = this.$moment(this.formdata.endtime).format(
"YYYY-MM-DD HH:mm:ss"
);
console.log(
"aaaab'b'b'b'b'b'b'bbbbbbbbb",
this.formdata.starttime,
this.formdata.endtime
);
try {
const response = await getTreeApi(); //
if (response.data && response.data.length > 0) {

@ -1,10 +1,10 @@
<template>
<div class="jcsbAddBox">
<div class="jcsbAddBoxDD">
<el-dialog
class="jcsbAddDialogBox"
:title="title"
:visible.sync="jcsbDialogshow"
width="520px"
width="820px"
:close-on-click-modal="false"
>
<el-form
@ -14,39 +14,72 @@
:rules="rules"
:model="formInfo"
>
<el-form-item label="主设备名称:" prop="zsbName">
<el-input v-model="formInfo.zsbName" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="formInfo.name"></el-input>
</el-form-item>
<el-form-item label="相位:" prop="phase">
<el-input v-model="formInfo.phase"></el-input>
</el-form-item>
<el-form-item label="devId" prop="devId">
<el-input v-model="formInfo.devId"></el-input>
</el-form-item>
<el-form-item label="选择类型:">
<el-select v-model="formInfo.typeId" @change="changetypeId">
<el-option
v-for="item in tableOptions"
:key="item.id"
:label="item.mc"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="传感器代码:" prop="sensorCode">
<el-input v-model="formInfo.sensorCode"></el-input>
</el-form-item>
<el-form-item label="排序号:" prop="orderNum">
<el-input
v-model="formInfo.orderNum"
type="number"
oninput="value=value.replace(/[^0-9999999.-]/g,'')"
></el-input>
</el-form-item>
<div class="left">
<el-form-item label="主设备名称:" prop="zsbName">
<el-input v-model="formInfo.zsbName" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="formInfo.name"></el-input>
</el-form-item>
<el-form-item label="相位:" prop="phase">
<el-input v-model="formInfo.phase"></el-input>
</el-form-item>
<el-form-item label="devId" prop="devId">
<el-input v-model="formInfo.devId"></el-input>
</el-form-item>
<el-form-item label="选择类型:">
<el-select v-model="formInfo.typeId" @change="changetypeId">
<el-option
v-for="item in tableOptions"
:key="item.id"
:label="item.mc"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="sensorCode" prop="sensorCode">
<el-input v-model="formInfo.sensorCode"></el-input>
</el-form-item>
<el-form-item label="equipmentId" prop="equipmentId">
<el-input v-model="formInfo.equipmentId"></el-input>
</el-form-item>
<el-form-item label="排序号:" prop="orderNum">
<el-input
v-model="formInfo.orderNum"
type="number"
oninput="value=value.replace(/[^0-9999999.-]/g,'')"
></el-input>
</el-form-item>
</div>
<div class="right">
<el-form-item label="IP:" prop="ip">
<el-input v-model="formInfo.ip"></el-input>
</el-form-item>
<el-form-item label="端口:" prop="port">
<el-input v-model="formInfo.port"></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="username">
<el-input v-model="formInfo.username"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="passwd">
<el-input v-model="formInfo.passwd"></el-input>
</el-form-item>
<el-form-item label="测温规则序号:" prop="tmId">
<el-input v-model="formInfo.tmId"></el-input>
</el-form-item>
<el-form-item label="测温项目类型:" prop="tmType">
<el-select v-model="formInfo.tmType" @change="changetmType">
<el-option
v-for="item in tmTypeOptions"
:key="item.id"
:label="item.lx"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="hide"> </el-button>
@ -74,12 +107,32 @@ export default {
devId: "",
sensorCode: "",
orderNum: "",
ip: "",
port: "37777",
username: "",
passwd: "",
tmId: "",
tmType: "",
},
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
// devId: [{ required: true, message: "devId", trigger: "blur" }],
},
tableOptions: [],
tmTypeOptions: [
{
id: 1,
lx: "点",
},
{
id: 2,
lx: "线",
},
{
id: 3,
lx: "面",
},
],
zsbInfo: "",
};
},
@ -160,6 +213,10 @@ export default {
console.log(val);
this.formInfo.typeId = val;
},
changetmType(val) {
console.log(val);
this.formInfo.tmType = val;
},
//
getTableListAll() {
modevtypeListAllApi()
@ -189,10 +246,22 @@ export default {
};
</script>
<style lang="less">
.jcsbAddBox {
.jcsbAddBoxDD {
.jcsbAddDialogBox {
.el-dialog__body {
.el-form {
display: flex;
justify-content: space-between;
.left {
width: 48%;
}
.right {
width: 48%;
}
}
}
.el-select {
width: 376px;
width: 270px;
}
}
}

@ -1,10 +1,10 @@
<template>
<div class="jcsbAddBox">
<div class="jcsbAddBoxAA">
<el-dialog
class="jcsbAddDialogBox"
:title="title"
:visible.sync="jcsbDialogshow"
width="520px"
width="820px"
:close-on-click-modal="false"
>
<el-form
@ -14,42 +14,72 @@
:rules="rules"
:model="formInfo"
>
<el-form-item label="主设备名称:" prop="zsbName">
<el-input v-model="formInfo.zsbName" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="formInfo.name"></el-input>
</el-form-item>
<el-form-item label="相位:" prop="phase">
<el-input v-model="formInfo.phase"></el-input>
</el-form-item>
<el-form-item label="devId" prop="devId">
<el-input v-model="formInfo.devId"></el-input>
</el-form-item>
<el-form-item label="选择类型:">
<el-select v-model="formInfo.typeId" @change="changetypeId">
<el-option
v-for="item in tableOptions"
:key="item.id"
:label="item.mc"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="sensorCode" prop="sensorCode">
<el-input v-model="formInfo.sensorCode"></el-input>
</el-form-item>
<el-form-item label="equipmentId" prop="equipmentId">
<el-input v-model="formInfo.equipmentId"></el-input>
</el-form-item>
<el-form-item label="排序号:" prop="orderNum">
<el-input
v-model="formInfo.orderNum"
type="number"
oninput="value=value.replace(/[^0-9999999.-]/g,'')"
></el-input>
</el-form-item>
<div class="left">
<el-form-item label="主设备名称:" prop="zsbName">
<el-input v-model="formInfo.zsbName" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="formInfo.name"></el-input>
</el-form-item>
<el-form-item label="相位:" prop="phase">
<el-input v-model="formInfo.phase"></el-input>
</el-form-item>
<el-form-item label="devId" prop="devId">
<el-input v-model="formInfo.devId"></el-input>
</el-form-item>
<el-form-item label="选择类型:">
<el-select v-model="formInfo.typeId" @change="changetypeId">
<el-option
v-for="item in tableOptions"
:key="item.id"
:label="item.mc"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="sensorCode" prop="sensorCode">
<el-input v-model="formInfo.sensorCode"></el-input>
</el-form-item>
<el-form-item label="equipmentId" prop="equipmentId">
<el-input v-model="formInfo.equipmentId"></el-input>
</el-form-item>
<el-form-item label="排序号:" prop="orderNum">
<el-input
v-model="formInfo.orderNum"
type="number"
oninput="value=value.replace(/[^0-9999999.-]/g,'')"
></el-input>
</el-form-item>
</div>
<div class="right">
<el-form-item label="IP:" prop="ip">
<el-input v-model="formInfo.ip"></el-input>
</el-form-item>
<el-form-item label="端口:" prop="port">
<el-input v-model="formInfo.port"></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="username">
<el-input v-model="formInfo.username"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="passwd">
<el-input v-model="formInfo.passwd"></el-input>
</el-form-item>
<el-form-item label="测温规则序号:" prop="tmId">
<el-input v-model="formInfo.tmId"></el-input>
</el-form-item>
<el-form-item label="测温项目类型:" prop="tmType">
<el-select v-model="formInfo.tmType" @change="changetmType">
<el-option
v-for="item in tmTypeOptions"
:key="item.id"
:label="item.lx"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="hide"> </el-button>
@ -78,12 +108,32 @@ export default {
sensorCode: "",
equipmentId: "",
orderNum: "",
ip: "",
port: "37777",
username: "",
passwd: "",
tmId: "",
tmType: "",
},
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
//devId: [{ required: true, message: "devId", trigger: "blur" }],
},
tableOptions: [],
tmTypeOptions: [
{
id: 1,
lx: "点",
},
{
id: 2,
lx: "线",
},
{
id: 3,
lx: "面",
},
],
zsbInfo: "",
};
},
@ -164,6 +214,10 @@ export default {
console.log(val);
this.formInfo.typeId = val;
},
changetmType(val) {
console.log(val);
this.formInfo.tmType = val;
},
//
getTableListAll() {
modevtypeListAllApi()
@ -193,10 +247,22 @@ export default {
};
</script>
<style lang="less">
.jcsbAddBox {
.jcsbAddBoxAA {
.jcsbAddDialogBox {
.el-dialog__body {
.el-form {
display: flex;
justify-content: space-between;
.left {
width: 48%;
}
.right {
width: 48%;
}
}
}
.el-select {
width: 376px;
width: 270px;
}
}
}

@ -0,0 +1,204 @@
<template>
<div class="thermalConfig">
<div class="iedContain">
<div class="selectBox">
<span class="title">要红外温度采集类型</span>
<el-select v-model="typeid" placeholder="请选择" @change="changetypeId">
<el-option
v-for="item in modevtypeOptions"
:key="item.id"
:label="item.mc"
:value="item.id"
>
</el-option>
</el-select>
</div>
<div class="selectBox">
<span class="title">最大温度保存字段</span>
<el-select v-model="maxtemp" placeholder="请选择">
<el-option
v-for="item in attOptions"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</div>
<div class="selectBox">
<span class="title">最小温度保存字段</span>
<el-select v-model="mintemp" placeholder="请选择">
<el-option
v-for="item in attOptions"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</div>
<div class="selectBox">
<span class="title">平均温度保存字段</span>
<el-select v-model="avgtemp" placeholder="请选择">
<el-option
v-for="item in attOptions"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</div>
<div class="selectBox">
<el-button type="primary" @click="saveConfig()"></el-button>
</div>
</div>
</div>
</template>
<script>
import {
modevtypeListAllApi,
thermalGetConfigApi,
thermalSaveConfigApi,
colListApi,
} from "@/utils/api/index";
export default {
components: {},
data() {
return {
modevtypeOptions: [],
typeid: "",
tablename: "", //
attOptions: [], //
maxtemp: "",
mintemp: "",
avgtemp: "",
};
},
mounted() {
this.getModevTypeList();
this.getConfig(); //iedName
},
methods: {
//
getModevTypeList() {
modevtypeListAllApi()
.then((res) => {
console.log(res);
this.modevtypeOptions = res.data;
})
.catch((err) => {
console.log(err); //
});
},
changetypeId(val) {
console.log(val);
this.typeid = val;
const selectedItem = this.modevtypeOptions.find(
(item) => item.id === val
);
this.tablename = selectedItem.tablename;
console.log(this.tablename);
this.getcolList(this.tablename);
},
//
getConfig() {
thermalGetConfigApi()
.then((res) => {
console.log(res);
if (res.data) {
this.typeid = res.data.typeId;
this.maxtemp = res.data.maxtemp;
this.mintemp = res.data.mintemp;
this.avgtemp = res.data.avertemp;
this.changetypeId(this.typeid);
}
// this.icdTableData = res.data;
// this.icdLoading = false;
})
.catch((err) => {
console.log(err); //
});
},
//colList
getcolList(row) {
colListApi({
tableName: row,
})
.then((res) => {
console.log(res);
this.attOptions = res.data;
})
.catch((err) => {
console.log(err); //
});
},
//
saveConfig() {
thermalSaveConfigApi({
avertemp: this.avgtemp,
maxtemp: this.maxtemp,
mintemp: this.mintemp,
typeId: this.typeid,
})
.then((res) => {
if (res.success) {
console.log(res);
this.$message({
duration: 1500,
showClose: true,
type: "success",
message: "保存成功",
});
// this.geticdList();
} else {
this.$message({
duration: 1500,
showClose: true,
type: "error",
message: res.errorMsg,
});
}
})
.catch((err) => {
console.log(err); //
});
},
},
};
</script>
<style lang="less">
.thermalConfig {
width: calc(100% - 24px);
overflow-x: hidden;
background: rgba(8, 9, 36, 0.28);
box-shadow: inset 0 4px 44px 0 #106cde;
padding: 0px 12px;
height: 100%;
.iedContain {
width: 100%;
height: 100%;
background: #fff;
margin-top: 10px;
height: calc(100% - 24px);
display: flex;
color: #333;
flex-direction: column;
.selectBox {
width: 400px;
margin-top: 12px;
display: flex;
align-items: center;
.title {
width: 170px;
text-align: right;
}
.el-button {
margin-left: auto;
}
}
}
}
</style>
Loading…
Cancel
Save