邓洁 : 传感器接口对接
This commit is contained in:
@@ -3,98 +3,78 @@
|
|||||||
<div class="fan-speed">
|
<div class="fan-speed">
|
||||||
<img src="@/assets/images/airInfo/fan-v-icon.png" alt=""/>
|
<img src="@/assets/images/airInfo/fan-v-icon.png" alt=""/>
|
||||||
<div class="fan-info">
|
<div class="fan-info">
|
||||||
<div class="input-fan"><span>风速</span><span>进风:13m/s</span></div>
|
<div class="input-fan"><span>风速</span><span>进风:{{ windSpeed }}m/s</span></div>
|
||||||
<div class="output-fan"><span>出风:13m/s</span></div>
|
<div class="output-fan"><span>出风:{{windSpeed}}m/s</span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<item-info
|
<item-info
|
||||||
:wp="info"
|
v-for="item in airList"
|
||||||
icon="o2-icon.png"
|
:wp="item"
|
||||||
name="氧气"
|
:icon="item.icon"
|
||||||
unit="%"
|
:name="item.name"
|
||||||
/>
|
:unit="item.unit"
|
||||||
<item-info
|
|
||||||
:wp="info1"
|
|
||||||
icon="tempture-icon.png"
|
|
||||||
name="温度"
|
|
||||||
unit=".c"
|
|
||||||
/>
|
|
||||||
<item-info
|
|
||||||
:wp="info2"
|
|
||||||
icon="water-icon.png"
|
|
||||||
name="湿度"
|
|
||||||
unit="%"
|
|
||||||
/>
|
|
||||||
<item-info
|
|
||||||
:wp="info3"
|
|
||||||
icon="dust-icon.png"
|
|
||||||
name="粉尘"
|
|
||||||
unit="mg/m3"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ref, reactive} from "vue";
|
|
||||||
import ItemInfo from "./childComps/ItemInfo.vue";
|
import ItemInfo from "./childComps/ItemInfo.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
list: Array,
|
list: Array,
|
||||||
airData: Array
|
airData: Array
|
||||||
});
|
});
|
||||||
let info = reactive({
|
const windSpeed=ref('')
|
||||||
// windPId: 0, //编号
|
const airList = ref([])
|
||||||
// max: 120, //最大值
|
watch(() => props.list, (now) => {
|
||||||
// value: 70, //测量值
|
airList.value.forEach(item=>{
|
||||||
// point: 60, //阈值
|
now.forEach(newItem=>{
|
||||||
});
|
if(item.equipmentId === newItem.equipmentId){
|
||||||
let info1 = reactive({});
|
item.value = newItem.value
|
||||||
let info2 = reactive({});
|
}
|
||||||
let info3 = reactive({});
|
})
|
||||||
|
})
|
||||||
|
}, {deep: true});
|
||||||
watch(() => props.airData, (now) => {
|
watch(() => props.airData, (now) => {
|
||||||
getAirInfo(now.sensorList)
|
getAirInfo(now.sensorList)
|
||||||
}, {deep: true});
|
}, {deep: true});
|
||||||
|
|
||||||
watch(() => props.list, (now, old) => {
|
const changeData = (item, flag) => {
|
||||||
console.log('传感器 ', now, old)
|
return {
|
||||||
now.map(item=>{
|
|
||||||
getInfo(item)
|
|
||||||
})
|
|
||||||
}, {deep: true});
|
|
||||||
const changeData=(item,flag)=>{
|
|
||||||
return{
|
|
||||||
equipmentId: item.equipmentId,
|
equipmentId: item.equipmentId,
|
||||||
|
icon: changeIcon(item.equipmentType),
|
||||||
|
name: item.equipmentName.slice(0, 2),
|
||||||
max: 120,
|
max: 120,
|
||||||
value: flag?flag.value:item.value,
|
value: flag ? flag.value : item.value,
|
||||||
point: item.valueThreshold,
|
point: item.valueThreshold,
|
||||||
unit:item.unit
|
unit: item.unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getInfo=(item)=>{
|
const changeIcon = (type) => {
|
||||||
if(item.equipmentId==info.equipmentId){
|
switch (type) {
|
||||||
// info.value=item.value
|
case "dust":
|
||||||
changeData(item,info1)
|
return 'dust-icon.png';
|
||||||
console.log('info',info)
|
case "oxygen":
|
||||||
}else if(item.equipmentId==info1.equipmentId){
|
return 'o2-icon.png';
|
||||||
changeData(item,info1)
|
case "temperature":
|
||||||
}else if(item.equipmentId==info2.equipmentId){
|
return 'tempture-icon.png';
|
||||||
changeData(item,info2)
|
case "humidness":
|
||||||
}else if(item.equipmentId==info3.equipmentId){
|
return 'water-icon.png';
|
||||||
changeData(item,info3)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getAirInfo = (now) => {
|
const getAirInfo = (now) => {
|
||||||
|
let windPressureObj = {}
|
||||||
|
let windPressureArr = []
|
||||||
now.map(item => {
|
now.map(item => {
|
||||||
if (item.equipmentType === "dust") {//粉尘
|
if (item.equipmentType === "dust" || item.equipmentType === "oxygen" || item.equipmentType === "temperature" || item.equipmentType === "humidness") {
|
||||||
info3 = changeData(item)
|
windPressureObj = changeData(item)
|
||||||
} else if (item.equipmentType === "oxygen") {//氧气
|
windPressureArr.push(windPressureObj)
|
||||||
info = changeData(item)
|
}else if(item.equipmentType === "windDirection"){
|
||||||
} else if (item.equipmentType === "temperature") {//温度
|
windSpeed.value = item.value
|
||||||
info1 = changeData(item)
|
|
||||||
} else if (item.equipmentType === "humidness") {//湿度
|
|
||||||
info2 = changeData(item)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
windPressureArr.push(windPressureArr.shift())
|
||||||
|
airList.value = windPressureArr
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
<div id="item-info">
|
<div id="item-info">
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<div :style="{ backgroundImage: 'url(' +getImageUrl(windIcon)+')' }" class="wind-icon"></div>
|
<div :style="{ backgroundImage: 'url(' +getImageUrl(windIcon)+')' }" class="wind-icon"></div>
|
||||||
<!-- <img :src="params.icon" alt="" />-->
|
|
||||||
<span>{{ params.name }}</span>
|
<span>{{ params.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="container" ref="length">
|
<div class="container" ref="length">
|
||||||
@@ -16,8 +15,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {onMounted, watch, defineProps, computed} from "vue";
|
|
||||||
|
|
||||||
const params = defineProps({
|
const params = defineProps({
|
||||||
wp: Object,
|
wp: Object,
|
||||||
icon: String,
|
icon: String,
|
||||||
@@ -34,21 +31,19 @@ const windIcon = reactive(params.icon);
|
|||||||
const length = ref(null);
|
const length = ref(null);
|
||||||
const value = ref(null);
|
const value = ref(null);
|
||||||
const point = ref(null);
|
const point = ref(null);
|
||||||
// onMounted(handleOnMounted);
|
onMounted(handleOnMounted);
|
||||||
//
|
|
||||||
// function handleOnMounted() {
|
|
||||||
// // const = length.value.offsetWidth);
|
|
||||||
// setValue();
|
|
||||||
// }
|
|
||||||
|
|
||||||
watch(() => params.wp.value, (val) => {
|
function handleOnMounted() {
|
||||||
console.log('xin----', val)
|
setValue();
|
||||||
setValue(value);
|
}
|
||||||
}, {deep: true});
|
|
||||||
|
watch(() => params.wp.value, () => {
|
||||||
|
setValue();
|
||||||
|
});
|
||||||
const getImageUrl = (name) => {
|
const getImageUrl = (name) => {
|
||||||
return new URL(`../../../../assets/images/airInfo/${name}`, import.meta.url).href
|
return new URL(`../../../../assets/images/airInfo/${name}`, import.meta.url).href
|
||||||
}
|
}
|
||||||
const setValue = (val) => {
|
const setValue = () => {
|
||||||
let width = (params.wp.value * length.value.offsetWidth) / params.wp.max;
|
let width = (params.wp.value * length.value.offsetWidth) / params.wp.max;
|
||||||
value.value.style.width = `${width}px`;
|
value.value.style.width = `${width}px`;
|
||||||
let flag = (params.wp.point * length.value.offsetWidth) / params.wp.max;
|
let flag = (params.wp.point * length.value.offsetWidth) / params.wp.max;
|
||||||
@@ -65,7 +60,7 @@ let isWaring = computed(() => {
|
|||||||
return params.wp.value >= params.wp.point;
|
return params.wp.value >= params.wp.point;
|
||||||
});
|
});
|
||||||
|
|
||||||
const valueAndUnit = computed(() => params.wp.value + params.unit + "");
|
const valueAndUnit = computed(() => params.wp.value + " "+ params.unit );
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ const props = defineProps({
|
|||||||
winData: Array
|
winData: Array
|
||||||
});
|
});
|
||||||
const wpList = ref([]);
|
const wpList = ref([]);
|
||||||
watch(() => props.list, (now, old) => {
|
watch(() => props.list, (now) => {
|
||||||
wpList.value.forEach(item=>{
|
wpList.value.forEach(item=>{
|
||||||
now.forEach(item2=>{
|
now.forEach(newItem=>{
|
||||||
if(item.equipmentId === item2.equipmentId){
|
if(item.equipmentId === newItem.equipmentId){
|
||||||
item.value = item2.value
|
item.value = newItem.value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {reactive, onMounted, watch, defineProps, computed} from "vue";
|
|
||||||
|
|
||||||
const params = defineProps({
|
const params = defineProps({
|
||||||
wp: Object,
|
wp: Object,
|
||||||
index: Number,
|
index: Number,
|
||||||
@@ -27,18 +25,16 @@ const params = defineProps({
|
|||||||
// value: 40, //测量值
|
// value: 40, //测量值
|
||||||
// point: 60, //阈值
|
// point: 60, //阈值
|
||||||
// };
|
// };
|
||||||
// const wp = reactive(info);
|
|
||||||
const length = ref(null);
|
const length = ref(null);
|
||||||
const value = ref(null);
|
const value = ref(null);
|
||||||
const point = ref(null);
|
const point = ref(null);
|
||||||
onMounted(handleOnMounted);
|
onMounted(handleOnMounted);
|
||||||
|
|
||||||
function handleOnMounted() {
|
function handleOnMounted() {
|
||||||
// const = length.value.offsetWidth);
|
|
||||||
setValue();
|
setValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => params.wp.value, (value) => {
|
watch(() => params.wp.value, () => {
|
||||||
setValue();
|
setValue();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user