This commit is contained in:
周中平 2021-07-16 16:37:55 +08:00
parent 53ddca24ab
commit ff91440436
63 changed files with 460 additions and 611 deletions

26
app.js
View File

@ -408,11 +408,8 @@ App({
/** /**
* 授权登录 * 授权登录
*/ */
getUserInfo(e, callback) { getUserInfo(userInfo, callback) {
let App = this; let App = this;
if (e.detail.errMsg !== 'getUserInfo:ok') {
return false;
}
wx.showLoading({ wx.showLoading({
title: "正在登录", title: "正在登录",
mask: true mask: true
@ -423,10 +420,7 @@ App({
// 发送用户信息 // 发送用户信息
App._post_form('user/login', { App._post_form('user/login', {
code: res.code, code: res.code,
user_info: e.detail.rawData, user_info: JSON.stringify(userInfo),
encrypted_data: e.detail.encryptedData,
iv: e.detail.iv,
signature: e.detail.signature,
referee_id: wx.getStorageSync('referee_id') referee_id: wx.getStorageSync('referee_id')
}, result => { }, result => {
// 记录token user_id // 记录token user_id
@ -454,11 +448,17 @@ App({
*/ */
setCartTabBadge() { setCartTabBadge() {
const number = wx.getStorageSync('cartTotalNum') const number = wx.getStorageSync('cartTotalNum')
if (number <= 0) return if (number > 0) {
wx.setTabBarBadge({ wx.setTabBarBadge({
index: 2, index: 2,
text: `${number}` text: `${number}`
}) })
} else {
wx.removeTabBarBadge({
index: 2
})
}
return
} }
}); });

View File

@ -0,0 +1,130 @@
import util from '../../utils/util'
Component({
properties: {
// useSlot: Boolean,
// 截止的时间
date: String,
// 分隔符, colon为英文冒号zh为中文
separator: {
type: String,
value: 'zh'
},
// 组件样式, text为纯文本custom为带背景色
style: {
type: String,
value: 'text'
},
},
data: {
// 倒计时数据
dynamic: {
day: '00',
hou: '00',
min: '00',
sec: '00'
},
// 分隔符文案
separatorText: {
day: '天',
hou: '时',
min: '分',
sec: '秒'
}
},
attached() {
// 分隔符文案
this.separatorText()
// 开始倒计时
this.onTime()
},
detached() {
},
methods: {
// 分隔符文案
separatorText() {
const separatorText = this.data.separatorText
if (this.data.separator === 'colon') {
separatorText.day = ':'
separatorText.hou = ':'
separatorText.min = ':'
separatorText.sec = ''
}
this.setData({
separatorText
})
},
// 开始倒计时
onTime(deep = 0) {
const app = this
const dynamic = {}
// 获取当前时间,同时得到活动结束时间数组
const newTime = new Date().getTime()
// 对结束时间进行处理渲染到页面
const endTime = new Date(util.format_date(app.data.date)).getTime();
// 如果活动未结束,对时间进行处理
if ((endTime - newTime) <= 0) {
return false
}
const diffTime = (endTime - newTime) / 1000;
// 获取时、分、秒
const day = parseInt(diffTime / 86400),
hou = parseInt(diffTime % 86400 / 3600),
min = parseInt(diffTime % 86400 % 3600 / 60),
sec = parseInt(diffTime % 86400 % 3600 % 60);
dynamic.day = app.timeFormat(day)
dynamic.hou = app.timeFormat(hou)
dynamic.min = app.timeFormat(min)
dynamic.sec = app.timeFormat(sec)
// 渲染,然后每隔一秒执行一次倒计时函数
app.setData({
dynamic
})
// 判断倒计时是否结束
const isEnd = app.isEnd()
// 结束后执行回调函数
if (isEnd) {
deep > 0 && app.triggerEvent('finish')
}
// 重复执行
if (!isEnd) {
setTimeout(() => {
app.onTime(++deep)
}, 1000)
}
},
// 判断倒计时是否结束
isEnd() {
const {
dynamic
} = this.data
if (dynamic.day == '00' && dynamic.hou == '00' && dynamic.min == '00' && dynamic.sec == '00') {
return true
}
return false
},
/**
* 小于10的格式化函数
*/
timeFormat(value) {
return value < 10 ? '0' + value : value
}
}
})

View File

@ -0,0 +1,3 @@
{
"component": true
}

View File

@ -0,0 +1,15 @@
<view wx:if="{{ date }}" class="count-down">
<!-- <slot wx:if="{{ useSlot }}" /> -->
<view class="{{ style }}-style separator-{{ separator }}">
<block wx:if="{{ dynamic.day != '00' }}">
<text class="dynamic-value">{{ dynamic.day }}</text>
<text class="separator">{{ separatorText.day }}</text>
</block>
<text class="dynamic-value">{{ dynamic.hou }}</text>
<text class="separator">{{ separatorText.hou }}</text>
<text class="dynamic-value">{{ dynamic.min }}</text>
<text class="separator">{{ separatorText.min }}</text>
<text class="dynamic-value">{{ dynamic.sec }}</text>
<text class="separator">{{ separatorText.sec }}</text>
</view>
</view>

View File

@ -0,0 +1,33 @@
.item {
display: inline-block;
width: 22px;
margin-right: 5px;
color: #fff;
font-size: 12px;
text-align: center;
background-color: #1989fa;
border-radius: 2px;
}
.separator {
padding: 0 2rpx;
}
/* 冒号分隔符 */
.text-style.separator-colon .separator {
padding: 0 5rpx;
}
/* 带背景的样式 */
.custom-style .dynamic-value {
background: #252525;
color: #fff;
padding: 0 8rpx;
line-height: 40rpx;
border-radius: 8rpx;
}
.custom-style .separator {
padding: 0 7rpx;
}

View File

@ -27,8 +27,6 @@ Component({
* 跳转商品详情页 * 跳转商品详情页
*/ */
_onTargetGoods(e) { _onTargetGoods(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: `/pages/bargain/goods/index?active_id=${e.detail.target.dataset.id}`, url: `/pages/bargain/goods/index?active_id=${e.detail.target.dataset.id}`,
}); });

View File

@ -27,8 +27,6 @@ Component({
* 跳转商品详情页 * 跳转商品详情页
*/ */
_onTargetGoods(e) { _onTargetGoods(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/pages/goods/index?goods_id=' + e.detail.target.dataset.id, url: '/pages/goods/index?goods_id=' + e.detail.target.dataset.id,
}); });

View File

@ -24,8 +24,6 @@ Component({
* 跳转到搜索页面 * 跳转到搜索页面
*/ */
onTargetSearch(e) { onTargetSearch(e) {
// 记录formid
App.saveFormId(e.detail.formId);
App.navigationTo('pages/search/index'); App.navigationTo('pages/search/index');
}, },
} }

View File

@ -26,8 +26,6 @@ Component({
* 点击拨打电话 * 点击拨打电话
*/ */
_onServiceEvent(e) { _onServiceEvent(e) {
// 记录formid
App.saveFormId(e.detail.formId);
// 拨打电话 // 拨打电话
wx.makePhoneCall({ wx.makePhoneCall({
phoneNumber: this.data.params.phone_num phoneNumber: this.data.params.phone_num

View File

@ -27,8 +27,6 @@ Component({
* 跳转商品详情页 * 跳转商品详情页
*/ */
_onTargetGoods(e) { _onTargetGoods(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/pages/sharing/goods/index?goods_id=' + e.detail.target.dataset.id, url: '/pages/sharing/goods/index?goods_id=' + e.detail.target.dataset.id,
}); });

View File

@ -1,14 +1,8 @@
const App = getApp();
// 工具类
import util from '../../../utils/util.js'; import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
// 枚举类:秒杀活动商品状态
import ActiveStatusEnum from '../../../utils/enum/sharp/GoodsStatus.js'; import ActiveStatusEnum from '../../../utils/enum/sharp/GoodsStatus.js';
const App = getApp()
Component({ Component({
options: { options: {
@ -31,7 +25,7 @@ Component({
*/ */
data: { data: {
ActiveStatusEnum, // 秒杀活动商品状态 ActiveStatusEnum, // 秒杀活动商品状态
countDownList: [], // 倒计时 countDownTime: false, // 倒计时日期
}, },
/** /**
@ -45,7 +39,7 @@ Component({
attached() { attached() {
let _this = this; let _this = this;
_this._initCountDownData(); _this._initCountDownData();
}, }
}, },
@ -57,13 +51,10 @@ Component({
*/ */
methods: { methods: {
/** /**
* 跳转商品详情页 * 跳转商品详情页
*/ */
_onTargetGoods(e) { _onTargetGoods(e) {
// 记录formid
App.saveFormId(e.detail.formId);
// 生成query参数 // 生成query参数
let _this = this, let _this = this,
query = util.urlEncode({ query = util.urlEncode({
@ -80,8 +71,6 @@ Component({
* 更多秒杀 * 更多秒杀
*/ */
_onTargetSharpIndex(e) { _onTargetSharpIndex(e) {
// 记录formid
App.saveFormId(e.detail.formId);
// 跳转到秒杀会场首页 // 跳转到秒杀会场首页
wx.navigateTo({ wx.navigateTo({
url: `/pages/sharp/index/index`, url: `/pages/sharp/index/index`,
@ -91,19 +80,15 @@ Component({
/** /**
* 初始化倒计时组件 * 初始化倒计时组件
*/ */
_initCountDownData(data) { _initCountDownData() {
let _this = this, const app = this
active = _this.data.data.active; const active = app.data.data.active
if (!active) return false; if (!active) return false;
// 记录倒计时的时间 // 记录倒计时的时间
_this.setData({ app.setData({
[`countDownList[0]`]: { countDownTime: active.count_down_time
date: active.count_down_time, })
} }
});
// 执行倒计时
CountDown.onSetTimeList(_this, 'countDownList');
},
} }
}) })

View File

@ -1,3 +1,6 @@
{ {
"component": true "component": true,
"usingComponents": {
"countdown": "/components/countdown/index"
}
} }

View File

@ -11,23 +11,7 @@
</view> </view>
<!-- 倒计时 --> <!-- 倒计时 -->
<view wx:if="{{ data.active.status == ActiveStatusEnum.STATE_BEGIN.value }}" class="active-count-down"> <view wx:if="{{ data.active.status == ActiveStatusEnum.STATE_BEGIN.value }}" class="active-count-down">
<view class="clock dis-flex"> <countdown wx:if="{{ countDownTime }}" date="{{ countDownTime }}" style="custom" />
<view class="clock-time">
<text>{{ countDownList[0].dynamic.hou }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownList[0].dynamic.min }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownList[0].dynamic.sec }}</text>
</view>
</view>
</view> </view>
</view> </view>
<view class="sharp-top--right"> <view class="sharp-top--right">
@ -63,8 +47,10 @@
</view> </view>
<!-- 商品价格 --> <!-- 商品价格 -->
<view class="detail-price onelist-hidden"> <view class="detail-price onelist-hidden">
<text wx:if="{{ itemStyle.show.seckillPrice }}" class="goods-price f-30 col-m">¥{{ dataItem.goods_sku.seckill_price }}</text> <text wx:if="{{ itemStyle.show.seckillPrice }}"
<text wx:if="{{ itemStyle.show.originalPrice && dataItem.goods_sku.original_price > 0 }}" class="line-price col-9 f-24">¥{{ dataItem.goods_sku.original_price }}</text> class="goods-price f-30 col-m">¥{{ dataItem.goods_sku.seckill_price }}</text>
<text wx:if="{{ itemStyle.show.originalPrice && dataItem.goods_sku.original_price > 0 }}"
class="line-price col-9 f-24">¥{{ dataItem.goods_sku.original_price }}</text>
</view> </view>
</view> </view>
</block> </block>

View File

@ -26,8 +26,6 @@ Component({
* 跳转门店详情页 * 跳转门店详情页
*/ */
_onTargetDetail(e) { _onTargetDetail(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/pages/shop/detail/index?shop_id=' + e.detail.target.dataset.id, url: '/pages/shop/detail/index?shop_id=' + e.detail.target.dataset.id,
}); });

View File

@ -27,8 +27,6 @@ Component({
* 跳转文章首页 * 跳转文章首页
*/ */
_onTargetIndex(e) { _onTargetIndex(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/pages/article/index' url: '/pages/article/index'
}); });
@ -38,8 +36,6 @@ Component({
* 跳转文章详情页 * 跳转文章详情页
*/ */
_onTargetDetail(e) { _onTargetDetail(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/pages/article/detail/index?article_id=' + e.detail.target.dataset.id url: '/pages/article/detail/index?article_id=' + e.detail.target.dataset.id
}); });

View File

@ -40,8 +40,6 @@ Component({
* 导航菜单切换事件 * 导航菜单切换事件
*/ */
_onToggleShow(e) { _onToggleShow(e) {
// 记录formid
App.saveFormId(e.detail.formId);
this.setData({ this.setData({
isShow: !this.data.isShow, isShow: !this.data.isShow,
transparent: false transparent: false
@ -53,8 +51,6 @@ Component({
*/ */
_onTargetPage(e) { _onTargetPage(e) {
let urls = App.getTabBarLinks(); let urls = App.getTabBarLinks();
// 记录formid
App.saveFormId(e.detail.formId);
wx.switchTab({ wx.switchTab({
url: '/' + urls[e.detail.target.dataset.index] url: '/' + urls[e.detail.target.dataset.index]
}); });

View File

@ -32,8 +32,6 @@ Page({
values = e.detail.value values = e.detail.value
values.region = this.data.region; values.region = this.data.region;
// 记录formId
App.saveFormId(e.detail.formId);
// 表单验证 // 表单验证
if (!_this.validation(values)) { if (!_this.validation(values)) {

View File

@ -42,8 +42,6 @@ Page({
values = e.detail.value values = e.detail.value
values.region = this.data.region; values.region = this.data.region;
// 记录formId
App.saveFormId(e.detail.formId);
// 表单验证 // 表单验证
if (!_this.validation(values)) { if (!_this.validation(values)) {

View File

@ -22,8 +22,14 @@ Page({
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function(options) { onLoad: function (options) {
let _this = this; let _this = this;
// 设置默认的分类
if (options.category_id) {
_this.setData({
category_id: options.category_id
})
}
// 设置文章列表高度 // 设置文章列表高度
_this.setListHeight(); _this.setListHeight();
// Api获取文章首页 // Api获取文章首页
@ -36,7 +42,7 @@ Page({
getIndexData() { getIndexData() {
let _this = this; let _this = this;
// 获取文章首页 // 获取文章首页
App._get('article/index', {}, function(result) { App._get('article/index', {}, function (result) {
_this.setData({ _this.setData({
categoryList: result.data.categoryList categoryList: result.data.categoryList
}); });
@ -48,7 +54,7 @@ Page({
/** /**
* Api切换导航栏 * Api切换导航栏
*/ */
onSwitchTab: function(e) { onSwitchTab: function (e) {
let _this = this; let _this = this;
// 第一步切换当前的分类id // 第一步切换当前的分类id
_this.setData({ _this.setData({
@ -70,7 +76,7 @@ Page({
App._get('article/lists', { App._get('article/lists', {
page: page || 1, page: page || 1,
category_id: _this.data.category_id category_id: _this.data.category_id
}, function(result) { }, function (result) {
let resList = result.data.list, let resList = result.data.list,
dataList = _this.data.articleList; dataList = _this.data.articleList;
if (isPage == true) { if (isPage == true) {
@ -119,9 +125,6 @@ Page({
rpx = systemInfo.windowWidth / 750, // 计算rpx rpx = systemInfo.windowWidth / 750, // 计算rpx
tapHeight = Math.floor(rpx * 98), // tap高度 tapHeight = Math.floor(rpx * 98), // tap高度
scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度 scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度
console.log(
systemInfo.windowHeight
);
this.setData({ this.setData({
scrollHeight scrollHeight
}); });

View File

@ -1,19 +1,8 @@
const App = getApp();
// 富文本插件
import wxParse from '../../../wxParse/wxParse.js'; import wxParse from '../../../wxParse/wxParse.js';
// 工具类
import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
// 对话框插件
import Dialog from '../../../components/dialog/dialog'; import Dialog from '../../../components/dialog/dialog';
// 记录规格的数组 const App = getApp()
let goodsSpecArr = []; let goodsSpecArr = []
Page({ Page({
@ -60,9 +49,7 @@ Page({
// 返回顶部 // 返回顶部
showTopWidget: false, showTopWidget: false,
// 倒计时 countDownTime: false, // 倒计时日期
actEndTimeList: [],
active: {}, // 砍价活动详情 active: {}, // 砍价活动详情
goods: {}, // 商品详情 goods: {}, // 商品详情
@ -102,13 +89,10 @@ Page({
active_id: _this.data.active_id active_id: _this.data.active_id
}, (result) => { }, (result) => {
// 初始化详情数据 // 初始化详情数据
let data = _this._initData(result.data); const data = result.data
_this.setData(data); _this._initData(data)
// 初始化倒计时组件
// 执行倒计时 _this._initCountDownData(data)
if (!data.active.is_end) {
CountDown.onSetTimeList(_this, 'actEndTimeList');
}
}); });
}, },
@ -139,12 +123,22 @@ Page({
data.goodsMultiSpec = _this._initManySpecData(goodsDetail.goods_multi_spec); data.goodsMultiSpec = _this._initManySpecData(goodsDetail.goods_multi_spec);
} }
// 记录活动到期时间 // 记录活动到期时间
data.actEndTimeList = [{ data.countDownObj = [{
date: data.active.end_time date: data.active.end_time
}]; }];
_this.setData(data)
data.countDownObj.date = data.active.end_time
return data; return data;
}, },
// 初始化倒计时组件
_initCountDownData(data) {
const app = this
app.setData({
countDownTime: data.active.end_time
})
},
/** /**
* 初始化商品多规格 * 初始化商品多规格
*/ */
@ -169,8 +163,6 @@ Page({
attrIdx = e.currentTarget.dataset.attrIdx, attrIdx = e.currentTarget.dataset.attrIdx,
itemIdx = e.currentTarget.dataset.itemIdx, itemIdx = e.currentTarget.dataset.itemIdx,
goodsMultiSpec = _this.data.goodsMultiSpec; goodsMultiSpec = _this.data.goodsMultiSpec;
// 记录formid
App.saveFormId(e.detail.formId);
for (let i in goodsMultiSpec.spec_attr) { for (let i in goodsMultiSpec.spec_attr) {
for (let j in goodsMultiSpec.spec_attr[i].spec_items) { for (let j in goodsMultiSpec.spec_attr[i].spec_items) {
if (attrIdx == i) { if (attrIdx == i) {
@ -285,8 +277,6 @@ Page({
*/ */
onClickShare(e) { onClickShare(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
'share.show': true 'share.show': true
}); });
@ -348,8 +338,6 @@ Page({
*/ */
onSavePoster(e) { onSavePoster(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
wx.showLoading({ wx.showLoading({
title: '加载中', title: '加载中',
}); });
@ -395,12 +383,8 @@ Page({
/** /**
* 确认购买弹窗 * 确认购买弹窗
*/ */
onToggleTrade(e) { onToggleTrade() {
let _this = this; let _this = this;
if (typeof e === 'object') {
// 记录formId
e.detail.hasOwnProperty('formId') && App.saveFormId(e.detail.formId);
}
_this.setData({ _this.setData({
showBottomPopup: !_this.data.showBottomPopup showBottomPopup: !_this.data.showBottomPopup
}); });
@ -410,8 +394,6 @@ Page({
* 显示砍价规则 * 显示砍价规则
*/ */
onToggleRules(e) { onToggleRules(e) {
// 记录formId
App.saveFormId(e.detail.formId);
// 显示砍价规则 // 显示砍价规则
let _this = this; let _this = this;
Dialog({ Dialog({
@ -432,8 +414,6 @@ Page({
*/ */
onSubmit(e) { onSubmit(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 判断是否已参与当前的砍价活动,如果已参与的话跳转到砍价任务 // 判断是否已参与当前的砍价活动,如果已参与的话跳转到砍价任务
if (_this.data.is_partake) { if (_this.data.is_partake) {
wx.navigateTo({ wx.navigateTo({
@ -455,8 +435,6 @@ Page({
*/ */
onSubmit2(e) { onSubmit2(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 关闭选择器 // 关闭选择器
_this.onToggleTrade(); _this.onToggleTrade();
// 确认发起砍价 // 确认发起砍价
@ -502,8 +480,6 @@ Page({
* 跳转到首页 * 跳转到首页
*/ */
onTargetHome(e) { onTargetHome(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.switchTab({ wx.switchTab({
url: '../../index/index', url: '../../index/index',
}) })

View File

@ -4,6 +4,7 @@
"zan-actionsheet": "/components/actionsheet/index", "zan-actionsheet": "/components/actionsheet/index",
"zan-dialog": "/components/dialog/index", "zan-dialog": "/components/dialog/index",
"zan-popup": "/components/popup/index", "zan-popup": "/components/popup/index",
"shortcut": "/components/shortcut/shortcut" "shortcut": "/components/shortcut/shortcut",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -8,7 +8,8 @@
<!-- 商品图片 --> <!-- 商品图片 -->
<view class="goods-swiper"> <view class="goods-swiper">
<swiper autoplay="{{ autoplay }}" bindchange="setCurrent" class="banner-box swiper-box" duration="{{duration}}" indicator-dots="{{indicatorDots}}" interval="{{interval}}" circular="{{true}}"> <swiper autoplay="{{ autoplay }}" bindchange="setCurrent" class="banner-box swiper-box" duration="{{duration}}"
indicator-dots="{{indicatorDots}}" interval="{{interval}}" circular="{{true}}">
<swiper-item wx:for="{{ goods.image }}" wx:key="this" catchtap="onPreviewImages" data-index="{{ index }}"> <swiper-item wx:for="{{ goods.image }}" wx:key="this" catchtap="onPreviewImages" data-index="{{ index }}">
<image class="slide-image" mode="aspectFill" src="{{ item.file_path }}"></image> <image class="slide-image" mode="aspectFill" src="{{ item.file_path }}"></image>
</swiper-item> </swiper-item>
@ -47,7 +48,7 @@
</view> </view>
<view class="goods-share__line"></view> <view class="goods-share__line"></view>
<view class="goods-share"> <view class="goods-share">
<form bindsubmit="onClickShare" report-submit="true"> <form bindsubmit="onClickShare">
<button formType="submit" class="share-btn dis-flex flex-dir-column"> <button formType="submit" class="share-btn dis-flex flex-dir-column">
<text class="share__icon iconfont icon-fenxiang"></text> <text class="share__icon iconfont icon-fenxiang"></text>
<text class="f-24">分享</text> <text class="f-24">分享</text>
@ -60,11 +61,11 @@
<text>{{ goods.selling_point }}</text> <text>{{ goods.selling_point }}</text>
</view> </view>
<!-- 活动倒计时 --> <!-- 活动倒计时 -->
<view wx:if="{{ !active.is_end }}" class="info-item info-item_status info-item_countdown"> <view wx:if="{{ !active.is_end }}" class="info-item info-item_status info-item_countdown dis-flex flex-y-center">
<text class="countdown-icon iconfont icon-naozhong"></text> <text class="countdown-icon iconfont icon-naozhong"></text>
<block wx:for="{{ actEndTimeList }}" wx:key="this"> <text>距离活动结束</text>
<text>距离活动结束 还剩{{ item.dynamic.hou }}时{{ item.dynamic.min }}分{{ item.dynamic.sec }}秒</text> <text class="m-r-10">还剩</text>
</block> <countdown wx:if="{{ countDownTime }}" date="{{ countDownTime }}" />
</view> </view>
<!-- 活动已结束 --> <!-- 活动已结束 -->
<view wx:if="{{ active.is_end }}" class="info-item info-item_status info-item_end"> <view wx:if="{{ active.is_end }}" class="info-item info-item_status info-item_end">
@ -75,7 +76,7 @@
<!-- 选择商品规格 --> <!-- 选择商品规格 -->
<!-- <view class="goods-choice m-top20 b-f"> <!-- <view class="goods-choice m-top20 b-f">
<form wx:if="{{ goods.spec_type == 20 }}" bindsubmit="onToggleTrade" report-submit> <form wx:if="{{ goods.spec_type == 20 }}" bindsubmit="onToggleTrade">
<button class="btn-normal" formType="submit"> <button class="btn-normal" formType="submit">
<view class="sku-selector dis-flex flex-y-center"> <view class="sku-selector dis-flex flex-y-center">
<view class="flex-box f-28"> <view class="flex-box f-28">
@ -92,7 +93,7 @@
<!-- 砍价玩法 --> <!-- 砍价玩法 -->
<view class="bargain-rules top-nav-bar m-top20 b-f"> <view class="bargain-rules top-nav-bar m-top20 b-f">
<form bindsubmit="onToggleRules" report-submit="true"> <form bindsubmit="onToggleRules">
<button formType="submit" class="btn-normal"> <button formType="submit" class="btn-normal">
<view class="item-title dis-flex"> <view class="item-title dis-flex">
@ -198,7 +199,7 @@
<view class="footer-container dis-flex"> <view class="footer-container dis-flex">
<!-- 导航图标 --> <!-- 导航图标 -->
<view class="foo-item-fast dis-flex flex-x-center flex-y-center"> <view class="foo-item-fast dis-flex flex-x-center flex-y-center">
<form bindsubmit="onTargetHome" report-submit> <form bindsubmit="onTargetHome">
<button class="btn-normal" formType="submit"> <button class="btn-normal" formType="submit">
<view class="fast-item fast-item_home"> <view class="fast-item fast-item_home">
<view class="fast-icon"> <view class="fast-icon">
@ -223,7 +224,7 @@
</view> </view>
<!-- 操作按钮 --> <!-- 操作按钮 -->
<view class="foo-item-trigger flex-box"> <view class="foo-item-trigger flex-box">
<form bindsubmit="onSubmit" report-submit> <form bindsubmit="onSubmit">
<button wx:if="{{ active.is_start && !active.is_end }}" class="opt-btn btn-main btn-normal" formType="submit"> <button wx:if="{{ active.is_start && !active.is_end }}" class="opt-btn btn-main btn-normal" formType="submit">
<text>{{ is_partake ? '继续砍价' : '立即砍价' }}</text> <text>{{ is_partake ? '继续砍价' : '立即砍价' }}</text>
</button> </button>
@ -236,7 +237,9 @@
</view> </view>
<!-- 分享按钮 --> <!-- 分享按钮 -->
<zan-actionsheet show="{{ share.show }}" actions="{{ share.actions }}" cancel-text="{{ share.cancelText }}" cancel-with-mask="{{ share.cancelWithMask }}" bind:cancel="onCloseShare" bind:actionclick="onClickShareItem" mask-class="tiny" /> <zan-actionsheet show="{{ share.show }}" actions="{{ share.actions }}" cancel-text="{{ share.cancelText }}"
cancel-with-mask="{{ share.cancelWithMask }}" bind:cancel="onCloseShare" bind:actionclick="onClickShareItem"
mask-class="tiny" />
<!-- 商品海报 弹出层 --> <!-- 商品海报 弹出层 -->
<zan-popup show="{{ share.showPopup }}" bindclose="onTogglePopup"> <zan-popup show="{{ share.showPopup }}" bindclose="onTogglePopup">
@ -245,7 +248,7 @@
<view class="pop-close dis-flex flex-x-center flex-y-center" catchtap="onTogglePopup"> <view class="pop-close dis-flex flex-x-center flex-y-center" catchtap="onTogglePopup">
<text class="iconfont icon-shanchu f-30 col-9"></text> <text class="iconfont icon-shanchu f-30 col-9"></text>
</view> </view>
<form bindsubmit="onSavePoster" report-submit="true"> <form bindsubmit="onSavePoster">
<view class="poster__image"> <view class="poster__image">
<image mode="widthFix" src="{{ qrcode }}"></image> <image mode="widthFix" src="{{ qrcode }}"></image>
</view> </view>
@ -293,9 +296,12 @@
<view class="goods-attr"> <view class="goods-attr">
<!-- 滚动容器 --> <!-- 滚动容器 -->
<scroll-view class="goods-attr--scroll" scroll-y="{{ true }}"> <scroll-view class="goods-attr--scroll" scroll-y="{{ true }}">
<view class="group-item" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx" wx:key="this"> <view class="group-item" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx"
wx:key="this">
<view class="tips-text" data-id="{{ attr.group_id }}">{{ attr.group_name }}</view> <view class="tips-text" data-id="{{ attr.group_id }}">{{ attr.group_name }}</view>
<view class="spec-item {{ item.checked ? 'cur' : '' }}" wx:for="{{ attr.spec_items }}" wx:for-index="item_idx" wx:key="this" data-attr-idx="{{ attr_idx }}" data-item-idx="{{ item_idx }}" catchtap="onSwitchSpec"> <view class="spec-item {{ item.checked ? 'cur' : '' }}" wx:for="{{ attr.spec_items }}"
wx:for-index="item_idx" wx:key="this" data-attr-idx="{{ attr_idx }}" data-item-idx="{{ item_idx }}"
catchtap="onSwitchSpec">
{{ item.spec_value }} {{ item.spec_value }}
</view> </view>
</view> </view>
@ -308,11 +314,11 @@
<text>购买数量</text> <text>购买数量</text>
</view> </view>
<view class="select-number"> <view class="select-number">
<form bindsubmit="onDecGoodsNumber" report-submit="true"> <form bindsubmit="onDecGoodsNumber">
<button formType="submit" class="default {{ goods_num > 1 ? '' : 'disabled' }}" type="default">-</button> <button formType="submit" class="default {{ goods_num > 1 ? '' : 'disabled' }}" type="default">-</button>
</form> </form>
<input bindinput="onInputGoodsNum" type="number" value="{{ goods_num }}"></input> <input bindinput="onInputGoodsNum" type="number" value="{{ goods_num }}"></input>
<form bindsubmit="onIncGoodsNumber" report-submit="true"> <form bindsubmit="onIncGoodsNumber">
<button formType="submit" class="default" type="default">+</button> <button formType="submit" class="default" type="default">+</button>
</form> </form>
</view> </view>
@ -322,7 +328,7 @@
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<view class="footer-fixed f-30"> <view class="footer-fixed f-30">
<view wx:if="{{ stock_num > 0 }}" class="flex-box"> <view wx:if="{{ stock_num > 0 }}" class="flex-box">
<form bindsubmit="onSubmit2" report-submit> <form bindsubmit="onSubmit2">
<button class="opt-btn btn-main btn-normal" formType="submit"> <button class="opt-btn btn-main btn-normal" formType="submit">
<text>确定</text> <text>确定</text>
</button> </button>

View File

@ -1,10 +1,6 @@
const App = getApp(); import util from '../../../utils/util.js'
// 工具类 const App = getApp()
import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
Page({ Page({
@ -137,21 +133,14 @@ Page({
* 初始化倒计时组件 * 初始化倒计时组件
*/ */
_initCountDownData(data) { _initCountDownData(data) {
let _this = this; // let _this = this;
// 记录活动到期时间 // // 记录活动到期时间
let countDownList = _this.data.countDownList; // let countDownList = _this.data.countDownList;
data.myList.data.forEach((item) => { // data.myList.data.forEach((item) => {
countDownList.push({ // countDownList.push({
date: item.end_time, // date: item.end_time
}); // })
}); // })
_this.setData({
countDownList,
});
// 执行倒计时
if (countDownList.length > 0) {
CountDown.onSetTimeList(_this, 'countDownList');
}
}, },
/** /**
@ -169,8 +158,6 @@ Page({
*/ */
onToggleTab(e) { onToggleTab(e) {
let _this = this; let _this = this;
// 保存formid
App.saveFormId(e.detail.formId);
// 设置当前tabbar索引并重置数据 // 设置当前tabbar索引并重置数据
_this.setData({ _this.setData({
currentTab: e.currentTarget.dataset.index, currentTab: e.currentTarget.dataset.index,
@ -188,8 +175,6 @@ Page({
* 跳转到砍价商品详情 * 跳转到砍价商品详情
*/ */
onTargetActive(e) { onTargetActive(e) {
// 保存formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: `../goods/index?active_id=${e.detail.target.dataset.id}`, url: `../goods/index?active_id=${e.detail.target.dataset.id}`,
}) })
@ -199,8 +184,6 @@ Page({
* 跳转到砍价任务详情 * 跳转到砍价任务详情
*/ */
onTargetTask(e) { onTargetTask(e) {
// 保存formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: `../task/index?task_id=${e.detail.target.dataset.id}`, url: `../task/index?task_id=${e.detail.target.dataset.id}`,
}) })

View File

@ -1,6 +1,7 @@
{ {
"navigationBarTitleText": "砍价专区", "navigationBarTitleText": "砍价专区",
"usingComponents": { "usingComponents": {
"diy-banner": "/components/diy/banner/banner" "diy-banner": "/components/diy/banner/banner",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -1,7 +1,8 @@
<view class="container"> <view class="container">
<!-- 内容区域 --> <!-- 内容区域 -->
<scroll-view class="container--scroll-view" bindscrolltolower="onScrollToLower" scroll-y="{{ true }}" bindscroll="onScrollEvent" style="height: {{ scrollHeight }}px;"> <scroll-view class="container--scroll-view" bindscrolltolower="onScrollToLower" scroll-y="{{ true }}"
bindscroll="onScrollEvent" style="height: {{ scrollHeight }}px;">
<!-- 砍价会场 --> <!-- 砍价会场 -->
<block wx:if="{{ currentTab == 0 }}"> <block wx:if="{{ currentTab == 0 }}">
@ -104,26 +105,8 @@
<view class="task-status dis-flex flex-y-center"> <view class="task-status dis-flex flex-y-center">
<!-- 倒计时 --> <!-- 倒计时 -->
<view wx:if="{{ item.status }}" class="count-down dis-flex flex-y-center"> <view wx:if="{{ item.status }}" class="count-down dis-flex flex-y-center">
<view class="clock-text"> <text class="m-r-10">剩余</text>
<text>剩余</text> <countdown date="{{ item.end_time }}" separator="colon" style="custom" />
</view>
<view class="clock dis-flex">
<view class="clock-time">
<text>{{ countDownList[index].dynamic.hou }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownList[index].dynamic.min }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownList[index].dynamic.sec }}</text>
</view>
</view>
</view> </view>
<view wx:if="{{ !item.status }}" class="task-status__text"> <view wx:if="{{ !item.status }}" class="task-status__text">
<text class="col-m">{{ item.is_buy ? '砍价成功' : '已结束' }}</text> <text class="col-m">{{ item.is_buy ? '砍价成功' : '已结束' }}</text>

View File

@ -1,22 +1,15 @@
const App = getApp();
// 工具类
import util from '../../../utils/util.js'; import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
// 对话框插件
import Dialog from '../../../components/dialog/dialog'; import Dialog from '../../../components/dialog/dialog';
const App = getApp()
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
// 砍价任务倒计时 countDownTime: false, // 倒计时日期
taskEndTime: [],
task: {}, // 砍价任务详情 task: {}, // 砍价任务详情
active: {}, // 活动详情 active: {}, // 活动详情
@ -71,18 +64,15 @@ Page({
* 初始化页面数据 * 初始化页面数据
*/ */
_initData(data) { _initData(data) {
let _this = this; const app = this;
// 初始化:显示操作按钮 // 初始化:显示操作按钮
_this._initShowBtn(data); app._initShowBtn(data)
// 记录页面数据
app.setData(data)
// 记录活动到期时间 // 记录活动到期时间
data.taskEndTime = [{ app.setData({
date: data.task.end_time countDownTime: data.active.end_time
}]; })
_this.setData(data);
// 执行倒计时
if (!data.task.is_end) {
CountDown.onSetTimeList(_this, 'taskEndTime');
}
}, },
/** /**
@ -110,8 +100,6 @@ Page({
* 跳转到首页 * 跳转到首页
*/ */
onTargetHome(e) { onTargetHome(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.switchTab({ wx.switchTab({
url: '../../index/index', url: '../../index/index',
}) })
@ -121,8 +109,6 @@ Page({
* 显示砍价规则 * 显示砍价规则
*/ */
onToggleRules(e) { onToggleRules(e) {
// 记录formId
App.saveFormId(e.detail.formId);
// 显示砍价规则 // 显示砍价规则
let _this = this; let _this = this;
Dialog({ Dialog({
@ -143,8 +129,6 @@ Page({
*/ */
onTargetGoods(e) { onTargetGoods(e) {
let _this = this; let _this = this;
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: `../goods/index?active_id=${_this.data.task.active_id}`, url: `../goods/index?active_id=${_this.data.task.active_id}`,
}) })
@ -154,8 +138,6 @@ Page({
* 跳转到砍价首页 * 跳转到砍价首页
*/ */
onTargetBargain(e) { onTargetBargain(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../index/index', url: '../index/index',
}) })
@ -166,8 +148,6 @@ Page({
*/ */
onHelpCut(e) { onHelpCut(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 按钮禁用时不允许操作(防重复提交) // 按钮禁用时不允许操作(防重复提交)
if (_this.data.disabled == true) { if (_this.data.disabled == true) {
return false; return false;
@ -180,7 +160,7 @@ Page({
App._post_form('bargain.task/help_cut', { App._post_form('bargain.task/help_cut', {
task_id: _this.data.task_id task_id: _this.data.task_id
}, result => { }, result => {
App.showSuccess(result.msg, function() { App.showSuccess(result.msg, function () {
wx.navigateBack(); wx.navigateBack();
}); });
// 获取砍价任务详情 // 获取砍价任务详情
@ -200,8 +180,6 @@ Page({
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 跳转到结算台 // 跳转到结算台
let option = util.urlEncode({ let option = util.urlEncode({

View File

@ -1,6 +1,7 @@
{ {
"navigationBarTitleText": "砍价任务", "navigationBarTitleText": "砍价任务",
"usingComponents": { "usingComponents": {
"zan-dialog": "/components/dialog/index" "zan-dialog": "/components/dialog/index",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -135,8 +135,10 @@
</view> </view>
<!-- 到期时间 --> <!-- 到期时间 -->
<view class="bargain-p" wx:if="{{ task.status }}"> <view class="bargain-p" wx:if="{{ task.status }}">
<view class="bargain-people" wx:for="{{ taskEndTime }}" wx:key="this"> <view class="bargain-people dis-flex flex-x-center flex-y-center">
<text>活动还剩 {{ item.dynamic.hou }} : {{ item.dynamic.min }} : {{ item.dynamic.sec }} 结束,快来砍价吧~</text> <text>活动还剩</text>
<countdown wx:if="{{ countDownTime }}" date="{{ countDownTime }}" />
<text>结束,快来砍价吧~</text>
</view> </view>
</view> </view>
</view> </view>

View File

@ -57,8 +57,6 @@ Page({
* 立即加入分销商 * 立即加入分销商
*/ */
triggerApply(e) { triggerApply(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../apply/apply', url: '../apply/apply',
}) })

View File

@ -480,8 +480,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 设置当前支付方式 // 设置当前支付方式
_this.setData({ _this.setData({
curPayType: e.currentTarget.dataset.value curPayType: e.currentTarget.dataset.value
@ -536,8 +534,6 @@ Page({
*/ */
onShowPoints(e) { onShowPoints(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 显示dialog // 显示dialog
let setting = _this.data.setting; let setting = _this.data.setting;
Dialog({ Dialog({

View File

@ -210,7 +210,6 @@ Page({
*/ */
onIncGoodsNumber(e) { onIncGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
goods_num: ++_this.data.goods_num goods_num: ++_this.data.goods_num
}) })
@ -221,7 +220,6 @@ Page({
*/ */
onDecGoodsNumber(e) { onDecGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
if (_this.data.goods_num > 1) { if (_this.data.goods_num > 1) {
_this.setData({ _this.setData({
goods_num: --_this.data.goods_num goods_num: --_this.data.goods_num
@ -353,8 +351,6 @@ Page({
*/ */
onClickShare(e) { onClickShare(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
'share.show': true 'share.show': true
}); });
@ -416,8 +412,6 @@ Page({
*/ */
onSavePoster(e) { onSavePoster(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
wx.showLoading({ wx.showLoading({
title: '加载中', title: '加载中',
}); });
@ -463,12 +457,8 @@ Page({
/** /**
* 确认购买弹窗 * 确认购买弹窗
*/ */
onToggleTrade(e) { onToggleTrade() {
let _this = this; let _this = this;
if (typeof e === 'object') {
// 记录formId
e.detail.hasOwnProperty('formId') && App.saveFormId(e.detail.formId);
}
_this.setData({ _this.setData({
showBottomPopup: !_this.data.showBottomPopup showBottomPopup: !_this.data.showBottomPopup
}); });

View File

@ -20,7 +20,7 @@ Page({
}, },
/** /**
* 授权登录 * 授权登录旧版弃用
*/ */
getUserInfo(e) { getUserInfo(e) {
let _this = this; let _this = this;
@ -30,6 +30,31 @@ Page({
}); });
}, },
/**
* 授权登录新版
*/
getUserProfile() {
console.log('getUserProfile')
const app = this
wx.canIUse('getUserProfile') && wx.getUserProfile({
lang: 'zh_CN',
desc: '获取用户相关信息',
success({
userInfo
}) {
console.log('用户同意了授权')
console.log('userInfo', userInfo)
App.getUserInfo(userInfo, () => {
// 跳转回原页面
app.onNavigateBack(1)
});
},
fail() {
console.log('用户拒绝了授权')
}
})
},
/** /**
* 暂不登录 * 暂不登录
*/ */

View File

@ -7,7 +7,10 @@
<view class="auth-title">申请获取以下权限</view> <view class="auth-title">申请获取以下权限</view>
<view class="auth-subtitle">获得你的公开信息(昵称、头像等)</view> <view class="auth-subtitle">获得你的公开信息(昵称、头像等)</view>
<view class="login-btn"> <view class="login-btn">
<button class="btn-normal" openType="getUserInfo" lang="zh_CN" bindgetuserinfo="getUserInfo">授权登录</button> <!-- 旧版微信登录(弃用) -->
<!-- <button class="btn-normal" openType="getUserInfo" lang="zh_CN" bindgetuserinfo="getUserInfo">授权登录</button> -->
<!-- 新版微信登录 -->
<button class="btn-normal" catchtap="getUserProfile">授权登录</button>
</view> </view>
<view class="no-login-btn"> <view class="no-login-btn">
<button class="btn-normal" catchtap="onNotLogin">暂不登录</button> <button class="btn-normal" catchtap="onNotLogin">暂不登录</button>

View File

@ -130,8 +130,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 隐藏支付方式弹窗 // 隐藏支付方式弹窗
_this.onTogglePayPopup(); _this.onTogglePayPopup();
if (!_this.data.showPayPopup) { if (!_this.data.showPayPopup) {

View File

@ -150,8 +150,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 隐藏支付方式弹窗 // 隐藏支付方式弹窗
_this.onTogglePayPopup(); _this.onTogglePayPopup();
if (!_this.data.showPayPopup) { if (!_this.data.showPayPopup) {
@ -223,7 +221,6 @@ Page({
wx.navigateTo({ wx.navigateTo({
url: './comment/comment?order_id=' + order_id, url: './comment/comment?order_id=' + order_id,
}) })
console.log(order_id);
}, },
/** /**

View File

@ -48,8 +48,6 @@ Page({
* 切换标签 * 切换标签
*/ */
onSwitchService: function(e) { onSwitchService: function(e) {
// 记录formId
App.saveFormId(e.detail.formId);
this.setData({ this.setData({
serviceType: e.detail.target.dataset.type serviceType: e.detail.target.dataset.type
}); });
@ -59,8 +57,6 @@ Page({
* 跳转商品详情 * 跳转商品详情
*/ */
onGoodsDetail: function(e) { onGoodsDetail: function(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id
}); });
@ -73,8 +69,6 @@ Page({
let _this = this, let _this = this,
index = e.currentTarget.dataset.index, index = e.currentTarget.dataset.index,
imageList = _this.data.imageList; imageList = _this.data.imageList;
// 记录formId
App.saveFormId(e.detail.formId);
// 选择图片 // 选择图片
wx.chooseImage({ wx.chooseImage({
count: 6 - imageList.length, count: 6 - imageList.length,

View File

@ -45,8 +45,6 @@ Page({
* 跳转商品详情 * 跳转商品详情
*/ */
onGoodsDetail: function (e) { onGoodsDetail: function (e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id
}); });
@ -82,8 +80,6 @@ Page({
let _this = this, let _this = this,
values = e.detail.value; values = e.detail.value;
// 记录formId
App.saveFormId(e.detail.formId);
// 判断是否重复提交 // 判断是否重复提交
if (_this.disable === true) { if (_this.disable === true) {

View File

@ -1,10 +1,9 @@
const App = getApp();
const Sharing = require('../../../utils/extend/sharing.js'); const Sharing = require('../../../utils/extend/sharing.js');
const Dialog = require('../../../components/dialog/dialog'); const Dialog = require('../../../components/dialog/dialog');
// 工具类
const util = require('../../../utils/util.js'); const util = require('../../../utils/util.js');
const App = getApp()
// 记录规格的数组 // 记录规格的数组
let goodsSpecArr = []; let goodsSpecArr = [];
@ -24,8 +23,6 @@ Page({
goods_sku_id: 0, // 规格id goods_sku_id: 0, // 规格id
goodsMultiSpec: {}, // 多规格信息 goodsMultiSpec: {}, // 多规格信息
countDownList: [],
actEndTimeList: []
}, },
/** /**
@ -95,8 +92,6 @@ Page({
console.log(data['is_join']); console.log(data['is_join']);
// 当前用户是否为创建者 // 当前用户是否为创建者
data['is_creator'] = !!(data.detail.creator_id == App.getUserId()) data['is_creator'] = !!(data.detail.creator_id == App.getUserId())
// 拼团结束时间
data['actEndTimeList'] = [data.detail.end_time.text];
// 商品价格/划线价/库存 // 商品价格/划线价/库存
data.goods_sku_id = goodsDetail.goods_sku.spec_sku_id; data.goods_sku_id = goodsDetail.goods_sku.spec_sku_id;
@ -116,8 +111,6 @@ Page({
} }
// 赋值页面数据 // 赋值页面数据
_this.setData(data); _this.setData(data);
// 执行倒计时函数
_this.onCountDown();
}, },
/** /**
@ -145,8 +138,6 @@ Page({
itemIdx = e.currentTarget.dataset.itemIdx, itemIdx = e.currentTarget.dataset.itemIdx,
goodsMultiSpec = _this.data.goodsMultiSpec; goodsMultiSpec = _this.data.goodsMultiSpec;
// 记录formid
App.saveFormId(e.detail.formId);
for (let i in goodsMultiSpec.spec_attr) { for (let i in goodsMultiSpec.spec_attr) {
for (let j in goodsMultiSpec.spec_attr[i].spec_items) { for (let j in goodsMultiSpec.spec_attr[i].spec_items) {
@ -225,51 +216,6 @@ Page({
return param < 10 ? '0' + param : param; return param < 10 ? '0' + param : param;
}, },
/**
* 倒计时函数
*/
onCountDown() {
// 获取当前时间,同时得到活动结束时间数组
let newTime = new Date().getTime();
let endTimeList = this.data.actEndTimeList;
let countDownArr = [];
// 对结束时间进行处理渲染到页面
endTimeList.forEach(o => {
let endTime = new Date(util.format_date(o)).getTime();
let obj = null;
// 如果活动未结束,对时间进行处理
if (endTime - newTime > 0) {
let time = (endTime - newTime) / 1000;
// 获取天、时、分、秒
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt(time % (60 * 60 * 24) / 3600);
let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
obj = {
day: day,
hou: this.timeFormat(hou),
min: this.timeFormat(min),
sec: this.timeFormat(sec)
}
} else { //活动已结束,全部设置为'00'
obj = {
day: '00',
hou: '00',
min: '00',
sec: '00'
}
}
countDownArr.push(obj);
})
// 渲染,然后每隔一秒执行一次倒计时函数
this.setData({
countDownList: countDownArr
})
setTimeout(this.onCountDown, 1000);
},
/** /**
* 查看拼团规则 * 查看拼团规则
*/ */
@ -311,7 +257,6 @@ Page({
*/ */
onIncGoodsNumber(e) { onIncGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
goods_num: ++_this.data.goods_num goods_num: ++_this.data.goods_num
}) })
@ -322,7 +267,6 @@ Page({
*/ */
onDecGoodsNumber(e) { onDecGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
if (_this.data.goods_num > 1) { if (_this.data.goods_num > 1) {
_this.setData({ _this.setData({
goods_num: --_this.data.goods_num goods_num: --_this.data.goods_num

View File

@ -3,6 +3,7 @@
"usingComponents": { "usingComponents": {
"zan-dialog": "/components/dialog/index", "zan-dialog": "/components/dialog/index",
"zan-popup": "/components/popup/index", "zan-popup": "/components/popup/index",
"shortcut": "/components/shortcut/shortcut" "shortcut": "/components/shortcut/shortcut",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -44,22 +44,19 @@
</view> </view>
</view> </view>
<!-- 虚位以待 --> <!-- 虚位以待 -->
<view wx:for="{{ detail.surplus_people }}" wx:key="this" class="user-item user-item__wait dis-flex flex-x-center flex-y-center"> <view wx:for="{{ detail.surplus_people }}" wx:key="this"
class="user-item user-item__wait dis-flex flex-x-center flex-y-center">
<text class="iconfont icon-wenhao"></text> <text class="iconfont icon-wenhao"></text>
</view> </view>
</view> </view>
<!-- 拼单状态:拼团中 --> <!-- 拼单状态:拼团中 -->
<view wx:if="{{ detail.status.value == 10 }}" class="main_status main_tiem"> <view wx:if="{{ detail.status.value == 10 }}" class="main_tiem">
<text>还差 </text> <text>还差 </text>
<text class="main_timer_color">{{ detail.surplus_people }}</text> <text class="main_timer_color">{{ detail.surplus_people }}</text>
<text> 个名额,</text> <text> 个名额,</text>
<view class="tui-countdown-content" wx:for="{{countDownList}}" wx:key="countDownList"> <!-- 倒计时 -->
<!-- <text class="tui-conutdown-box">{{item.day}}</text>: --> <countdown date="{{ detail.end_time.text }}" separator="colon" style="text" />
<text class="tui-conutdown-box">{{item.hou}}</text> :
<text class="tui-conutdown-box">{{item.min}}</text> :
<text class="tui-conutdown-box tui-countdown-bg">{{item.sec}}</text>
</view>
<text> 后结束</text> <text> 后结束</text>
</view> </view>
@ -84,7 +81,8 @@
<text class="f-30">更多拼团</text> <text class="f-30">更多拼团</text>
<text class="icon-arrow"></text> <text class="icon-arrow"></text>
</view> </view>
<view wx:for="{{ goodsList.data }}" wx:key="key" class="content_main dis-flex" catchtap="onTargetGoods" data-id="{{ item.goods_id }}"> <view wx:for="{{ goodsList.data }}" wx:key="key" class="content_main dis-flex" catchtap="onTargetGoods"
data-id="{{ item.goods_id }}">
<view class="goods-image"> <view class="goods-image">
<image src="{{ item.goods_image }}"></image> <image src="{{ item.goods_image }}"></image>
</view> </view>
@ -139,18 +137,21 @@
</view> </view>
<!-- 规格列表 --> <!-- 规格列表 -->
<view class="goods-list-box" scroll-y="true"> <view class="goods-list-box" scroll-y="true">
<view class="cf tmall-types" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx" wx:key="key"> <view class="cf tmall-types" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx"
wx:key="key">
<view class="tipstxt" data-id="{{attr.group_id}}">{{attr.group_name}}</view> <view class="tipstxt" data-id="{{attr.group_id}}">{{attr.group_name}}</view>
<view class="cf cartypelist" wx:for="{{attr.spec_items}}" wx:for-index="item_idx" wx:key="ikey"> <view class="cf cartypelist" wx:for="{{attr.spec_items}}" wx:for-index="item_idx" wx:key="ikey">
<view wx:if="{{item.checked}}"> <view wx:if="{{item.checked}}">
<form bindsubmit="onSwitchSpec" report-submit="true" data-attr-idx="{{attr_idx}}" data-item-idx="{{item_idx}}"> <form bindsubmit="onSwitchSpec" report-submit="true" data-attr-idx="{{attr_idx}}"
data-item-idx="{{item_idx}}">
<button formType="submit" class="btn-normal"> <button formType="submit" class="btn-normal">
<view class="cartypeitem cur">{{item.spec_value}}</view> <view class="cartypeitem cur">{{item.spec_value}}</view>
</button> </button>
</form> </form>
</view> </view>
<view wx:else> <view wx:else>
<form bindsubmit="onSwitchSpec" report-submit="true" data-attr-idx="{{attr_idx}}" data-item-idx="{{item_idx}}"> <form bindsubmit="onSwitchSpec" report-submit="true" data-attr-idx="{{attr_idx}}"
data-item-idx="{{item_idx}}">
<button formType="submit" class="btn-normal"> <button formType="submit" class="btn-normal">
<view class="cartypeitem">{{item.spec_value}}</view> <view class="cartypeitem">{{item.spec_value}}</view>
</button> </button>

View File

@ -183,20 +183,18 @@ view {
/* 倒计时 */ /* 倒计时 */
.main_tiem {
margin-bottom: 40rpx;
font-size: 32rpx;
text-align: center;
display: flex;
justify-content: center;
}
.main_tiem .main_timer_color { .main_tiem .main_timer_color {
color: #fc8434; color: #fc8434;
} }
.main_tiem view {
display: inline-block;
}
.main_tiem view text {
display: inline-block;
padding: 10rpx 5rpx;
background: #e5e5e5;
}
.main button { .main button {
display: block; display: block;
margin-top: 40rpx; margin-top: 40rpx;

View File

@ -393,8 +393,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 设置当前支付方式 // 设置当前支付方式
_this.setData({ _this.setData({
curPayType: e.currentTarget.dataset.value curPayType: e.currentTarget.dataset.value
@ -449,8 +447,6 @@ Page({
*/ */
onShowPoints(e) { onShowPoints(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 显示dialog // 显示dialog
let setting = _this.data.setting; let setting = _this.data.setting;
Dialog({ Dialog({

View File

@ -1,11 +1,10 @@
const App = getApp();
const Sharing = require('../../../utils/extend/sharing.js'); const Sharing = require('../../../utils/extend/sharing.js');
const wxParse = require("../../../wxParse/wxParse.js"); const wxParse = require("../../../wxParse/wxParse.js");
const Dialog = require('../../../components/dialog/dialog'); const Dialog = require('../../../components/dialog/dialog');
// 工具类
const util = require('../../../utils/util.js'); const util = require('../../../utils/util.js');
const App = getApp()
// 记录规格的数组 // 记录规格的数组
let goodsSpecArr = []; let goodsSpecArr = [];
@ -37,9 +36,6 @@ Page({
cart_total_num: 0, // 购物车商品总数量 cart_total_num: 0, // 购物车商品总数量
goodsMultiSpec: {}, // 多规格信息 goodsMultiSpec: {}, // 多规格信息
countDownList: [], // 时间记录
actEndTimeList: [],
// 分享按钮组件 // 分享按钮组件
share: { share: {
show: false, show: false,
@ -96,8 +92,6 @@ Page({
// 初始化商品详情数据 // 初始化商品详情数据
let data = _this._initGoodsDetailData(result.data); let data = _this._initGoodsDetailData(result.data);
_this.setData(data); _this.setData(data);
// 执行倒计时函数
_this.countDown();
}); });
}, },
@ -128,13 +122,6 @@ Page({
if (goodsDetail.spec_type == 20) { if (goodsDetail.spec_type == 20) {
data.goodsMultiSpec = _this.initManySpecData(goodsDetail.goods_multi_spec); data.goodsMultiSpec = _this.initManySpecData(goodsDetail.goods_multi_spec);
} }
// 记录倒计时时间
data['actEndTimeList'] = [];
if (data.activeList.length > 0) {
data.activeList.forEach(item => {
data['actEndTimeList'].push(item.end_time.text);
});
}
return data; return data;
}, },
@ -163,8 +150,6 @@ Page({
itemIdx = e.currentTarget.dataset.itemIdx, itemIdx = e.currentTarget.dataset.itemIdx,
goodsMultiSpec = _this.data.goodsMultiSpec; goodsMultiSpec = _this.data.goodsMultiSpec;
// 记录formid
App.saveFormId(e.detail.formId);
for (let i in goodsMultiSpec.spec_attr) { for (let i in goodsMultiSpec.spec_attr) {
for (let j in goodsMultiSpec.spec_attr[i].spec_items) { for (let j in goodsMultiSpec.spec_attr[i].spec_items) {
@ -226,7 +211,6 @@ Page({
*/ */
onScrollTop(e) { onScrollTop(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
scrollTop: 0 scrollTop: 0
}); });
@ -247,7 +231,6 @@ Page({
*/ */
onIncGoodsNumber(e) { onIncGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
goods_num: ++_this.data.goods_num goods_num: ++_this.data.goods_num
}) })
@ -258,7 +241,6 @@ Page({
*/ */
onDecGoodsNumber(e) { onDecGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
if (_this.data.goods_num > 1) { if (_this.data.goods_num > 1) {
_this.setData({ _this.setData({
goods_num: --_this.data.goods_num goods_num: --_this.data.goods_num
@ -355,7 +337,6 @@ Page({
*/ */
onTargetToComment(e) { onTargetToComment(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: './comment/comment?goods_id=' + _this.data.goods_id url: './comment/comment?goods_id=' + _this.data.goods_id
}) })
@ -366,8 +347,6 @@ Page({
*/ */
onClickShare(e) { onClickShare(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
'share.show': true 'share.show': true
}); });
@ -429,8 +408,6 @@ Page({
*/ */
onSavePoster(e) { onSavePoster(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
wx.showLoading({ wx.showLoading({
title: '加载中', title: '加载中',
}); });
@ -476,12 +453,8 @@ Page({
/** /**
* 确认购买弹窗 * 确认购买弹窗
*/ */
onToggleTrade(e) { onToggleTrade() {
let _this = this; let _this = this;
if (typeof e === 'object') {
// 记录formId
e.detail.hasOwnProperty('formId') && App.saveFormId(e.detail.formId);
}
_this.setData({ _this.setData({
showBottomPopup: !_this.data.showBottomPopup showBottomPopup: !_this.data.showBottomPopup
}); });
@ -491,8 +464,6 @@ Page({
* 显示拼团规则 * 显示拼团规则
*/ */
onToggleRules(e) { onToggleRules(e) {
// 记录formId
App.saveFormId(e.detail.formId);
// 显示拼团规则 // 显示拼团规则
let _this = this; let _this = this;
Dialog({ Dialog({
@ -511,7 +482,6 @@ Page({
* 返回主页 * 返回主页
*/ */
onNavigationHome(e) { onNavigationHome(e) {
App.saveFormId(e.detail.formId);
wx.switchTab({ wx.switchTab({
url: '../../index/index', url: '../../index/index',
}) })
@ -521,7 +491,6 @@ Page({
* 立即下单 * 立即下单
*/ */
onTriggerOrder(e) { onTriggerOrder(e) {
console.log(App.saveFormId(e.detail.formId))
let _this = this; let _this = this;
// 设置当前购买类型 // 设置当前购买类型
_this.setData({ _this.setData({
@ -530,57 +499,6 @@ Page({
_this.onToggleTrade(); _this.onToggleTrade();
}); });
}, },
/**
* 小于10的格式化函数
*/
timeFormat(param) {
return param < 10 ? '0' + param : param;
},
/**
* 倒计时函数
*/
countDown() {
// 获取当前时间,同时得到活动结束时间数组
let newTime = new Date().getTime();
let endTimeList = this.data.actEndTimeList;
let countDownArr = [];
// 对结束时间进行处理渲染到页面
endTimeList.forEach(o => {
let endTime = new Date(util.format_date(o)).getTime();
let obj = null;
// 如果活动未结束,对时间进行处理
if (endTime - newTime > 0) {
let time = (endTime - newTime) / 1000;
// 获取天、时、分、秒
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt(time % (60 * 60 * 24) / 3600);
let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
obj = {
day: day,
hou: this.timeFormat(hou),
min: this.timeFormat(min),
sec: this.timeFormat(sec)
}
} else {
//活动已结束,全部设置为'00'
obj = {
day: '00',
hou: '00',
min: '00',
sec: '00'
}
}
countDownArr.push(obj);
})
// 渲染,然后每隔一秒执行一次倒计时函数
this.setData({
countDownList: countDownArr
});
setTimeout(this.countDown, 1000);
},
/** /**
* 跳转到拼单页面 * 跳转到拼单页面

View File

@ -4,6 +4,7 @@
"zan-actionsheet": "/components/actionsheet/index", "zan-actionsheet": "/components/actionsheet/index",
"zan-popup": "/components/popup/index", "zan-popup": "/components/popup/index",
"zan-dialog": "/components/dialog/index", "zan-dialog": "/components/dialog/index",
"shortcut": "/components/shortcut/shortcut" "shortcut": "/components/shortcut/shortcut",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -1,8 +1,10 @@
<import src="../../../wxParse/wxParse.wxml"></import> <import src="../../../wxParse/wxParse.wxml"></import>
<scroll-view bindscroll="scroll" scroll-top="{{scrollTop}}" scroll-y="true" style="position:absolute; top:0; left:0; right:0; bottom:0;"> <scroll-view bindscroll="scroll" scroll-top="{{scrollTop}}" scroll-y="true"
style="position:absolute; top:0; left:0; right:0; bottom:0;">
<view class="container" wx:if="{{detail.goods_id}}"> <view class="container" wx:if="{{detail.goods_id}}">
<view class="swiper"> <view class="swiper">
<swiper autoplay="{{autoplay}}" bindchange="setCurrent" class="banner-box swiper-box" duration="{{duration}}" indicator-dots="{{indicatorDots}}" interval="{{interval}}" circular="{{true}}"> <swiper autoplay="{{autoplay}}" bindchange="setCurrent" class="banner-box swiper-box" duration="{{duration}}"
indicator-dots="{{indicatorDots}}" interval="{{interval}}" circular="{{true}}">
<swiper-item wx:for="{{detail.image}}" wx:key="this" catchtap="onPreviewImages" data-index="{{ index }}"> <swiper-item wx:for="{{detail.image}}" wx:key="this" catchtap="onPreviewImages" data-index="{{ index }}">
<image class="slide-image" mode="aspectFill" src="{{item.file_path}}"></image> <image class="slide-image" mode="aspectFill" src="{{item.file_path}}"></image>
</swiper-item> </swiper-item>
@ -121,21 +123,31 @@
<!-- <text class="col-9">更多团购 <text class="iconfont icon-xiangyoujiantou"></text> </text> --> <!-- <text class="col-9">更多团购 <text class="iconfont icon-xiangyoujiantou"></text> </text> -->
</view> </view>
<!-- 进行中的团购-内容部分 --> <!-- 进行中的团购-内容部分 -->
<view class="corwd" wx:for="{{ activeList }}" wx:key="this" catchtap="onTargetActive" data-id="{{ item.active_id }}"> <view class="corwd" wx:for="{{ activeList }}" wx:key="this" catchtap="onTargetActive"
data-id="{{ item.active_id }}">
<view class="corwd_people"> <view class="corwd_people">
<!-- 进行中的团购-头像 --> <!-- 进行中的团购-头像 -->
<view class=""> <view class="">
<image src="{{ item.user.avatarUrl }}" class="corwd_people_images"></image> <image src="{{ item.user.avatarUrl }}" class="corwd_people_images"></image>
</view> </view>
<!-- 进行中的团购-名称 --> <!-- 进行中的团购-名称 -->
<text class="onelist-hidden">{{ item.user.nickName }}的团</text> <text class="onelist-hidden">{{ item.user.nickName }}</text>
</view> </view>
<view class="corwd_time"> <view class="corwd_time">
<view class="corwd_time_text"> <view class="corwd_time_text">
<!-- 进行中的团购-开团人数 --> <!-- 进行中的团购-开团人数 -->
<text class="corwd_time_title onelist-hidden">还差<text>{{ item.people - item.actual_people }}</text>人成团</text> <view class="corwd_time_title onelist-hidden">
<text>还差</text>
<text>{{ item.people - item.actual_people }}</text>
<text>人成团</text>
</view>
<!-- 进行中的团购-倒计时 --> <!-- 进行中的团购-倒计时 -->
<text class="corwd_time_number col-9 onelist-hidden">剩余{{ countDownList[index].day }}天{{ countDownList[index].hou }}:{{ countDownList[index].min }}:{{ countDownList[index].sec }}</text> <view class="corwd_time_number col-9 onelist-hidden">
<text class="prefix">剩余</text>
<countdown date="{{ item.end_time.text }}" separator="colon" style="text" />
</view>
<!-- <text
class="corwd_time_number col-9 onelist-hidden">剩余{{ countDownList[index].day }}天{{ countDownList[index].hou }}:{{ countDownList[index].min }}:{{ countDownList[index].sec }}</text> -->
</view> </view>
<!-- 进行中的团购-按钮 --> <!-- 进行中的团购-按钮 -->
<button>去参团</button> <button>去参团</button>
@ -216,7 +228,9 @@
</form> </form>
<!-- 在线客服 --> <!-- 在线客服 -->
<view class="goods-fixed-icon dis-flex flex-x-center flex-y-center"> <view class="goods-fixed-icon dis-flex flex-x-center flex-y-center">
<button open-type="contact" sessionFrom="weapp" size="27" style="opacity: 0;position:absolute;top:0px;left:0px;display:block;width:100%;height:100%;" type="default-light"></button> <button open-type="contact" sessionFrom="weapp" size="27"
style="opacity: 0;position:absolute;top:0px;left:0px;display:block;width:100%;height:100%;"
type="default-light"></button>
<text class="iconfont icon-kefu"></text> <text class="iconfont icon-kefu"></text>
</view> </view>
<!-- 购买按钮 --> <!-- 购买按钮 -->
@ -281,9 +295,12 @@
<view class="goods-attr"> <view class="goods-attr">
<!-- 滚动容器 --> <!-- 滚动容器 -->
<scroll-view class="goods-attr--scroll" scroll-y="{{ true }}"> <scroll-view class="goods-attr--scroll" scroll-y="{{ true }}">
<view class="group-item" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx" wx:key="this"> <view class="group-item" wx:for="{{ goodsMultiSpec.spec_attr }}" wx:for-item="attr" wx:for-index="attr_idx"
wx:key="this">
<view class="tips-text" data-id="{{ attr.group_id }}">{{ attr.group_name }}</view> <view class="tips-text" data-id="{{ attr.group_id }}">{{ attr.group_name }}</view>
<view class="spec-item {{ item.checked ? 'cur' : '' }}" wx:for="{{ attr.spec_items }}" wx:for-index="item_idx" wx:key="this" data-attr-idx="{{ attr_idx }}" data-item-idx="{{ item_idx }}" catchtap="onSwitchSpec"> <view class="spec-item {{ item.checked ? 'cur' : '' }}" wx:for="{{ attr.spec_items }}"
wx:for-index="item_idx" wx:key="this" data-attr-idx="{{ attr_idx }}" data-item-idx="{{ item_idx }}"
catchtap="onSwitchSpec">
{{ item.spec_value }} {{ item.spec_value }}
</view> </view>
</view> </view>
@ -327,7 +344,9 @@
</view> </view>
<!-- 分享按钮 --> <!-- 分享按钮 -->
<zan-actionsheet show="{{ share.show }}" actions="{{ share.actions }}" cancel-text="{{ share.cancelText }}" cancel-with-mask="{{ share.cancelWithMask }}" bind:cancel="onCloseShare" bind:actionclick="onClickShareItem" mask-class="tiny" /> <zan-actionsheet show="{{ share.show }}" actions="{{ share.actions }}" cancel-text="{{ share.cancelText }}"
cancel-with-mask="{{ share.cancelWithMask }}" bind:cancel="onCloseShare" bind:actionclick="onClickShareItem"
mask-class="tiny" />
<!-- 商品海报 弹出层 --> <!-- 商品海报 弹出层 -->
<zan-popup show="{{ share.showPopup }}" bindclose="onTogglePopup"> <zan-popup show="{{ share.showPopup }}" bindclose="onTogglePopup">

View File

@ -62,13 +62,13 @@
height: 100%; height: 100%;
} }
.footer-fixed .fixed-buttons .order-bt { .footer-fixed .fixed-buttons .order-bt {
width: auto; width: auto;
line-height: unset; line-height: unset;
height: 100%; height: 100%;
} }
.footer-fixed .fixed-buttons .order-number { .footer-fixed .fixed-buttons .order-number {
height: 100%; height: 100%;
} }
@ -578,9 +578,15 @@
} }
.corwd_time_number { .corwd_time_number {
display: block; display: flex;
align-items: center;
justify-content: center;
margin-top: 15rpx; margin-top: 15rpx;
font-size: 23rpx; font-size: 22rpx;
}
.corwd_time_number .prefix {
margin-right: 6rpx;
} }
.corwd_time button { .corwd_time button {

View File

@ -118,9 +118,6 @@ Page({
rpx = systemInfo.windowWidth / 750, // 计算rpx rpx = systemInfo.windowWidth / 750, // 计算rpx
tapHeight = Math.floor(rpx * 98), // tap高度 tapHeight = Math.floor(rpx * 98), // tap高度
scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度 scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度
console.log(
systemInfo.windowHeight
);
this.setData({ this.setData({
scrollHeight scrollHeight
}); });

View File

@ -129,8 +129,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 隐藏支付方式弹窗 // 隐藏支付方式弹窗
_this.onTogglePayPopup(); _this.onTogglePayPopup();
if (!_this.data.showPayPopup) { if (!_this.data.showPayPopup) {

View File

@ -151,8 +151,6 @@ Page({
*/ */
onSelectPayType(e) { onSelectPayType(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 隐藏支付方式弹窗 // 隐藏支付方式弹窗
_this.onTogglePayPopup(); _this.onTogglePayPopup();
if (!_this.data.showPayPopup) { if (!_this.data.showPayPopup) {
@ -227,15 +225,12 @@ Page({
wx.navigateTo({ wx.navigateTo({
url: './comment/comment?order_id=' + order_id, url: './comment/comment?order_id=' + order_id,
}) })
console.log(order_id);
}, },
/** /**
* 跳转订单详情页 * 跳转订单详情页
*/ */
navigateToDetail(e) { navigateToDetail(e) {
// 记录formId
App.saveFormId(e.detail.formId);
let order_id = e.detail.target.dataset.id; let order_id = e.detail.target.dataset.id;
wx.navigateTo({ wx.navigateTo({
url: './detail/detail?order_id=' + order_id url: './detail/detail?order_id=' + order_id
@ -246,8 +241,6 @@ Page({
* 跳转到拼团详情 * 跳转到拼团详情
*/ */
navigateToSharingActive(e) { navigateToSharingActive(e) {
// 记录formId
App.saveFormId(e.detail.formId);
let active_id = e.detail.target.dataset.id; let active_id = e.detail.target.dataset.id;
wx.navigateTo({ wx.navigateTo({
url: '../active/index?active_id=' + active_id url: '../active/index?active_id=' + active_id

View File

@ -48,8 +48,6 @@ Page({
* 切换标签 * 切换标签
*/ */
onSwitchService: function(e) { onSwitchService: function(e) {
// 记录formId
App.saveFormId(e.detail.formId);
this.setData({ this.setData({
serviceType: e.detail.target.dataset.type serviceType: e.detail.target.dataset.type
}); });
@ -59,8 +57,6 @@ Page({
* 跳转商品详情 * 跳转商品详情
*/ */
onGoodsDetail: function(e) { onGoodsDetail: function(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id
}); });
@ -73,8 +69,6 @@ Page({
let _this = this, let _this = this,
index = e.currentTarget.dataset.index, index = e.currentTarget.dataset.index,
imageList = _this.data.imageList; imageList = _this.data.imageList;
// 记录formId
App.saveFormId(e.detail.formId);
// 选择图片 // 选择图片
wx.chooseImage({ wx.chooseImage({
count: 6 - imageList.length, count: 6 - imageList.length,

View File

@ -45,8 +45,6 @@ Page({
* 跳转商品详情 * 跳转商品详情
*/ */
onGoodsDetail: function (e) { onGoodsDetail: function (e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id url: '../../../goods/index?goods_id=' + e.detail.target.dataset.id
}); });
@ -82,8 +80,6 @@ Page({
let _this = this, let _this = this,
values = e.detail.value; values = e.detail.value;
// 记录formId
App.saveFormId(e.detail.formId);
// 判断是否重复提交 // 判断是否重复提交
if (_this.disable === true) { if (_this.disable === true) {

View File

@ -1,17 +1,9 @@
const App = getApp();
// 富文本插件
import wxParse from '../../../wxParse/wxParse.js'; import wxParse from '../../../wxParse/wxParse.js';
// 工具类
import util from '../../../utils/util.js'; import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
// 枚举类:秒杀活动商品状态
import ActiveStatusEnum from '../../../utils/enum/sharp/GoodsStatus.js'; import ActiveStatusEnum from '../../../utils/enum/sharp/GoodsStatus.js';
const App = getApp();
// 记录规格的数组 // 记录规格的数组
let goodsSpecArr = []; let goodsSpecArr = [];
@ -61,15 +53,11 @@ Page({
// 返回顶部 // 返回顶部
showTopWidget: false, showTopWidget: false,
// 倒计时
countDownObj: {
date: '',
dynamic: {}
},
active: {}, // 秒杀活动详情 active: {}, // 秒杀活动详情
goods: {}, // 商品详情 goods: {}, // 商品详情
countDownTime: false // 倒计时
}, },
/** /**
@ -151,14 +139,7 @@ Page({
const countDownTime = data.active.active_status == ActiveStatusEnum.STATE_SOON.value ? const countDownTime = data.active.active_status == ActiveStatusEnum.STATE_SOON.value ?
data.active.start_time : data.active.end_time data.active.start_time : data.active.end_time
app.setData({ app.setData({
'countDownObj.date': countDownTime countDownTime
})
// 执行倒计时
CountDown.start(0, app, 'countDownObj', () => {
// 倒计时结束刷新页面
setTimeout(() => {
app.onRefreshPage()
}, 800)
}) })
}, },
@ -178,6 +159,15 @@ Page({
return data; return data;
}, },
// 倒计时结束刷新页面
onCountDownEnd() {
const app = this
console.log('onCountDownEnd')
setTimeout(() => {
app.onRefreshPage()
}, 200)
},
/** /**
* 点击切换不同规格 * 点击切换不同规格
*/ */
@ -186,8 +176,6 @@ Page({
attrIdx = e.currentTarget.dataset.attrIdx, attrIdx = e.currentTarget.dataset.attrIdx,
itemIdx = e.currentTarget.dataset.itemIdx, itemIdx = e.currentTarget.dataset.itemIdx,
goodsMultiSpec = _this.data.goodsMultiSpec; goodsMultiSpec = _this.data.goodsMultiSpec;
// 记录formid
App.saveFormId(e.detail.formId);
for (let i in goodsMultiSpec.spec_attr) { for (let i in goodsMultiSpec.spec_attr) {
for (let j in goodsMultiSpec.spec_attr[i].spec_items) { for (let j in goodsMultiSpec.spec_attr[i].spec_items) {
if (attrIdx == i) { if (attrIdx == i) {
@ -302,8 +290,6 @@ Page({
*/ */
onClickShare(e) { onClickShare(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
'share.show': true 'share.show': true
}); });
@ -366,8 +352,6 @@ Page({
*/ */
onSavePoster(e) { onSavePoster(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
wx.showLoading({ wx.showLoading({
title: '加载中', title: '加载中',
}); });
@ -415,7 +399,6 @@ Page({
*/ */
onIncGoodsNumber(e) { onIncGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
_this.setData({ _this.setData({
goods_num: ++_this.data.goods_num goods_num: ++_this.data.goods_num
}) })
@ -426,7 +409,6 @@ Page({
*/ */
onDecGoodsNumber(e) { onDecGoodsNumber(e) {
let _this = this; let _this = this;
App.saveFormId(e.detail.formId);
if (_this.data.goods_num > 1) { if (_this.data.goods_num > 1) {
_this.setData({ _this.setData({
goods_num: --_this.data.goods_num goods_num: --_this.data.goods_num
@ -451,12 +433,8 @@ Page({
/** /**
* 确认购买弹窗 * 确认购买弹窗
*/ */
onToggleTrade(e) { onToggleTrade() {
let _this = this; let _this = this;
if (typeof e === 'object') {
// 记录formId
e.detail.hasOwnProperty('formId') && App.saveFormId(e.detail.formId);
}
_this.setData({ _this.setData({
showBottomPopup: !_this.data.showBottomPopup showBottomPopup: !_this.data.showBottomPopup
}); });
@ -467,8 +445,6 @@ Page({
*/ */
onCheckout(e) { onCheckout(e) {
let _this = this; let _this = this;
// 记录formId
App.saveFormId(e.detail.formId);
// 表单验证 // 表单验证
if (!_this._onVerify()) { if (!_this._onVerify()) {
return false; return false;
@ -514,8 +490,6 @@ Page({
* 跳转到首页 * 跳转到首页
*/ */
onTargetHome(e) { onTargetHome(e) {
// 记录formid
App.saveFormId(e.detail.formId);
wx.switchTab({ wx.switchTab({
url: '../../index/index', url: '../../index/index',
}) })

View File

@ -3,6 +3,7 @@
"usingComponents": { "usingComponents": {
"zan-actionsheet": "/components/actionsheet/index", "zan-actionsheet": "/components/actionsheet/index",
"zan-popup": "/components/popup/index", "zan-popup": "/components/popup/index",
"shortcut": "/components/shortcut/shortcut" "shortcut": "/components/shortcut/shortcut",
"countdown": "/components/countdown/index"
} }
} }

View File

@ -62,10 +62,11 @@
</view> </view>
<!-- 活动倒计时 --> <!-- 活动倒计时 -->
<view wx:if="{{ active.active_status != ActiveStatusEnum.STATE_END.value }}" <view wx:if="{{ active.active_status != ActiveStatusEnum.STATE_END.value }}"
class="info-item info-item_status info-item_countdown"> class="info-item info-item_status info-item_countdown dis-flex flex-y-center">
<text class="countdown-icon iconfont icon-naozhong"></text> <text class="countdown-icon iconfont icon-naozhong"></text>
<text>距离秒杀{{ active.active_status == ActiveStatusEnum.STATE_SOON.value ? '开始' : '结束' }}</text> <text>距离秒杀{{ active.active_status == ActiveStatusEnum.STATE_SOON.value ? '开始' : '结束' }}</text>
<text>还剩{{ countDownObj.dynamic.hou }}时{{ countDownObj.dynamic.min }}分{{ countDownObj.dynamic.sec }}秒</text> <text class="m-r-10">还剩</text>
<countdown wx:if="{{ countDownTime }}" date="{{ countDownTime }}" bind:finish="onCountDownEnd" />
</view> </view>
<!-- 活动已结束 --> <!-- 活动已结束 -->
<view wx:else class="info-item info-item_status info-item_end"> <view wx:else class="info-item info-item_status info-item_end">

View File

@ -1,14 +1,8 @@
const App = getApp();
// 工具类
import util from '../../../utils/util.js'; import util from '../../../utils/util.js';
// 倒计时插件
import CountDown from '../../../utils/countdown.js';
// 枚举类:秒杀会场活动状态
import StateEnum from '../../../utils/enum/sharp/ActiveStatus.js'; import StateEnum from '../../../utils/enum/sharp/ActiveStatus.js';
const App = getApp()
Page({ Page({
/** /**
@ -25,11 +19,7 @@ Page({
StateEnum, // 枚举类:秒杀会场活动状态 StateEnum, // 枚举类:秒杀会场活动状态
// 倒计时 countDownTime: false, // 倒计时日期
countDownObj: {
date: '',
dynamic: {}
},
// 秒杀活动场次 // 秒杀活动场次
tabbar: [], tabbar: [],
@ -99,24 +89,25 @@ Page({
/** /**
* 初始化倒计时组件 * 初始化倒计时组件
* mix: 怎么才能每次执行这里的时候不重复触发定时器
*/ */
_initCountDownData(countId = 0) { _initCountDownData() {
const app = this, const app = this,
curTabbar = app.data.tabbar[app.data.curTabIndex]; curTabbar = app.data.tabbar[app.data.curTabIndex];
// 记录倒计时的时间 // 记录倒计时的时间
app.setData({ app.setData({
'countDownObj.date': curTabbar.count_down_time countDownTime: curTabbar.count_down_time
})
// 执行倒计时
CountDown.start(countId, app, 'countDownObj', () => {
// 倒计时结束刷新页面
setTimeout(() => {
app.onRefreshPage()
}, 800)
}) })
}, },
// 倒计时结束刷新页面
onCountDownEnd() {
console.log('onCountDownEnd')
const app = this
setTimeout(() => {
app.onRefreshPage()
}, 200)
},
/** /**
* 切换tabbar * 切换tabbar
*/ */
@ -134,7 +125,7 @@ Page({
// 获取列表数据 // 获取列表数据
_this.getGoodsList(); _this.getGoodsList();
// 初始化倒计时组件 // 初始化倒计时组件
_this._initCountDownData(curTabIndex); _this._initCountDownData();
}, },
/** /**

View File

@ -1,4 +1,7 @@
{ {
"navigationBarTitleText": "整点秒杀", "navigationBarTitleText": "整点秒杀",
"enablePullDownRefresh": true "enablePullDownRefresh": true,
"usingComponents": {
"countdown": "/components/countdown/index"
}
} }

View File

@ -29,26 +29,8 @@
</view> </view>
<!-- 倒计时 --> <!-- 倒计时 -->
<view class="active--count-down dis-flex flex-y-center"> <view class="active--count-down dis-flex flex-y-center">
<view class="clock-text"> <text class="m-r-10">{{ tabbar[curTabIndex].status == StateEnum.ACTIVE_STATE_BEGIN.value ? '距结束' : '距开始' }}</text>
<text>{{ tabbar[curTabIndex].status == StateEnum.ACTIVE_STATE_BEGIN.value ? '距结束' : '距开始' }}</text> <countdown wx:if="{{ countDownTime }}" date="{{ countDownTime }}" style="custom" bind:finish="onCountDownEnd" />
</view>
<view class="clock dis-flex">
<view class="clock-time">
<text>{{ countDownObj.dynamic.hou }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownObj.dynamic.min }}</text>
</view>
<view class="clock-symbol">
<text>:</text>
</view>
<view class="clock-time">
<text>{{ countDownObj.dynamic.sec }}</text>
</view>
</view>
</view> </view>
</view> </view>
<!-- 内容区域 --> <!-- 内容区域 -->

View File

@ -77,7 +77,7 @@ page, .container {
.sharp-active .active-status { .sharp-active .active-status {
font-size: 32rpx; font-size: 32rpx;
color: #fd4a5f; color: #fd4a5f;
margin-bottom: 15rpx; margin-bottom: 20rpx;
} }
.sharp-active .active-status .active-status--icon { .sharp-active .active-status .active-status--icon {
@ -95,22 +95,6 @@ page, .container {
height: 40rpx; height: 40rpx;
} }
.active--count-down .clock-text {
margin-right: 10rpx;
}
.active--count-down .clock-time {
background: #252525;
color: #fff;
padding: 0 8rpx;
line-height: 40rpx;
border-radius: 8rpx;
}
.active--count-down .clock-symbol {
padding: 0 8rpx;
}
/* 商品列表 */ /* 商品列表 */
.bargain-hall { .bargain-hall {

View File

@ -50,8 +50,6 @@ Page({
if (!_this.onCheckLogin()) { if (!_this.onCheckLogin()) {
return false; return false;
} }
// 记录formid
App.saveFormId(e.detail.formId);
let urls = { let urls = {
all: '/pages/order/index?type=all', all: '/pages/order/index?type=all',
payment: '/pages/order/index?type=payment', payment: '/pages/order/index?type=payment',
@ -72,8 +70,6 @@ Page({
if (!_this.onCheckLogin()) { if (!_this.onCheckLogin()) {
return false; return false;
} }
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '/' + e.currentTarget.dataset.url url: '/' + e.currentTarget.dataset.url
}) })
@ -87,8 +83,6 @@ Page({
if (!_this.onCheckLogin()) { if (!_this.onCheckLogin()) {
return false; return false;
} }
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: './wallet/index' url: './wallet/index'
}) })
@ -102,8 +96,6 @@ Page({
if (!_this.onCheckLogin()) { if (!_this.onCheckLogin()) {
return false; return false;
} }
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../points/log/index' url: '../points/log/index'
}); });

View File

@ -73,8 +73,6 @@ Page({
onSubmit(e) { onSubmit(e) {
let _this = this; let _this = this;
// 记录formid
App.saveFormId(e.detail.formId);
// 按钮禁用 // 按钮禁用
_this.setData({ _this.setData({

View File

@ -39,8 +39,6 @@ Page({
* 跳转充值页面 * 跳转充值页面
*/ */
onTargetRecharge(e) { onTargetRecharge(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../recharge/index' url: '../recharge/index'
}) })
@ -50,8 +48,6 @@ Page({
* 跳转充值记录页面 * 跳转充值记录页面
*/ */
onTargetRechargeOrder(e) { onTargetRechargeOrder(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../recharge/order/index' url: '../recharge/order/index'
}) })
@ -61,8 +57,6 @@ Page({
* 跳转账单详情页面 * 跳转账单详情页面
*/ */
onTargetBalanceLog(e) { onTargetBalanceLog(e) {
// 记录formId
App.saveFormId(e.detail.formId);
wx.navigateTo({ wx.navigateTo({
url: '../wallet/balance/log' url: '../wallet/balance/log'
}) })

View File

@ -1,15 +1,16 @@
/* iconfont */ /* iconfont */
@import "/utils/iconfont.wxss"; @import "/utils/iconfont.wxss";
.container, input { .container,
input {
font-family: PingFang-Medium, font-family: PingFang-Medium,
PingFangSC-Regular, PingFangSC-Regular,
Heiti, Heiti,
Heiti SC, Heiti SC,
DroidSans, DroidSans,
DroidSansFallback, DroidSansFallback,
"Microsoft YaHei", "Microsoft YaHei",
sans-serif; sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
} }
@ -279,6 +280,10 @@
margin-left: 20rpx; margin-left: 20rpx;
} }
.m-r-10 {
margin-right: 10rpx;
}
.p-bottom { .p-bottom {
padding-bottom: 112rpx; padding-bottom: 112rpx;
} }

View File

@ -1,3 +1,3 @@
{ {
"version": "1.1.45" "version": "1.1.46"
} }