screenFront/src/views/Temp/Large_Format/component/toptip.vue

291 lines
6.4 KiB
Vue
Raw Normal View History

2023-05-12 08:41:33 +00:00
<!--
* @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>