291 lines
6.4 KiB
Vue
291 lines
6.4 KiB
Vue
|
<!--
|
|||
|
* @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>
|