This commit is contained in:
hzz 2024-04-18 18:18:41 +08:00
parent eee0bd34cc
commit d8897a3a6f
9 changed files with 69 additions and 45 deletions

View File

@ -341,6 +341,12 @@ export default {
"针数": "Stitches", "针数": "Stitches",
"压脚次数": "Presser foot times", "压脚次数": "Presser foot times",
"能耗": "EC", "能耗": "EC",
"次": " times",
"设备稼动率": "Equipment Utilization Rate",
"产出进度": "Output Progress",
"稼动率说明": "Utilization rate (actual working time/actual boot time)",
"已完成":"Completed",
"未完成":"Uncompleted",
}, },
"default":{ "default":{

View File

@ -339,6 +339,12 @@ export default {
"针数": "针数", "针数": "针数",
"压脚次数": "压脚次数", "压脚次数": "压脚次数",
"能耗": "能耗", "能耗": "能耗",
"次": "次",
"设备稼动率": "设备稼动率",
"产出进度": "产出进度",
"稼动率说明":"稼动率:实际工作时间/设备开机时间",
"已完成":"已完成",
"未完成":"未完成",
}, },
"default":{ "default":{
'年': '年', '年': '年',

View File

@ -64,15 +64,15 @@
<div class="left-tip-type"> <div class="left-tip-type">
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan green"></div> <div class="yuan green"></div>
<div class="left-tip-type-item-text">工作</div> <div class="left-tip-type-item-text">{{tLang('default','工作')}}</div>
</div> </div>
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan yello"></div> <div class="yuan yello"></div>
<div class="left-tip-type-item-text">待机</div> <div class="left-tip-type-item-text">{{tLang('default','待机')}}</div>
</div> </div>
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan red"></div> <div class="yuan red"></div>
<div class="left-tip-type-item-text">停机</div> <div class="left-tip-type-item-text">{{tLang('default','停机')}}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="bc-container"> <div class="bc-container">
<v-chart class="chart-class" :option="bar_option"></v-chart> <v-chart class="chart-class" :option="bar_option"></v-chart>
<div class="bottom-text">稼动率实际工作时间/设备开机时间 <div class="bottom-text">
{{ tLang('messages','稼动率说明') }}
</div> </div>
</div> </div>
</template> </template>
@ -20,7 +20,7 @@ watch(() => props.data, (val) => {
}) })
let bar_option = ref({ let bar_option = ref({
legend: { legend: {
data:[proxy.tLang('messages','稼动率')], data:[proxy.tLang('messages','UtilizationRate')],
}, },
xAxis: { xAxis: {
type: 'category', type: 'category',
@ -35,7 +35,7 @@ let bar_option = ref({
type: 'value', type: 'value',
min: 0, min: 0,
max: 100, max: 100,
name: proxy.tLang('messages','稼动率'), name: proxy.tLang('messages','UtilizationRate'),
nameTextStyle: { nameTextStyle: {
color: '#fff', color: '#fff',
fontSize: 16, fontSize: 16,

View File

@ -7,7 +7,7 @@
<div class="status" :class="[statusObj[props.data?.workingState]]"></div> <div class="status" :class="[statusObj[props.data?.workingState]]"></div>
</div> </div>
<div class="box-item"> <div class="box-item">
<div style="text-wrap: nowrap;">{{ tLang('messages', '型号') }}:</div> <div style="text-wrap: nowrap;">{{ tLang('messages', 'model') }}:</div>
<div> RPSP-NM-I+K-1-1800--WC2+K-RF-1P220</div> <div> RPSP-NM-I+K-1-1800--WC2+K-RF-1P220</div>
</div> </div>
<div class="box-img"> <div class="box-img">

View File

@ -3,11 +3,11 @@
<div class="card" v-for="item in props.data"> <div class="card" v-for="item in props.data">
<v-chart class="chart-class" :option="item.option"></v-chart> <v-chart class="chart-class" :option="item.option"></v-chart>
<div class="box-list"> <div class="box-list">
<div class="box-item">{{ tLang('messages', '实际产量') }}<div>{{ item.production }}</div> <div class="box-item">{{ tLang('default', '实际产量') }}<div>{{ item.production }}</div>
</div> </div>
<div class="box-item">{{ tLang('messages', '计划产量') }}<div>{{ item.planProduction }}</div> <div class="box-item">{{ tLang('default', '计划产量') }}<div>{{ item.planProduction }}</div>
</div> </div>
<div class="box-item">{{ tLang('messages', '设备名称') }}<div>{{ item.name }}</div> <div class="box-item">{{ tLang('default', '设备名称') }}<div>{{ item.name }}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -12,21 +12,21 @@
<div class="icon-div"> <div class="icon-div">
<div class="iconfont icon-caijian"></div> <div class="iconfont icon-caijian"></div>
<div>{{ props.data?.in3Count + tLang('messages','次') }}</div> <div>{{ props.data?.in3Count + tLang('messages', '次') }}</div>
</div> </div>
<span>{{ tLang('messages', '剪线次数') }}</span> <span>{{ tLang('messages', '剪线次数') }}</span>
</div> </div>
<div class="icon-box-item pos3"> <div class="icon-box-item pos3">
<div class="icon-div"> <div class="icon-div">
<div class="iconfont icon-jizhenzhenshu"></div> <div class="iconfont icon-jizhenzhenshu"></div>
<div>{{ props.data?.in4Count + tLang('messages','次') }}</div> <div>{{ props.data?.in4Count + tLang('messages', '次') }}</div>
</div> </div>
<span>{{ tLang('messages', '针数') }}</span> <span>{{ tLang('messages', '针数') }}</span>
</div> </div>
<div class="icon-box-item pos4"> <div class="icon-box-item pos4">
<div class="icon-div"> <div class="icon-div">
<div class="iconfont icon-zidongtaiyajiao"></div> <div class="iconfont icon-zidongtaiyajiao"></div>
<div>{{ props.data?.in2Count + tLang('messages','次') }}</div> <div>{{ props.data?.in2Count + tLang('messages', '次') }}</div>
</div> </div>
<span>{{ tLang('messages', '压脚次数') }}</span> <span>{{ tLang('messages', '压脚次数') }}</span>
</div> </div>
@ -35,15 +35,15 @@
<el-image :src="gyfrjImg" fit="contain"></el-image> <el-image :src="gyfrjImg" fit="contain"></el-image>
</div> </div>
<div class="fill-box"> <div class="fill-box">
<v-chart class="chart-class-fill" :option="props.data?.option"></v-chart> <v-chart class="chart-class-fill" :option="fill_option"></v-chart>
<data value="fill-title">{{ tLang('messages','能耗') }}(kW·h)</data> <data value="fill-title">{{ tLang('messages', '能耗') }}(kW·h)</data>
</div> </div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import { ref, getCurrentInstance } from 'vue' import { ref, getCurrentInstance, watch } from 'vue'
import 'echarts-liquidfill' import 'echarts-liquidfill'
const { proxy } = getCurrentInstance() const { proxy } = getCurrentInstance()
@ -53,10 +53,10 @@ const props = defineProps<{
}>() }>()
let statusObj = { let statusObj = {
0:'red', 0: 'red',
1:'yello', 1: 'yello',
2:'green', 2: 'green',
3:'yello' 3: 'yello'
} }
let gauge_option = ref({ let gauge_option = ref({
series: [ series: [
@ -205,6 +205,12 @@ let fill_option = ref({
}, },
}], }],
}) })
watch(() => props.data, (newVal) => {
fill_option.value.series[0].label.normal.formatter = function (params) {
return newVal?.consumption;
}
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -217,9 +223,9 @@ let fill_option = ref({
.pos-label { .pos-label {
position: absolute; position: absolute;
top: 30px; top: 131px;
right: 26px; left: 13px;
width: 50%; width: 40%;
height: 30px; height: 30px;
.box-item { .box-item {
@ -295,13 +301,13 @@ let fill_option = ref({
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.chart-class-fill { .chart-class-fill {
width: 180px; width: 180px;
height: 220px; height: 220px;
} }
.fill-title {
} .fill-title {}
} }
@ -314,7 +320,7 @@ let fill_option = ref({
} }
.pos1 { .pos1 {
top: 100px; top: 79px;
left: 24px; left: 24px;
} }

View File

@ -49,22 +49,22 @@
<div class="left-tip-type"> <div class="left-tip-type">
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan green"></div> <div class="yuan green"></div>
<div class="left-tip-type-item-text">{{tLang('messages','工作')}}</div> <div class="left-tip-type-item-text">{{tLang('default','工作')}}</div>
</div> </div>
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan yello"></div> <div class="yuan yello"></div>
<div class="left-tip-type-item-text">{{tLang('messages','待机')}}</div> <div class="left-tip-type-item-text">{{tLang('default','待机')}}</div>
</div> </div>
<div class="left-tip-type-item"> <div class="left-tip-type-item">
<div class="yuan red"></div> <div class="yuan red"></div>
<div class="left-tip-type-item-text">{{tLang('messages','停机')}}</div> <div class="left-tip-type-item-text">{{tLang('default','停机')}}</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import { ref, reactive, onMounted, onUnmounted, getCurrentInstance, } from "vue"; import { ref, reactive, onMounted, onUnmounted, getCurrentInstance, watch} from "vue";
import { dDeviceList } from '@/http/Exhibition/Germany' import { dDeviceList } from '@/http/Exhibition/Germany'
import BorderView from "./components/Border.vue"; import BorderView from "./components/Border.vue";
import header2 from "./components/header2.vue"; import header2 from "./components/header2.vue";
@ -152,8 +152,6 @@ function pie_option(planProduction,production) {
show: true, show: true,
position: 'center', position: 'center',
formatter: (params) => { formatter: (params) => {
console.log(params,'params');
return (production/planProduction*100).toFixed(1) + '%' return (production/planProduction*100).toFixed(1) + '%'
}, },
color: "#fff", color: "#fff",
@ -167,6 +165,14 @@ function pie_option(planProduction,production) {
] ]
} }
} }
watch(() => props.modelValue, (newVal) => {
let data = newVal
if (data.type == 'WorkingState') {
let { RackNumber, WorkingState } = data.msg
console.log(data.value, 'data.value');
}
})
onMounted(() => { onMounted(() => {
init() init()
}) })

View File

@ -38,9 +38,9 @@ watch(i, (val) => {
}) })
let list = reactive([ let list = reactive([
{ color: '', components: () => Germanyindex, label: ''}, { color: '', components: () => Germanyindex, label: ''},
{ color: '', components: () => Germanychild, label: 'child1'}, { color: '', components: () => Germanychild, label: 'RP2401009'},
{ color: '', components: () => Germanychild, label: 'child2'}, { color: '', components: () => Germanychild, label: '1171210'},
{ color: '', components: () => Germanychild, label: 'child3'}, { color: '', components: () => Germanychild, label: '104019564'},
]) ])
function getWebsocket(val) { function getWebsocket(val) {
try { try {
@ -60,12 +60,12 @@ function errWebsocket(val) {
// console.log(val); // console.log(val);
} }
onMounted(() => { onMounted(() => {
setInterval(() => { // setInterval(() => {
i.value++ // i.value++
if (i.value > list.length - 1) { // if (i.value > list.length - 1) {
i.value = 0 // i.value = 0
} // }
}, time) // }, time)
connectWebsocket(null, null, getWebsocket, errWebsocket) connectWebsocket(null, null, getWebsocket, errWebsocket)
}) })
onUnmounted(() => { onUnmounted(() => {
@ -93,6 +93,6 @@ ul {
li { li {
width: 1920px; width: 1920px;
height: 100%; height: 100%;
/* transition: all 0.5s; */ transition: all 0.5s;
} }
</style> </style>