广州木机展大屏更新
This commit is contained in:
parent
e3046cab92
commit
64772a03a1
@ -5,3 +5,8 @@ export function scatteredLayoutExhibitionDevice(data){
|
|||||||
return get('/screen/cisma/scatteredLayoutExhibitionDevice',data)
|
return get('/screen/cisma/scatteredLayoutExhibitionDevice',data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取设备在线状态、设备列表
|
||||||
|
export function cismaDeviceInfo(data){
|
||||||
|
return get('/screen/cisma/cismaDeviceInfo',data)
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<header2 ref="headerref" :width="'100%'" :height="'100px'" :title="'再登工况物联管理系统'" :titleTip="[]"
|
<header2 ref="headerref" :width="'100%'" :height="'100px'" :title="'再登工况物联管理系统'" :titleTip="[]"
|
||||||
:typeFun="['time','comback']" :alarmType="[]"></header2>
|
:typeFun="['time', 'comback']" :alarmType="[]"></header2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<BorderView :title="'工作速度'">
|
<BorderView :title="'工作速度'">
|
||||||
<div class="box-lt">
|
<div class="box-lt">
|
||||||
<div class="pie">
|
<div class="pie">
|
||||||
<span>200</span>
|
<span>{{ speed }}</span>
|
||||||
<span>rpm/min</span>
|
<span>rpm/min</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<BorderView :title="'设备状态总览'">
|
<BorderView :title="'设备状态总览'">
|
||||||
<ItemCard :data="device_data"></ItemCard>
|
<ItemCard :data="device_data" :imgSrc="getImgSrc"></ItemCard>
|
||||||
</BorderView>
|
</BorderView>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
@ -79,42 +79,106 @@ import header2 from './components/header2.vue'
|
|||||||
import BorderView from './components/Border.vue'
|
import BorderView from './components/Border.vue'
|
||||||
import DynamicChart from './components/DynamicChart.vue'
|
import DynamicChart from './components/DynamicChart.vue'
|
||||||
import ItemCard from './components/ItemCard.vue'
|
import ItemCard from './components/ItemCard.vue'
|
||||||
import {scatteredLayoutExhibitionDevice} from '@/http/Exhibition/CIFM'
|
import { scatteredLayoutExhibitionDevice, cismaDeviceInfo } from '@/http/Exhibition/CIFM'
|
||||||
import { connectWebsocket, closeWebsocket } from "@/utils/websocket"
|
import { connectWebsocket, closeWebsocket } from "@/utils/websocket"
|
||||||
import {useRouter,useRoute} from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
|
||||||
let route = useRoute()
|
let route = useRoute()
|
||||||
console.log(route.params.name);
|
|
||||||
|
|
||||||
let xData = ref(['订单任务量', '任务完成量'])
|
let xData = ref(['订单任务量', '任务完成量'])
|
||||||
let series = ref([{
|
let series = ref([{
|
||||||
name: '完成量',
|
name: '完成量',
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: [200, 300]
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'outside',
|
||||||
|
formatter: '{@score}'
|
||||||
|
},
|
||||||
|
data: [200, 300],
|
||||||
|
barWidth: '35%',
|
||||||
}])
|
}])
|
||||||
let device_data = ref([
|
let device_data = ref([
|
||||||
{ key: '机架号', value: '102014422' },
|
{ key: '设备名称', value: '床笠裙边机', value_style: { fontSize: '26px' } },
|
||||||
{ key: '设备状态', value: 2 },
|
{ key: '设备状态', value: 2 },
|
||||||
{ key: '稼动率', value: '90%' },
|
{ key: '机架号', value: '123456' },
|
||||||
{ key: '工作时长', value: '0min' },
|
{ key: '工作时长', value: '0min' },
|
||||||
])
|
])
|
||||||
|
|
||||||
|
let getImgSrc = computed(() => {
|
||||||
|
let name: string = Array.isArray(route.params.name) ? route.params.name[0] : route.params.name;
|
||||||
|
let imgSrc = {
|
||||||
|
'床笠裙边机': require('./images/qbj.png'),
|
||||||
|
'电脑绗绣机': require('./images/hxj.png'),
|
||||||
|
'电脑绣花机': require('./images/xhj.png'),
|
||||||
|
'全自动缝纫机(零等待)': require('./images/ldd.png')
|
||||||
|
}
|
||||||
|
return imgSrc[name]
|
||||||
|
})
|
||||||
|
|
||||||
|
//转速
|
||||||
|
let speed = ref(200)
|
||||||
function scatteredLayoutExhibitionDeviceFun() {
|
function scatteredLayoutExhibitionDeviceFun() {
|
||||||
scatteredLayoutExhibitionDevice({s:'WME'}).then((res:any) => {
|
scatteredLayoutExhibitionDevice({ s: 'WME' }).then((res: any) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
let name: string = Array.isArray(route.params.name) ? route.params.name[0] : route.params.name;
|
let name: string = Array.isArray(route.params.name) ? route.params.name[0] : route.params.name;
|
||||||
let device_info = data[name]
|
let device_info = data[name]
|
||||||
device_data.value = [
|
device_data.value = [
|
||||||
{ key: '机架号', value: device_info['label'] },
|
{ key: '设备名称', value: device_info['name'], value_style: { fontSize: '26px' } },
|
||||||
{ key: '设备状态', value: device_info['status'] },
|
{ key: '设备状态', value: device_info['status'] },
|
||||||
{ key: '稼动率', value: device_info['ratio'] },
|
{ key: '机架号', value: device_info['label'] },
|
||||||
{ key: '工作时长', value: device_info['workTime'] },
|
{ key: '工作时长', value: device_info['workTime'] },
|
||||||
]
|
]
|
||||||
|
console.log(route.params.name,'11111');
|
||||||
|
|
||||||
|
if (name == '床笠裙边机') {
|
||||||
|
device_data.value.push({ key: '花型编号', value: device_info['fileName'] })
|
||||||
|
}
|
||||||
|
if (device_info['status'] == 2) {
|
||||||
|
speed.value = 200
|
||||||
|
} else {
|
||||||
|
speed.value = 0
|
||||||
|
}
|
||||||
|
cismaDeviceInfoFun(device_info['id'])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
let config = reactive({
|
function cismaDeviceInfoFun(id) {
|
||||||
|
cismaDeviceInfo({ s: id }).then((res: any) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
let data = res.data
|
||||||
|
optionData.series = [{
|
||||||
|
name: '完成量',
|
||||||
|
type: 'bar',
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'outside',
|
||||||
|
formatter: '{@score} ' + unit[Array.isArray(route.params.name) ? route.params.name[0] : route.params.name]
|
||||||
|
},
|
||||||
|
data: [data.dingdan.renwu, data.dingdan.wancheng],
|
||||||
|
barWidth: '35%',
|
||||||
|
}]
|
||||||
|
let config_data = data.weihu.map((item, index) => {
|
||||||
|
return [index + 1, item.taskType, item.date, item.status, item.name]
|
||||||
|
})
|
||||||
|
config.value = {
|
||||||
|
header: ['序号', '类型', '日期', '状态', '操作人员'],//, '故障率'
|
||||||
|
headerBGC: 'transparent',
|
||||||
|
oddRowBGC: 'transparent',
|
||||||
|
evenRowBGC: 'transparent',
|
||||||
|
wrap: [false, false, false, false, false],
|
||||||
|
columnWidth: [80, 150, 145, 110, 110, 185],
|
||||||
|
align: ['center', 'center', 'center', 'center', 'center', 'center'],
|
||||||
|
rowNum: 5,
|
||||||
|
waitTime: 3000,
|
||||||
|
data: config_data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
let config = ref({
|
||||||
header: ['序号', '类型', '日期', '状态', '操作人员'],//, '故障率'
|
header: ['序号', '类型', '日期', '状态', '操作人员'],//, '故障率'
|
||||||
headerBGC: 'transparent',
|
headerBGC: 'transparent',
|
||||||
oddRowBGC: 'transparent',
|
oddRowBGC: 'transparent',
|
||||||
@ -133,6 +197,13 @@ let config = reactive({
|
|||||||
[6, '维护', '2024-02-08', '完成', '1001'],
|
[6, '维护', '2024-02-08', '完成', '1001'],
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
let unit = {
|
||||||
|
'床笠裙边机': '床',
|
||||||
|
'电脑绗绣机': 'cm',
|
||||||
|
'电脑绣花机': '件',
|
||||||
|
'全自动缝纫机(零等待)': '件'
|
||||||
|
}
|
||||||
let optionData = reactive({
|
let optionData = reactive({
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: 'transparent',
|
||||||
legend: {
|
legend: {
|
||||||
@ -163,7 +234,7 @@ let optionData = reactive({
|
|||||||
yAxis: [
|
yAxis: [
|
||||||
{
|
{
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: '产量',
|
name: '订单任务:\r\n单位(' + unit[Array.isArray(route.params.name) ? route.params.name[0] : route.params.name] + ")",
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
fontSize: 14
|
fontSize: 14
|
||||||
}
|
}
|
||||||
@ -180,11 +251,12 @@ function getWebsocket(val) {
|
|||||||
|
|
||||||
|
|
||||||
if (data.type == 'WorkingState') {
|
if (data.type == 'WorkingState') {
|
||||||
let { RackNumber, WorkingState } = data.msg
|
let { RackNumber, WorkingState, speed } = data.msg
|
||||||
|
|
||||||
|
|
||||||
if (device_data.value[0].value == RackNumber) {
|
if (device_data.value[0].value == RackNumber) {
|
||||||
device_data.value[1].value = WorkingState
|
device_data.value[1].value = WorkingState
|
||||||
|
speed.value = speed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,6 +270,9 @@ function errWebsocket(val) {
|
|||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
scatteredLayoutExhibitionDeviceFun()
|
scatteredLayoutExhibitionDeviceFun()
|
||||||
|
setInterval(() => {
|
||||||
|
scatteredLayoutExhibitionDeviceFun()
|
||||||
|
}, 60000)
|
||||||
connectWebsocket(null, null, getWebsocket, errWebsocket)
|
connectWebsocket(null, null, getWebsocket, errWebsocket)
|
||||||
})
|
})
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="board-bar">
|
<div class="board-bar">
|
||||||
<div class="bb-top">
|
<div class="bb-top">
|
||||||
<div class="dev-title">
|
<div class="dev-title">
|
||||||
<div class="title-item" v-for="(item, index) in header" :style="{ width: computedWidth(columnWidth[index]) }">
|
<div class="title-item" v-for="(item, index) in header" :style="{ width: computedWidth(columnWidth[index]), 'text-align': align[index] }">
|
||||||
<text>{{ item }}</text></div>
|
<text>{{ item }}</text></div>
|
||||||
</div>
|
</div>
|
||||||
<ZdScrollBoard ref="devList" class="dev-list" :config="config" />
|
<ZdScrollBoard ref="devList" class="dev-list" :config="config" />
|
||||||
@ -23,6 +23,10 @@ import { getCurrentInstance, onMounted, reactive, ref, computed, watch } from "v
|
|||||||
|
|
||||||
const devList = ref(null);
|
const devList = ref(null);
|
||||||
const prop = defineProps({
|
const prop = defineProps({
|
||||||
|
header: {
|
||||||
|
type: Array,
|
||||||
|
default: ['序号', '设备名称', '设备编码', '完成率', '稼动率', '状态']
|
||||||
|
},
|
||||||
data: {
|
data: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: []
|
||||||
@ -40,8 +44,8 @@ const prop = defineProps({
|
|||||||
default: 2
|
default: 2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
let header = ['序号', '设备名称', '设备编码','完成率', '稼动率', '状态']
|
let columnWidth = [90, 280, 140, 140, 110,85];
|
||||||
let columnWidth = [90, 295, 145, 110, 110,85];
|
let align:any = ['center', 'left', 'center', 'center', 'center', 'center'];
|
||||||
let sum = 850;
|
let sum = 850;
|
||||||
|
|
||||||
let computedWidth = (width: number) => {
|
let computedWidth = (width: number) => {
|
||||||
@ -53,8 +57,8 @@ let config = reactive({
|
|||||||
oddRowBGC: 'transparent',
|
oddRowBGC: 'transparent',
|
||||||
evenRowBGC: 'transparent',
|
evenRowBGC: 'transparent',
|
||||||
wrap: [false, true, false, false, false],
|
wrap: [false, true, false, false, false],
|
||||||
columnWidth: [80, 295, 145, 110, 110,85],
|
columnWidth: [80, 280, 130, 125, 110,85],
|
||||||
align: ['center', 'center', 'center', 'center', 'center', 'center'],
|
align: ['center', 'left', 'center', 'center', 'center', 'center'],
|
||||||
rowNum: prop.rowNum,
|
rowNum: prop.rowNum,
|
||||||
waitTime: 3000,
|
waitTime: 3000,
|
||||||
})
|
})
|
||||||
|
@ -24,6 +24,8 @@ const setCharts = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
watch(() => prop.optionData, (newVal, oldVal) => {
|
watch(() => prop.optionData, (newVal, oldVal) => {
|
||||||
|
console.log(newVal,'1111111');
|
||||||
|
|
||||||
charts.setOption(newVal);
|
charts.setOption(newVal);
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
|
|
||||||
|
@ -1,34 +1,48 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="item-card-container">
|
<div class="item-card-container">
|
||||||
<div class="box-top">
|
<div class="box-top">
|
||||||
<div class="top-item" v-for="(item, index) in data">
|
<div class="top-item" :style="{ width }" v-for="(item, index) in data">
|
||||||
<span class="key-text">{{ item.key }}:</span>
|
<span class="key-text">{{ item.key }}:</span>
|
||||||
<span class="value-text" :class="{ status: index == 1 }"
|
<span class="value-text" :style="item?.value_style">
|
||||||
:style="{ background: index == 1 ? status_color[item.value] : '' }">{{ index ==
|
<div class="status" v-if="index == 1" :style="{background: status_color[item.value]}"></div>
|
||||||
1 ? '' : item.value }}</span>
|
<span v-else>{{ item.value }}</span>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom">
|
<div class="box-bottom">
|
||||||
<img src="./../images/mjxhj.png" alt="">
|
<img :src="imgSrc" alt="">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
|
import { computed } from 'vue'
|
||||||
const prop = defineProps({
|
const prop = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Array as any,
|
type: Array as any,
|
||||||
default: () => []
|
default: () => []
|
||||||
|
},
|
||||||
|
imgSrc: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
rowNum: {
|
||||||
|
type: Number,
|
||||||
|
default: 2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
let width = computed(() => {
|
||||||
|
return 100 / prop.rowNum + '%'
|
||||||
|
})
|
||||||
const status_color = {
|
const status_color = {
|
||||||
'0': '#FF6E76',
|
'0': '#FF6E76',
|
||||||
'1': '#FDDD60',
|
'1': '#FDDD60',
|
||||||
'2': '#7CFFB2',
|
'2': '#7CFFB2',
|
||||||
'3': '#FDDD60',
|
'3': '#FDDD60',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -41,6 +55,7 @@ const status_color = {
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-top {
|
.box-top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 123px;
|
height: 123px;
|
||||||
@ -55,17 +70,17 @@ const status_color = {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 123px);
|
height: calc(100% - 123px);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-bottom img {
|
.box-bottom img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.top-item {
|
.top-item {
|
||||||
width: 243px;
|
|
||||||
height: 50%;
|
height: 50%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
@ -73,6 +88,7 @@ const status_color = {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.key-text {
|
.key-text {
|
||||||
width: 60%;
|
width: 60%;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
@ -89,6 +105,9 @@ const status_color = {
|
|||||||
font-family: '华文新魏', sans-serif;
|
font-family: '华文新魏', sans-serif;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status {
|
.status {
|
||||||
|
BIN
src/views/Exhibition/CIFM/images/hxj.png
Normal file
BIN
src/views/Exhibition/CIFM/images/hxj.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 357 KiB |
BIN
src/views/Exhibition/CIFM/images/ldd.png
Normal file
BIN
src/views/Exhibition/CIFM/images/ldd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 KiB |
BIN
src/views/Exhibition/CIFM/images/qbj.png
Normal file
BIN
src/views/Exhibition/CIFM/images/qbj.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 227 KiB |
BIN
src/views/Exhibition/CIFM/images/xhj.png
Normal file
BIN
src/views/Exhibition/CIFM/images/xhj.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 231 KiB |
@ -8,20 +8,20 @@ export function getTopDevice() {
|
|||||||
[
|
[
|
||||||
"无梭机+裁切机",
|
"无梭机+裁切机",
|
||||||
"101",
|
"101",
|
||||||
"123m",
|
"201m",
|
||||||
"95.0%",
|
"94.5%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"输送机",
|
"输送机",
|
||||||
"102",
|
"102",
|
||||||
"123m",
|
"638m",
|
||||||
"80.0%",
|
"80.0%",
|
||||||
"2"
|
"2"
|
||||||
],[
|
],[
|
||||||
"厚料床垫锁边机",
|
"厚料床垫锁边机",
|
||||||
"103",
|
"103",
|
||||||
"123m",
|
"185m",
|
||||||
"80.0%",
|
"80.0%",
|
||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
@ -54,43 +54,43 @@ export function getTopDevice() {
|
|||||||
[
|
[
|
||||||
"滚胶机",
|
"滚胶机",
|
||||||
"201",
|
"201",
|
||||||
"123min",
|
"500min",
|
||||||
"95.0%",
|
"92.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"平面压板机",
|
"平面压板机",
|
||||||
"202",
|
"202",
|
||||||
"123min",
|
"1220min",
|
||||||
"95.0%",
|
"94.0%",
|
||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫翻转围边机1",
|
"床垫翻转围边机1",
|
||||||
"203",
|
"203",
|
||||||
"123min",
|
"123min",
|
||||||
"95.0%",
|
"90.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"输送线1",
|
"输送线1",
|
||||||
"204",
|
"204",
|
||||||
"123min",
|
"325min",
|
||||||
"95.0%",
|
"85.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"质检台1",
|
"质检台1",
|
||||||
"205",
|
"205",
|
||||||
"123min",
|
"852min",
|
||||||
"95.0%",
|
"86.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"储料架",
|
"储料架",
|
||||||
"206",
|
"206",
|
||||||
"123min",
|
"663min",
|
||||||
"95.0%",
|
"90.6%",
|
||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -110,64 +110,64 @@ export function getTopDevice() {
|
|||||||
[
|
[
|
||||||
"输送线3",
|
"输送线3",
|
||||||
"209",
|
"209",
|
||||||
"123min",
|
"185min",
|
||||||
"95.0%",
|
"95.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫翻转围边机2",
|
"床垫翻转围边机2",
|
||||||
"210",
|
"210",
|
||||||
"123min",
|
"967min",
|
||||||
"95.0%",
|
"93.0%",
|
||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"质检台3",
|
"质检台3",
|
||||||
"211",
|
"211",
|
||||||
"123min",
|
"550min",
|
||||||
"95.0%",
|
"93.2%",
|
||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"输送线4",
|
"输送线4",
|
||||||
"212",
|
"212",
|
||||||
"123min",
|
"632min",
|
||||||
"95.0%",
|
"85.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫翻转围边机3",
|
"床垫翻转围边机3",
|
||||||
"213",
|
"213",
|
||||||
"123min",
|
"852min",
|
||||||
"95.0%",
|
"75.0%",
|
||||||
"1"
|
"1"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"输送线5",
|
"输送线5",
|
||||||
"214",
|
"214",
|
||||||
"123min",
|
"633min",
|
||||||
"95.0%",
|
"92.0%",
|
||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫翻转围边机4",
|
"床垫翻转围边机4",
|
||||||
"215",
|
"215",
|
||||||
"123min",
|
"199min",
|
||||||
"95.0%",
|
"86.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"输送线6",
|
"输送线6",
|
||||||
"216",
|
"216",
|
||||||
"123min",
|
"664min",
|
||||||
"95.0%",
|
"95.0%",
|
||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫翻转围边机5",
|
"床垫翻转围边机5",
|
||||||
"217",
|
"217",
|
||||||
"123min",
|
"155min",
|
||||||
"95.0%",
|
"89.0%",
|
||||||
"0"
|
"0"
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -202,15 +202,15 @@ export function getTopDevice() {
|
|||||||
[
|
[
|
||||||
"床垫压缩包装机",
|
"床垫压缩包装机",
|
||||||
"301",
|
"301",
|
||||||
"123m",
|
"451m",
|
||||||
"95.0%",
|
"90.0%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"床垫薄膜包装机",
|
"床垫薄膜包装机",
|
||||||
"302",
|
"302",
|
||||||
"123m",
|
"220m",
|
||||||
"95.0%",
|
"95.5%",
|
||||||
"2"
|
"2"
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<div class="left">
|
<div class="left">
|
||||||
<NewBoder :title="'床垫材料缝制设备'">
|
<NewBoder :title="'床垫材料缝制设备'">
|
||||||
<BoardBar :data="chongkong.value" :xData="chongkong.chart.xData"
|
<BoardBar :data="chongkong.value" :xData="chongkong.chart.xData"
|
||||||
:seriesData="chongkong.chart.series" :rowNum="3">
|
:seriesData="chongkong.chart.series" :header="temp_header" :rowNum="3">
|
||||||
</BoardBar>
|
</BoardBar>
|
||||||
</NewBoder>
|
</NewBoder>
|
||||||
</div>
|
</div>
|
||||||
@ -26,14 +26,14 @@
|
|||||||
<div class="cb">
|
<div class="cb">
|
||||||
<NewBoder :title="'床垫包装设备'">
|
<NewBoder :title="'床垫包装设备'">
|
||||||
<BoardBar :data="fengren.value" :xData="fengren.chart.xData" :seriesData="fengren.chart.series"
|
<BoardBar :data="fengren.value" :xData="fengren.chart.xData" :seriesData="fengren.chart.series"
|
||||||
:rowNum="1"></BoardBar>
|
:rowNum="1" :header="temp_header"></BoardBar>
|
||||||
</NewBoder>
|
</NewBoder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<NewBoder :title="'床垫生产线设备'">
|
<NewBoder :title="'床垫生产线设备'">
|
||||||
<BoardBar :data="banfang.value" :xData="banfang.chart.xData" :seriesData="banfang.chart.series"
|
<BoardBar :data="banfang.value" :xData="banfang.chart.xData" :seriesData="banfang.chart.series"
|
||||||
:rowNum="4"></BoardBar>
|
:rowNum="4" :header="temp_header"></BoardBar>
|
||||||
</NewBoder>
|
</NewBoder>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -74,6 +74,7 @@ let devnum = reactive({
|
|||||||
off: 0,
|
off: 0,
|
||||||
wait: 0
|
wait: 0
|
||||||
})
|
})
|
||||||
|
let temp_header = ['序号', '设备名称', '设备编码', '工作时长', '稼动率', '状态']
|
||||||
let stepList = reactive([
|
let stepList = reactive([
|
||||||
{
|
{
|
||||||
name: '材料缝制设备',
|
name: '材料缝制设备',
|
||||||
@ -81,15 +82,16 @@ let stepList = reactive([
|
|||||||
online: 0,
|
online: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '生产线设备',
|
name: '包装设备',
|
||||||
total: 0,
|
total: 0,
|
||||||
online: 0,
|
online: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '包装设备',
|
name: '生产线设备',
|
||||||
total: 0,
|
total: 0,
|
||||||
online: 0,
|
online: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
])
|
])
|
||||||
let fengren = ref({
|
let fengren = ref({
|
||||||
value: [],
|
value: [],
|
||||||
|
@ -9,24 +9,24 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<BorderView :title="'床笠裙边机'" @click="pushTo('床笠裙边机')">
|
<BorderView :title="'床笠裙边机'" @click="pushTo('床笠裙边机')">
|
||||||
<ItemCard :data="qbj_data"></ItemCard>
|
<ItemCard :data="qbj_data" :imgSrc="imgSrc['qbj']"></ItemCard>
|
||||||
</BorderView>
|
</BorderView>
|
||||||
</div>
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<div class="cc">
|
<div class="cc">
|
||||||
<BorderView :title="'电脑绗绣机'" @click="pushTo('电脑绗绣机')">
|
<BorderView :title="'电脑绗绣机'" @click="pushTo('电脑绗绣机')">
|
||||||
<ItemCard :data="hxj_data"></ItemCard>
|
<ItemCard :data="hxj_data" :imgSrc="imgSrc['hxj']" :rowNum="3"></ItemCard>
|
||||||
</BorderView>
|
</BorderView>
|
||||||
</div>
|
</div>
|
||||||
<div class="cb">
|
<div class="cb">
|
||||||
<BorderView :title="'电脑绣花机'" @click="pushTo('电脑绣花机')">
|
<BorderView :title="'电脑绣花机'" @click="pushTo('电脑绣花机')">
|
||||||
<ItemCard :data="xhj_data"></ItemCard>
|
<ItemCard :data="xhj_data" :imgSrc="imgSrc['xhj']" :rowNum="3"></ItemCard>
|
||||||
</BorderView>
|
</BorderView>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<BorderView :title="'零等待皮革缝纫机'" @click="pushTo('全自动缝纫机(零等待)')">
|
<BorderView :title="'零等待皮革缝纫机'" @click="pushTo('全自动缝纫机(零等待)')">
|
||||||
<ItemCard :data="ldd_data"></ItemCard>
|
<ItemCard :data="ldd_data" :imgSrc="imgSrc['ldd']"></ItemCard>
|
||||||
</BorderView>
|
</BorderView>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -58,7 +58,12 @@ import {useRouter} from 'vue-router'
|
|||||||
|
|
||||||
let router = useRouter()
|
let router = useRouter()
|
||||||
|
|
||||||
|
let imgSrc = reactive({
|
||||||
|
qbj:require('./images/qbj.png'),
|
||||||
|
hxj:require('./images/hxj.png'),
|
||||||
|
xhj:require('./images/xhj.png'),
|
||||||
|
ldd:require('./images/ldd.png')
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
let qbj_data = ref([
|
let qbj_data = ref([
|
||||||
|
Loading…
Reference in New Issue
Block a user