|
|
|
|
@ -9,7 +9,7 @@
|
|
|
|
|
line-height: ${heights[index]}px;
|
|
|
|
|
transition: all .2s;
|
|
|
|
|
`"
|
|
|
|
|
@click="showModal(item)">
|
|
|
|
|
@click="showDetail(item)">
|
|
|
|
|
<dv-border-box-13 style="width: 100%;height: 100%;min-height: .5px;" :style="{ 'opacity': heights[index] ? 1 : 0}">
|
|
|
|
|
<div style="width: 100%;height: 100%;padding: 30px 20px;line-height: 1;" class="d-flex flex-column jc-between flex-1">
|
|
|
|
|
<div class="board-item__top d-flex jc-between ai-center">
|
|
|
|
|
@ -17,15 +17,15 @@
|
|
|
|
|
<p class="fw-b equipment-name">{{ item.equipment_id_equipments_id_relation ? item.equipment_id_equipments_id_relation.name : '' }}</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="board-item__bottom d-flex jc-between ai-start">
|
|
|
|
|
<div style="line-height: 1.5;">
|
|
|
|
|
<div class="start-time">
|
|
|
|
|
执行时间:{{ item.start_time }}
|
|
|
|
|
<div class="time-info">
|
|
|
|
|
<div v-for="(label,key) in contentLK" style="display: inline-block;">
|
|
|
|
|
{{label}}:{{ $moment(item[key]).format('YYYY-MM-DD HH:mm') || '-' }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="final-time">
|
|
|
|
|
倒计时:{{ $moment(new Date(item.start_time)).diff($moment(),'minutes') > 0 ? $moment(new Date(item.start_time)).diff($moment(),'minutes') : '-' }}分
|
|
|
|
|
<div v-if="setTransferStatusNumber === 4" :style="{ 'color': lastTimeColor($moment(new Date(item.start_time)).diff($moment(time),'minutes')) }">
|
|
|
|
|
倒计时:{{ $moment(new Date(item.start_time)).diff($moment(time),'minutes') }}分
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="setTransferStatusNumber !== -1" @click.stop="setTransferStatus(4,item)">
|
|
|
|
|
<div v-if="setTransferStatusNumber !== -1" @click.stop="showDetail(item)">
|
|
|
|
|
<dv-border-box-8 reverse class="fw-b text-center" style="width: 64px;height: 38px;line-height: 38px;cursor: pointer;"
|
|
|
|
|
>{{setStatusText}}</dv-border-box-8>
|
|
|
|
|
</div>
|
|
|
|
|
@ -42,12 +42,15 @@ import { deepCopy } from "@/utils";
|
|
|
|
|
import { save } from "@/api/system/baseForm";
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
inject: ['showModal'],
|
|
|
|
|
props: {
|
|
|
|
|
transfers: Array,
|
|
|
|
|
setTransferStatusNumber: Number
|
|
|
|
|
setTransferStatusNumber: Number,
|
|
|
|
|
contentLK: Object,
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
nowRow: {},
|
|
|
|
|
dom: '',
|
|
|
|
|
needCalc: false,
|
|
|
|
|
rowNum: 4,
|
|
|
|
|
@ -67,21 +70,31 @@ export default {
|
|
|
|
|
[4,'执行中'],
|
|
|
|
|
[5,'已取消'],
|
|
|
|
|
[6,'已完成']
|
|
|
|
|
])
|
|
|
|
|
]),
|
|
|
|
|
time: new Date(),
|
|
|
|
|
timer: null
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
showModal (item) {
|
|
|
|
|
this.$emit('showModal',item)
|
|
|
|
|
showDetail (item) {
|
|
|
|
|
this.nowRow = deepCopy(item);
|
|
|
|
|
console.log(this.nowRow)
|
|
|
|
|
this.$emit('showDetail',item)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
setTransferStatus (status,row) {
|
|
|
|
|
if (!this.setTransferStatusNumber) {
|
|
|
|
|
console.warn('setTransferStatusNumber is required')
|
|
|
|
|
return
|
|
|
|
|
setTransferStatus (data) {
|
|
|
|
|
const { status, start_sign, end_sign } = data;
|
|
|
|
|
|
|
|
|
|
let copyRow = deepCopy(this.nowRow);
|
|
|
|
|
if (status === 4) {
|
|
|
|
|
copyRow.act_start_time = this.$moment().format('YYYY-MM-DD HH:mm')
|
|
|
|
|
copyRow.start_sign = start_sign
|
|
|
|
|
}
|
|
|
|
|
if (status === 6) {
|
|
|
|
|
copyRow.act_end_time = this.$moment().format('YYYY-MM-DD HH:mm')
|
|
|
|
|
copyRow.end_sign = end_sign
|
|
|
|
|
}
|
|
|
|
|
let copyRow = deepCopy(row);
|
|
|
|
|
copyRow.status = this.setTransferStatusNumber;
|
|
|
|
|
copyRow.status = status;
|
|
|
|
|
for (let key in copyRow) {
|
|
|
|
|
if (/_relation/g.test(key)) {
|
|
|
|
|
delete copyRow[key]
|
|
|
|
|
@ -189,11 +202,23 @@ export default {
|
|
|
|
|
computed: {
|
|
|
|
|
setStatusText () {
|
|
|
|
|
if (this.setTransferStatusNumber === 4) return '执行';
|
|
|
|
|
if (this.setTransferStatusNumber === 6) return '完成';
|
|
|
|
|
}
|
|
|
|
|
if (this.setTransferStatusNumber === 6) return '关闭';
|
|
|
|
|
},
|
|
|
|
|
lastTimeColor () {
|
|
|
|
|
return function (min) {
|
|
|
|
|
if (min <= 0) {
|
|
|
|
|
return "red"
|
|
|
|
|
} else if (min > 0 && min <= 5) {
|
|
|
|
|
return "orange"
|
|
|
|
|
} else {
|
|
|
|
|
return "#eee"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
async transfers(val) {
|
|
|
|
|
const h = this.$createElement;
|
|
|
|
|
if (val && val.length > 0) {
|
|
|
|
|
this.rows = val.map((i,index) => ({...i,scroll: index}))
|
|
|
|
|
this.copyTransfers = deepCopy(val);
|
|
|
|
|
@ -201,6 +226,33 @@ export default {
|
|
|
|
|
await this.initWH(false);
|
|
|
|
|
this.calcHeights();
|
|
|
|
|
await this.animation(true);
|
|
|
|
|
|
|
|
|
|
this.timer = setInterval(() => {
|
|
|
|
|
this.time = new Date()
|
|
|
|
|
|
|
|
|
|
this.rows.forEach(item => {
|
|
|
|
|
if (item.status === 2) {
|
|
|
|
|
let lastMins = this.$moment(new Date(item.start_time)).diff(this.$moment(),'minutes')
|
|
|
|
|
if (lastMins === 3) {
|
|
|
|
|
this.showModal(true,h('div',[
|
|
|
|
|
h('p',item.equipment_id_equipments_id_relation?.name),
|
|
|
|
|
h('p',item.content),
|
|
|
|
|
h('p',`开始时间:${this.$moment(item.start_time).format('YYYY-MM-DD HH:mm')}`)
|
|
|
|
|
]))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (item.status === 4) {
|
|
|
|
|
let lastMins = this.$moment(new Date(item.end_time)).diff(this.$moment(),'minutes')
|
|
|
|
|
if (lastMins === 3) {
|
|
|
|
|
this.showModal(true,h('div',[
|
|
|
|
|
h('p',item.equipment_id_equipments_id_relation?.name),
|
|
|
|
|
h('p',item.content),
|
|
|
|
|
h('p',`结束时间:${this.$moment(item.end_time).format('YYYY-MM-DD HH:mm')}`)
|
|
|
|
|
]))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},1000 * 60)
|
|
|
|
|
} else {
|
|
|
|
|
this.rows = []
|
|
|
|
|
this.copyTransfers = []
|
|
|
|
|
@ -214,6 +266,8 @@ export default {
|
|
|
|
|
async mounted() {
|
|
|
|
|
},
|
|
|
|
|
destroyed () {
|
|
|
|
|
clearInterval(this.timer)
|
|
|
|
|
this.$bus.$off('transferSave')
|
|
|
|
|
const { stopAnimation } = this
|
|
|
|
|
|
|
|
|
|
stopAnimation();
|
|
|
|
|
@ -253,6 +307,14 @@ export default {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.time-info {
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
width: 86%;
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
|
|
grid-column-gap: 10px;
|
|
|
|
|
grid-row-gap: 5px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
::v-deep .row-item .ceil {
|
|
|
|
|
width: 100%;
|
|
|
|
|
|