更新 微工厂英文,哥伦比亚视频替换

This commit is contained in:
hzz 2024-01-22 14:51:14 +08:00
parent 8219400e8f
commit 9fc3f9078a
10 changed files with 437 additions and 326 deletions

View File

@ -315,5 +315,34 @@ export default {
'年':'Año',
'月':'Mes',
'日':'Fecha',
},
"default":{
'年': 'Year',
'月': 'Month',
'日': 'Date',
'日产量': 'Daily output',
'计划产量': 'Planned output',
'实际产量': 'Actual output ',
'工作': 'Work',
'急停': 'Scram',
'停机': 'Shutdown',
'待机': 'Standby',
'启动': 'Start',
"总数":"Total",
"在线":"Online",
"台":"unit",
"序号":"No.",
"设备名称":"Equipment",
"编号":"Number",
"状态":"State",
"稼动率":"Utilization",
"工作时长":"Work time",
},
"MicroExhibition":{
"富怡服装微工厂物联管理平台":"Richpeace Garment Micro Factory IoT Management Platform",
"裁剪设备":"cutting",
"缝前设备":"Before sewing",
"缝中设备":"on sewing",
"后整设备":"Post-processing finishing",
}
}

View File

@ -321,8 +321,37 @@ export default {
'日产量':'日产量',
'计划产量':'计划产量',
'实际产量':'实际产量',
'年':'年',
'月':'月',
'日':'日',
'年':'Year',
'月':'Month',
'日':'Date',
},
"default":{
'年': 'Year',
'月': 'Month',
'日': 'Date',
'日产量': 'Daily output',
'计划产量': 'Planned output',
'实际产量': 'Actual output ',
'工作': 'Work',
'急停': 'Scram',
'停机': 'Shutdown',
'待机': 'Standby',
'启动': 'Start',
"总数":"Total",
"在线":"Online",
"台":"unit",
"序号":"No.",
"设备名称":"Equipment",
"编号":"Num",
"状态":"State",
"稼动率":"rate",
"工作时长":"Working",
},
"MicroExhibition":{
"富怡服装微工厂物联管理平台":"Richpeace Garment Micro Factory IoT Management Platform",
"裁剪设备":"cutting",
"缝前设备":"Before sewing",
"缝中设备":"on sewing",
"后整设备":"finishing",
}
}

View File

@ -323,7 +323,34 @@ export default {
'年': '年',
'月': '月',
'日': '日',
},
"default":{
'年': '年',
'月': '月',
'日': '日',
'计划产量': '计划产量',
'实际产量': '实际产量',
'日产量': '日产量',
'工作': '工作',
'急停': '急停',
'停机': '停机',
'待机': '待机',
'启动': '启动',
"总数":"总数",
"在线":"在线",
"台":"台",
"序号":"序号",
"设备名称":"设备名称",
"编号":"编号",
"状态":"状态",
"稼动率":"稼动率",
"工作时长":"工作时长",
},
"MicroExhibition":{
"富怡服装微工厂物联管理平台":"富怡服装微工厂物联管理平台",
"裁剪设备":"裁剪设备",
"缝前设备":"缝前设备",
"缝中设备":"缝中设备",
"后整设备":"后整设备",
}
}

View File

@ -103,7 +103,7 @@ if (lang &&languageHash(lang)&&languageHash(lang) != getStoredLanguage()) {
window.location.reload()
}
let videoUrl = ref('https://d.tufting222.cn/video/yzy/a.mp4')
let videoUrl = ref('https://d.tufting222.cn/video/yzy/Spanish.mp4')
const videoElement = ref(null)
let timer = null
let timers = null

View File

@ -4,7 +4,8 @@
<script setup lang='ts'>
import { ref, getCurrentInstance, onMounted, watch } from 'vue'
import { useI18n } from 'vue-i18n'
let { t } = useI18n();
const prop = defineProps({
xData: {
@ -28,7 +29,7 @@ const setCharts = () => {
// },
backgroundColor: '#0E0E0E',
legend: {
data: ['计划产量', '实际产量'],
data: [t('default.计划产量'), t('default.实际产量')],
textStyle: {
fontSize: 14
},
@ -55,7 +56,7 @@ const setCharts = () => {
yAxis: [
{
type: 'value',
name: '日产量',
name: t('default.日产量'),
axisLabel:{
fontSize:14
}

View File

@ -10,7 +10,7 @@
-->
<template>
<div class="rbottom-container">
<div class="rbottom-title">后整设备</div>
<div class="rbottom-title">{{t('MicroExhibition.后整设备')}}</div>
<div class="rbottom-content">
<div class="rbottom-bg" v-for="i in (prop.data as any)">
<div class="dev-name">{{ i.name }}</div>
@ -23,8 +23,8 @@
<div>{{ i.ratio }}</div>
</div>
<div class="dev-status">
<div class="status1">编号{{ i.num }}</div>
<div class="status2">状态
<div class="status1">{{t('default.编号')}}{{ i.num }}</div>
<div class="status2">{{t('default.状态')}}
<div style="width: 50%;height: 100%;display: flex;justify-content: center;align-items: center;">
<div
style="width:24px;height:24px;border-radius: 50%;"
@ -35,7 +35,7 @@
</div>
</div>
<div class="dev-status">
工作时长{{ i.workTime }}
{{t('default.工作时长')}}{{ i.workTime }}
</div>
</div>
</div>
@ -43,8 +43,9 @@
</template>
<script setup lang='ts'>
import {computed } from 'vue'
import {computed,ref } from 'vue'
import { useI18n } from 'vue-i18n'
let { t } = useI18n();
const prop = defineProps({
data: {

View File

@ -10,19 +10,19 @@
-->
<template>
<div class="headerbg" :style="prop.wh">
<span>{{ prop.title }}</span>
<div class="head-title" :style="{'font-size':lang!='简体中文'?'24px':'40px'}">{{ prop.title }}</div>
<div class="left-tip-type">
<div class="left-tip-type-item">
<div class="yuan green"></div>
<div class="left-tip-type-item-text">工作</div>
<div class="left-tip-type-item-text">{{t('default.工作')}}</div>
</div>
<div class="left-tip-type-item">
<div class="yuan yello"></div>
<div class="left-tip-type-item-text">待机</div>
<div class="left-tip-type-item-text">{{t('default.待机')}}</div>
</div>
<div class="left-tip-type-item">
<div class="yuan red"></div>
<div class="left-tip-type-item-text">停机</div>
<div class="left-tip-type-item-text">{{t('default.停机')}}</div>
</div>
</div>
</div>
@ -30,7 +30,11 @@
</template>
<script setup lang='ts'>
import { onMounted,onUpdated } from "vue";
import { onMounted,onUpdated,ref } from "vue";
import { getStoredLanguage, saveStoredLanguage } from "@/utils/languageStorage";
import { useI18n } from "vue-i18n";
let { t } = useI18n();
let lang = ref(getStoredLanguage());
const prop = defineProps({
title: {
type: String,
@ -61,7 +65,13 @@ onMounted(() => {
font-family: "华文新魏", sans-serif;
}
.headerbg span {
.headerbg .head-title {
height: 60px;
width: 600px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 25px;
@ -76,8 +86,8 @@ onMounted(() => {
.left-tip-type {
position: absolute;
top: 40px;
left: 462px;
width: 160px;
left: 420px;
width: 200px;
height: 50px;
display: flex;
justify-content: space-between;

View File

@ -7,6 +7,8 @@
<script setup lang='ts'>
import { reactive, ref, watch } from "vue";
import ZdScrollBoard from "@/components/data-view/index.vue";
import { useI18n } from 'vue-i18n'
let { t } = useI18n();
const prop = defineProps({
data: {
type: Object,
@ -19,18 +21,18 @@ const prop = defineProps({
const devList = ref(null);
let config = reactive({
header: [
'<span style="color:#AEEEFAFE;font-size:18px;">序号</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">设备名称</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">编号</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">状态</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">稼动率</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">工作时长</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.序号')+'</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.设备名称')+'</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.编号')+'</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.状态')+'</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.稼动率')+'</span>',
'<span style="color:#AEEEFAFE;font-size:18px;">'+t('default.工作时长')+'</span>',
],//, ''
headerBGC: 'rgba(0, 11, 18, 1)',
oddRowBGC: '#000F1D',
evenRowBGC: '#000F1D',
wrap: [false, false, false, false, false],
columnWidth: [80, 240, 85, 80, 110,145],
columnWidth: [80, 240, 85, 90, 110,145],
align: ['center', 'center', 'center', 'center', 'center', 'center'],
rowNum: prop.data.rowNum,
waitTime: 3000,

View File

@ -10,15 +10,20 @@
-->
<template>
<div class="stepContainer">
<div class="step-top">{{ prop.data.name }}</div>
<div class="step-top" :style="{'font-size':lang!='简体中文'?'24px':'22px'}">{{ prop.data.name }}</div>
<div class="step-bottom">
<div class="step-total">总数{{ prop.data.total }}</div>
<div class="step-online">在线{{ prop.data.online }}</div>
<div class="step-total">{{t("default.总数")}}{{ prop.data.total +' '+ t("default.台") }}</div>
<div class="step-online">{{t("default.在线")}}{{ prop.data.online +' '+ t("default.台") }}</div>
</div>
</div>
</template>
<script setup lang='ts'>
import {computed,ref } from 'vue'
import { getStoredLanguage, saveStoredLanguage } from "@/utils/languageStorage";
import { useI18n } from 'vue-i18n'
let lang = ref(getStoredLanguage());
let { t } = useI18n();
const prop = defineProps({
data: {
type: Object,

View File

@ -12,13 +12,13 @@
<div class="container">
<div class="header">
<div class="title">
<Header :title="'富怡服装微工厂物联管理平台'" :wh="{ width: '100%', height: '100px' }"></Header>
<Header :title="t('MicroExhibition.富怡服装微工厂物联管理平台')" :wh="{ width: '100%', height: '100px' }"></Header>
</div>
</div>
<div class="content">
<div class="left">
<div class="ltop">
<BoardVue :title="'裁剪设备'" class="ltborder">
<BoardVue :title="t('MicroExhibition.裁剪设备')" class="ltborder">
<div class="lttop">
<ScrollBoard :data="cjdata"></ScrollBoard>
@ -29,7 +29,7 @@
</BoardVue>
</div>
<div class="lbottom">
<BoardVue :title="'缝前设备'">
<BoardVue :title="t('MicroExhibition.缝前设备')">
<ScrollBoard :data="fqdata"></ScrollBoard>
</BoardVue>
</div>
@ -47,7 +47,7 @@
</div>
</div>
<div class="rtright">
<BoardVue :title="'缝中设备'">
<BoardVue :title="t('MicroExhibition.缝中设备')">
<ScrollBoard :data="fzdata"></ScrollBoard>
</BoardVue>
</div>
@ -73,11 +73,18 @@ import { getmDeviceList, getmDeviceProduction } from '@/http/MicroExhibition'
import { ref, onMounted, onUnmounted, getCurrentInstance, watch, onUpdated, computed, reactive } from 'vue'
import { useMicroExhibitionStore } from '@/store/module/MicroExhibition'
import { connectWebsocket, closeWebsocket } from "@/utils/websocket"
import { getStoredLanguage, saveStoredLanguage,languageHash } from "@/utils/languageStorage";
import { useRoute } from 'vue-router'
import { useI18n } from 'vue-i18n'
let { t } = useI18n();
let route = useRoute()
const store = useMicroExhibitionStore()
let lang = route.query.lang as string
if (lang &&languageHash(lang)&&languageHash(lang) != getStoredLanguage()) {
saveStoredLanguage(languageHash(lang))
window.location.reload()
}
let videoUrl = ref('https://d.tufting222.cn/video/yzy/a.mp4')
const videoElement = ref(null)
let timer = null
@ -97,22 +104,22 @@ let cjdata = ref({
let stepList = reactive([
{
name: '裁剪',
name: t("MicroExhibition.裁剪设备"),
total: 0,
online: 0,
},
{
name: '缝前',
name: t("MicroExhibition.缝前设备"),
total: 0,
online: 0,
},
{
name: '缝中',
name: t("MicroExhibition.缝中设备"),
total: 0,
online: 0,
},
{
name: '后整',
name: t("MicroExhibition.后整设备"),
total: 0,
online: 0,
},
@ -129,7 +136,7 @@ function getDeviceProduction() {
let data = res.data
seriesData.value = data.series.map(item => {
return {
name: item.name == '计划完成' ? '计划产量' : '实际产量',
name: item.name == '计划完成' ? t('default.计划产量') : t('default.实际产量'),
type: 'bar',
data: item.data
}