机械分厂设备大屏 隐藏故障率
This commit is contained in:
hzz 2023-08-07 15:34:23 +08:00
parent 44fa4b00fe
commit c4d68a6771
3 changed files with 206 additions and 201 deletions

View File

@ -2,119 +2,119 @@ import { ref, computed } from 'vue'
import { Names } from "@/store/storeName"; import { Names } from "@/store/storeName";
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
// import { sensor, shuiyaData } from '@/utils/sensor' // import { sensor, shuiyaData } from '@/utils/sensor'
import {newPoint} from '@/mock/newPoint' import { newPoint } from '@/mock/newPoint'
export const useFactoryStore = defineStore(Names.Factory, () => { export const useFactoryStore = defineStore(Names.Factory, () => {
const sensorList =ref<any>([]) //ref<any>(JSON.parse(localStorage.getItem('sensorList') || '[]')) const sensorList = ref<any>([]) //ref<any>(JSON.parse(localStorage.getItem('sensorList') || '[]'))
const objSensor = {} const objSensor = {}
const devdataList = ref<any>([]) const devdataList = ref<any>([])
//要更新的传感器数据 //要更新的传感器数据
const updateSensorData= ref<any>({}) const updateSensorData = ref<any>({})
//传感器数量列表 //传感器数量列表
const temp_iconList = [ const temp_iconList = [
{ {
id: 1, id: 1,
name: "icon-icon-temperature", name: "icon-icon-temperature",
i18n:'messages.humitureSensor', i18n: 'messages.humitureSensor',
value: "温湿度传感器", value: "温湿度传感器",
iconType:"温湿度", iconType: "温湿度",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 2, id: 2,
name: "icon-shengyin", name: "icon-shengyin",
i18n:'messages.noiseSensor', i18n: 'messages.noiseSensor',
value: "噪音传感器", value: "噪音传感器",
iconType:"噪音", iconType: "噪音",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 3, id: 3,
name: "icon-dianliu", name: "icon-dianliu",
i18n:'messages.powerSensor', i18n: 'messages.powerSensor',
value: "电力传感器", value: "电力传感器",
iconType:"电力", iconType: "电力",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 4, id: 4,
name: "icon-weibiaoti1", name: "icon-weibiaoti1",
i18n:'messages.sparkSensor', i18n: 'messages.sparkSensor',
value: "火花传感器", value: "火花传感器",
iconType:"火花", iconType: "火花",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 5, id: 5,
name: "icon-fenchen", name: "icon-fenchen",
i18n:'messages.dustSensor', i18n: 'messages.dustSensor',
value: "粉尘传感器", value: "粉尘传感器",
iconType:"粉尘", iconType: "粉尘",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 6, id: 6,
name: "icon-app_icons--", name: "icon-app_icons--",
i18n:'messages.TVOC_CH2OSensor', i18n: 'messages.TVOC_CH2OSensor',
value: "TVOC/甲醛传感器", value: "TVOC/甲醛传感器",
iconType:"TVOC/甲醛", iconType: "TVOC/甲醛",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 7, id: 7,
name: "icon-yanwubaojingqi", name: "icon-yanwubaojingqi",
i18n:'messages.smokeSensor', i18n: 'messages.smokeSensor',
value: "烟雾传感器", value: "烟雾传感器",
iconType:"烟雾", iconType: "烟雾",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 8, id: 8,
name: "icon-ranqi", name: "icon-ranqi",
i18n:'messages.gasSensor', i18n: 'messages.gasSensor',
value: "燃气传感器", value: "燃气传感器",
iconType:"燃气", iconType: "燃气",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 9, id: 9,
name: "icon-shuiya", name: "icon-shuiya",
i18n:'messages.waterPressureSensor', i18n: 'messages.waterPressureSensor',
value: "水压传感器", value: "水压传感器",
iconType:"水压", iconType: "水压",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
},{ }, {
id: 10, id: 10,
name: "icon-qiya", name: "icon-qiya",
i18n:'messages.gasPressureSensor', i18n: 'messages.gasPressureSensor',
value: "气压传感器", value: "气压传感器",
iconType:"气压", iconType: "气压",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
{ {
id: 11, id: 11,
name: "icon-beikongshuiwupingtaimenhu-tubiao_zhinengwangguan", name: "icon-beikongshuiwupingtaimenhu-tubiao_zhinengwangguan",
i18n:'messages.gateway', i18n: 'messages.gateway',
value: "网关", value: "网关",
iconType:"网关", iconType: "网关",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
}, },
] ]
const temp_devList = [ { const temp_devList = [{
id: 1, id: 1,
name: "icon-shebeiditu", name: "icon-shebeiditu",
i18n:'messages.Dev', i18n: 'messages.Dev',
value: "设备", value: "设备",
counts: 0, counts: 0,
allnum: 0, allnum: 0,
@ -124,29 +124,29 @@ export const useFactoryStore = defineStore(Names.Factory, () => {
const devList = ref(JSON.parse(JSON.stringify(temp_devList))) const devList = ref(JSON.parse(JSON.stringify(temp_devList)))
//更新传感器数据方法 //更新传感器数据方法
const updateSensorList= (data:any) => { const updateSensorList = (data: any) => {
// console.log(objSensor,'updateSensorList'); // console.log(objSensor,'updateSensorList');
// objSensor.hasOwnProperty(data.id) && (objSensor[data.id].status = data.status) // objSensor.hasOwnProperty(data.id) && (objSensor[data.id].status = data.status)
data.status = data.status === 'true' ? true : false data.status = data.status === 'true' ? true : false
if (objSensor.hasOwnProperty(data.id)&&objSensor[data.id].status != data.status) { if (objSensor.hasOwnProperty(data.id) && objSensor[data.id].status != data.status) {
objSensor[data.id].status = data.status objSensor[data.id].status = data.status
updateSensorData.value[data.id] = objSensor[data.id] updateSensorData.value[data.id] = objSensor[data.id]
} }
// updateSensorData.value[data.id] = data // updateSensorData.value[data.id] = data
} }
//更新后清除 更新传感器数据 //更新后清除 更新传感器数据
const clearupdateSensorData= () => { const clearupdateSensorData = () => {
updateSensorData.value = {} updateSensorData.value = {}
} }
const setDataList = (sensor:any) => { const setDataList = (sensor: any) => {
const data:any[] = [] const data: any[] = []
sensorList.value = [] sensorList.value = []
iconList.value = JSON.parse(JSON.stringify(temp_iconList)) iconList.value = JSON.parse(JSON.stringify(temp_iconList))
for(let i in sensor) { for (let i in sensor) {
let iconListKey = iconList.value.findIndex(item=>item.iconType == i) let iconListKey = iconList.value.findIndex(item => item.iconType == i)
let items = sensor[i].map((item:any)=>{ let items = sensor[i].map((item: any) => {
item.icon = i item.icon = i
//传感器数量 //传感器数量
iconList.value[iconListKey].allnum++ iconList.value[iconListKey].allnum++
@ -158,9 +158,9 @@ export const useFactoryStore = defineStore(Names.Factory, () => {
}) })
data.push(...items) data.push(...items)
} }
let newData:object[] = [] let newData: object[] = []
data.forEach(item => { data.forEach(item => {
let {id, x, y, name, status,icon } = item let { id, x, y, name, status, icon } = item
if (x !== 0 && y !== 0) { if (x !== 0 && y !== 0) {
const listItem = { const listItem = {
id, id,
@ -181,10 +181,10 @@ export const useFactoryStore = defineStore(Names.Factory, () => {
//localStorage.setItem('sensorList', JSON.stringify(newData)) //localStorage.setItem('sensorList', JSON.stringify(newData))
sensorList.value = newData; sensorList.value = newData;
} }
const setdevList = (data:any) => { const setdevList = (data: any) => {
devList.value = JSON.parse(JSON.stringify(temp_devList)) devList.value = JSON.parse(JSON.stringify(temp_devList))
devdataList.value = [] devdataList.value = []
for(let i in data) { for (let i in data) {
data[i].forEach(element => { data[i].forEach(element => {
element.icon = '设备' element.icon = '设备'
element.status = element.status === 'true' ? true : false element.status = element.status === 'true' ? true : false
@ -207,9 +207,9 @@ export const useFactoryStore = defineStore(Names.Factory, () => {
} }
//保存新点位坐标 //保存新点位坐标
function saveNewPoint(id:string,x:number,y:number) { function saveNewPoint(id: string, x: number, y: number) {
newPoint.value[id] = {x,y} newPoint.value[id] = { x, y }
} }
return { sensorList,devdataList,devList,iconList,updateSensorData,updateSensorList,clearupdateSensorData,setDataList,setdevList,saveNewPoint } return { sensorList, devdataList, devList, iconList, updateSensorData, updateSensorList, clearupdateSensorData, setDataList, setdevList, saveNewPoint }
}) })

View File

@ -92,7 +92,7 @@ let devFaultTipData = ref([])
let devStatusTipData = ref([]) let devStatusTipData = ref([])
let ringData = ref([]) let ringData = ref([])
let scrollBoardConfig = reactive({ let scrollBoardConfig = reactive({
header: ['序号', '设备名称', '所属车间', '设备状态', '稼动率', '故障率'], header: ['序号', '设备名称', '所属车间', '设备状态', '稼动率'],//, ''
headerBGC: 'rgb(52, 105, 243)', headerBGC: 'rgb(52, 105, 243)',
oddRowBGC: '#100c2a', oddRowBGC: '#100c2a',
evenRowBGC: '#100c2a', evenRowBGC: '#100c2a',
@ -172,7 +172,7 @@ async function reqDeviceTotelListMFfun() {
item.dept, item.dept,
compare[item.status] ? compare[item.status] : '停机', compare[item.status] ? compare[item.status] : '停机',
item.activation + '%', item.activation + '%',
item.failure + '%' // item.failure + '%'
] ]
}) })
scrollBoardConfig.rawData = result.data; scrollBoardConfig.rawData = result.data;

View File

@ -2,7 +2,7 @@
<div class="container"> <div class="container">
<dv-border-box-6 :color="['#20aec5', '#20aec5']"> <dv-border-box-6 :color="['#20aec5', '#20aec5']">
<div class="content"> <div class="content">
<div class="status online">{{ prop.data.status }}</div> <div class="status" :class="statusClass">{{ prop.data.status }}</div>
<div class="right-top"> <div class="right-top">
<div class="num">{{ prop.data.count }}</div> <div class="num">{{ prop.data.count }}</div>
<div class="name">当日总针数</div> <div class="name">当日总针数</div>
@ -19,7 +19,7 @@
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import { getCurrentInstance, ref, onMounted,watch } from 'vue'; import { getCurrentInstance, ref, onMounted,watch, computed } from 'vue';
const { proxy } = getCurrentInstance()! as any; const { proxy } = getCurrentInstance()! as any;
const chart = ref(null); const chart = ref(null);
let myChart: any = null; let myChart: any = null;
@ -41,6 +41,11 @@ const prop = defineProps({
} }
} }
}) })
let statusClass = computed(() => {
return prop.data.status == '在线' ? 'online' : 'outline'
})
const init = () => { const init = () => {
if (!myChart) { if (!myChart) {
myChart = proxy.$echarts.init(chart.value); myChart = proxy.$echarts.init(chart.value);