285 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			285 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
| 
								 | 
							
								<template>
							 | 
						||
| 
								 | 
							
									<view>
							 | 
						||
| 
								 | 
							
										<view class="top-head pb20">
							 | 
						||
| 
								 | 
							
											<template>
							 | 
						||
| 
								 | 
							
												<Countdown :config="countdownConfig"></Countdown>
							 | 
						||
| 
								 | 
							
												<view class="d-b-c search-data f26">
							 | 
						||
| 
								 | 
							
													<view class="flex-1 gray9">{{ $t('w_0352') }}</view>
							 | 
						||
| 
								 | 
							
													<picker mode="date" :value="form.startDate" :start="startDate" :end="endDate" @change="bindDateChange1">
							 | 
						||
| 
								 | 
							
														<view class="picker-item-data">{{ form.startDate || $t('CK_KS_3') }}</view>
							 | 
						||
| 
								 | 
							
													</picker>
							 | 
						||
| 
								 | 
							
													<view style="margin: 0 60rpx;">{{ $t('w_0139') }}</view>
							 | 
						||
| 
								 | 
							
													<picker mode="date" :value="form.endDate" :start="startDate" :end="endDate" @change="bindDateChange2">
							 | 
						||
| 
								 | 
							
														<view class="picker-item-data">{{ form.endDate || $t('CK_KS_9') }}</view>
							 | 
						||
| 
								 | 
							
													</picker>
							 | 
						||
| 
								 | 
							
													<view class="search-radio" @click="searchSubmit"><text class="icon iconfont icon-sousuo"></text></view>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
											</template>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
										<!--列表-->
							 | 
						||
| 
								 | 
							
										<scroll-view scroll-y="true" class="scroll-Y" :style="'height:' + scrollviewHigh + 'px;'" lower-threshold="50" @scrolltolower="scrolltolowerFunc">
							 | 
						||
| 
								 | 
							
											<view class="pb200">
							 | 
						||
| 
								 | 
							
												<view class="item-box" v-for="(item, index) in listData" :key="index">
							 | 
						||
| 
								 | 
							
													<view @click="gotoPage('/pages/maker-space/anti-aging/gift-pack?pkId=' + item.pkId)">
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('CK_KS_12') }}</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 gray3" :class="'status_' + index">{{ item.isReachVal }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('CK_KS_8') }}</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 domation">{{ item.giftNum }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('CK_KS_3') }}</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 gray3">{{ item.enableDate }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('CK_KS_9') }}</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 gray3">{{ item.endDate }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('N_I_181') }}({{ $t('S_L_6') }})</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 gray3">{{ item.useDate }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
														<view class=" d-b-c mb20">
							 | 
						||
| 
								 | 
							
															<view class="label-name">{{ $t('CK_KS_11') }}</view>
							 | 
						||
| 
								 | 
							
															<view class="item-content f26 gray3">{{ item.surplusDate }}</view>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
													</view>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
												<view class="d-c-c p30" v-if="listData.length == 0 && !loading">
							 | 
						||
| 
								 | 
							
													<text class="iconfont icon-wushuju"></text>
							 | 
						||
| 
								 | 
							
													<text class="cont">{{ $t('w_0405') }}</text>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
												<uni-load-more v-else :loadingType="loadingType"></uni-load-more>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
										</scroll-view>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										<!-- <button class="normal-sub-btn" @click="gotoPage('/pages/maker-space/anti-aging/gift-pack')">抗衰能量仓礼包</button> -->
							 | 
						||
| 
								 | 
							
									</view>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
								import Countdown from '@/components/countdown/countdown-aa.vue';
							 | 
						||
| 
								 | 
							
								import uniLoadMore from '@/components/uni-load-more.vue';
							 | 
						||
| 
								 | 
							
								export default {
							 | 
						||
| 
								 | 
							
									components: {
							 | 
						||
| 
								 | 
							
										Countdown,
							 | 
						||
| 
								 | 
							
										uniLoadMore
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									data() {
							 | 
						||
| 
								 | 
							
										const currentDate = this.getDate({
							 | 
						||
| 
								 | 
							
											format: true
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										return {
							 | 
						||
| 
								 | 
							
											type: 0,
							 | 
						||
| 
								 | 
							
											/*手机高度*/
							 | 
						||
| 
								 | 
							
											phoneHeight: 0,
							 | 
						||
| 
								 | 
							
											/*可滚动视图区域高度*/
							 | 
						||
| 
								 | 
							
											scrollviewHigh: 0,
							 | 
						||
| 
								 | 
							
											/*最后一页码数*/
							 | 
						||
| 
								 | 
							
											// last_page: 0,
							 | 
						||
| 
								 | 
							
											/*当前页面*/
							 | 
						||
| 
								 | 
							
											// page: 1,
							 | 
						||
| 
								 | 
							
											/*每页条数*/
							 | 
						||
| 
								 | 
							
											// list_rows: 10,
							 | 
						||
| 
								 | 
							
											/*有没有等多*/
							 | 
						||
| 
								 | 
							
											no_more: false,
							 | 
						||
| 
								 | 
							
											/*是否正在加载*/
							 | 
						||
| 
								 | 
							
											loading: true,
							 | 
						||
| 
								 | 
							
											/*数据*/
							 | 
						||
| 
								 | 
							
											listData: [],
							 | 
						||
| 
								 | 
							
											/*倒计时配置*/
							 | 
						||
| 
								 | 
							
											countdownConfig: {},
							 | 
						||
| 
								 | 
							
											form: {
							 | 
						||
| 
								 | 
							
												pageNum: 1,
							 | 
						||
| 
								 | 
							
												pageSize: 10,
							 | 
						||
| 
								 | 
							
												startDate: '',
							 | 
						||
| 
								 | 
							
												endDate: '',
							 | 
						||
| 
								 | 
							
												memberCode: ''
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										};
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									computed: {
							 | 
						||
| 
								 | 
							
										/*加载中状态*/
							 | 
						||
| 
								 | 
							
										loadingType() {
							 | 
						||
| 
								 | 
							
											if (this.loading) {
							 | 
						||
| 
								 | 
							
												return 1;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												if (this.listData.length != 0 && this.no_more) {
							 | 
						||
| 
								 | 
							
													return 2;
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													return 0;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										startDate() {
							 | 
						||
| 
								 | 
							
											return this.getDate('start');
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										endDate() {
							 | 
						||
| 
								 | 
							
											return this.getDate('end');
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									onShow() {
							 | 
						||
| 
								 | 
							
										/*获取数据*/
							 | 
						||
| 
								 | 
							
										this.listData = [];
							 | 
						||
| 
								 | 
							
										this.form.pageNum = 1;
							 | 
						||
| 
								 | 
							
										this.getData();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									mounted() {
							 | 
						||
| 
								 | 
							
										this.init();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									methods: {
							 | 
						||
| 
								 | 
							
										changeType(e) {
							 | 
						||
| 
								 | 
							
											let self = this;
							 | 
						||
| 
								 | 
							
											if (self.loading) {
							 | 
						||
| 
								 | 
							
												return;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											self.page = 1;
							 | 
						||
| 
								 | 
							
											self.loading = true;
							 | 
						||
| 
								 | 
							
											self.type = e;
							 | 
						||
| 
								 | 
							
											self.getData();
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										getData() {
							 | 
						||
| 
								 | 
							
											let self = this;
							 | 
						||
| 
								 | 
							
											self.loading = true;
							 | 
						||
| 
								 | 
							
											var formdata = self.form;
							 | 
						||
| 
								 | 
							
											self._post(
							 | 
						||
| 
								 | 
							
												'member/api/silo/list',
							 | 
						||
| 
								 | 
							
												formdata,
							 | 
						||
| 
								 | 
							
												function(res) {
							 | 
						||
| 
								 | 
							
													self.listData = res.rows;
							 | 
						||
| 
								 | 
							
													self.total = res.total;
							 | 
						||
| 
								 | 
							
													if (self.total < self.form.pageNum * self.form.pageSize) {
							 | 
						||
| 
								 | 
							
														self.no_more = true;
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (self.total >= 1) {
							 | 
						||
| 
								 | 
							
														self.countdownConfig.startstamp = self.transTime(self.listData[0].enableDate);
							 | 
						||
| 
								 | 
							
														self.countdownConfig.endstamp = self.transTime(self.listData[0].endDate);
							 | 
						||
| 
								 | 
							
														console.log(self.countdownConfig);
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												},
							 | 
						||
| 
								 | 
							
												{},
							 | 
						||
| 
								 | 
							
												() => {
							 | 
						||
| 
								 | 
							
													self.loading = false;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											);
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										/*可滚动视图区域到底触发*/
							 | 
						||
| 
								 | 
							
										scrolltolowerFunc() {
							 | 
						||
| 
								 | 
							
											let self = this;
							 | 
						||
| 
								 | 
							
											if (self.no_more) {
							 | 
						||
| 
								 | 
							
												return;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											if (self.form.pageNum * self.form.pageSize < self.total) {
							 | 
						||
| 
								 | 
							
												self.form.pageNum++;
							 | 
						||
| 
								 | 
							
												self.getData();
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												self.no_more = true;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										/*初始化*/
							 | 
						||
| 
								 | 
							
										init() {
							 | 
						||
| 
								 | 
							
											let self = this;
							 | 
						||
| 
								 | 
							
											uni.getSystemInfo({
							 | 
						||
| 
								 | 
							
												success(res) {
							 | 
						||
| 
								 | 
							
													self.phoneHeight = res.windowHeight;
							 | 
						||
| 
								 | 
							
													// 计算组件的高度
							 | 
						||
| 
								 | 
							
													let view = uni.createSelectorQuery().select('.top-head');
							 | 
						||
| 
								 | 
							
													view.boundingClientRect(data => {
							 | 
						||
| 
								 | 
							
														let h = self.phoneHeight - data.height;
							 | 
						||
| 
								 | 
							
														self.scrollviewHigh = h;
							 | 
						||
| 
								 | 
							
													}).exec();
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										getDate(type) {
							 | 
						||
| 
								 | 
							
											const date = new Date();
							 | 
						||
| 
								 | 
							
											let year = date.getFullYear();
							 | 
						||
| 
								 | 
							
											let month = date.getMonth() + 1;
							 | 
						||
| 
								 | 
							
											let day = date.getDate();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (type === 'start') {
							 | 
						||
| 
								 | 
							
												year = year - 60;
							 | 
						||
| 
								 | 
							
											} else if (type === 'end') {
							 | 
						||
| 
								 | 
							
												year = year + 2;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											month = month > 9 ? month : '0' + month;
							 | 
						||
| 
								 | 
							
											day = day > 9 ? day : '0' + day;
							 | 
						||
| 
								 | 
							
											return `${year}-${month}-${day}`;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										bindDateChange1: function(e) {
							 | 
						||
| 
								 | 
							
											this.form.startDate = e.detail.value;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										bindDateChange2: function(e) {
							 | 
						||
| 
								 | 
							
											this.form.endDate = e.detail.value;
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										searchSubmit: function() {
							 | 
						||
| 
								 | 
							
											/*获取数据*/
							 | 
						||
| 
								 | 
							
											this.listData = [];
							 | 
						||
| 
								 | 
							
											this.form.pageNum = 1;
							 | 
						||
| 
								 | 
							
											this.getData();
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										transTime(date) {
							 | 
						||
| 
								 | 
							
											// const dates = '2021-12-30 15:40:30'
							 | 
						||
| 
								 | 
							
											// safari 浏览器需要转换格式为  '2021/12/30 15:40:30'
							 | 
						||
| 
								 | 
							
											const timesStamp = new Date(date).getTime() / 1000;
							 | 
						||
| 
								 | 
							
											return timesStamp;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<style lang="scss">
							 | 
						||
| 
								 | 
							
								.label-name {
							 | 
						||
| 
								 | 
							
									font-size: 26rpx;
							 | 
						||
| 
								 | 
							
									color: #999;
							 | 
						||
| 
								 | 
							
									word-break: break-all;
							 | 
						||
| 
								 | 
							
									width: 60%;
							 | 
						||
| 
								 | 
							
									flex-shrink: 0;
							 | 
						||
| 
								 | 
							
									line-height: 1.5;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.item-content {
							 | 
						||
| 
								 | 
							
									flex-shrink: 0;
							 | 
						||
| 
								 | 
							
									width: 40%;
							 | 
						||
| 
								 | 
							
									word-break: break-all;
							 | 
						||
| 
								 | 
							
									line-height: 1.5;
							 | 
						||
| 
								 | 
							
									text-align: right;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.item-box {
							 | 
						||
| 
								 | 
							
									width: 750rpx;
							 | 
						||
| 
								 | 
							
									box-sizing: border-box;
							 | 
						||
| 
								 | 
							
									margin-bottom: 20rpx;
							 | 
						||
| 
								 | 
							
									padding: 32rpx 26rpx;
							 | 
						||
| 
								 | 
							
									background: #ffffff;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.status_0 {
							 | 
						||
| 
								 | 
							
									color: #333;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.status_1 {
							 | 
						||
| 
								 | 
							
									color: #2ebc42;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.status_2 {
							 | 
						||
| 
								 | 
							
									color: #fb3024;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.top-countdown {
							 | 
						||
| 
								 | 
							
									width: 750rpx;
							 | 
						||
| 
								 | 
							
									height: 256rpx;
							 | 
						||
| 
								 | 
							
									background: linear-gradient(180deg, #fe5541, #f65c1a);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.normal-sub-btn {
							 | 
						||
| 
								 | 
							
									position: fixed;
							 | 
						||
| 
								 | 
							
									left: 0;
							 | 
						||
| 
								 | 
							
									right: 0;
							 | 
						||
| 
								 | 
							
									margin: auto;
							 | 
						||
| 
								 | 
							
									bottom: 60rpx;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								</style>
							 |