Compare commits

..

6 Commits

9 changed files with 634 additions and 123 deletions

View File

@ -29,8 +29,9 @@
<div class="menu"> <div class="menu">
<div class="menuList"> <div class="menuList">
<div class="menuBtn" v-for="(item, index) in menuBtn" :key="index" @click="menuChange(index,item.name)" :class="{menuAc : menuAc == index}"> <div class="menuBtn" v-for="(item, index) in menuBtn" :key="index" @click="menuChange(index,item.name)" :class="{menuAc : menuAc == index}">
<img :src="item.icon" :style="{'wdith':menuAc == index ? '75%':'55%','height':menuAc == index ? '85%':'71%'}"/> <!-- <img :src="item.icon" :style="{'wdith':menuAc == index ? '75%':'55%','height':menuAc == index ? '85%':'71%'}"/> -->
<div style="font-size: 0.55rem">{{ item.name }}</div> <img :src="item.icon" :style="{'wdith':menuAc == index ? '75%':'55%','height':menuAc == index ? '85%':'85%'}"/>
<div style="font-size: 0.55rem;margin-top: 5%;">{{ item.name }}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -43,11 +43,11 @@ window.PubScribe = function (topic, _callback,) {
if (client == null) { if (client == null) {
client = mqtt.createConnect(() => { client = mqtt.createConnect(() => {
//客户端订阅主题 //客户端订阅主题
client.subscribe(['/SC/pub/uwb', '/SC/pub/env'], { client.subscribe(['FirstLevel','SecondLevel','ThirdLevel'], {
qos: 0 qos: 0
}, (err) => { }, (err) => {
if (!err) { if (!err) {
console.log("订阅成功0", ['/SC/pub/uwb', '/SC/pub/env']); console.log("订阅成功0", ['FirstLevel','SecondLevel','ThirdLevel']);
} else { } else {
console.log('订阅失败'); console.log('订阅失败');
} }
@ -63,21 +63,78 @@ window.PubScribe = function (topic, _callback,) {
}); });
}); });
} else { } else {
if (topic != null) { // if (topic != null) {
console.log("topic", topic) // console.log("topic", topic)
currentTopics = topic; // currentTopics = topic;
client.subscribe(currentTopics, { // client.subscribe(currentTopics, {
qos: 0 // qos: 0
}, (err) => { // }, (err) => {
if (!err) { // if (!err) {
console.log("订阅成功1"); // console.log("订阅成功1");
} else { // } else {
console.log('消息订阅失败!') // console.log('消息订阅失败!')
} // }
}); // });
} // }
} }
} }
window.PubScribe(null,realInfo);
window.alarmAllLevel = []
window.alarmFirstLevel = []
window.alarmSecondLevel = []
window.alarmThirdLevel = []
function realInfo(topic, message) {
switch (topic) {
// 接收托片
case "FirstLevel":
try {
// window.alarmFirstLevel= []
const utf8decoder = new TextDecoder();
const u8arr = new Uint8Array(message);
const temp = utf8decoder.decode(u8arr); // 将二进制数据转为字符串
const msg = JSON.parse(temp); //这一步报错则返回的是二进制流图片不报错则返回的是JSON的错误提示数据
console.log("msg", msg);
for (let i = 0; i < msg.length; i++) {
window.alarmFirstLevel.splice(0,window.alarmFirstLevel.length);
window.alarmFirstLevel.push(msg[i])
}
// window.alarmFirstLevel= msg
// alarmAllLevel
//消防,电梯、动环系统
} catch (error) {}
console.log(error);
break;
case "SecondLevel":
try {
const utf8decoder = new TextDecoder();
const u8arr = new Uint8Array(message);
const temp = utf8decoder.decode(u8arr); // 将二进制数据转为字符串
const msg = JSON.parse(temp); //这一步报错则返回的是二进制流图片不报错则返回的是JSON的错误提示数据
console.log("msg", msg);
for (let i = 0; i < msg.length; i++) {
window.alarmSecondLevel.splice(0,window.alarmSecondLevel.length);
window.alarmSecondLevel.push(msg[i])
}
} catch (error) {}
console.log(error);
break;
case "ThirdLevel":
try {
const utf8decoder = new TextDecoder();
const u8arr = new Uint8Array(message);
const temp = utf8decoder.decode(u8arr); // 将二进制数据转为字符串
const msg = JSON.parse(temp); //这一步报错则返回的是二进制流图片不报错则返回的是JSON的错误提示数据
console.log("msg", msg);
for (let i = 0; i < msg.length; i++) {
window.alarmThirdLevel.splice(0,window.alarmThirdLevel.length);
window.alarmThirdLevel.push(msg[i])
}
} catch (error) {}
console.log(error);
break;
}
}
new Vue({ new Vue({
router, router,
render: h => h(App) render: h => h(App)

View File

@ -33,9 +33,11 @@ class mqttHandle {
*/ */
createConnect(onConnected) { createConnect(onConnected) {
//配置链接 //配置链接
// console.log("connectUrl",connectUrl)
const { host, port, endpoint, ...options } = this.connect; const { host, port, endpoint, ...options } = this.connect;
console.log("this.connect.host", this.connect.host) console.log("this.connect.host", this.connect.host)
const connectUrl = 'ws://138.227.111.141:8083/mqtt'; // const connectUrl = 'ws://138.227.111.141:8083/mqtt';
const connectUrl = 'ws://172.16.1.253:1884/mqtt';
// const connectUrl = `ws://${this.connect.host}:${this.connect.port}`; // const connectUrl = `ws://${this.connect.host}:${this.connect.port}`;
// if (!client.connected) { // if (!client.connected) {
// client.on('connect', function () { // client.on('connect', function () {

View File

@ -10,7 +10,7 @@
:key="index" :key="index"
> >
<div class="warnArray"> <div class="warnArray">
<span>{{ item.id }}</span> <!-- <span>{{ item.id }}</span> -->
<img :src="item.icon" style="width: 7%; margin-left: 3%" /> <img :src="item.icon" style="width: 7%; margin-left: 3%" />
<div class="warnArrayBox"> <div class="warnArrayBox">
<div style="margin-top: 2%; float: left"> <div style="margin-top: 2%; float: left">
@ -41,7 +41,7 @@
:key="index" :key="index"
> >
<div class="warnArray"> <div class="warnArray">
<span>{{ item.id }}</span> <!-- <span>{{ item.id }}</span> -->
<img :src="item.icon" style="width: 7%; margin-left: 3%" /> <img :src="item.icon" style="width: 7%; margin-left: 3%" />
<div class="warnArrayBox"> <div class="warnArrayBox">
<div style="margin-top: 2%; float: left"> <div style="margin-top: 2%; float: left">
@ -74,7 +74,7 @@
:key="index" :key="index"
> >
<div class="warnArray"> <div class="warnArray">
<span>{{ item.id }}</span> <!-- <span>{{ item.id }}</span> -->
<img :src="item.icon" style="width: 7%; margin-left: 3%" /> <img :src="item.icon" style="width: 7%; margin-left: 3%" />
<div class="warnArrayBox"> <div class="warnArrayBox">
<div style="margin-top: 2%; float: left"> <div style="margin-top: 2%; float: left">
@ -102,6 +102,7 @@
<script> <script>
import { GetLevelAlarm } from "../api/index"; import { GetLevelAlarm } from "../api/index";
export default { export default {
name: "court", name: "court",
data() { data() {
@ -131,10 +132,16 @@ export default {
}, },
], // ], //
houseList: ["blueHouse", "redHouse", "yellowHouse", "orangeHouse"], houseList: ["blueHouse", "redHouse", "yellowHouse", "orangeHouse"],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
}; };
}, },
mounted() { mounted() {
window.alarmFirstLevel = this.alarmFirstLevel
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
// window.createMqtt = this.createMqtt();
// console.log(this.$moment('2023-04-03T10:05:31').format("YYYY-MM-DD HH:mm:ss"),'ssssss222222'); // console.log(this.$moment('2023-04-03T10:05:31').format("YYYY-MM-DD HH:mm:ss"),'ssssss222222');
// //
this.getFirstAlarm(); this.getFirstAlarm();
@ -142,8 +149,34 @@ export default {
this.getSecondAlarm(); this.getSecondAlarm();
// //
this.getThirdAlarm(); this.getThirdAlarm();
//
}, },
watch: {
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel",val)
if(val.length!=0){
this.upmqttData(val)
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel",val)
this.upmqttData(val)
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel",val)
this.upmqttData(val)
},
},
methods: { methods: {
// //
getFirstAlarm() { getFirstAlarm() {
GetLevelAlarm({ GetLevelAlarm({
@ -204,8 +237,41 @@ export default {
}); });
}); });
}, },
//mqtt
upmqttData(val) {
let icon = null;
var warnListMqtt = []
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
icon = require("../assets/images/warnRed.png");
} else if (val[index].AlarmLevel == 2) {
val[index].AlarmLevel = "二级";
icon = require("../assets/images/warnOrange.png");
} else if (val[index].AlarmLevel == 3) {
val[index].AlarmLevel = "三级";
icon = require("../assets/images/warnBlue.png");
}
return {
id: index + 1,
icon:icon,
time: this.$moment(val[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
cause: val[index].AlarmName,
risk: val[index].AlarmLevel,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
if(warnListMqtt[i].risk=='三级'){
this.warnList3.splice(0,0,warnListMqtt[i]);
}else if(warnListMqtt[i].risk=='二级'){
this.warnList2.splice(0,0,warnListMqtt[i]);
} if(warnListMqtt[i].risk=='一级'){
this.warnList1.splice(0,0,warnListMqtt[i]);
}
}
},
}, },
watch: {},
components: {}, components: {},
}; };
</script> </script>
@ -242,7 +308,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.7rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;
@ -317,7 +383,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.7rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;
@ -402,7 +468,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.7rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;
@ -476,7 +542,7 @@ export default {
background: url("../assets/images/faTingImg/anjianTitle.png") no-repeat; background: url("../assets/images/faTingImg/anjianTitle.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.8rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 5%; padding-left: 5%;

View File

@ -26,7 +26,7 @@
class="equipment" class="equipment"
:autoplay="true" :autoplay="true"
trigger="click" trigger="click"
:interval="10000" :interval="7000"
> >
<el-carousel-item <el-carousel-item
v-for="(item, index) in equipmentList1" v-for="(item, index) in equipmentList1"
@ -189,6 +189,7 @@ import {
getRealData, getRealData,
getAreaList, getAreaList,
} from "../api/index"; } from "../api/index";
import mqtt from "mqtt"; // mqtt
export default { export default {
name: "energySaving", name: "energySaving",
data() { data() {
@ -385,9 +386,17 @@ export default {
], ],
equipmentShow: false, equipmentShow: false,
equipmentList1: [], equipmentList1: [],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
}; };
}, },
mounted() { mounted() {
this.getMqttData()
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
window.alarmAllLevel= this.alarmAllLevel
this.changeWarn(0);
// //
for (let i = 0; i < this.equipmentList.length; i += 8) { for (let i = 0; i < this.equipmentList.length; i += 8) {
this.equipmentList1.push(this.equipmentList.slice(i, i + 8)); this.equipmentList1.push(this.equipmentList.slice(i, i + 8));
@ -396,10 +405,31 @@ export default {
this.getQOQ() this.getQOQ()
this.getYOY() this.getYOY()
this.calculateEchartsTwo(); this.calculateEchartsTwo();
window.createMqtt = this.createMqtt(); // window.createMqtt = this.createMqtt();
this.changeWarn(0);
this.getAllDevicesInfo(); this.getAllDevicesInfo();
}, },
watch: {
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel",val)
if(val.length!=0){
this.upmqttData(val)
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel",val)
this.upmqttData(val)
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel",val)
this.upmqttData(val)
},
},
methods: { methods: {
// //
getQOQ() { getQOQ() {
@ -528,24 +558,121 @@ export default {
this.calculateEcharts(res.data.data.values); this.calculateEcharts(res.data.data.values);
}) })
}, },
//mqtt // //mqtt
createMqtt() { // createMqtt() {
// // //
let topicSends = ["device/publish/FB80"]; // let topicSends = ["device/publish/FB80"];
window.PubScribe(topicSends, this.realInfo); // // let topicSends = ["FirstLevel"];
// window.PubScribe(topicSends, this.realInfo);
// },
// /** */
// realInfo(topic, message) {
// let that = this;
// switch (topic) {
// //
// case "device/publish/FB80":
// try {
// const utf8decoder = new TextDecoder();
// const u8arr = new Uint8Array(message);
// const temp = utf8decoder.decode(u8arr); //
// const msg = JSON.parse(temp); //JSON
// console.log("msg", msg);
// if (msg.params. == 1) {
// msg.params. = "";
// } else {
// msg.params. = "";
// }
// that.sunList[0].count = msg.params.;
// that.sunList[1].count = msg.params.;
// that.sunList[2].count = msg.params.;
// that.sunList[3].count = msg.params.;
// that.sunList[4].count = msg.params.;
// that.sunList[5].count = msg.params.;
// } catch (error) {}
// console.log(error);
// break;
// case "FirstLevel":
// try {
// console.log("message", message);
// const utf8decoder = new TextDecoder();
// const u8arr = new Uint8Array(message);
// const temp = utf8decoder.decode(u8arr); //
// const msg = JSON.parse(temp); //JSON
// console.log("msg", msg);
// } catch (error) {}
// console.log(error);
// break;
// }
// },
getMqttData(){
this.getDataByMqtt(
"ws://138.227.111.141:8083/mqtt",
"device/publish/FB80",
);
}, },
/** 实时数据分类 */ // mqtt
realInfo(topic, message) { getDataByMqtt(url, topic) {
let that = this; const clientId = "test_id_" + String(new Date().getTime()); //
switch (topic) { const host = url; // urlws://broker.emqx.io:8083/mqtt
// const options = {
case "device/publish/FB80": //
try { // IP
// host: host,
// port: port,
keepalive: 60, // 60s0
username: 'test', //
password: 1234, //
clientId: clientId, // ID
protocolId: "MQTT",
protocolVersion: 4,
clean: true, // false线QoS12
reconnectPeriod: 2000, // 1000
connectTimeout: 30 * 1000, // CONNACK
will: {
// Broker
topic: topic, //
payload: "[MQTT-TEST] 遗嘱消息:连接异常断开!", //
qos: 0, // QoS(Quality of Service)QoS0QoS11QoS21
retain: false, //
},
};
if (this.mqttClient == undefined) {
this.mqttClient = mqtt.connect(host, options); //
// const client = mqtt.connect(host, options); //
// const client = mqtt.connect(host) //
//
this.mqttClient.on("error", (err) => {
// console.log("[MQTT-TEST] ", this.models[cIdNum].cName);
this.mqttClient.end();
});
//
this.mqttClient.on("reconnect", () => {
console.log("[MQTT-TEST] 重连中……");
});
//
this.mqttClient.on("connect", () => {
// console.log(
// "[MQTT-TEST] ID: " + this.models[cIdNum].cName
// );
});
//
this.mqttClient.on("message", (topic, message, packet) => {
console.log(
`[MQTT-TEST] 从主题 "${topic}" 收到的内容: ${message.toString()}`,
new Date());
//
let that = this;
if (topic.indexOf("device/publish/FB80") != -1) {
const utf8decoder = new TextDecoder(); const utf8decoder = new TextDecoder();
const u8arr = new Uint8Array(message); const u8arr = new Uint8Array(message);
const temp = utf8decoder.decode(u8arr); // const temp = utf8decoder.decode(u8arr); //
const msg = JSON.parse(temp); //JSON const msg = JSON.parse(temp); //JSON
console.log("msg", msg); console.log("msg", msg);
console.log("msg", msg);
if (msg.params.设备运行状态 == 1) { if (msg.params.设备运行状态 == 1) {
msg.params.设备运行状态 = "正常"; msg.params.设备运行状态 = "正常";
} else { } else {
@ -557,10 +684,13 @@ export default {
that.sunList[3].count = msg.params.设备运行状态; that.sunList[3].count = msg.params.设备运行状态;
that.sunList[4].count = msg.params.机器总运行时间; that.sunList[4].count = msg.params.机器总运行时间;
that.sunList[5].count = msg.params.警告信息; that.sunList[5].count = msg.params.警告信息;
} catch (error) {} } else if (topic.indexOf("InConvoyor") != -1) {
console.log(error);
break; }
});
} }
//
this.mqttClient.subscribe(topic, { qos: 0 });
}, },
// //
getAllDevicesInfo() { getAllDevicesInfo() {
@ -846,6 +976,36 @@ export default {
this.upWainData(res); this.upWainData(res);
}); });
} }
},
//mqtt
upmqttData(val) {
let icon = null;
var warnListMqtt = []
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
} else if (val[index].AlarmLevel == 2) {
val[index].AlarmLevel = "二级";
} else if (val[index].AlarmLevel == 3) {
val[index].AlarmLevel = "三级";
}
return {
id: index + 1,
icon: require("../assets/images/jieNengImg/warnRed.png"),
time: this.$moment(val[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss"
),
case: val[index].AlarmName,
grade: val[index].AlarmLevel,
DeviceTypes:val[index].DeviceTypes,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
if(warnListMqtt[i].DeviceTypes==this.warnList[0].DeviceTypes){
this.warnList.splice(0,0,warnListMqtt[i]);
}
}
}, },
// //
upWainData(res) { upWainData(res) {
@ -865,6 +1025,7 @@ export default {
), ),
case: res.data.data[index].AlarmName, case: res.data.data[index].AlarmName,
grade: res.data.data[index].AlarmLevel, grade: res.data.data[index].AlarmLevel,
DeviceTypes:res.data.data[index].DeviceTypes,
}; };
}); });
}, },
@ -942,12 +1103,12 @@ export default {
name: { name: {
padding: [0, 10, 0, 8], padding: [0, 10, 0, 8],
color: "auto", color: "auto",
fontSize: "0.7rem", fontSize: "0.9rem",
}, },
percent: { percent: {
padding: [0, 0, 0, 8], padding: [0, 0, 0, 8],
color: "auto", color: "auto",
fontSize: "0.7rem", fontSize: "0.9rem",
}, },
}, },
}, },
@ -1095,7 +1256,7 @@ export default {
legend: { legend: {
show: true, show: true,
data: ["同期", "本期", "同比"], data: ["同期", "本期", "同比"],
textStyle: { fontSize: "0.7rem", color: "#ffffff" }, textStyle: { fontSize: "0.9rem", color: "#ffffff" },
}, },
tooltip: { tooltip: {
trigger: "axis", trigger: "axis",
@ -1114,7 +1275,7 @@ export default {
axisLabel: { axisLabel: {
interval: 0, interval: 0,
show: true, show: true,
fontSize: "0.7rem", fontSize: "0.9rem",
color: "#ffffff", color: "#ffffff",
fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN", fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN",
}, },
@ -1125,7 +1286,7 @@ export default {
axisTick: { show: false }, axisTick: { show: false },
axisLabel: { axisLabel: {
show: true, show: true,
fontSize: "0.7rem", fontSize: "0.9rem",
color: "#ffffff", color: "#ffffff",
fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN", fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN",
formatter: "{value}%", formatter: "{value}%",
@ -1137,7 +1298,7 @@ export default {
axisTick: { show: false }, axisTick: { show: false },
axisLabel: { axisLabel: {
show: true, show: true,
fontSize: "0.7rem", fontSize: "0.9rem",
color: "#ffffff", color: "#ffffff",
fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN", fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN",
formatter: "{value} %", formatter: "{value} %",
@ -1481,7 +1642,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.8rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;
@ -1508,7 +1669,7 @@ export default {
margin-left: 4%; margin-left: 4%;
margin-top: 3%; margin-top: 3%;
.equipmentList { .equipmentList {
width: 100%%; width: 100%;
height: 80%; height: 80%;
background: url("../assets/images/jieNengImg/energyBack.png") no-repeat; background: url("../assets/images/jieNengImg/energyBack.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;

View File

@ -10,14 +10,14 @@
v-for="(item, index) in wisdomList" v-for="(item, index) in wisdomList"
:key="index" :key="index"
> >
<div style="color: #fff; font-size: 0.6rem">{{ item.name }}</div> <div style="color: #fff; font-size: 0.7rem">{{ item.name }}</div>
<div <div
:class="houseList[index]" :class="houseList[index]"
style=" style="
width: 100%; width: 100%;
height: 100%; height: 100%;
color: #fff; color: #fff;
font-size: 0.6rem; font-size: 0.7rem;
" "
> >
{{ item.count }} {{ item.count }}
@ -30,7 +30,7 @@
v-for="(item, index) in wisdomMonArr" v-for="(item, index) in wisdomMonArr"
:key="index" :key="index"
> >
<div style="width: 100%"> <div style="width: 100%;font-size: 0.6rem;">
<span>{{ item.name }}:</span> <span>{{ item.name }}:</span>
<span style="color: rgb(225, 177, 25); margin-left: 5%">{{ <span style="color: rgb(225, 177, 25); margin-left: 5%">{{
item.count item.count
@ -240,7 +240,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> <!-- </div> -->
</template> </template>
<script> <script>
@ -352,17 +352,25 @@ export default {
cameraBig: "", cameraBig: "",
cameraBigShow: false, cameraBigShow: false,
buildingList: [], buildingList: [],
alarmAllLevel:[],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
}; };
}, },
mounted() { mounted() {
let that = this; let that = this;
window.alarmFirstLevel = this.alarmFirstLevel
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
window.alarmAllLevel= this.alarmAllLevel
this.warningOne(); this.warningOne();
this.warningTwo(); this.warningTwo();
this.maintenanceLeft(); this.maintenanceLeft();
this.maintenanceRight(); this.maintenanceRight();
// this.energyEcharts(); // this.energyEcharts();
this.selectDataList(this.selectDate); this.selectDataList(this.selectDate);
window.createMqtt = this.createMqtt(); // window.createMqtt = this.createMqtt();
window.addEventListener("message", function (e) { window.addEventListener("message", function (e) {
let val = e.data.val; let val = e.data.val;
if (val != null) { if (val != null) {
@ -394,6 +402,33 @@ export default {
//id //id
this.getBuildingData(); this.getBuildingData();
}, },
watch: {
alarmAllLevel(val) {
// resize使
console.log("alarmAllLevel",val)
this.upmqttData(val)
},
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel",val)
if(val.length!=0){
this.upmqttData(val)
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel",val)
this.upmqttData(val)
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel",val)
this.upmqttData(val)
},
},
methods: { methods: {
//Id //Id
getBuildingData() { getBuildingData() {
@ -579,7 +614,7 @@ export default {
DeviceTypes: "", DeviceTypes: "",
}; };
GetLevelAlarm(params).then((res) => { GetLevelAlarm(params).then((res) => {
this.upWainData(res); this.upWainData(res.data.data);
}); });
} else if (index == 1) { } else if (index == 1) {
let params = { let params = {
@ -587,7 +622,7 @@ export default {
DeviceTypes: "门禁,视频监控", DeviceTypes: "门禁,视频监控",
}; };
GetLevelAlarm(params).then((res) => { GetLevelAlarm(params).then((res) => {
this.upWainData(res); this.upWainData(res.data.data);
}); });
} else { } else {
let params = { let params = {
@ -595,35 +630,67 @@ export default {
DeviceTypes: "VRV,机房,消防,电梯,恒温恒湿,热回收,环境,光伏,能耗", DeviceTypes: "VRV,机房,消防,电梯,恒温恒湿,热回收,环境,光伏,能耗",
}; };
GetLevelAlarm(params).then((res) => { GetLevelAlarm(params).then((res) => {
this.upWainData(res); this.upWainData(res.data.data);
}); });
} }
}, },
// //
upWainData(res) { upWainData(val) {
let icon = null; let icon = null;
this.warnList = Object.keys(res.data.data).map((item, index) => { this.warnList = Object.keys(val).map((item, index) => {
if (res.data.data[index].AlarmLevel == 1) { if (val[index].AlarmLevel == 1) {
res.data.data[index].AlarmLevel = "一级"; val[index].AlarmLevel = "一级";
icon = require("../assets/images/warnRed.png"); icon = require("../assets/images/warnRed.png");
} else if (res.data.data[index].AlarmLevel == 2) { } else if (val[index].AlarmLevel == 2) {
res.data.data[index].AlarmLevel = "二级"; val[index].AlarmLevel = "二级";
icon = require("../assets/images/warnOrange.png"); icon = require("../assets/images/warnOrange.png");
} else if (res.data.data[index].AlarmLevel == 3) { } else if (val[index].AlarmLevel == 3) {
res.data.data[index].AlarmLevel = "三级"; val[index].AlarmLevel = "三级";
icon = require("../assets/images/warnBlue.png"); icon = require("../assets/images/warnBlue.png");
} }
return { return {
id: index + 1, id: index + 1,
icon: icon, icon: icon,
time: this.$moment(res.data.data[index].AlarmTime).format( time: this.$moment(val[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss" "YYYY-MM-DD HH:mm:ss"
), ),
cause: res.data.data[index].AlarmName, cause: val[index].AlarmName,
risk: res.data.data[index].AlarmLevel, DeviceType: val[index].DeviceType,
risk: val[index].AlarmLevel,
}; };
}); });
}, },
//mqtt
upmqttData(val) {
let icon = null;
var warnListMqtt = []
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
icon = require("../assets/images/warnRed.png");
} else if (val[index].AlarmLevel == 2) {
val[index].AlarmLevel = "二级";
icon = require("../assets/images/warnOrange.png");
} else if (val[index].AlarmLevel == 3) {
val[index].AlarmLevel = "三级";
icon = require("../assets/images/warnBlue.png");
}
return {
id: index + 1,
icon: icon,
time: this.$moment(val[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss"
),
cause: val[index].AlarmName,
DeviceType: val[index].DeviceType,
risk: val[index].AlarmLevel,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
this.warnList.splice(0,0,warnListMqtt[i]);
}
},
// //
warningOne() { warningOne() {
let data = []; let data = [];
@ -644,7 +711,7 @@ export default {
orient: "vertical", orient: "vertical",
textStyle: { textStyle: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
data: [ data: [
// { // {
@ -678,7 +745,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
// rotate: "45" // rotate: "45"
}, },
}, },
@ -689,7 +756,7 @@ export default {
minInterval: 1, minInterval: 1,
nameTextStyle: { nameTextStyle: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
// scale: true, // scale: true,
axisLine: { axisLine: {
@ -703,7 +770,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
splitLine: { splitLine: {
show: true, show: true,
@ -743,7 +810,7 @@ export default {
label: { label: {
normal: { normal: {
show: true, show: true,
fontSize: "0.4rem", fontSize: "0.6rem",
color: "#fff", color: "#fff",
position: "inside", position: "inside",
}, },
@ -775,7 +842,7 @@ export default {
orient: "vertical", orient: "vertical",
textStyle: { textStyle: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
data: [ data: [
// { // {
@ -809,7 +876,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
// rotate: "45" // rotate: "45"
}, },
}, },
@ -820,7 +887,7 @@ export default {
minInterval: 1, minInterval: 1,
nameTextStyle: { nameTextStyle: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
// scale: true, // scale: true,
axisLine: { axisLine: {
@ -834,7 +901,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.4rem", fontSize: "0.6rem",
}, },
splitLine: { splitLine: {
show: true, show: true,
@ -874,7 +941,7 @@ export default {
label: { label: {
normal: { normal: {
show: true, show: true,
fontSize: "0.4rem", fontSize: "0.6rem",
color: "#fff", color: "#fff",
position: "inside", position: "inside",
}, },
@ -941,7 +1008,7 @@ export default {
rich: { rich: {
a: { a: {
color: "#fff", color: "#fff",
fontSize: "0.5rem", fontSize: "0.6rem",
padding: [0, 10, 0, 0], padding: [0, 10, 0, 0],
}, },
b: { b: {
@ -977,7 +1044,7 @@ export default {
textStyle: { textStyle: {
align: "center", align: "center",
baseline: "middle", baseline: "middle",
fontSize: "0.5rem", fontSize: "0.6rem",
fontWeight: "100", fontWeight: "100",
color: "#fff", color: "#fff",
}, },
@ -1049,7 +1116,7 @@ export default {
rich: { rich: {
a: { a: {
color: "#fff", color: "#fff",
fontSize: "0.5rem", fontSize: "0.6rem",
padding: [0, 10, 0, 0], padding: [0, 10, 0, 0],
}, },
b: { b: {
@ -1085,7 +1152,7 @@ export default {
textStyle: { textStyle: {
align: "center", align: "center",
baseline: "middle", baseline: "middle",
fontSize: "0.5rem", fontSize: "0.6rem",
fontWeight: "100", fontWeight: "100",
color: "#fff", color: "#fff",
}, },
@ -1140,7 +1207,7 @@ export default {
textStyle: { textStyle: {
// //
color: "#b4c9d1", color: "#b4c9d1",
fontSize: "0.5rem", fontSize: "0.6rem",
}, },
top: "4%", top: "4%",
// left: "13%", // left: "13%",
@ -1171,7 +1238,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.5rem", fontSize: "0.6rem",
}, },
//x线 //x线
splitLine: { splitLine: {
@ -1192,7 +1259,7 @@ export default {
nameTextStyle: { nameTextStyle: {
//y //y
color: "#fff", color: "#fff",
fontSize: "0.5rem", fontSize: "0.6rem",
}, },
type: "value", type: "value",
axisTick: { axisTick: {
@ -1214,7 +1281,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: "0.5rem", fontSize: "0.6rem",
}, },
}, },
], ],
@ -1401,7 +1468,7 @@ export default {
} }
} }
.leftTwo { .leftTwo {
height: 25%; height: 30%;
width: 100%; width: 100%;
.warning { .warning {
height: calc(100% - 25%); height: calc(100% - 25%);
@ -1690,7 +1757,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.7rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;

View File

@ -27,7 +27,7 @@
</div> </div>
</div> </div>
<div class="workCount"> <div class="workCount">
<div style="font-size: 0.8rem">本月工单数</div> <div style="font-size: 0.9rem">本月工单数</div>
<div id="workOrderEcharts"></div> <div id="workOrderEcharts"></div>
</div> </div>
<div class="workList"> <div class="workList">
@ -250,7 +250,7 @@ export default {
label: { label: {
show: true, show: true,
color: "#fff", color: "#fff",
fontSize: "0.8rem", fontSize: "0.9rem",
fontWeight: 600, fontWeight: 600,
backgroundColor: "rgba(0, 0, 0, 0)", backgroundColor: "rgba(0, 0, 0, 0)",
}, },
@ -337,7 +337,7 @@ export default {
show: true, show: true,
textStyle: { textStyle: {
color: "#FFFFFF", color: "#FFFFFF",
fontSize: "0.8rem", fontSize: "0.9rem",
}, },
position: "top", position: "top",
formatter: function (p) { formatter: function (p) {
@ -389,10 +389,11 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
font-size: 0.7rem;
.todayCount { .todayCount {
background: url(../assets/images/gongDan/gongDanBack.png) no-repeat; background: url(../assets/images/gongDan/gongDanBack.png) no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
width: 62%; width: 75%;
height: 82%; height: 82%;
color: #fff; color: #fff;
display: flex; display: flex;
@ -556,7 +557,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.8rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;

View File

@ -3,8 +3,8 @@
<div class="left"> <div class="left">
<div class="leftOne"> <div class="leftOne">
<div class="title">安防统计数据</div> <div class="title">安防统计数据</div>
<div class="security"> <!-- <div class="security"> -->
<img src="../assets/images/anFangAc.png" class="securityImg"/> <!-- <img src="../assets/images/anFangAc.png" class="securityImg"/>
<div class="securitySupervision">安防监管</div> <div class="securitySupervision">安防监管</div>
<div class="securityCount"> <div class="securityCount">
<div <div
@ -15,9 +15,48 @@
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
<span>{{ item.count }}</span> <span>{{ item.count }}</span>
</div> </div>
<!-- <img src="../"/> -->
</div> </div>
</div> <img src="../assets/images/anFangAc.png" class="securityImg"/>
<div class="securitySupervision">安防监管</div>
<div class="securityCount">
<div
class="securityList"
v-for="(item, index) in securityList"
:key="index"
>
<span>{{ item.name }}</span>
<span>{{ item.count }}</span>
</div>
</div> -->
<el-carousel
class="security"
:autoplay="true"
trigger="click"
:interval="7000"
>
<el-carousel-item
v-for="(item, index) in securityList"
:key="index"
class="equipmentEnergy"
>
<img src="../assets/images/anFangAc.png" class="securityImg"/>
<!-- <div class="securitySupervision">安防监管</div> -->
<div class="securitySupervision">{{item.tit}}</div>
<div class="securityCount">
<div
class="securityList"
v-for="(i, k) in item.security"
:key="k"
>
<span>{{ i.name }}</span>
<span>{{ i.count }}</span>
</div>
</div>
</el-carousel-item>
</el-carousel>
<!-- </div> -->
</div> </div>
<div class="leftTwo"> <div class="leftTwo">
<div class="title" style="height: 8%">预警视频监控联动</div> <div class="title" style="height: 8%">预警视频监控联动</div>
@ -123,7 +162,7 @@
" "
>设备内容:<span >设备内容:<span
style="color: rgb(0, 255, 255); margin-left: 5%" style="color: rgb(0, 255, 255); margin-left: 5%"
>{{ item.content }}</span >{{ item.position }}</span
></span ></span
> >
<span <span
@ -154,6 +193,8 @@ export default {
return { return {
securityList: [ securityList: [
{ {
tit:'摄像头监管',
security:[{
name: "", name: "",
count: "", count: "",
}, },
@ -162,21 +203,52 @@ export default {
count: "609", count: "609",
}, },
{ {
name: "在线数量", name: "摄像头在线数量",
count: "602", count: "602",
}, },
{ {
name: "离线数量", name: "摄像头离线数量",
count: "7", count: "7",
}, },
{ {
name: "报警数", name: "摄像头报警数",
count: "0", count: "0",
}, },
{ {
name: "昨日报警数", name: "摄像头昨日报警数",
count: "0", count: "0",
}, },
]
},
{
tit:'门禁监管',
security:[{
name: "",
count: "",
},
{
name: "门禁总数",
count: "609",
},
{
name: "门禁在线数量",
count: "602",
},
{
name: "门禁离线数量",
count: "7",
},
{
name: "门禁今日报警数",
count: "0",
},
{
name: "门禁昨日报警数",
count: "0",
},
]
}
], ],
warnCameraList: [ warnCameraList: [
{ {
@ -229,31 +301,34 @@ export default {
id: "1", id: "1",
icon: require("../assets/images/anFang/exclamatory.png"), icon: require("../assets/images/anFang/exclamatory.png"),
time: "2023年03月12日 15:45:10", time: "2023年03月12日 15:45:10",
content: "306门禁故障", position: "306门禁故障",
status: "已解除", status: "已解除",
}, },
{ {
id: "2", id: "2",
icon: require("../assets/images/anFang/exclamatory.png"), icon: require("../assets/images/anFang/exclamatory.png"),
time: "2023年03月12日 15:45:10", time: "2023年03月12日 15:45:10",
content: "201门禁故障", position: "201门禁故障",
status: "已解除", status: "已解除",
}, },
{ {
id: "3", id: "3",
icon: require("../assets/images/anFang/exclamatory.png"), icon: require("../assets/images/anFang/exclamatory.png"),
time: "2023年03月12日 15:45:10", time: "2023年03月12日 15:45:10",
content: "206门禁故障", position: "206门禁故障",
status: "已解除", status: "已解除",
}, },
{ {
id: "4", id: "4",
icon: require("../assets/images/anFang/exclamatory.png"), icon: require("../assets/images/anFang/exclamatory.png"),
time: "2023年03月12日 15:45:10", time: "2023年03月12日 15:45:10",
content: "106门禁故障", position: "106门禁故障",
status: "已解除", status: "已解除",
}, },
], ],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
}; };
}, },
mounted() { mounted() {
@ -263,13 +338,37 @@ export default {
this.getPoliceList() this.getPoliceList()
// //
this.getAlarmCount() this.getAlarmCount()
window.alarmFirstLevel = this.alarmFirstLevel
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
}, },
watch: {
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel",val)
if(val.length!=0){
this.upmqttData(val)
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel",val)
this.upmqttData(val)
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel",val)
this.upmqttData(val)
},
},
methods: { methods: {
// //
getAlarmCount(){ getAlarmCount(){
getSecurityAlarmCount().then((res)=>{ getSecurityAlarmCount().then((res)=>{
this.securityList[4].count = res.data.data.TodayCount this.securityList[0].security[4].count = res.data.data.TodayCount
this.securityList[5].count = res.data.data.YesterdayCount this.securityList[0].security[5].count = res.data.data.YesterdayCount
}) })
}, },
videoChange(index) { videoChange(index) {
@ -289,7 +388,7 @@ export default {
GetLevelAlarm(params).then((res) => { GetLevelAlarm(params).then((res) => {
let icon = null let icon = null
this.fireWarnList = Object.keys(res.data.data).map((item, index) => { this.fireWarnList = Object.keys(res.data.data).map((item, index) => {
if (res.data.data[index].Status == 1) { if (res.data.data[index].Status == 0) {
res.data.data[index].Status = "未处理"; res.data.data[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png") icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{ }else{
@ -299,8 +398,11 @@ export default {
return { return {
icon: icon, icon: icon,
time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"), time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
position: res.data.data[index].DeviceType, DeviceType: res.data.data[index].DeviceType,
status: res.data.data[index].AlarmLevel, // position: res.data.data[index].DeviceType,
position: res.data.data[index].AlarmName,
// status: res.data.data[index].AlarmLevel,
status: res.data.data[index].Status,
}; };
}); });
}); });
@ -314,7 +416,7 @@ export default {
GetLevelAlarm(params).then((res) => { GetLevelAlarm(params).then((res) => {
let icon = null let icon = null
this.policeList = Object.keys(res.data.data).map((item, index) => { this.policeList = Object.keys(res.data.data).map((item, index) => {
if (res.data.data[index].Status == 1) { if (res.data.data[index].Status == 0) {
res.data.data[index].Status = "未处理"; res.data.data[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png") icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{ }else{
@ -324,21 +426,59 @@ export default {
return { return {
icon: icon, icon: icon,
time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"), time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
content: res.data.data[index].DeviceType, DeviceType: res.data.data[index].DeviceType,
status: res.data.data[index].AlarmLevel, position: res.data.data[index].AlarmName,
// status: res.data.data[index].AlarmLevel,
status: res.data.data[index].Status,
}; };
}); });
}); });
}, },
//mqtt
upmqttData(val) {
let icon = null
var warnListMqtt = []
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].Status == 0) {
val[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{
val[index].Status = "已处理";
icon = require("../assets/images/jieNengImg/warnBlue.png")
}
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
} else if (val[index].AlarmLevel == 2) {
val[index].AlarmLevel = "二级";
} else if (val[index].AlarmLevel == 3) {
val[index].AlarmLevel = "三级";
}
return {
icon: icon,
time: this.$moment(val[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
position: val[index].AlarmName,
DeviceType: val[index].DeviceType,
status: val[index].Status,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
if(warnListMqtt[i].AlarmLevel=='三级'){
this.policeList.splice(0,0,warnListMqtt[i]);
this.getAlarmCount()
}
if(warnListMqtt[i].DeviceType=='消防'){
this.fireWarnList.splice(0,0,warnListMqtt[i]);
}
}
},
}, },
watch: {},
components: {}, components: {},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@fontsize: 0.7rem; @fontsize: 0.9rem;
.securityMain { .securityMain {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -375,6 +515,13 @@ export default {
justify-content: flex-end; justify-content: flex-end;
flex-wrap: wrap; flex-wrap: wrap;
position: relative; position: relative;
/deep/ .el-carousel__container {
height: 100%;
width: 100%;
}
/deep/ .el-carousel__indicators--horizontal {
display: none;
}
.securityImg{ .securityImg{
position: absolute; position: absolute;
left:10%; left:10%;
@ -386,6 +533,7 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: @fontsize; font-size: @fontsize;
margin-left: 50%;
} }
.securityCount { .securityCount {
width: 100%; width: 100%;
@ -526,7 +674,7 @@ export default {
background: url("../assets/images/title.png") no-repeat; background: url("../assets/images/title.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.8rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 12%; padding-left: 12%;
@ -538,7 +686,7 @@ export default {
background: url("../assets/images/faTingImg/anjianTitle.png") no-repeat; background: url("../assets/images/faTingImg/anjianTitle.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
color: #fff; color: #fff;
font-size: 0.8rem; font-size: 0.9rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 5%; padding-left: 5%;

View File

@ -30,6 +30,14 @@ module.exports = {
'^/ecs-server':'', '^/ecs-server':'',
} }
}, },
'/video': { //代理的名字
target:'http://172.16.1.253:12308/api/',
ws: true,
changeOrigin: true,
pathRewrite:{
'^/video':'',
}
},
} }
}, },
// css: { // css: {