screenFront/src/views/Temp/Large_Format/component/toptip.vue
2023-05-12 16:41:33 +08:00

291 lines
6.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
* @FilePath: \wwwd:\code\screenFront\src\views\Temp\Large_Format\component\toptip.vue
* @Author: 王路平
* @文件版本: V1.0.0
* @Date: 2023-02-16 11:51:32
* @Description:
*
* 版权信息 : 2023 by ${再登软件}, All Rights Reserved.
-->
<template>
<div class="tipbox" :style="{ width: itemSize.width, height: itemSize.height }">
<p class="toptip-p">
<span>{{t('messages.expectDeliveryDate')}}:</span><span>{{ data.date }}</span>
</p>
<div
:class="dateColor == '1' ? 'toptip-h2 colorRed' : dateColor == '2' ? 'toptip-h2 colorgreen' : dateColor == '3' ? 'toptip-h2 coloryellow' : 'toptip-h2'">
<div style="margin-bottom: 20px;">视觉识别{{ data.status }}</div>
<div>{{ data.countdown }}</div>
</div>
<!-- <img :style="{width:itemSize.imgwidth}" :src="data.src" alt=""> -->
<el-image :style="{ width: itemSize.imgwidth, height: '60%' }" :src="data.src ? imgurlAddXhr(data.src) : ''"
fit="contain">
<template #error>
<div class="image-slot">
<el-icon><icon-picture /></el-icon>
</div>
</template>
</el-image>
<!-- <img :style="{width:itemSize.imgwidth,height:itemSize.imgheight}" src="../../../../assets/img/download.jpg" alt=""> -->
<!-- <ul class="uldianji">
<li>
<i
:class="
data.zhu == 't'
? 'iconfont green icon-dianji'
: 'iconfont fff icon-dianji'
"
></i>
<p>主轴电机</p>
</li>
<li>
<i
:class="
data.x == 't'
? 'iconfont green icon-weibiaoti-'
: 'iconfont fff icon-weibiaoti-'
"
></i>
<p>x轴电机</p>
</li>
<li>
<i
:class="
data.y == 't'
? 'iconfont green icon-weibiaoti-'
: 'iconfont fff icon-weibiaoti-'
"
></i>
<p>y轴电机</p>
</li>
</ul> -->
</div>
</template>
<script setup lang="ts">
import { getCurrentInstance, onMounted, onUnmounted, reactive, ref } from "vue";
import { Picture as IconPicture } from "@element-plus/icons-vue";
import border1 from "@/components/borderBox/border1.vue";
import { clacendTime } from "@/utils/time"
import { imgurlAddXhr } from "@/utils/devSever"
import { useInPlantProductsStore } from "@/store/module/InPlantProducts";
import { useI18n } from 'vue-i18n'
let {t} = useI18n();
const store = useInPlantProductsStore();
let data = reactive({
date: "",
src: "",
realityTime: "",
status: "",
countdown: "",
});
let dateColor = ref();
let time = null
const itemSize = reactive({
height: "0px",
width: "0px",
imgwidth: "0px",
imgheight: "0px",
});
onMounted(() => {
// setData()
});
function setchartWH(width: any, height: any) {
itemSize.height = height - 50 + "px";
itemSize.width = width - 50 + "px";
itemSize.imgwidth = width - 120 + "px";
itemSize.imgheight = height - 280 + "px";
// refborder1.value.resetWH()
}
const setData = (value: any) => {
data.date = value.prtDeliveryDate || value.deliveryDate;
data.src = value.src;
// data.zhu = value.active;
data.realityTime = value.realityTime;
data.status = value.status;
if (value.status == '安装中' || value.status == '调试中' || value.status == '已超时') {
if (value.status == '调试中' || value.status == '安装中') {
dateColor.value = 3
}
calctime(data.date)
}
if (value.status == '已完成') {
dateColor.value = 2
data.countdown = value.status
}
if (value.status == '已交付') {
dateColor.value = 2
if (data.realityTime) {
data.countdown = data.realityTime
}
}
}
const calctime = (value: any) => {
if (value.status == '调试中') {
dateColor.value = 3
}
if (!value) {
data.date = '暂无'
data.countdown = data.status
return
}
let temp = value
temp = temp.replace('年', '/')
temp = temp.replace('月', '/')
temp = temp.replace('日', '')
temp = temp.replace(/-/g, '/')
let endtime = new Date(temp).getTime()
if (endtime - new Date().getTime() < 0) {
dateColor.value = 1
} else {
if (endtime - new Date().getTime() >= 3 * 24 * 60 * 60 * 1000) {
dateColor.value = 2
} else {
dateColor.value = 3
}
}
// data.countdown = store.DeviceInfo.status
time = setInterval(function () {
if (data.status == '安装中' || value.status == '调试中') {
data.countdown = "距交付剩余:" + clacendTime(endtime, new Date().getTime())
} else {
data.countdown = '距交付剩余:'+clacendTime(endtime, new Date().getTime())
}
// if(dateColor==1){
// data.countdown=store.DeviceInfo.status+":已超时"+clacendTime(Math.abs(endtime),new Date().getTime())
// }else{
// data.countdown=store.DeviceInfo.status+":"+clacendTime(Math.abs(endtime),new Date().getTime())
// }
}, 1000)
// console.log(newDate);
// endtime.getTime()
}
onUnmounted(() => {
if (time) {
clearInterval(time)
}
})
defineExpose({
setchartWH,
setData,
});
</script>
<style scoped>
@import "@/assets/css/iconfont.css";
.box {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
}
.green {
color: green;
font-size: 2rem;
}
.red {
color: red;
font-size: 2rem;
}
.fff {
color: #aaa;
font-size: 2rem;
}
.toptip-h2 {
color: red;
font-size: 2rem;
}
.toptip-p {
font-size: 2rem;
color: #fff;
}
p {
font-size: 1.2rem
}
.uldianji {
display: flex;
width: 100%;
justify-content: space-around;
}
img {
padding: 1rem 0 1rem 0;
}
.image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: var(--el-fill-color-light);
color: var(--el-text-color-secondary);
font-size: 30px;
}
.image-slot .el-icon {
font-size: 30px;
}
.tipbox {
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
margin: 0 30px 0 30px;
}
.colorRed {
color: #FF6E76;
animation: redstarton 3s infinite;
}
.colorgreen {
color: #7CFFB2;
}
.coloryellow {
color: #FDDD60;
}
@keyframes redstarton {
0% {
color: rgba(255,110,118,0.2);
transform: scale(1);
/* font-size: 30px; */
}
50% {
color: rgba(255,110,118,1);
transform: scale(1.1);
/* font-size: 35px; */
}
100% {
color: rgba(255,110,118,0.2);
transform: scale(1);
/* font-size: 30px; */
}
}
</style>