forked from angelo/web-retail-h5
324 lines
7.8 KiB
Vue
324 lines
7.8 KiB
Vue
|
<template>
|
||
|
<view class="content">
|
||
|
<view class="djsTimes">
|
||
|
<view class="times">
|
||
|
<view class='time_kuang'>
|
||
|
<view class='tk1'>{{times.userDay}}</view>
|
||
|
<view class='tk2'>{{$t('S_L_6')}}</view>
|
||
|
</view>
|
||
|
<view class='time_kuang'>
|
||
|
<view class='tk1'>{{times.userHr}}</view>
|
||
|
<view class='tk2'>{{$t('S_L_7')}}</view>
|
||
|
</view>
|
||
|
<view class='time_kuang'>
|
||
|
<view class='tk1'>{{times.userMin}}</view>
|
||
|
<view class='tk2'>{{$t('S_L_8')}}</view>
|
||
|
</view>
|
||
|
<view class='time_kuang'>
|
||
|
<view class='tk1'>{{times.userSec}}</view>
|
||
|
<view class='tk2'>{{$t('ENU_SETTLE_P_1')}}</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="timeRemarks">
|
||
|
{{$t('N_I_180')}}
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="timeSlide">
|
||
|
<view class="timeA">{{$t('CK_KS_3')}}</view>
|
||
|
<view class="timeB" @click="openDate(0)">
|
||
|
{{ queryParams.endStartDate?queryParams.endStartDate:$t('CK_KS_3') }}
|
||
|
</view>
|
||
|
<view class="timeA">{{$t('w_0139')}}</view>
|
||
|
<view class="timeB" @click="openDate(1)">
|
||
|
{{ queryParams.endDate?queryParams.endDate:$t('MN_T_7') }}
|
||
|
</view>
|
||
|
<view class="seatch_r" @click="getDataList">
|
||
|
<u-icon name="search" size="22" color="#fff"></u-icon>
|
||
|
</view>
|
||
|
</view>
|
||
|
<template v-if="dataList.length>0">
|
||
|
<view class="thecontent" @click="goDetail(item)" v-for='(item,index) in dataList' :key="index">
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('CK_KS_12')}}</view>
|
||
|
<view class='line2'>{{item.isReachVal}}</view>
|
||
|
</view>
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('CK_KS_8')}}</view>
|
||
|
<view class='line3'>{{item.giftNum}}</view>
|
||
|
</view>
|
||
|
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('CK_KS_3')}}</view>
|
||
|
<view class='line2'>{{item.enableDate}}</view>
|
||
|
</view>
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('MN_T_7')}}</view>
|
||
|
<view class='line2'>{{item.endDate}}</view>
|
||
|
</view>
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('CK_KS_10')}}</view>
|
||
|
<view class='line2'>{{item.useDate}}</view>
|
||
|
</view>
|
||
|
<view class="line_box">
|
||
|
<view class='line1'>{{$t('CK_KS_11')}}</view>
|
||
|
<view class='line2'>{{item.daystime}}</view>
|
||
|
</view>
|
||
|
|
||
|
|
||
|
</view>
|
||
|
</template>
|
||
|
<u-empty
|
||
|
v-else
|
||
|
mode="data"
|
||
|
|
||
|
>
|
||
|
</u-empty>
|
||
|
<u-datetime-picker :closeOnClickOverlay="true" @close="dataShow = false" @cancel="dataShow = false"
|
||
|
@confirm="getDate" :show="dataShow" v-model="value1" mode="date"></u-datetime-picker>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import * as ene from '@/config/market.js'
|
||
|
import {
|
||
|
formatMsToDate
|
||
|
} from '@/util/index'
|
||
|
|
||
|
export default {
|
||
|
data() {
|
||
|
return {
|
||
|
dataList: [],
|
||
|
queryParams: {
|
||
|
pageNum: 1,
|
||
|
pageSize: 50,
|
||
|
endStartDate: "",
|
||
|
endDate: "",
|
||
|
|
||
|
},
|
||
|
dataShow: false,
|
||
|
timeIndex: 0,
|
||
|
value1: '',
|
||
|
times: {
|
||
|
userDay: "0",
|
||
|
userHr: "00",
|
||
|
userMin: "00",
|
||
|
userSec: "00"
|
||
|
},
|
||
|
theSecond: "",
|
||
|
countdownInterval:""
|
||
|
}
|
||
|
},
|
||
|
onLoad() {
|
||
|
|
||
|
this.getDataList();
|
||
|
|
||
|
|
||
|
},
|
||
|
beforeDestroy() {
|
||
|
clearInterval(this.countdownInterval); // 清除倒计时定时器
|
||
|
},
|
||
|
methods: {
|
||
|
goDetail(item) {
|
||
|
uni.navigateTo({
|
||
|
url: '/pages/makerspaceView/energySiloDetail?pkId=' + item.pkId
|
||
|
})
|
||
|
},
|
||
|
// 倒计时事件
|
||
|
countdown() {
|
||
|
const that = this;
|
||
|
// 获取后台接口返回的时间戳(以秒为单位)
|
||
|
let surplusDate = that.theSecond;
|
||
|
// 创建一个计时器
|
||
|
that.countdownInterval = setInterval(() => {
|
||
|
// 将时间戳减去一秒
|
||
|
surplusDate--;
|
||
|
if (surplusDate <= 0) {
|
||
|
// 倒计时结束
|
||
|
clearInterval(that.countdownInterval);
|
||
|
return;
|
||
|
}
|
||
|
// 计算倒计时的天、小时、分钟和秒数
|
||
|
let day = Math.floor(surplusDate / (60 * 60 * 24));
|
||
|
let hour = Math.floor((surplusDate % (60 * 60 * 24)) / (60 * 60));
|
||
|
let minute = Math.floor((surplusDate % (60 * 60)) / 60);
|
||
|
let second = surplusDate % 60;
|
||
|
// 将单个数字补零,以保持统一的格式
|
||
|
day = day < 10 ? "0" + day : day;
|
||
|
hour = hour < 10 ? "0" + hour : hour;
|
||
|
minute = minute < 10 ? "0" + minute : minute;
|
||
|
second = second < 10 ? "0" + second : second;
|
||
|
|
||
|
// 将倒计时的天、小时、分钟和秒数分别存储起来
|
||
|
// 在页面上展示倒计时
|
||
|
that.times.userDay = day;
|
||
|
that.times.userHr = hour;
|
||
|
that.times.userMin = minute;
|
||
|
that.times.userSec = second;
|
||
|
|
||
|
}, 1000);
|
||
|
},
|
||
|
openDate(index) {
|
||
|
this.timeIndex = index
|
||
|
this.dataShow = true
|
||
|
},
|
||
|
getDate(e) {
|
||
|
if (this.timeIndex == 1) {
|
||
|
this.queryParams.endDate = formatMsToDate(e.value)
|
||
|
} else {
|
||
|
this.queryParams.endStartDate = formatMsToDate(e.value)
|
||
|
}
|
||
|
this.dataShow = false
|
||
|
},
|
||
|
getDataList() {
|
||
|
ene.getSiloList(this.queryParams).then(res => {
|
||
|
if (res.total > 0) {
|
||
|
this.theSecond = res.rows[0].surplusDate
|
||
|
res.rows.forEach(ele => {
|
||
|
ele.daystime = ele.surplusDate
|
||
|
let days = parseInt(ele.daystime / (3600 * 24)); // 计算天数
|
||
|
let hours = parseInt((ele.daystime % (3600 * 24)) / 3600); // 计算小时数
|
||
|
let minutes = parseInt((ele.daystime % 3600) / 60); // 计算分钟数
|
||
|
let seconds = ele.daystime % 60; // 计算秒数
|
||
|
ele.daystime = days + this.$t('S_L_6') + hours + this.$t('S_L_7') + minutes +this.$t('S_L_8') + seconds +this.$t('S_L_9');
|
||
|
})
|
||
|
this.dataList = res.rows
|
||
|
this.countdown()
|
||
|
} else {
|
||
|
this.theSecond =0
|
||
|
this.dataList = res.rows
|
||
|
this.times.userDay = "0";
|
||
|
this.times.userHr = "0";
|
||
|
this.times.userMin = "0";
|
||
|
this.times.userSec = "0";
|
||
|
clearInterval(this.countdownInterval); // 清除倒计时定时器
|
||
|
|
||
|
}
|
||
|
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
::v-deep .u-empty{
|
||
|
background-color: #FFFFFF;
|
||
|
}
|
||
|
.content {
|
||
|
background-color: #F2F2F2;
|
||
|
|
||
|
.djsTimes {
|
||
|
background: linear-gradient(180deg, #FE5541, #F65C1A);
|
||
|
padding: 37rpx 60rpx;
|
||
|
|
||
|
.times {
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: space-around;
|
||
|
|
||
|
.time_kuang {
|
||
|
width: 106rpx;
|
||
|
height: 106rpx;
|
||
|
padding: 13rpx 17rpx;
|
||
|
background-color: rgba(255, 255, 255, 0.35);
|
||
|
box-shadow: 0rpx 3rpx 7rpx 0rpx rgba(255, 255, 255, 0.35);
|
||
|
border-radius: 8rpx;
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
|
||
|
.tk1 {
|
||
|
font-size: 68rpx;
|
||
|
font-family: Arial;
|
||
|
font-weight: bold;
|
||
|
color: #FFFFFF;
|
||
|
}
|
||
|
|
||
|
.tk2 {
|
||
|
font-size: 24rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: #FFFFFF;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.timeRemarks {
|
||
|
margin-top: 33rpx;
|
||
|
text-align: center;
|
||
|
ont-size: 26rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: #FFFFFF;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.timeSlide {
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
padding: 38rpx 26rpx;
|
||
|
justify-content: space-between;
|
||
|
background-color: #FFFFFF;
|
||
|
|
||
|
.timeA {
|
||
|
font-size: 26rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: #333;
|
||
|
margin-right: 46rpx;
|
||
|
}
|
||
|
|
||
|
.timeB {
|
||
|
font-size: 24rpx;
|
||
|
font-family: Arial;
|
||
|
font-weight: 400;
|
||
|
color: #999999;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
.seatch_r {
|
||
|
background: #fb3024;
|
||
|
border-radius: 50%;
|
||
|
padding: 8rpx;
|
||
|
margin-left: 24rpx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.thecontent {
|
||
|
background-color: #FFFFFF;
|
||
|
margin-top: 25rpx;
|
||
|
margin-bottom: 21rpx;
|
||
|
padding: 10rpx 23rpx 30rpx 23rpx;
|
||
|
|
||
|
.line_box {
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: space-between;
|
||
|
margin-top: 25rpx;
|
||
|
|
||
|
.line1 {
|
||
|
font-size: 26rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
.line2 {
|
||
|
font-size: 26rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: #333333;
|
||
|
}
|
||
|
|
||
|
.line3 {
|
||
|
font-size: 26rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 400;
|
||
|
color: rgba(251, 48, 36, 1);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</style>
|