This commit is contained in:
liu 2023-03-24 11:26:36 +08:00
parent 396f5f32d5
commit b1bffc6967
189 changed files with 35422 additions and 0 deletions

View File

@ -0,0 +1,742 @@
// eaterplanet_ecommerce/pages/goods/buyRecords.js
var util = require('../../utils/util.js');
var status = require('../../utils/index.js');
var app = getApp();
var buyClearTime = null;
function count_down(that, total_micro_second) {
var second = Math.floor(total_micro_second / 1000);
var days = second / 3600 / 24;
var daysRound = Math.floor(days);
var hours = second / 3600 - (24 * daysRound);
var hoursRound = Math.floor(hours);
var minutes = second / 60 - (24 * 60 * daysRound) - (60 * hoursRound);
var minutesRound = Math.floor(minutes);
var seconds = second - (24 * 3600 * daysRound) - (3600 * hoursRound) - (60 * minutesRound);
that.setData({
endtime: {
days: fill_zero_prefix(daysRound),
hours: fill_zero_prefix(hoursRound),
minutes: fill_zero_prefix(minutesRound),
seconds: fill_zero_prefix(seconds),
show_detail: 1
}
});
if (total_micro_second <= 0) {
clearTimeout(buyClearTime);
that.setData({
endtime: {
days: "00",
hours: "00",
minutes: "00",
seconds: "00",
}
});
return;
}
buyClearTime = setTimeout(function() {
total_micro_second -= 1000;
count_down(that, total_micro_second);
}, 1000)
}
// 位数不足补零
function fill_zero_prefix(num) {
return num < 10 ? "0" + num : num
}
Page({
mixins: [require('../../mixin/globalMixin.js')],
data: {
showData: 1,
goodDetail: {},
showTitle: "",
endTime: "",
loadText: "正在加载",
showBtn: true,
showSku: false,
skuList: [],
cartNum: 0,
type: 0,
goodsStatus: 0,
needAuth: false,
goodsIndex: 1,
goods_id: 0,
endtime: {
days: "00",
hours: "00",
minutes: "00",
seconds: "00",
},
rushList: [],
hasRefeshin: false,
pageNum: 1,
is_share_html: true,
iconArr: {
home: '',
car: ''
}
},
goodId: 0,
community_id: '',
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
var token = wx.getStorageSync('token');
status.setIcon().then(function(iconArr) {
that.setData({ iconArr });
});
this.goodId = options.id;
this.community_id = options.community_id;
let currentCommunity = wx.getStorageSync('community');
let currentCommunity_id = (currentCommunity && currentCommunity.communityId) || '';
if (!currentCommunity_id) {
let community = {};
if (options.community_id !== void 0 && options.community_id > 0) {
community.communityId = options.community_id;
}
util.getCommunityInfo(community).then(function(res) {
console.log('step1')
paramHandle();
get_goods_details(res);
}).catch((param) => {
console.log('step4 新人')
if (Object.keys(param) != '') {
that.addhistory(param, true);
}
});
} else {
console.log('step3')
paramHandle();
get_goods_details();
}
if (options.share_id != 'undefined' && options.share_id > 0) wx.setStorage({
key: "share_id",
data: options.share_id
})
function paramHandle() {
console.log('step2')
if (options.community_id != 'undefined' && options.community_id > 0) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_community_info',
'community_id': options.community_id
},
dataType: 'json',
success: function(res) {
if (res.data.code == 0) {
var community = res.data.data;
let community_id = currentCommunity_id;
if (options.community_id != community_id) {
wx.showModal({
title: '温馨提示',
content: '是否切换为分享人所在小区“' + community.communityName,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
app.globalData.community = community;
app.globalData.changedCommunity = true;
wx.setStorage({
key: "community",
data: community
})
token && that.addhistory(community);
get_goods_details(community);
console.log('用户点击确定')
} else if (res.cancel) {
that.showNoBindCommunity();
console.log('用户点击取消')
}
}
})
}
}
}
})
}
that.setData({
goods_id: options.id
}, () => {
that.load_buy_record();
})
}
function get_goods_details(communityInfo) {
if (communityInfo) currentCommunity_id = communityInfo.communityId;
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'goods.get_goods_detail',
'token': token,
'id': options.id,
community_id: currentCommunity_id
},
dataType: 'json',
success: function(res) {
wx.hideLoading();
let goods = (res.data.data && res.data.data.goods) || '';
// 商品不存在
if (!goods || goods.length == 0 || Object.keys(goods) == '') {
wx.showModal({
title: '提示',
content: '该商品不存在,回首页',
showCancel: false,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index',
})
}
}
})
}
let comment_list = res.data.comment_list;
comment_list.map(function(item) {
14 * item.content.length / app.globalData.systemInfo.windowWidth > 3 && (item.showOpen = true), item.isOpen = true;
})
that.setData({
order_comment_count: res.data.order_comment_count,
order_comment_images: res.data.order_comment_images,
comment_list: comment_list,
loadover: true,
goods: goods,
buy_record_arr: res.data.data.buy_record_arr,
site_name: res.data.data.site_name,
share_title: goods.share_title,
options: res.data.data.options,
goods_image: res.data.data.goods_image,
goods_image_length: res.data.data.goods_image.length,
service: goods.tag,
favgoods: goods.favgoods,
cur_time: res.data.data.cur_time,
order: {
goods_id: res.data.data.goods.goods_id,
pin_id: res.data.data.pin_id,
},
showSkeleton: false,
is_comunity_rest: res.data.is_comunity_rest,
goodsdetails_addcart_bg_color: res.data.goodsdetails_addcart_bg_color || 'linear-gradient(270deg, #f9c706 0%, #feb600 100%)',
goodsdetails_buy_bg_color: res.data.goodsdetails_buy_bg_color || 'linear-gradient(90deg, #ff5041 0%, #ff695c 100%)'
})
if (res.data.is_comunity_rest == 1) {
wx.showModal({
title: '温馨提示',
content: '团长休息中,欢迎下次光临!',
showCancel: false,
confirmColor: '#F75451',
confirmText: '好的',
success(res) {}
})
}
let over_type = goods.over_type;
var seconds = 0;
if (over_type == 0) {
seconds = (goods.begin_time - res.data.data.cur_time) * 1000;
} else {
seconds = (goods.end_time - res.data.data.cur_time) * 1000;
}
if (seconds > 0) {
count_down(that, seconds);
}
}
})
}
},
//未绑定提示
showNoBindCommunity: function() {
wx.showModal({
title: '提示',
content: '您未绑定该小区,请切换后下单!',
showCancel: false,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/position/community',
})
}
}
})
},
/**
* 历史社区
*/
addhistory: function(community, isNew = false) {
var community_id = community.communityId;
console.log('addhistory');
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.addhistory_community',
community_id: community_id,
'token': token
},
dataType: 'json',
success: function(res) {
if (isNew) {
console.log('新人 社区')
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_community_info',
community_id: community_id
},
dataType: 'json',
success: function(result) {
if (result.data.code == 0) {
let community = result.data.data;
app.globalData.community = community;
app.globalData.changedCommunity = true;
wx.setStorage({
key: "community",
data: community
})
}
}
})
}
}
})
},
/**
* 授权成功回调
*/
authSuccess: function() {
var id = this.goodId;
let currentCommunity = wx.getStorageSync('community');
let community_id = (currentCommunity && currentCommunity.communityId) || (this.community_id || '');
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/goods/buyRecords?id=' + id + '&community_id=' + community_id,
})
},
authModal: function () {
if (this.data.needAuth) {
this.setData({ showAuthModal: !this.data.showAuthModal });
return false;
}
return true;
},
load_buy_record: function() {
var that = this;
var goods_id = this.data.goods_id;
if (!that.data.hasRefeshin) {
that.setData({
hasRefeshin: true,
loadMore: true
});
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'goods.load_buy_recordlist',
goods_id: goods_id,
pageNum: that.data.pageNum,
},
dataType: 'json',
success: function(res) {
if (res.data.code == 0) {
let rushList = that.data.rushList.concat(res.data.data);
that.setData({
rushList: rushList,
pageNum: that.data.pageNum + 1,
loadMore: false,
hasRefeshin: false,
tip: ''
});
} else if (res.data.code == 1) {
//go data
that.setData({
loadMore: false,
tip: '^_^已经到底了'
})
} else if (res.data.code == 2) {
//no login
}
}
})
}
},
addToCart: function(e) {
if (!this.authModal()) return;
var that = this;
var from_id = e.detail.formId;
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": from_id
},
dataType: 'json',
success: function(res) {}
})
that.setData({
is_just_addcar: 1
})
//加入购物车
that.openSku();
},
openSku: function() {
var that = this;
var goods_id = this.data.goods_id;
var options = this.data.options;
that.setData({
addCar_goodsid: goods_id
})
let list = options.list || [];
let arr = [];
if (list.length > 0) {
for (let i = 0; i < list.length; i++) {
let sku = list[i]['option_value'][0];
let temp = {
name: sku['name'],
id: sku['option_value_id'],
index: i,
idx: 0
};
arr.push(temp);
}
//把单价剔除出来begin
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var cur_sku_arr = options.sku_mu_list[id];
that.setData({
sku: arr,
sku_val: 1,
cur_sku_arr: cur_sku_arr,
skuList: options,
visible: true,
showSku: true
});
} else {
let goods = this.data.goods;
let cur_sku_arr = {
canBuyNum: goods.total,
spuName: goods.goodsname,
actPrice: goods.actPrice,
marketPrice: goods.marketPrice,
stock: goods.total,
skuImage: goods.image_thumb
}
that.setData({
sku: [],
sku_val: 1,
cur_sku_arr: cur_sku_arr,
skuList: []
})
let formIds = {
detail: {
formId: ""
}
};
formIds.detail.formId = "the formId is a mock one";
that.gocarfrom(formIds);
//todo...addcart
}
},
gocarfrom: function(e) {
var that = this;
var is_just_addcar = this.data.is_just_addcar;
wx.showLoading();
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": e.detail.formId
},
dataType: 'json',
success: function(res) {}
})
that.goOrder();
},
closeSku: function() {
this.setData({
visible: 0,
stopClick: false,
});
},
goOrder: function() {
var that = this;
if (that.data.can_car) {
that.data.can_car = false;
}
var token = wx.getStorageSync('token');
var community = wx.getStorageSync('community');
var goods_id = that.data.goods_id;
var community_id = community.communityId;
var quantity = that.data.sku_val;
var cur_sku_arr = that.data.cur_sku_arr;
var sku_str = '';
var is_just_addcar = that.data.is_just_addcar;
if (cur_sku_arr && cur_sku_arr.option_item_ids) {
sku_str = cur_sku_arr.option_item_ids;
}
let data = {
goods_id,
community_id,
quantity,
sku_str,
buy_type: 'dan',
pin_id: 0,
is_just_addcar
}
util.addCart(data).then(res=>{
if(res.showVipModal==1) {
let { pop_vipmember_buyimage } = res.data;
wx.hideLoading();
that.setData({ pop_vipmember_buyimage, showVipModal: true, visible: false })
} else {
if (res.data.code == 3 || res.data.code == 7) {
wx.showToast({
title: res.data.msg,
icon: 'none',
duration: 2000
})
} else if (res.data.code == 4) {
wx.showToast({
title: '您未登录',
duration: 2000,
})
} else if (res.data.code == 6) {
var msg = res.data.msg;
let max_quantity = res.data.max_quantity || '';
(max_quantity > 0) && that.setData({ sku_val: max_quantity })
wx.showToast({
title: msg,
icon: 'none',
duration: 2000
})
} else {
if (is_just_addcar == 1) {
that.closeSku();
wx.showToast({
title: "已加入购物车",
image: "../../images/addShopCart.png"
})
app.globalData.cartNum = res.data.total
that.setData({
cartNum: res.data.total
});
status.indexListCarCount(goods_id);
} else {
var pages_all = getCurrentPages();
if (pages_all.length > 3) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan'
})
} else {
wx.navigateTo({
url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan'
})
}
}
}
}
}).catch(res=>{
app.util.message(res||'请求失败', '', 'error');
})
},
selectSku: function(event) {
var that = this;
let str = event.currentTarget.dataset.type;
let obj = str.split("_");
let arr = that.data.sku;
let temp = {
name: obj[3],
id: obj[2],
index: obj[0],
idx: obj[1]
};
arr.splice(obj[0], 1, temp);
that.setData({
sku: arr
})
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var options = this.data.skuList;
var cur_sku_arr = options.sku_mu_list[id];
that.setData({
cur_sku_arr: cur_sku_arr
});
console.log(id);
},
submit: function(e) {
var from_id = e.detail.formId;
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": from_id
},
dataType: 'json',
success: function(res) {}
})
},
balance: function(e) {
if (!this.authModal()) return;
this.setData({
is_just_addcar: 0
})
//加入购物车
this.openSku();
},
setNum: function(event) {
let types = event.currentTarget.dataset.type;
var that = this;
var num = 1;
let sku_val = this.data.sku_val * 1;
if (types == 'add') {
num = sku_val + 1;
} else if (types == 'decrease') {
if (sku_val > 1) {
num = sku_val - 1;
}
}
let arr = that.data.sku;
var options = this.data.skuList;
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var cur_sku_arr = options.sku_mu_list[id];
if (num > cur_sku_arr['canBuyNum']) {
num = num - 1;
}
this.setData({
sku_val: num
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
let that = this;
util.check_login_new().then((res) => {
if (!res) {
that.setData({
needAuth: true
})
} else {
(0, status.cartNum)('', true).then((res) => {
res.code == 0 && that.setData({
cartNum: res.data
})
});
}
})
},
/**
* 提交购物车
*/
confirmSku: function() {
var t = this;
this.closeSku();
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
clearTimeout(buyClearTime);
console.log('onUload')
this.setData({
showSku: false
});
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
this.load_buy_record();
}
})

View File

@ -0,0 +1,13 @@
{
"navigationBarBackgroundColor": "#FFF",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "购买记录",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-new-auth": "../../components/new-auth/index",
"i-card": "../../components/card/index",
"i-img": "../../components/img/index",
"i-load-more": "../../components/load-more/index",
"i-sku": "../../components/sku/index"
}
}

View File

@ -0,0 +1,169 @@
<ep-navBar title="购买记录" background='linear-gradient(270deg,#f9c706 0%,#feb600 100%)' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view>
<view class="goodsInfo">
<i-img class="goodsImg" defaultImage="../../images/placeholder-refund.png" height="90" iClass="img-class" loadImage="{{goods.one_image}}" width="90"></i-img>
<view class="goodsDetail">
<view class="detailTop">
<view class="detailTopInfo">
<view class="goodsName">{{goods.goodsname}}</view>
<view class="purchasing" wx:if="{{goods.one_limit_count > 0 || goods.total_limit_count > 0}}">
<text wx:if="{{goods.total_limit_count > 0}}">每人限购{{goods.total_limit_count}}份</text>
<text wx:if="{{goods.one_limit_count > 0}}"> 每单限购{{goods.one_limit_count}}份</text>
</view>
<view class="saleNum">已售{{goods.seller_count}}{{goods_sale_unit}},剩余{{goods.total}}{{goods_sale_unit}}</view>
</view>
<button class="shareBtn" hoverClass="none" openType="share">
<image class="shareImg" src="../../images/shareImg.png"></image>
</button>
</view>
<view class="detailBottom">
<view class="price">¥
<text class="salePrice">{{goods.price_front}}</text>.{{goods.price_after}}</view>
<view class="time">
<text wx:if="{{goods.over_type == 1}}">距结束</text>
<text class="endAct" wx:if="{{goods.over_type == 0}}">距开始</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">结束时间</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">{{goods.end_date}}</text>
<view class="countdown-class i-count-down" wx:else>
<em wx:if="{{endtime.days > 0}}">{{endtime.days}}天</em>
<span class="item-class">{{endtime.hours}}</span>:
<span class="item-class">{{endtime.minutes}}</span>:
<span class="item-class">{{endtime.seconds}}</span>
</view>
</view>
</view>
</view>
</view>
<view class="noBuyList" style="height:{{containerHeight}}px" wx:if="{{rushList.length===0}}">
<view class="noBuyListCon">
<image class="noBuyListImg" src="../../images/noData.png"></image>
<view class="noBuyListTit">还没有人购买哦</view>
</view>
</view>
<view class="buyRecords" wx:if="{{rushList.length>0}}">
<view class="buyListCon">
<i-card>
<view class="buyList" slot="content">
<view class="buyListInfo" wx:for="{{rushList}}" wx:key="key">
<i-img data-index="{{index}}" defaultImage="../../images/head-bitmap.png" height="36" iClass="userImg" imgType="5" loadImage="{{item.avatar}}" width="36"></i-img>
<view class="userName">{{item.username}}</view>
<view class="buyNum">买了
<text>{{item.quantity}}</text>份</view>
<view class="buyTime">{{item.pay_time}}</view>
</view>
</view>
</i-card>
<i-load-more iClass="loadMore" loading="{{loadMore}}" tip="{{loadText}}" wx:if="{{loadMore}}"></i-load-more>
</view>
</view>
<!--底部按钮begin-->
<view class='i-fixed-bottom'>
<view class="goods-bottom-bar">
<view class="leftBtn">
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/index/index">
<view class="bar-item back-to-index">
<image class="icon" src="{{iconArr.home}}"></image>
回首页
</view>
</navigator>
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/order/shopCart">
<view class="bar-item shop-cart">
<view class="icon">
<image src="{{iconArr.car}}"></image>
<view class="cart-num" wx:if="{{cartNum}}">{{cartNum}}</view>
</view>
购物车
</view>
</navigator>
</view>
<view class="goodsStatus" wx:if="{{goods.total<=0}}">已抢光</view>
<view class="goodsStatus" wx:elif="{{goods.total > 0 && goods.over_type ==2}}">已结束</view>
<view class="goodsStatus" wx:elif="{{goods.grounding != 1}}">已下架</view>
<view class="goodsStatus" wx:elif="{{goods.over_type == 0}}">即将开抢</view>
<view class="goodsStatus" wx:elif="{{is_comunity_rest == 1}}">团长休息中</view>
<view class="gobuy" wx:else>
<form bindsubmit="addToCart" reportSubmit="true">
<view class="bar-item add-to-cart" style='background: {{goodsdetails_addcart_bg_color}}'>加入购物车</view>
<button class="btn" formType="submit"></button>
</form>
<form bindsubmit="submit" reportSubmit="true">
<button hidden formType="submit" id="formId"></button>
</form>
<label class="balanceBtn" for="formId">
<view bindtap="balance" class="bar-item balance" style='background: {{goodsdetails_buy_bg_color}}'>立即购买</view>
</label>
</view>
</view>
</view>
<!--底部按钮end-->
<view class="mask" bindtap='closeSku' hidden="{{!visible}}"></view>
<!---规格选择begin-->
<view bind:cancel="close" class='sku-content' scrollUp="{{true}}" hidden="{{!visible}}">
<view class="sku-card">
<view bindtap="closeSku" class="close">
<image src="../../images/icon-sku-close.png"></image>
</view>
<view class="sku-header">
<image src='{{cur_sku_arr.skuImage}}' style="width:80px;height:80px;" class='sku-img'></image>
<view class="sku-desc">
<view class="sku-title">
<span>{{cur_sku_arr.spuName}}</span>
</view>
<view class="sku-price">
<view class="sale-price">
¥
<span>{{cur_sku_arr.actPrice[0]}}</span>.{{cur_sku_arr.actPrice[1]}}
</view>
<view class="market-price">¥{{cur_sku_arr.marketPrice[0]}}.{{cur_sku_arr.marketPrice[1]}}</view>
</view>
<view class="sku-switch-on" wx:if="{{cur_sku_arr.spec}}">已选择:{{cur_sku_arr.spec}}</view>
</view>
</view>
<view class="sku-spec" wx:for="{{skuList.list}}" wx:key="{{index}}">
<view class="title">{{item.name}}</view>
<view class="spec-list">
<span bindtap="selectSku" class="{{idx==sku[index]['idx']?'on':''}}" data-disabled="{{item.canBuyNum-value<0}}" data-type="{{index}}_{{idx}}_{{value.option_value_id}}_{{value.name}}" wx:for-index="idx" data-idx="{{idx}}" wx:for="{{item.option_value}}"
wx:for-item="value">{{value.name}}</span>
</view>
</view>
<view class="sku-num-content">
<view class="title">数量</view>
<view class="i-class i-input-number i-input-number-size-{{size}}">
<view bindtap="setNum" data-type="decrease" class="i-input-number-minus {{value<=min?'i-input-number-disabled':''}}">
<image src="../../images/icon-input-reduce.png"></image>
</view>
<input bindblur="handleBlur" bindfocus="handleFocus" class="i-input-number-text {{min>=max?'i-input-number-disabled':''}}" disabled="true" type="number" value="{{sku_val}}"></input>
<view bindtap="setNum" data-type="add" class="i-input-number-plus {{value>=max?'i-input-number-disabled':''}}">
<image src="../../images/icon-input-add.png"></image>
</view>
</view>
<view class="msg" wx:if="{{skuList[current].isLimit}}">
<span wx:if="{{skuList[current].limitMemberNum>-1}}">每人限{{skuList[current].limitMemberNum}}单</span>
<span wx:if="{{skuList[current].limitOrderNum>-1}}">每单限{{skuList[current].limitOrderNum}}份</span>
<span></span>
</view>
<view class="even-num" wx:elif="{{!skuList[current].isLimit&&skuList[current].canBuyNum-value<=10&&skuList[current].canBuyNum-value>-1}}">还可以购买 {{skuList[current].canBuyNum-value}} 件</view>
</view>
<form bindsubmit="gocarfrom" report-submit="true">
<button formType="submit" class="sku-confirm" disabled='{{cur_sku_arr.stock==0 ? true : false}}'>
<view>{{cur_sku_arr.stock==0?"已抢光":"确定"}}</view>
</button>
</form>
</view>
</view>
<!---规格选择end-->
</view>
<i-new-auth needAuth="{{needAuth&&showAuthModal}}" bind:authSuccess="authSuccess" bind:cancel="authModal" needPosition="{{needPosition}}"></i-new-auth>
<i-vip-modal visible="{{showVipModal}}" imgUrl="{{pop_vipmember_buyimage}}" />

View File

@ -0,0 +1,384 @@
.noBuyList {
background: #fff;
}
.noBuyList .noBuyListCon {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
padding-bottom: 100rpx;
}
.noBuyList .noBuyListCon .noBuyListImg {
width: 218rpx;
height: 218rpx;
margin-top: 200rpx;
margin-bottom: 30rpx;
}
.noBuyList .noBuyListCon .noBuyListTit {
font-size: 30rpx;
color: #666;
}
.buyRecords {
padding-bottom: 40rpx;
}
.buyRecords .buyListCon {
padding: 0 20rpx;
margin-top: 30rpx;
margin-bottom: 120rpx;
}
.buyRecords .buyListCon .buyList .buyListInfo {
height: 120rpx;
padding-left: 30rpx;
border-bottom: 1rpx solid #efefef;
display: flex;
align-items: center;
justify-content: flex-start;
}
.buyRecords .buyListCon .buyList .buyListInfo:last-child {
border: none;
}
.buyRecords .buyListCon .buyList .buyListInfo .userImg {
width: 72rpx;
height: 72rpx;
border-radius: 36rpx;
margin-right: 20rpx;
}
.buyRecords .buyListCon .buyList .buyListInfo .userName {
max-width: 200rpx;
font-size: 28rpx;
color: #666;
margin-right: 10rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.buyRecords .buyListCon .buyList .buyListInfo .buyNum {
font-size: 28rpx;
color: #666;
margin-right: 20rpx;
}
.buyRecords .buyListCon .buyList .buyListInfo .buyNum text {
color: #ff758c;
}
.buyRecords .buyListCon .buyList .buyListInfo .buyTime {
font-size: 22rpx;
color: #aaa;
}
.canvas-img {
position: absolute;
top: -20000rpx;
}
button::after {
border: none;
}
.goodsInfo {
background: #fff;
padding: 30rpx;
border-top: 0.1rpx solid #efefef;
border-bottom: 0.1rpx solid #efefef;
display: flex;
justify-content: space-between;
}
.goodsInfo .goodsImg {
width: 180rpx;
margin-right: 30rpx;
}
.goodsInfo .goodsImg .img-class {
width: 180rpx;
height: 180rpx;
}
.goodsInfo .goodsDetail {
width: 480rpx;
min-height: 180rpx;
}
.goodsInfo .goodsDetail .detailTop {
min-height: 120rpx;
display: flex;
justify-content: space-between;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo {
width: 380rpx;
padding-right: 20rpx;
border-right: 2rpx dashed #aaa;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo .goodsName {
width: 380rpx;
font-size: 26rpx;
color: #444;
font-weight: bold;
line-height: 32rpx;
margin-bottom: 6rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: initial;
white-space: normal;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo .purchasing,
.goodsInfo .goodsDetail .detailTop .detailTopInfo .saleNum {
font-size: 22rpx;
color: #aaa;
}
.goodsInfo .goodsDetail .detailTop .shareBtn {
display: flex;
justify-content: center;
align-items: center;
background: #fff;
padding: 0;
margin-right: 4rpx;
}
.goodsInfo .goodsDetail .detailTop .shareBtn .shareImg {
width: 42rpx;
height: 36rpx;
}
.goodsInfo .goodsDetail .detailBottom {
margin-top: 10rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.goodsInfo .goodsDetail .detailBottom .price {
font-size: 20rpx;
color: #ff758c;
}
.goodsInfo .goodsDetail .detailBottom .price text {
font-size: 36rpx;
font-weight: bold;
}
.goodsInfo .goodsDetail .detailBottom .time {
width: 290rpx;
font-size: 26rpx;
color: #444;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: flex-end;
}
.goodsInfo .goodsDetail .detailBottom .time .countdown {
display: flex;
justify-content: center;
align-items: center;
}
.goodsInfo .goodsDetail .detailBottom .time .countdown .itemTime {
width: 38rpx;
height: 32rpx;
background: #444;
border-radius: 4rpx;
font-size: 26rpx;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
/***商品底部按钮begin **/
.goods-bottom-bar {
border-radius: 30rpx 30rpx 30rpx 30rpx;
height: 96rpx;
display: flex;
}
.goods-bottom-bar .leftBtn {
height: 96rpx;
display: flex;
}
.goods-bottom-bar .leftBtn .bar-item {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.goods-bottom-bar .leftBtn .back-to-index {
background-color: #36362D;
border-radius: 0rpx 8rpx 8rpx 0rpx;
width: 125rpx;
height: 96rpx;
font-size: 18rpx;
color: #fff;
}
.goods-bottom-bar .leftBtn .back-to-index image {
width: 50rpx;
height: 50rpx;
}
.goods-bottom-bar .leftBtn .shop-cart {
border-radius: 8rpx 0rpx 0rpx 8rpx;
margin-left: 6rpx;
background-color: #36362D;
width: 125rpx;
height: 96rpx;
font-size: 18rpx;
color: #fff;
position: relative;
}
.goods-bottom-bar .leftBtn .shop-cart .icon {
width: 50rpx;
height: 50rpx;
position: relative;
}
.goods-bottom-bar .leftBtn .shop-cart .icon image {
padding-right: 40rpx;
width: 100%;
height: 100%;
}
.goods-bottom-bar .leftBtn .shop-cart .icon .cart-num {
position: absolute;
right: -16rpx;
top: -4rpx;
width: 36rpx;
height: 36rpx;
background: #ff758c;
border-radius: 36rpx;
color: #fff;
font-size: 22rpx;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .goodsStatus {
width: 100%;
height: 96rpx;
background: #dcdcdc;
font-size: 30rpx;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .gobuy {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: bold;
/**background-color: #1c1819;**/
overflow: hidden;
border-radius: 0rpx 40rpx 40rpx 0rpx;
}
.bar-item add-to-cart {
background: rgb(247, 112, 98);
}
.goods-bottom-bar .gobuy .add-to-cart {
width: 270rpx;
height: 96rpx;
background: #36362D!important;
border-left:2rpx solid #666;
color: #fff;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .gobuy .btn {
width: 270rpx;
height: 96rpx;
position: absolute;
opacity: 0;
z-index: 9;
top: 0;
padding: 0;
margin: 0;
box-shadow: 20rpx 20rpx 20rpx 0rpx rgba(0,0,0,0.8);
}
.goods-bottom-bar .gobuy .balanceBtn {
display: flex;
flex: 1;
}
.goods-bottom-bar .gobuy .balanceBtn .balance {
height: 96rpx;
flex: 1;
background: linear-gradient(270deg,rgb(253, 35, 70) 0%,#feb600 100%)!important;
color: #fff;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 0rpx 0px 0px 0rpx;
}
.i-fixed-bottom {
background-color: rgba(0,0,0,0.3);
position: fixed;
bottom: 40rpx;
z-index: 100;
overflow: hidden;
left: 30rpx;
right:30rpx;
border-radius: 48rpx 48rpx 48rpx 48rpx;
box-shadow: 0rpx 10rpx 20rpx 10rpx rgba(0,0,0,0.4);
}
.filter {
background-color: rgba(255, 255, 255, 0.8);
display: flex;
flex-direction: row;
justify-content: space-around;
position: fixed;
bottom: 40rpx;
left: 0;
z-index: 2;
width: 100%;
height: 96rpx;
backdrop-filter: blur(30rpx) ;
border-radius: 30rpx 30rpx 30rpx 30rpx;
margin-left: 20rpx;
margin-right: 20rpx;
overflow: hidden;
}
.i-fixed-bottom.iphoneX-height {
padding-bottom: 48rpx;
}
.i-fixed-bottom.pb20 {
padding-bottom: 40rpx;
}

View File

@ -0,0 +1,748 @@
// pages/goods/comment.js
var util = require('../../utils/util.js');
var app = getApp();
var buyClearTime = null;
var status = require('../../utils/index.js');
function count_down(that, total_micro_second) {
var second = Math.floor(total_micro_second / 1000);
var days = second / 3600 / 24;
var daysRound = Math.floor(days);
var hours = second / 3600 - (24 * daysRound);
var hoursRound = Math.floor(hours);
var minutes = second / 60 - (24 * 60 * daysRound) - (60 * hoursRound);
var minutesRound = Math.floor(minutes);
var seconds = second - (24 * 3600 * daysRound) - (3600 * hoursRound) - (60 * minutesRound);
that.setData({
endtime: {
days: fill_zero_prefix(daysRound),
hours: fill_zero_prefix(hoursRound),
minutes: fill_zero_prefix(minutesRound),
seconds: fill_zero_prefix(seconds),
show_detail: 1
}
});
if (total_micro_second <= 0) {
clearTimeout(buyClearTime);
that.setData({
endtime: {
days: "00",
hours: "00",
minutes: "00",
seconds: "00",
}
});
return;
}
buyClearTime = setTimeout(function() {
total_micro_second -= 1000;
count_down(that, total_micro_second);
}, 1000)
}
// 位数不足补零
function fill_zero_prefix(num) {
return num < 10 ? "0" + num : num
}
Page({
mixins: [require('../../mixin/globalMixin.js')],
data: {
showData: 1,
cartNum: 0,
needAuth: false,
iconArr: {
home: '',
car: ''
},
list: [],
loadMore: true,
tip: '加载中'
},
page: 1,
hasRefeshin: false,
goodId: 0,
community_id: 0,
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
var token = wx.getStorageSync('token');
status.setNavBgColor();
status.setIcon().then(function(iconArr) {
that.setData({iconArr});
});
this.goodId = options.id;
this.community_id = options.community_id;
let currentCommunity = wx.getStorageSync('community');
let currentCommunity_id = (currentCommunity && currentCommunity.communityId) || '';
if (!currentCommunity_id) {
let community = {};
if (options.community_id !== void 0 && options.community_id > 0) {
community.communityId = options.community_id;
}
util.getCommunityInfo(community).then(function (res) {
console.log('step1')
paramHandle();
get_goods_details(res);
}).catch((param) => {
console.log('step4 新人')
if (Object.keys(param) != '') {
that.addhistory(param, true);
}
});
} else {
console.log('step3')
paramHandle();
get_goods_details();
}
if (options.share_id != 'undefined' && options.share_id > 0) wx.setStorage({ key: "share_id", data: options.share_id })
function paramHandle() {
console.log('step2')
if (options.community_id != 'undefined' && options.community_id > 0) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_community_info',
'community_id': options.community_id
},
dataType: 'json',
success: function (res) {
if (res.data.code == 0) {
var community = res.data.data;
let hisCommunity = currentCommunity;
let community_id = currentCommunity_id;
if (options.community_id != community_id) {
wx.showModal({
title: '温馨提示',
content: '是否切换为分享人所在小区“' + community.communityName,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
app.globalData.community = community;
app.globalData.changedCommunity = true;
wx.setStorage({
key: "community",
data: community
})
token && that.addhistory(community);
get_goods_details(community);
console.log('用户点击确定')
} else if (res.cancel) {
that.showNoBindCommunity();
console.log('用户点击取消')
}
}
})
}
}
}
})
}
that.setData({
goods_id: options.id
}, ()=>{
that.load_comment_list();
})
}
function get_goods_details(communityInfo) {
if (communityInfo) currentCommunity_id = communityInfo.communityId;
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'goods.get_goods_detail',
'token': token,
'id': options.id,
community_id: currentCommunity_id
},
dataType: 'json',
success: function (res) {
wx.hideLoading();
let goods = (res.data.data && res.data.data.goods) || '';
// 商品不存在
if (!goods || goods.length == 0 || Object.keys(goods) == '') {
wx.showModal({
title: '提示',
content: '该商品不存在,回首页',
showCancel: false,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index',
})
}
}
})
}
let comment_list = res.data.comment_list;
comment_list.map(function (item) {
14 * item.content.length / app.globalData.systemInfo.windowWidth > 3 && (item.showOpen = true), item.isOpen = true;
})
that.setData({
order_comment_count: res.data.order_comment_count,
order_comment_images: res.data.order_comment_images,
comment_list: comment_list,
loadover: true,
goods: goods,
buy_record_arr: res.data.data.buy_record_arr,
site_name: res.data.data.site_name,
share_title: goods.share_title,
options: res.data.data.options,
goods_image: res.data.data.goods_image,
goods_image_length: res.data.data.goods_image.length,
service: goods.tag,
favgoods: goods.favgoods,
cur_time: res.data.data.cur_time,
order: {
goods_id: res.data.data.goods.goods_id,
pin_id: res.data.data.pin_id,
},
showSkeleton: false,
is_comunity_rest: res.data.is_comunity_rest,
goodsdetails_addcart_bg_color: res.data.goodsdetails_addcart_bg_color || 'linear-gradient(270deg, #f9c706 0%, #feb600 100%)',
goodsdetails_buy_bg_color: res.data.goodsdetails_buy_bg_color || 'linear-gradient(90deg, #ff5041 0%, #ff695c 100%)'
})
if (res.data.is_comunity_rest == 1) {
wx.showModal({
title: '温馨提示',
content: '团长休息中,欢迎下次光临!',
showCancel: false,
confirmColor: '#F75451',
confirmText: '好的',
success(res) { }
})
}
let over_type = goods.over_type;
var seconds = 0;
if (over_type == 0) {
seconds = (goods.begin_time - res.data.data.cur_time) * 1000;
} else {
seconds = (goods.end_time - res.data.data.cur_time) * 1000;
}
if (seconds > 0) {
count_down(that, seconds);
}
}
})
}
},
//未绑定提示
showNoBindCommunity: function () {
wx.showModal({
title: '提示',
content: '您未绑定该小区,请切换后下单!',
showCancel: false,
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/position/community',
})
}
}
})
},
/**
* 历史社区
*/
addhistory: function (community, isNew = false) {
var community_id = community.communityId;
console.log('addhistory');
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.addhistory_community',
community_id: community_id,
'token': token
},
dataType: 'json',
success: function (res) {
if (isNew) {
console.log('新人 社区')
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'index.get_community_info',
community_id: community_id
},
dataType: 'json',
success: function (result) {
if (result.data.code == 0) {
let community = result.data.data;
app.globalData.community = community;
app.globalData.changedCommunity = true;
wx.setStorage({
key: "community",
data: community
})
}
}
})
}
}
})
},
load_comment_list: function(){
let goods_id = this.data.goods_id;
let token = wx.getStorageSync('token');
let that = this;
!this.hasRefeshin && (that.hasRefeshin = true, that.setData({ loadMore: true, tip: '加载中' }), app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'goods.comment_info',
token: token,
goods_id: goods_id,
page: that.page
},
dataType: 'json',
success: function (res) {
if(res.data.code==0){
let commentList = res.data.list;
commentList.map(function (item) {
14 * item.content.length / app.globalData.systemInfo.windowWidth > 3 && (item.showOpen = true), item.isOpen = true;
})
let list = that.data.list.concat(commentList);
that.page++;
that.hasRefeshin = false;
that.setData({ list, loadMore: false, tip: '' })
} else if (res.data.code == 1) {
// 无数据
if (that.page == 1) that.setData({ showData:0 })
that.setData({
loadMore: false,
tip: '^_^已经到底了'
})
} else if(res.data.code == 2) {
//no login
} else {
//其他
}
}
}))
},
/**
* 授权成功回调
*/
authSuccess: function () {
var id = this.goodId;
let currentCommunity = wx.getStorageSync('community');
let community_id = (currentCommunity && currentCommunity.communityId) || (this.community_id || '');
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/goods/comment?id=' + id + '&community_id=' + community_id,
})
},
authModal: function () {
if (this.data.needAuth) {
this.setData({ showAuthModal: !this.data.showAuthModal });
return false;
}
return true;
},
onShow: function() {
let that = this;
util.check_login_new().then((res) => {
if (!res) {
that.setData({
needAuth: true
})
} else {
(0, status.cartNum)('', true).then((res) => {
res.code == 0 && that.setData({
cartNum: res.data
})
});
}
})
},
//加入购物车
addToCart: function(e) {
if (!this.authModal()) return;
var that = this;
var from_id = e.detail.formId;
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": from_id
},
dataType: 'json',
success: function(res) {}
})
that.setData({
is_just_addcar: 1
})
//加入购物车
that.openSku();
},
// 打开选框
openSku: function() {
var that = this;
var goods_id = this.data.goods_id;
var options = this.data.options;
that.setData({
addCar_goodsid: goods_id
})
let list = options.list || [];
let arr = [];
if (list.length > 0) {
for (let i = 0; i < list.length; i++) {
let sku = list[i]['option_value'][0];
let temp = {
name: sku['name'],
id: sku['option_value_id'],
index: i,
idx: 0
};
arr.push(temp);
}
//把单价剔除出来begin
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var cur_sku_arr = options.sku_mu_list[id];
that.setData({
sku: arr,
sku_val: 1,
cur_sku_arr: cur_sku_arr,
skuList: options,
visible: true,
showSku: true
});
} else {
let goods = this.data.goods;
let cur_sku_arr = {
canBuyNum: goods.total,
spuName: goods.goodsname,
actPrice: goods.actPrice,
marketPrice: goods.marketPrice,
stock: goods.total,
skuImage: goods.image_thumb
}
that.setData({
sku: [],
sku_val: 1,
cur_sku_arr: cur_sku_arr,
skuList: []
})
let formIds = {
detail: {
formId: ""
}
};
formIds.detail.formId = "the formId is a mock one";
that.gocarfrom(formIds);
//todo...addcart
}
},
gocarfrom: function(e) {
var that = this;
var is_just_addcar = this.data.is_just_addcar;
wx.showLoading();
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": e.detail.formId
},
dataType: 'json',
success: function(res) {}
})
that.goOrder();
},
closeSku: function() {
this.setData({
visible: 0,
stopClick: false,
});
},
goOrder: function() {
var that = this;
if (that.data.can_car) {
that.data.can_car = false;
}
var token = wx.getStorageSync('token');
var community = wx.getStorageSync('community');
var goods_id = that.data.goods_id;
var community_id = community.communityId;
var quantity = that.data.sku_val;
var cur_sku_arr = that.data.cur_sku_arr;
var sku_str = '';
var is_just_addcar = that.data.is_just_addcar;
if (cur_sku_arr && cur_sku_arr.option_item_ids) {
sku_str = cur_sku_arr.option_item_ids;
}
let data = {
goods_id,
community_id,
quantity,
sku_str,
buy_type: 'dan',
pin_id: 0,
is_just_addcar
}
util.addCart(data).then(res=>{
if(res.showVipModal==1) {
let { pop_vipmember_buyimage } = res.data;
wx.hideLoading();
that.setData({ pop_vipmember_buyimage, showVipModal: true, visible: false })
} else {
if (res.data.code == 3 || res.data.code == 7) {
wx.showToast({
title: res.data.msg,
icon: 'none',
duration: 2000
})
} else if (res.data.code == 4) {
wx.showToast({
title: '您未登录',
duration: 2000,
})
} else if (res.data.code == 6) {
var msg = res.data.msg;
let max_quantity = res.data.max_quantity || '';
(max_quantity > 0) && that.setData({ sku_val: max_quantity })
wx.showToast({
title: msg,
icon: 'none',
duration: 2000
})
} else {
if (is_just_addcar == 1) {
that.closeSku();
wx.showToast({
title: "已加入购物车",
image: "../../images/addShopCart.png"
})
app.globalData.cartNum = res.data.total
that.setData({
cartNum: res.data.total
});
status.indexListCarCount(goods_id);
} else {
var pages_all = getCurrentPages();
if (pages_all.length > 3) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan'
})
} else {
wx.navigateTo({
url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan'
})
}
}
}
}
}).catch(res=>{
app.util.message(res||'请求失败', '', 'error');
})
},
selectSku: function(event) {
var that = this;
let str = event.currentTarget.dataset.type;
let obj = str.split("_");
let arr = that.data.sku;
let temp = {
name: obj[3],
id: obj[2],
index: obj[0],
idx: obj[1]
};
arr.splice(obj[0], 1, temp);
that.setData({
sku: arr
})
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var options = this.data.skuList;
var cur_sku_arr = options.sku_mu_list[id];
that.setData({
cur_sku_arr: cur_sku_arr
});
console.log(id);
},
submit: function(e) {
var from_id = e.detail.formId;
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.get_member_form_id',
'token': token,
"from_id": from_id
},
dataType: 'json',
success: function(res) {}
})
},
balance: function(e) {
if (!this.authModal()) return;
this.setData({
is_just_addcar: 0
})
//加入购物车
this.openSku();
},
//加减商品数量
setNum: function(event) {
let types = event.currentTarget.dataset.type;
var that = this;
var num = 1;
let sku_val = this.data.sku_val * 1;
if (types == 'add') {
num = sku_val + 1;
} else if (types == 'decrease') {
if (sku_val > 1) {
num = sku_val - 1;
}
}
let arr = that.data.sku;
var options = this.data.skuList;
var id = '';
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
id = id + arr[i]['id'];
} else {
id = id + arr[i]['id'] + "_";
}
}
var cur_sku_arr = options.sku_mu_list[id];
if (num > cur_sku_arr['canBuyNum']) {
num = num - 1;
}
this.setData({
sku_val: num
})
},
/**
* 图片预览
*/
preview: function(t) {
var a = t.currentTarget.dataset.index,
e = t.currentTarget.dataset.idx;
wx.previewImage({
urls: this.data.list[a].images,
current: this.data.list[a].images[e],
fail: function(t) {
wx.showToast({
title: "预览图片失败,请重试",
icon: "none"
}), console.log(t);
}
});
},
/**
* 复制内容
*/
copy: function(t) {
wx.setClipboardData({
data: t.currentTarget.dataset.val,
success: function() {
wx.showToast({
title: "内容复制成功!",
icon: "none"
});
}
});
},
/**
* 展开收起
*/
bindOpen: function(t) {
var idx = t.currentTarget.dataset.idx;
if (this.data.list[idx].isOpen) {
this.data.list[idx].isOpen = false;
var list = this.data.list;
this.setData({
list: list
});
} else {
this.data.list[idx].isOpen = true;
var list = this.data.list;
this.setData({
list: list
});
}
},
onReachBottom: function () {
console.log('我是底线');
this.load_comment_list();
}
})

View File

@ -0,0 +1,12 @@
{
"navigationBarBackgroundColor": "#FFF",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "商品评价",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-card": "../../components/card/index",
"i-img": "../../components/img/index",
"i-new-auth": "../../components/new-auth/index",
"i-load-more": "../../components/load-more/index"
}
}

View File

@ -0,0 +1,177 @@
<ep-navBar title="商品评价" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view>
<view class="goodsInfo">
<i-img class="goodsImg" defaultImage="../../images/placeholder-refund.png" height="90" iClass="img-class" loadImage="{{goods.one_image}}" width="90"></i-img>
<view class="goodsDetail">
<view class="detailTop">
<view class="detailTopInfo">
<view class="goodsName">{{goods.goodsname}}</view>
<view class="purchasing" wx:if="{{goods.one_limit_count > 0 || goods.total_limit_count > 0}}">
<text wx:if="{{goods.total_limit_count > 0}}">每人限购{{goods.total_limit_count}}份</text>
<text wx:if="{{goods.one_limit_count > 0}}"> 每单限购{{goods.one_limit_count}}份</text>
</view>
<view class="saleNum">已售{{goods.seller_count}}{{goods_sale_unit}},剩余{{goods.total}}{{goods_sale_unit}}</view>
</view>
<button class="shareBtn" hoverClass="none" openType="share">
<image class="shareImg" src="../../images/shareImg.png"></image>
</button>
</view>
<view class="detailBottom">
<view class="price">¥
<text class="salePrice">{{goods.price_front}}</text>.{{goods.price_after}}</view>
<view class="time">
<text wx:if="{{goods.over_type == 1}}">距结束</text>
<text class="endAct" wx:if="{{goods.over_type == 0}}">距开始</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">结束时间</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">{{goods.end_date}}</text>
<view class="countdown-class i-count-down">
<em wx:if="{{endtime.days > 0}}">{{endtime.days}}天</em>
<span class="item-class">{{endtime.hours}}</span>:
<span class="item-class">{{endtime.minutes}}</span>:
<span class="item-class">{{endtime.seconds}}</span>
</view>
</view>
</view>
</view>
</view>
<view class="noComments" style="height:{{containerHeight}}px" wx:if="{{showData===0}}">
<view class="noCommentsCon">
<image class="noCommentsImg" src="../../images/noData.png"></image>
<view class="noCommentsTit">暂无评论</view>
</view>
</view>
<view class="comments" wx:if="{{showData===1}}">
<view class="commentsDetail">
<view class="commentsList" wx:for="{{list}}" wx:key="id">
<i-card>
<view class="commentsListInfo" slot="content">
<view class='comment-user'>
<image src='{{item.avatar}}'></image>
<text>{{item.user_name}}</text>
</view>
<view bindlongpress="copy" bindtap="bindOpen" class="commentsCon {{item.isOpen&&item.showOpen?'doubleHidden':''}}" data-idx="{{index}}" data-val="{{item.content}}">{{item.content}}</view>
<view class="commentsOpen" wx:if="{{item.showOpen}}">
<text bindtap="bindOpen" data-idx="{{index}}">{{item.isOpen?'展开':'收起'}}</text>
<image class="commentsOpenImg {{item.isOpen?'down':''}}" src="../../images/commentsOpen.png"></image>
</view>
<view class="commentsImgCon" wx:if="{{item.images.length > 0}}">
<view class="commentsImg" wx:for="{{item.images}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="index">
<i-img bindtap="preview" class="goodsImg" data-idx="{{idx}}" data-index="{{index}}" height="75" iClass="img-class" imgType="5" loadImage="{{imgItem}}" width="75"></i-img>
</view>
</view>
<view class="commentsTime">{{item.add_time}}</view>
</view>
</i-card>
</view>
<i-load-more iClass="loadMore" loading="{{loadMore}}" tip="{{tip}}"></i-load-more>
</view>
</view>
<!--底部按钮begin-->
<view class='i-fixed-bottom'>
<view class="goods-bottom-bar">
<view class="leftBtn">
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/index/index">
<view class="bar-item back-to-index">
<image class="icon" src="{{iconArr.home}}"></image>
回首页
</view>
</navigator>
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/order/shopCart">
<view class="bar-item shop-cart">
<view class="icon">
<image src="{{iconArr.car}}"></image>
<view class="cart-num" wx:if="{{cartNum}}">{{cartNum}}</view>
</view>
购物车
</view>
</navigator>
</view>
<view class="goodsStatus" wx:if="{{goods.total<=0}}">已抢光</view>
<view class="goodsStatus" wx:elif="{{goods.total > 0 && goods.over_type ==2}}">已结束</view>
<view class="goodsStatus" wx:elif="{{goods.grounding != 1}}">已下架</view>
<view class="goodsStatus" wx:elif="{{goods.over_type == 0}}">即将开抢</view>
<view class="goodsStatus" wx:elif="{{is_comunity_rest == 1}}">团长休息中</view>
<view class="gobuy" wx:else>
<form bindsubmit="addToCart" reportSubmit="true">
<view class="bar-item add-to-cart" style='background: {{goodsdetails_addcart_bg_color}}'>加入购物车</view>
<button class="btn" formType="submit"></button>
</form>
<form bindsubmit="submit" reportSubmit="true">
<button hidden formType="submit" id="formId"></button>
</form>
<label class="balanceBtn" for="formId">
<view bindtap="balance" class="bar-item balance" style='background: {{goodsdetails_buy_bg_color}}'>立即购买</view>
</label>
</view>
</view>
</view>
<!--底部按钮end-->
<view class="mask" bindtap='closeSku' hidden="{{!visible}}"></view>
<!---规格选择begin-->
<view bind:cancel="close" class='sku-content' scrollUp="{{true}}" hidden="{{!visible}}">
<view class="sku-card">
<view bindtap="closeSku" class="close">
<image src="../../images/icon-sku-close.png"></image>
</view>
<view class="sku-header">
<image src='{{cur_sku_arr.skuImage}}' style="width:80px;height:80px;" class='sku-img'></image>
<view class="sku-desc">
<view class="sku-title">
<span>{{cur_sku_arr.spuName}}</span>
</view>
<view class="sku-price">
<view class="sale-price">
¥
<span>{{cur_sku_arr.actPrice[0]}}</span>.{{cur_sku_arr.actPrice[1]}}
</view>
<view class="market-price">¥{{cur_sku_arr.marketPrice[0]}}.{{cur_sku_arr.marketPrice[1]}}</view>
</view>
<view class="sku-switch-on" wx:if="{{cur_sku_arr.spec}}">已选择:{{cur_sku_arr.spec}}</view>
</view>
</view>
<view class="sku-spec" wx:for="{{skuList.list}}" wx:key="id">
<view class="title">{{item.name}}</view>
<view class="spec-list">
<span bindtap="selectSku" class="{{idx==sku[index]['idx']?'on':''}}" data-disabled="{{item.canBuyNum-value<0}}" data-type="{{index}}_{{idx}}_{{value.option_value_id}}_{{value.name}}" wx:for-index="idx" data-idx="{{idx}}" wx:for="{{item.option_value}}"
wx:for-item="value">{{value.name}}</span>
</view>
</view>
<view class="sku-num-content">
<view class="title">数量</view>
<view class="i-class i-input-number i-input-number-size-{{size}}">
<view bindtap="setNum" data-type="decrease" class="i-input-number-minus {{value<=min?'i-input-number-disabled':''}}">
<image src="../../images/icon-input-reduce.png"></image>
</view>
<input bindblur="handleBlur" bindfocus="handleFocus" class="i-input-number-text {{min>=max?'i-input-number-disabled':''}}" disabled="true" type="number" value="{{sku_val}}"></input>
<view bindtap="setNum" data-type="add" class="i-input-number-plus {{value>=max?'i-input-number-disabled':''}}">
<image src="../../images/icon-input-add.png"></image>
</view>
</view>
<view class="msg" wx:if="{{skuList[current].isLimit}}">
<span wx:if="{{skuList[current].limitMemberNum>-1}}">每人限{{skuList[current].limitMemberNum}}单</span>
<span wx:if="{{skuList[current].limitOrderNum>-1}}">每单限{{skuList[current].limitOrderNum}}份</span>
<span></span>
</view>
<view class="even-num" wx:elif="{{!skuList[current].isLimit&&skuList[current].canBuyNum-value<=10&&skuList[current].canBuyNum-value>-1}}">还可以购买 {{skuList[current].canBuyNum-value}} 件</view>
</view>
<form bindsubmit="gocarfrom" report-submit="true">
<button formType="submit" class="sku-confirm" disabled='{{cur_sku_arr.stock==0 ? true : false}}'>
<view>{{cur_sku_arr.stock==0?"已抢光":"确定"}}</view>
</button>
</form>
</view>
</view>
<!---规格选择end-->
</view>
<i-new-auth needAuth="{{needAuth&&showAuthModal}}" bind:authSuccess="authSuccess" bind:cancel="authModal" needPosition="{{needPosition}}"></i-new-auth>
<i-vip-modal visible="{{showVipModal}}" imgUrl="{{pop_vipmember_buyimage}}" />

View File

@ -0,0 +1,395 @@
.noComments {
height: 100%;
background: #fff;
}
.noComments .noCommentsCon {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
padding-bottom: 260rpx;
}
.noComments .noCommentsCon .noCommentsImg {
width: 218rpx;
height: 218rpx;
margin-top: 260rpx;
margin-bottom: 30rpx;
}
.noComments .noCommentsCon .noCommentsTit {
font-size: 30rpx;
color: #666;
}
.comments {
padding-bottom: 40rpx;
}
.comments .commentsDetail {
padding: 0 20rpx;
margin-top: 30rpx;
margin-bottom: 120rpx;
}
.comments .commentsDetail .commentsList {
margin-bottom: 20rpx;
}
.comments .commentsDetail .commentsList .commentsListInfo {
padding: 30rpx;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsCon {
font-size: 28rpx;
color: #666;
line-height: 44rpx;
margin-bottom: 10rpx;
word-wrap: break-word;
}
.comments .commentsDetail .commentsList .commentsListInfo .doubleHidden {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: initial;
white-space: normal;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsOpen {
height: 22rpx;
font-size: 22rpx;
color: #444;
font-weight: bold;
margin-bottom: 20rpx;
display: flex;
align-items: center;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsOpen .commentsOpenImg {
width: 16rpx;
height: 8rpx;
margin-left: 6rpx;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsOpen .down {
transform: rotate(180deg);
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsImgCon {
display: flex;
justify-content: flex-start;
overflow-x: auto;
}
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsImgCon .commentsImg {
margin-right: 16rpx;
display: flex;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsImgCon .commentsImg .goodsImg {
width: 150rpx;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsImgCon .commentsImg .goodsImg .img-class {
width: 150rpx;
height: 150rpx;
border-radius: 4rpx;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsImgCon .commentsImg:last-child {
margin: 0;
}
.comments .commentsDetail .commentsList .commentsListInfo .commentsTime {
font-size: 22rpx;
color: #aaa;
line-height: 22rpx;
margin-top: 20rpx;
display: flex;
justify-content: flex-end;
}
.canvas-img {
position: absolute;
top: -20000rpx;
}
button::after {
border: none;
}
.goodsInfo {
background: #fff;
padding: 30rpx;
border-top: 0.1rpx solid #efefef;
border-bottom: 0.1rpx solid #efefef;
display: flex;
justify-content: space-between;
}
.goodsInfo .goodsImg {
width: 180rpx;
margin-right: 30rpx;
}
.goodsInfo .goodsImg .img-class {
width: 180rpx;
height: 180rpx;
}
.goodsInfo .goodsDetail {
width: 480rpx;
min-height: 180rpx;
}
.goodsInfo .goodsDetail .detailTop {
min-height: 120rpx;
display: flex;
justify-content: space-between;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo {
width: 380rpx;
padding-right: 20rpx;
border-right: 2rpx dashed #aaa;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo .goodsName {
width: 380rpx;
font-size: 26rpx;
color: #444;
font-weight: bold;
line-height: 32rpx;
margin-bottom: 6rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: initial;
white-space: normal;
}
.goodsInfo .goodsDetail .detailTop .detailTopInfo .purchasing,
.goodsInfo .goodsDetail .detailTop .detailTopInfo .saleNum {
font-size: 22rpx;
color: #aaa;
}
.goodsInfo .goodsDetail .detailTop .shareBtn {
display: flex;
justify-content: center;
align-items: center;
background: #fff;
padding: 0;
margin-right: 4rpx;
}
.goodsInfo .goodsDetail .detailTop .shareBtn .shareImg {
width: 42rpx;
height: 36rpx;
}
.goodsInfo .goodsDetail .detailBottom {
margin-top: 10rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.goodsInfo .goodsDetail .detailBottom .price {
font-size: 20rpx;
color: #ff758c;
}
.goodsInfo .goodsDetail .detailBottom .price text {
font-size: 36rpx;
font-weight: bold;
}
.goodsInfo .goodsDetail .detailBottom .time {
width: 290rpx;
font-size: 26rpx;
color: #444;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: flex-end;
}
.goodsInfo .goodsDetail .detailBottom .time .countdown {
display: flex;
justify-content: center;
align-items: center;
}
.goodsInfo .goodsDetail .detailBottom .time .countdown .itemTime {
width: 38rpx;
height: 32rpx;
background: #444;
border-radius: 4rpx;
font-size: 26rpx;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
/***商品底部按钮begin **/
.goods-bottom-bar {
height: 96rpx;
display: flex;
}
.goods-bottom-bar .leftBtn {
height: 94rpx;
display: flex;
border-top: 2rpx solid #efefef;
}
.goods-bottom-bar .leftBtn .bar-item {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.goods-bottom-bar .leftBtn .back-to-index {
width: 132rpx;
height: 94rpx;
font-size: 20rpx;
color: #707070;
}
.goods-bottom-bar .leftBtn .back-to-index image {
width: 54rpx;
height: 54rpx;
}
.goods-bottom-bar .leftBtn .shop-cart {
width: 132rpx;
height: 96rpx;
font-size: 20rpx;
color: #707070;
position: relative;
}
.goods-bottom-bar .leftBtn .shop-cart .icon {
width: 54rpx;
height: 54rpx;
position: relative;
}
.goods-bottom-bar .leftBtn .shop-cart .icon image {
width: 100%;
height: 100%;
}
.goods-bottom-bar .leftBtn .shop-cart .icon .cart-num {
position: absolute;
right: -16rpx;
top: -4rpx;
width: 36rpx;
height: 36rpx;
background: #ff758c;
border-radius: 36rpx;
color: #fff;
font-size: 22rpx;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .goodsStatus {
width: 100%;
height: 96rpx;
background: #dcdcdc;
font-size: 30rpx;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .gobuy {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: bold;
}
.goods-bottom-bar .gobuy .add-to-cart {
width: 240rpx;
height: 96rpx;
background: linear-gradient(270deg,#4facfe 0%,#00f2fe 100%);
color: #fff;
font-size: 30rpx;
display: flex;
justify-content: center;
align-items: center;
}
.goods-bottom-bar .gobuy .btn {
width: 208rpx;
height: 96rpx;
position: absolute;
opacity: 0;
z-index: 9;
top: 0;
padding: 0;
margin: 0;
}
.goods-bottom-bar .gobuy .balanceBtn {
display: flex;
flex: 1;
}
.goods-bottom-bar .gobuy .balanceBtn .balance {
height: 96rpx;
flex: 1;
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
color: #fff;
font-size: 30rpx;
display: flex;
justify-content: center;
align-items: center;
}
.i-fixed-bottom {
position: fixed;
bottom: 0px;
z-index: 100;
width: 100%;
background-color: #fff;
}
/***商品底部按钮end **/
.comment-user {
line-height: 60rpx;
display: flex;
margin-bottom: 10rpx
}
.comment-user image {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
margin-right: 14rpx;
background-color: #f0f0f0;
}
.comment-user text {
font-size: 26rpx;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
{
"navigationBarTitleText": "商品详情",
"navigationBarBackgroundColor": "#007FAF",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-new-auth": "../../components/new-auth/index",
"i-order-notify": "../../components/order-notify/index",
"i-relative-goods-list": "./relativeGoodsList",
"i-change-community": "../../components/changeCommunity/index",
"guess-like": "../../components/guess-like/index",
"i-vip-price": "../../components/vipPrice/vipPrice",
"parser":"../../components/parser/parser",
"i-img": "../../components/img/index",
"i-modal": "../../components/modal/index",
"advimg": "../../components/advimg/index",
"i-painter": "../../components/painter/painter"
}
}

View File

@ -0,0 +1,587 @@
<ep-navBar ref='' backgroundColorTop='linear-gradient(90deg, #e7614d 0%, #e68475 100%);' color='#fff' iconTheme='white' bindback="handlerGobackClick" titleimg="{{true}}" ></ep-navBar>
<movable-area>
<view class='goods-wrapper'>
<view class='ui-mask' bindtap='hide_share_handler' hidden='{{is_share_html}}'></view>
<view class="model-services show" hidden='{{is_share_html}}'>
<view class="model-services-title">分享</view>
<view class="model-services-content">
<view class="service-list">
<view class="service-item">
<button open-type="share" class='none_btn' plain="true">
<text class="iconfont icon-weixin2 service-icon"></text>
<view class="cube-text">
<text>好友</text>
</view>
</button>
</view>
<view class="service-item" bindtap='get_share_img'>
<text class="iconfont icon-pengyouquan service-icon"></text>
<view class="cube-text">
<text>海报</text>
</view>
</view>
</view>
</view>
</view>
<view class="spuInfoImg" style='height:{{imageSize.imageHeight}}px;background: url("/eaterplanet_ecommerce/images/index-comming-goods-bitmap.png"); background-size: 100% 100%;'>
<view wx:if="{{goods.label_info && goods.label_info.type==0}}" class='item-tag'>
<image class='item-tag-bg' mode='widthFix' src="../../images/tag.png"></image>
<view class='tag-name {{goods.label_info.len==2?"two-word":""}}'>{{goods.label_info.tagcontent}}</view>
</view>
<view wx:if="{{goods.label_info && goods.label_info.type==1}}" class='item-tag' style='background:url({{goods.label_info.tagcontent}}) no-repeat left top;background-size: 100%;'></view>
<text class="current" wx:if="{{fmShow==true}}">{{goodsIndex}}/{{goods_image_length}}</text>
<swiper bindchange="scrollImagesChange" duration="300" style='height:{{imageSize.imageHeight}}px' interval="5000" circular autoplay="{{!goods.video}}">
<swiper-item wx:for="{{goods_image}}" wx:key="id">
<block wx:if="{{goods.video!=''&&goods.video!=null}}">
<image wx:if="{{index!=0}}" src="{{item.image}}" mode="widthFix" bindload="imageLoad" lazy-load="true" bindtap='previewImg' data-idx="{{index}}"></image>
<view class='video-wrap i-flex i-flex-alc' style="background:#000;" wx:else>
<view wx:if="{{fmShow==true}}" style="width: 100%;">
<view class='btn_view centerboth' wx:if="{{item.video==''}}"></view>
<view class='btn_view centerboth' wx:else bindtap='btnPlay'>
<image src='../../images/play.png'></image>
</view>
<image src="{{item.image}}" mode="widthFix" bindload="imageLoad" lazy-load="true" data-idx="{{index}}"></image>
</view>
<video class='swiper-video' bindloadedmetadata="handleLoadedMetaData" hidden="{{fmShow}}" id="myVideo" src="{{goods.video}}" bindended="videEnd" object-fit="contain" style='{{videoStyle}}'></video>
</view>
</block>
<image wx:else src="{{item.image}}" mode="widthFix" bindload="imageLoad" lazy-load="true" bindtap='previewImg' data-idx="{{index}}"></image>
</swiper-item>
</swiper>
</view>
<view hidden="{{fmShow}}" class='end-play' bindtap='endPlay'>
<text class='btn'>退出播放</text>
</view>
<view class="spuInfo" style='z-index: {{fmShow==false?-1:2}}'>
<view class="spuPrice">
<image class='spuPriceBg' src='{{goods_details_price_bg?goods_details_price_bg:"../../images/shareBottomBg.png"}}'></image>
<!-- 预售商品价格信息 -->
<block class="price" wx:if="{{buy_type=='presale'}}">
<view class="price" wx:if="{{presale_goods_info.presale_type==0}}">
<view>定金:¥{{presale_goods_info.presale_ding_money}} <text class="fsz-22 ml10 weight" style="color:#f8e71c;">可抵扣:¥{{presale_goods_info.presale_deduction_money}}</text></view>
<view>预售价:¥{{goods.price}}</view>
</view>
<view class="price" wx:else>
<view>预售价:¥{{goods.price}}</view>
<view>原价:¥{{goods.productprice}}</view>
</view>
<view class="time">
<text wx:if="{{presaleState == 1}}">预售{{presale_goods_info.presale_type==0?'定金':''}}截止</text>
<text class="endAct" wx:if="{{presaleState == 0}}">距开始预售</text>
<text class="endAct" wx:if="{{presaleState == 2}}">结束时间</text>
<text class="endAct" wx:if="{{presaleState == 2}}">{{presale_goods_info.presale_ding_time_end_date}}</text>
<view class="countdown-class i-count-down" wx:else>
<em wx:if="{{endtime.days > 0}}">{{endtime.days}}天</em>
<span class="item-class">{{endtime.hours}}</span>:
<span class="item-class">{{endtime.minutes}}</span>:
<span class="item-class">{{endtime.seconds}}</span>
</view>
</view>
</block>
<!-- 其他商品价格信息 -->
<block wx:else>
<view class="price">
<block wx:if="{{buy_type=='integral'}}">
<text class="salePrice">{{goods.price_front}}</text>积分
<text class="storePrice">¥{{goods.productprice}}</text>
</block>
<block wx:else>
¥<text class="salePrice">{{goods.price_front}}</text>.{{goods.price_after}}
<text class="storePrice">¥{{goods.productprice}}</text>
</block>
</view>
<view class="time" wx:if="{{is_close_details_time==0}}">
<text wx:if="{{goods.over_type == 1}}">距结束</text>
<text class="endAct" wx:if="{{goods.over_type == 0}}">距开始</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">结束时间</text>
<text class="endAct" wx:if="{{goods.over_type == 2}}">{{goods.end_date}}</text>
<view class="countdown-class i-count-down" wx:else>
<em wx:if="{{endtime.days > 0}}">{{endtime.days}}天</em>
<span class="item-class">{{endtime.hours}}</span>:
<span class="item-class">{{endtime.minutes}}</span>:
<span class="item-class">{{endtime.seconds}}</span>
</view>
</view>
</block>
</view>
<view class="spuDetailInfo">
<view class="spuName">
<text wx:if="{{goods.is_seckill==1}}" class="red" style="font-size:30rpx;">[秒杀] </text>
<text wx:elif="{{goods.type=='presale'}}" class="red" style="font-size:30rpx;">[预售] </text>
{{goods.goodsname}}
</view>
<view wx:if="{{goods.subtitle}}" class="fsz-26 p5 text-gray">{{goods.subtitle}}</view>
<view wx:if="{{buy_type=='virtualcard'}}" class="u-m-t-15 u-m-l-10">
可兑换<text class="weight" style="color: #ff5344;"> {{virtualcard_goods_info.code_money}} </text>元
</view>
<block wx:if="{{buy_type!='presale'&&buy_type!='virtualcard'}}">
<!-- 核销自提 -->
<view class="fsz-22 i-flex mt10 i-aic" wx:if="{{is_only_hexiao==1}}">
<view class="hexiao text-6"><text class="iconfont icon-gou red fsz-22"></text> 自提商品</view>
<view class="hexiao text-6" bindtap="handleHexiaoModal" wx:if="{{hx_len}}">
<text class="iconfont icon-gou red fsz-22"></text> 支持多点自提
</view>
</view>
<block wx:if="{{buy_type!='integral'}}">
<view class="comiss" wx:if="{{is_commiss_mb==1&&commiss_mb_money>0&&!hideCommissInfo}}">
<text class="con">{{groupInfo.commiss_diy_name}}预估佣金:¥{{commiss_mb_money}}</text>
</view>
<view class="comiss" wx:if="{{is_goods_head_mb==1&&goods_head_money>0&&!hideCommissInfo}}">
<text class="con">{{groupInfo.owner_name}}预估佣金:¥{{goods_head_money}}</text>
</view>
<!-- 会员、等级价格 -->
<i-vip-price wx:if="{{is_open_vipcard_buy==1&&goods.is_take_vipcard==1}}" price="{{goods.card_price}}"></i-vip-price>
<i-vip-price wx:if="{{is_member_level_buy==1&&goods.is_mb_level_buy==1&&(goods.price!=goods.levelprice)}}" price="{{goods.levelprice}}" type="1"></i-vip-price>
</block>
<view class="remind" wx:if="{{is_show_ziti_time==1&&goods.is_show_arrive==1&&delivery_type_ziti==1}}">
<image class="remindImg" src="../../images/icon-give.png"></image>
<text>现在下单,预计({{goods.pick_up_modify}})可自提</text>
</view>
<view class="remind" wx:if="{{goods.diy_arrive_switch==1&&goods.diy_arrive_details}}">
<image class="remindImg" src="../../images/icon-give.png"></image>
<text>{{goods.diy_arrive_details}}</text>
</view>
</block>
<view class="preferential i-flex" wx:if="{{buy_type!='integral'&&buy_type!='presale'&&buy_type!='virtualcard'&&(goods.is_take_fullreduction==1||goods.is_modify_sendscore==1)}}">
<view wx:if="{{goods.is_take_fullreduction==1}}">
<text class="tit">满减</text>
<text class="con">满{{goods.full_money}}元减{{goods.full_reducemoney}}元</text>
</view>
<view wx:if="{{goods.is_modify_sendscore==1&&goods.open_buy_send_score==1}}">
<text class="tit">赠送</text>
<text class="con">下单预估赠送{{goods.send_socre}}积分</text>
</view>
</view>
<view class="purchasing pb10" wx:if="{{goods.one_limit_count > 0 || goods.total_limit_count > 0}}">
<text class="purTit">限购</text>
<text wx:if="{{goods.total_limit_count > 0}}">每人限购{{goods.total_limit_count}}份</text>
<text wx:if="{{goods.one_limit_count > 0}}"> 每单限购{{goods.one_limit_count}}份</text>
</view>
<view class="saleNum" wx:if="{{buy_type=='presale'}}">
<view class="stock">已预订<text class="remaining"> {{goods.seller_count}} </text>{{goods_sale_unit}}</view>
</view>
<view class="saleNum" wx:if="{{is_hide_details_count!=1&&buy_type!='presale'}}">
<text class="purTit">销量</text>
<view class="stock">已售
<text class="remaining"> {{goods.seller_count}} </text>{{goods_sale_unit}},仅剩
<text class="remaining"> {{goods.total}} </text>{{goods_sale_unit}}</view>
</view>
<!-- 会员 -->
<!-- 是会员 不是会员商品 不显示 -->
<block wx:if="{{goods.is_take_vipcard==1&&is_vip_card_member==1&&is_open_vipcard_buy==1}}">
<view class="vip i-flex i-flex-spb" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/vip/upgrade">
<view class="i-flex vip-name">
<image src="{{modify_vipcard_logo}}" wx:if="{{modify_vipcard_logo}}" class="vip-logo"></image>
<text class="iconfont icon-huiyuan" style="font-size:30rpx;" wx:else></text> “{{modify_vipcard_name}}”
<block wx:if="{{goods.is_take_vipcard==1}}">会员立省{{goods.feePrice}}元</block>
</view>
</view>
</block>
<view class="vip i-flex i-flex-spb" wx:if="{{is_open_vipcard_buy==1&&is_vip_card_member!=1}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/vip/upgrade">
<view class="i-flex vip-name">
<image src="{{modify_vipcard_logo}}" wx:if="{{modify_vipcard_logo}}" class="vip-logo"></image>
<text class="iconfont icon-huiyuan" style="font-size:30rpx;" wx:else></text>
<block wx:if="{{goods.is_take_vipcard==1}}">开通“{{modify_vipcard_name}}”立省{{goods.feePrice}}元</block>
<block wx:else>“{{modify_vipcard_name}}” 尊享特权·会员专享价</block>
</view>
<view wx:if="{{is_vip_card_member==0}}">立即开通
<text class="iconfont icon-youjiantou goright"></text>
</view>
<view wx:if="{{is_vip_card_member==2}}">
<text style="color:#5c5c5c;">已到期,</text>立即续费
<text class="iconfont icon-youjiantou goright"></text>
</view>
</view>
</view>
<!-- 弹窗广告 -->
<advimg pos="1" />
<!-- 尾款信息 -->
<view class="buyRecords py10" wx:if="{{buy_type=='presale'&&presale_goods_info.presale_type==0}}">
<view class="i-flex pl20 dingjin i-flex-alc">
<view class="fsz-26 weight">尾款</view>
<view class="i-flex-item ml30">
<view class="price fsz-24">
¥<text class="fsz-34 weight">{{presaleBalance}}</text>
</view>
<view class="fsz-24 text-gray">({{presale_goods_info.presale_ding_time_start_date}}-{{presale_goods_info.presale_ding_time_end_date}})</view>
</view>
</view>
<view class="i-flex pl20 dingjin i-flex-alc mt10">
<view class="fsz-26 weight">流程</view>
<view class="i-flex-item ml30">
<view class="fsz-28">
1.付定金 - 2.付尾款 - 3.商家发货
</view>
<view class="fsz-24 text-gray">
<block wx:if="{{presale_goods_info.presale_sendorder_type==0}}">{{presale_goods_info.presale_sendorder_datetime}}开始发货</block>
<block wx:else>付款成功后{{presale_goods_info.presale_sendorder_afterday}}日内发货</block>
</view>
</view>
</view>
</view>
<block wx:if="{{buy_type!='presale'&&buy_type!='virtualcard'}}">
<!-- 团长信息 -->
<view class='group' bindtap="changeCommunity" wx:if="{{is_show_goodsdetails_communityinfo==1&&community&&community.communityName}}">
<view class="group-avatar">
<image src='{{community.headImg||community.disUserHeadImg}}'></image>
</view>
<view class='group-m'>
<view class='group-title'>{{community.communityName}}</view>
<view class='group-desc'><text style="color:#333;">取货地址:</text>{{community.fullAddress}}</view>
</view>
<view class='group-r' wx:if="{{hide_community_change_btn==0}}">
<image class="group-r-icon" src="../../images/community-right-arrow.png"></image>
</view>
</view>
<!-- 团长群 -->
<view class='group' wx:if="{{isopen_community_group_share==1&&group_share_info}}" bindtap="showGroupCode">
<view class="group-avatar">
<image src='{{group_share_info.share_avatar}}'></image>
</view>
<view class='group-m'>
<view class='group-title'>{{group_share_info.share_title}}</view>
<view class='group-desc'>{{group_share_info.share_desc}}</view>
</view>
<view class='group-r'>
<view class='group-btn' style="background:{{skin.color}}">马上加群</view>
</view>
</view>
</block>
<!-- 评价 -->
<view wx:if="{{order_comment_count > 0 && is_show_comment_list == 1}}">
<view class="straightInLive">
<view class="title">
商品评价
<text class="commentsNum">{{order_comment_count}}</text>
</view>
<view class="comments" wx:for="{{comment_list}}" wx:key="comment_id">
<view class='comment-user'>
<image src='{{item.avatar}}'></image>
<text>{{item.user_name}}</text>
</view>
<view bindtap="bindOpen" class="commentsCon {{item.isOpen&&item.showOpen?'doubleHidden':''}}" data-idx="{{index}}">{{item.content}}</view>
<view class="commentsOpen" wx:if="{{item.showOpen}}">
<text bindtap="bindOpen" data-idx="{{index}}">{{item.isOpen?'展开':'收起'}}</text>
<image class="commentsOpenImg down" src="../../images/commentsOpen.png"></image>
</view>
<view class="allImg" wx:if="{{item.images.length > 0}}">
<view class="commentsImg" wx:for="{{item.images}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="id">
<i-img class="goodsImg" height="75" iClass="img-class" imgType="5" loadImage="{{imgItem}}" width="75"></i-img>
</view>
</view>
<navigator class="checkComments" hoverClass="none" url="/eaterplanet_ecommerce/pages/goods/comment?id={{item.goods_id}}">查看全部评论</navigator>
</view>
</view>
</view>
<!-- 购买记录 -->
<view wx:if="{{buy_record_arr.count>0 && is_show_buy_record==1}}">
<view class="buyRecords">
<navigator class="moreBuyer" hoverClass="none" url="/eaterplanet_ecommerce/pages/goods/buyRecords?id={{goods_id}}">
<view class="title">
购买记录
<view class="buyNum">
已有
<text>{{buy_record_arr.count}}</text> 人购买,商品共销售
<text>{{goods.seller_count}}</text> 份
<image class="goBuyRecords" src="../../images/community-right-arrow.png"></image>
</view>
</view>
</navigator>
<view class="buyerList">
<image wx:for="{{buy_record_arr.list}}" wx:key="id" src='{{item.avatar}}' class='buyerImg img-class' style='height:90rpx;height:90rpx;'></image>
<navigator class="moreBuyer" hoverClass="none" url="/eaterplanet_ecommerce/pages/goods/buyRecords?id={{goods_id}}">
<image class="buyerImg" src="../../images/moreBuyer.png"></image>
</navigator>
</view>
</view>
</view>
<!-- 关联商品 -->
<i-relative-goods-list list="{{relative_goods_list}}" bind:openSku="openSku" needAuth="{{needAuth}}" bind:authModal="authModal" wx:if="{{loaded}}"></i-relative-goods-list>
<!-- 详情 -->
<view class="spuDetail" wx:if="{{ishide_details_desc!=1}}">
<image class="goodsDetailTitleImg" src="{{goods_details_title_bg?goods_details_title_bg:'../../images/goodsDetailTitle.png'}}" mode="widthFix"></image>
<view class="warmPrompt">
<view class="wxParse">
<parser html="{{goods.description}}" use-cache lazy-load bind:imgtap="bindimgtap" />
</view>
</view>
</view>
<view class="service">
<view class="detailLogo">
<text></text>
<image wx:if="{{goods_details_middle_image}}" mode='widthFix' class="detailLogoImg" src="{{goods_details_middle_image}}"></image>
<text></text>
</view>
<view class="instructions" wx:if="{{!noIns}}">
<view class="wxParse">
<parser html="{{instructions}}" />
</view>
</view>
</view>
<navigator url='/eaterplanet_ecommerce/pages/goods/industrial?id={{goods_id}}' class='cell' wx:if="{{goods_industrial_switch==1&&goods_industrial}}">
<view class='cell-left'>
<image class='cell-icon' mode='widthFix' src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABLAEsDASIAAhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABgcECAIDBQEACf/EADcQAAEDAwIDBwEGBQUAAAAAAAECAwQABRESIQYxQQcTFCJRYXGBMkJSkbHBFSNyodEWQ4Lh8P/EABsBAAMAAwEBAAAAAAAAAAAAAAUGBwIDBAAB/8QAMREAAQMCBAMHBAEFAAAAAAAAAQIDEQAEBQYSITFBcVFhgZGhscETItHhFDJCUmLw/9oADAMBAAIRAxEAPwC5dfEivulCPHnFqeG2C8tVuZYSB30mZK7tDKlHCQUpBUonBwB6VpffQwjWs7VtZZW8sIQJJrpXfiJq3zTE/ht0lqCQSqLG1pGehVkAH/IoS4p7SWbSyoyl22yJ6LuMpK3v+LDRKifYkVXbtw48j8Uz4UW1zXpTETvHHpegtCQ85pB0IzkISlKQM78/kiNhsCpbfjJpWzGxq1DCSoepJ5D3pWucWfUTpVA6CfmqbYZFZbs0XeIr0T/bB1d0b8T2EdaYnGHbH4q7IXboRujSVYfkXJOlTqPwNNpOGE9cjKsgZph8Dds0GUy2ym6MlfLwd3c7p4eyJAGhwf1AH1pJwYlleYmKhWiVNZjsalOsxi4lB1JGdSufPp68scoTtotFzjrctThbeQPMjJwD11JO4HuM0NRcONr1oUQe389vjRm4wjBX2gyppbYTtqO/H/IcvCPKrfx+PohZC3rPdEZGcsoQ+g/CkKOaLIchEmM1IbzodQFpyN8EZFfntGem2W6tOALZfivJcCNRA1JUD06bVaDs/wC12FLaahQnGJeoFSIT6yzJYH2lJBIKXEp3wcjajNnjS0ri5O3aBw60rZjyO7h7aXbU60neRw9z708K8POsGHEutJcQoKSoBSSDkEHrWZ50zgyJqe1HuUlMSA9JVybQVf2qvPbOkyezjiGX3peWuTDdcJVkhQcKT+opydpVwVFsDkdtGVPbKVqxoGRvy332pL32C2/wPxHAbWtx5+2rdLZzkLaUlf57Gp3mTEpxVm3SrZPEd5/UedOOVmg04m5J4LT5BQJqvMNnxEtljOO8WlGfTJxRzf58W1S4kC62wTI3hVKXFS6prSogpb3G/lxnHr/YHhvqjTGZTf2mnErH0OaO7/YHb+1EurU2GwhTagp2Q7oSpIOQoE59SPkVrcUEkFXCrNmBTKb+3/lGGoVvJEK6jhUTh67cVcKWVliCY6YnEQy2C/kkDU3sAod0cq+1z2G+K5hcRww7Nt023hV8jSkaZSJOpCED7aMDZerPOiq12HhaPCbYmrtUiS2B3jxmqwpR3JSUuJGBjGQPT1rkTeDmZtyU7a7la0RHFJIjiVqcbBwCNO523xk/WsA+jUZEd8caDW+L4Y8+4l46QZKjBTqIP276jy2iN/SonaHDLciLMwnS6jShQz504BSfkZx9Kl9ijanOPmCn7kZ9Xx5CP1IqJ2iSlCWzbOQjFR0dUZwAD74GfqK7HYbG13i6TFnShmF3Wv8ACXFgfok1i8vRbKUew0RZcWjLRLnMEDoTA9KtT2ZS0iCq2JeLiI6ElvJztyI+M9PejE86S/Z9ORZOIAG8vRXsoUorI0A4yrlvvgU6AdqY8n3xucOCFKlSNj05VBsZtvoXRjgd6HOOGELiIdcALZCm3M8sEZ/Y0mrTIjIvbiHHj4RKi04paN3EEEEHryPWm12hrnmMGIriu7UglxsJBK9+hO+R7evxSmcbQh5KG192lasFWMqOeQ+KRs1OITiy1N8RE9QPxFHsvJBtlBXP0qvHEVsds19nWl4YXEfWz8gHY/UYP1oj4Nfd8I0GZiQtkq8p8xbBVndB5oPp6k0R9vNgcRJjcSNDX3iUxppA/wBwD+Ws/wBSdvlPvS7tFpmXCc3FY0tOraU6guHSFJSknY9ScHHrRph9FwyHAdiKsals41g6FLWEkcSd4IG/56UzLJ4dlh7Sm2Qi4suOAQ1kOg9c6gCN+Qz8b5rlPp7qC6xHbhw44UpamkNFtO/JThV5tPLy/NBcS3LcYiKansIMlzQUFZT3XPdXQDA9awetUlqPKeUtvRHkBhQ1HK1Hlgddt6+pZSlRM0Cby0A6dVyDJGxB7Y5nfuqPcnS9cZDpeL2t1Sg4Tkq3503OyGAIXBj0txQS7cX1LSCnOptAKQD7ElVK632K4zL7Gs3h3GJL6gMOJI0p6rPsACc+1WBVERa7fEjRlgR2m0tNtEAgoSMb+55/JoVjdyG2A2Dur2onmi9aRbtWbZBmD4Dh5n2rscCNtXB2MwySp12UEugJxoQnfAx0wDTvA2qv/Ck66xLmZkFzw7JcCVaWgsrJI8oyDuRz60/xypkyN9P+O6B/VIny2+ai+Zmyi5B5GubxFDMuES2nLrfmSPUdR/70pWX5lqIt6cwNLqkHA5AK6npvTO4ruUu22/vIUZTzzh0pVjKUe5Gd/ilNxBNmyHluS1KQtZJP8oN/tQTPLdqbpJQYcj7hG0ct+346V7AEOKP+vWuW5FXNszrN1IlQZSC282djg9QehGxB6GldfeFIFjkxo10fv16WpJ8GzAjhCNAPLWc+blkBNMRb7q1iO2hbiSdm0HGf8CpBMt0PsrzpfSQ622+UK5fdKTlJ2xtS3h945bAoUftPhT9a3TtmokGAd4ED9jwieE0skWDUnLXZXeFp/E9OdCz9NI/SoUy02dpaGp3DvFXDzqlDu1pBkN6unlUlJ/I5rp3rs+nvTe9tl9UtlSvMJzqg619RkL+mDRjwnZXbJb3G2bjOmLXgOPSHlBsb/cQTgfJ3o05dttICw5Pir5J9qOP4klpsLQ5JPKV7ddRUPQzXnBnCz9qlvy5M3xt1lAITIUjR3bKQAEhJ5E4GfjHTcktjb778m2S3StCwNKuqT6itDSHlMIeUstlsaUlCgcjnv+daRPlQniuIod4djlGon5Hr0zSxcvOXThUs/qld1TtyVEkE+URwiOHhTB4Osbcq8NLS1iDAOoeinPujcb/iP0pkjlSj7OuNLyLrFsk6Ch6O8rQ2plASts7kqI6j15Y503BuBVeyk3bosB9EyZ+7aN/+4UgY21cNXOl7s23nasJLDchlTTqQpCuYoZunDz4BVGWH0fgXsf8ABorrE8qJYngtniQAfTuOBGxHjQ1l9bRlJpPcQWeTGU+n+HrjLdT3aHUNbE88ZHrQ40hTcEw1sBt4EjvCeoBPz0NWErSWGe9Dnct68/a0jP50ovZAaUqW3iB3ifkUdYzEttGlSJ8ars/DnzHy4wmZ7hMZR5deXWpsXvG1IVIaWsNp7vQ4koOd9xnnn9qsFWt9ttwAONoWM8lDP61m7kJtSNIeM9P3XQrNClgJLYgd/wCqSPDFrkyZrr3h1GO95Q2E5B/Kiz/SlwlJS2xFahNn7SlYTgfA3z+VMNtKUJCUJCQOgGBWYrbZ5EtW1annCruGw+T61wXOOvOr1pEUO8KcH22wuGUjVImqTpU+5zAPMJHQHH/dEWKyrw86dba2atmw20mEjlQh59x9ZW4ZNf/Z'></image>
<text>工商资质</text>
</view>
<image class='icon-right' src='../../images/rightArrowImg.png'></image>
</navigator>
<!-- 猜你喜欢 -->
<guess-like bind:openSku="openSku" iClass="guessLike" bind:changeCartNum="changeCartNum" bind:vipModal="vipModal" likeTitle="猜你喜欢" controller="goods.goods_guess_like" gid="{{goods_id}}" wx:if="{{goods_id&&loaded}}"></guess-like>
<image class="sloganImg" src="{{index_bottom_image?index_bottom_image:'../../images/icon-index-slogan.png'}}"></image>
</view>
<!--底部按钮begin-->
<view class='i-fixed-bottom'>
<view class="goods-bottom-bar">
<view class="leftBtn">
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/index/index">
<view class="bar-item back-to-index">
<image class="icon" src="{{iconArr.home}}"></image>
回首页
</view>
</navigator>
<navigator hoverClass="none" openType="switchTab" url="/eaterplanet_ecommerce/pages/order/shopCart">
<view class="bar-item shop-cart">
<view class="icon">
<image src="{{iconArr.car}}"></image>
<view class="cart-num" wx:if="{{cartNum}}">{{cartNum}}</view>
</view>
购物车
</view>
</navigator>
</view>
<button class="goodsStatus" wx:if="{{!loaded}}" loading style="border-radius:0;background:{{goodsdetails_addcart_bg_color}}">加载中</button>
<view class="goodsStatus" wx:elif="{{goods.over_type==0&&buy_type!='presale'}}">即将开抢</view>
<view class="goodsStatus" wx:elif="{{goods.total<=0}}">已抢光</view>
<view class="goodsStatus" wx:elif="{{goods.total>0&&goods.over_type ==2&&buy_type!='presale'}}">已结束</view>
<view class="goodsStatus" wx:elif="{{goods.grounding != 1}}">已下架</view>
<view class="goodsStatus" wx:elif="{{is_comunity_rest == 1}}">团长休息中</view>
<view class="gobuy" wx:elif="{{buy_type == 'integral'}}">
<form bindsubmit="submit" reportSubmit="true">
<button hidden formType="submit" id="formId"></button>
</form>
<label class="balanceBtn" for="formId">
<view bindtap="balance" class="bar-item balance" style='background: {{goodsdetails_buy_bg_color}}'>立即兑换</view>
</label>
</view>
<!-- 预售 -->
<view class="gobuy" wx:elif="{{buy_type == 'presale'}}">
<label class="balanceBtn">
<view bindtap="balance" class="bar-item balance i-flex" wx:if="{{presaleState==1}}">
<view class="fsz-24 presaleTime">
<view>{{presale_goods_info.presale_ding_time_end_date}}结束</view>
<view wx:if="{{presale_goods_info.presale_sendorder_type==0}}">{{presale_goods_info.presale_sendorder_datetime}}开始发货</view>
<view wx:else>付款成功后{{presale_goods_info.presale_sendorder_afterday}}日内发货</view>
</view>
<view class="text-center" style="flex:2;">支付定金</view>
</view>
<view wx:elif="{{presaleState==0}}" class="goodsStatus">即将开抢</view>
<view wx:elif="{{presaleState==2}}" class="goodsStatus">已结束</view>
</label>
</view>
<!-- 礼品卡 -->
<view class="gobuy" wx:elif="{{buy_type == 'virtualcard'}}">
<label class="balanceBtn">
<view bindtap="balance" class="bar-item balance i-flex">
<view class="text-center" style="flex:2;">立即购买</view>
</view>
</label>
</view>
<view class="gobuy" wx:else>
<form bindsubmit="addToCart" reportSubmit="true">
<view class="bar-item add-to-cart" >加入购物车</view>
<button class="btn" formType="submit"></button>
</form>
<form bindsubmit="submit" reportSubmit="true">
<button hidden formType="submit" id="formId"></button>
</form>
<label class="balanceBtn" for="formId">
<view bindtap="balance" class="bar-item balance">
{{goods.is_seckill==1?"马上抢购":"立即购买"}}
</view>
</label>
</view>
</view>
</view>
<!--底部按钮end-->
<view class="mask" bindtap='closeSku' hidden="{{!visible}}"></view>
<!---规格选择begin-->
<view bind:cancel="close" class='sku-content' scrollUp="{{true}}" hidden="{{!visible}}">
<view class="sku-card">
<view bindtap="closeSku" class="close">
<image src="../../images/icon-sku-close.png"></image>
</view>
<view class="sku-header">
<image src='{{cur_sku_arr.skuImage}}' style="width:80px;height:80px;" class='sku-img'></image>
<view class="sku-desc">
<view class="sku-title">
<span>{{cur_sku_arr.spuName}}</span>
</view>
<!-- 预售价格显示 -->
<view class="sku-price" wx:if="{{buy_type=='presale'}}">
<view class="sale-price">
¥ <span>{{presale_goods_info.presale_type==0?presale_goods_info.presale_ding_money:presaleBalance}}</span>
</view>
<view class="market-price" style="text-decoration:none;" wx:if="{{presale_goods_info.presale_type==0}}">尾款:¥{{presaleBalance}}</view>
</view>
<view class="sku-price" wx:else>
<view class="sale-price" wx:if="{{buy_type=='integral'}}">
<span>{{cur_sku_arr.actPrice[0]}}</span> 积分
</view>
<block wx:else>
<view class="sale-price">
¥ <span>{{cur_sku_arr.actPrice[0]}}</span>.{{cur_sku_arr.actPrice[1]}}
</view>
</block>
<view class="market-price">
<block wx:if="{{buy_type=='integral'}}">¥{{cur_sku_arr.marketPrice[0]}}</block>
<block wx:else>¥{{cur_sku_arr.marketPrice[0]}}.{{cur_sku_arr.marketPrice[1]}}</block>
</view>
<block wx:if="{{buy_type!='integral'}}">
<!-- 会员价 -->
<i-vip-price wx:if="{{is_open_vipcard_buy==1&&is_vip_card_member==1&&goods.is_take_vipcard==1}}" price="{{cur_sku_arr.card_price}}"></i-vip-price>
<block wx:elif="{{is_member_level_buy==1&&goods.is_mb_level_buy==1}}">
<i-vip-price wx:if="{{is_open_vipcard_buy==1&&is_vip_card_member!=1}}" price="{{cur_sku_arr.levelprice}}" type="1"></i-vip-price>
<i-vip-price wx:if="{{is_open_vipcard_buy!=1}}" price="{{cur_sku_arr.levelprice}}" type="1"></i-vip-price>
</block>
</block>
</view>
<view class="sku-switch-on" wx:if="{{cur_sku_arr.spec}}">已选择:{{cur_sku_arr.spec}}</view>
</view>
</view>
<view class="sku-spec" wx:for="{{skuList.list}}" wx:key="id">
<view class="title">{{item.name}}</view>
<view class="spec-list">
<span bindtap="selectSku" class="{{idx==sku[index]['idx']?'on':''}}" data-disabled="{{item.canBuyNum-value<0}}" data-type="{{index}}_{{idx}}_{{value.option_value_id}}_{{value.name}}" wx:for-index="idx" wx:key="idx" data-idx="{{idx}}" wx:for="{{item.option_value}}"
wx:for-item="value" style="{{idx==sku[index]['idx']?'color:'+skin.color+';border-color:'+skin.color:''}}">{{value.name}}</span>
</view>
</view>
<view class="sku-num-content">
<view class="title">数量</view>
<view class="i-class i-input-number i-input-number-size-{{size}}">
<view bindtap="setNum" data-type="decrease" class="i-input-number-minus">
<image src="../../images/icon-input-reduce.png"></image>
</view>
<input bindblur="handleBlur" bindfocus="handleFocus" bindinput="changeNumber" class="i-input-number-text" type="number" value="{{sku_val}}"></input>
<view bindtap="setNum" data-type="add" class="i-input-number-plus">
<image src="../../images/icon-input-add.png"></image>
</view>
</view>
<view class="msg" wx:if="{{cur_sku_arr.one_limit_count>0||cur_sku_arr.total_limit_count>0||cur_sku_arr.oneday_limit_count>0}}">
<span wx:if="{{cur_sku_arr.one_limit_count>0}}">每单限{{cur_sku_arr.one_limit_count}}份</span>
<span style="margin-left:8rpx;" wx:if="{{cur_sku_arr.total_limit_count>0}}">每人限购{{cur_sku_arr.total_limit_count}}份</span>
<span></span>
</view>
</view>
<view class="sku-num-content">
<view class="even-num" wx:if="{{showLimitTip}}">
购物车总数已满或超出{{showLimitType==1?'每次':(showLimitType==2?'每天':'最多')}}购买数量
</view>
</view>
<form bindsubmit="gocarfrom" report-submit="true">
<button wx:if="{{noEougnStock}}" class="sku-confirm" disabled='true'>
<view>抢光了</view>
</button>
<button wx:else formType="submit" class="sku-confirm" disabled='{{cur_sku_arr.stock==0?true:false}}'>
<view>{{cur_sku_arr.stock==0?"已抢光":"确定"}}</view>
</button>
</form>
</view>
</view>
<!---规格选择end-->
</view>
<view class="fixed-aside">
<movable-view y="900rpx" direction="vertical" bindtap="share_handler" class="fixed-share" >
<text class="iconfont icon-fenxiang"></text>
<view>分享</view>
</movable-view>
<movable-view y="990rpx" direction="vertical" class="fixed-service" openType="contact" wx:if="{{isShowContactBtn==1}}">
<text class="iconfont icon-kefu"></text>
<view>客服</view>
</movable-view>
<movable-view y="1040rpx" direction="vertical" bindtap="backTop" class="fixed-top" hidden="{{!isSticky}}" wx:if="{{ishow_index_gotop==1}}">
<text class="iconfont icon-fanhuidingbu"></text>
<view>顶部</view>
</movable-view>
</view>
<i-order-notify i-class="order-notify" wx:if="{{order_notify_switch==1}}" stopNotify="{{stopNotify}}" />
<i-new-auth needAuth="{{needAuth&&showAuthModal}}" bind:authSuccess="authSuccess" bind:cancel="authModal" needPosition="{{needPosition}}"></i-new-auth>
<!-- 新分享形式 Start -->
<view class='share-modal' bindtap='closeShareModal' hidden='{{hideModal}}'>
<view class='share-modal-content'>
<view class='share-modal-img'>
<image mode='widthFix' src='{{shareImgUrl}}'></image>
</view>
<view class="share-modal-btn-list">
<view class="share-modal-btn-item">
<button open-type="share" class='none_btn' plain="true">
<text class="iconfont icon-weixin1 btn-icon"></text>
<view class="btn-text">
<text>分享好友</text>
</view>
</button>
</view>
<view class="share-modal-btn-item" catchtap='saveThumb'>
<text class="iconfont icon-zhaopian btn-icon"></text>
<view class="btn-text">
<text>保存相册</text>
</view>
</view>
</view>
</view>
</view>
<!-- 团长切换 -->
<i-change-community wx:if="{{showChangeCommunity}}" visible="{{showChangeCommunity}}" changeCommunity="{{changeCommunity}}" community="{{community}}" bind:changeComunity="confrimChangeCommunity" canChange="{{hide_community_change_btn==0}}" groupInfo="{{groupInfo}}" bind:noChange="cancelChangeCommunity" cancelFn="{{true}}"></i-change-community>
<canvas canvasId="myCanvas" class="canvas-img" style="width: {{canvasWidth}}px;height: {{canvasHeight}}px;"></canvas>
<i-vip-modal visible="{{showVipModal}}" imgUrl="{{pop_vipmember_buyimage}}" />
<!-- 核销弹窗 -->
<i-modal scrollUp="{{true}}" visible="{{showHexiaoModal}}" bind:cancel="handleHexiaoModal">
<view class="sku-card">
<view class="title text-gray mb10 fsz-26 i-flex i-alc">
<view class="i-flex-item">共 <text class="red bold">{{hx_len}}</text> 个自提点</view>
<text class="iconfont icon-guanbi fsz-34 text-3" bindtap="handleHexiaoModal"></text>
</view>
<scroll-view scroll-y style="height: 60vh;">
<view class="border-bottom py10" wx:for="{{hexiao_arr}}" wx:key="index">
<view class="fsz-28 weight mb5">{{item.room_name}}</view>
<view class="fsz-22">{{item.room_address}}</view>
</view>
</scroll-view>
</view>
</i-modal>
<!-- 全屏视频 -->
<scroll-view scrollY="false" style="height:100vh;" class="coverVideo" wx:if="{{showCoverVideo}}">
<view class="main">
<view class="section">
<video autoplay loop autoPauseIfOpenNative="true" controls="{{false}}" direction="0" id="coverVideo" objectFit="{{is_heng==0?'fill':'contain'}}" showFullscreenBtn="{{false}}" src="{{goods.video}}" bindended="coverVideoEnd"></video>
</view>
<cover-view bindtap="closeCoverVideo" class="goods" data-id="{{goods.id}}" wx:if="{{goods}}">
<cover-view class="good-img">
<cover-image src="{{goods.image_thumb?goods.image_thumb:'../../images/placeholder-refund.png'}}"></cover-image>
</cover-view>
<cover-view style="display: flex;flex-direction: column;justify-content: space-between;margin-right:10rpx;flex:1;">
<cover-view class="good-title .text-overflow2">{{goods.goodsname}}</cover-view>
<cover-view class="xqbottom">
<cover-view class="good-price">¥{{goods.price_front}}.{{goods.price_after}}</cover-view>
</cover-view>
</cover-view>
</cover-view>
</view>
</scroll-view>
<i-painter customStyle='position: absolute; left: -9999rpx;' palette="{{template}}" bind:imgOK="onImgOK"/>
</movable-area>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
var app = getApp();
Page({
data: {
goods_industrial: []
},
onLoad: function (options) {
let goods_id = options.id || '';
wx.showLoading();
this.getData(goods_id);
},
getData(goods_id){
let that = this;
app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'goods.get_instructions',
goods_id
},
dataType: 'json',
success: function (res) {
wx.hideLoading();
if (res.data.code == 0) {
that.setData({
goods_industrial: res.data.data.goods_industrial || []
})
}
}
})
}
})

View File

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "工商资质",
"usingComponents": {}
}

View File

@ -0,0 +1,3 @@
<view class="wrap" wx:if="{{goods_industrial.length>0}}">
<image class='img' src='{{item}}' mode='widthFix' wx:for="{{goods_industrial}}" wx:key="index"></image>
</view>

View File

@ -0,0 +1,3 @@
.img {
width: 100%;
}

View File

@ -0,0 +1,45 @@
Component({
properties: {
list: {
type: Array,
value: []
},
needAuth: {
type: Boolean,
value: false
}
},
data: {
disabled: false
},
methods: {
openSku: function (e) {
if (this.data.needAuth) {
this.triggerEvent("authModal");
return;
}
let idx = e.currentTarget.dataset.idx;
this.setData({ disabled: false })
let spuItem = this.data.list[idx];
this.triggerEvent("openSku", {
actId: spuItem.actId,
skuList: spuItem.skuList,
promotionDTO: spuItem.promotionDTO || '',
allData: {
spuName: spuItem.spuName,
skuImage: spuItem.skuImage,
actPrice: spuItem.actPrice,
canBuyNum: spuItem.spuCanBuyNum,
stock: spuItem.spuCanBuyNum,
marketPrice: spuItem.marketPrice,
oneday_limit_count: spuItem.oneday_limit_count,
total_limit_count: spuItem.total_limit_count,
one_limit_count: spuItem.one_limit_count,
goods_start_count: spuItem.goods_start_count
}
})
}
}
})

View File

@ -0,0 +1,8 @@
{
"component": true,
"usingComponents": {
"i-img": "../../components/img/index",
"i-button": "../../components/button/index",
"i-router-link": "../../components/router-link/router-link"
}
}

View File

@ -0,0 +1,22 @@
<!-- 关联商品 -->
<view class='new-comers' wx:if="{{list.length}}">
<view class='new-comers-title'>大家常买</view>
<scroll-view class='new-comers-scroll' scroll-x>
<view class='new-comers-wrap'>
<i-router-link routerClass="new-comers-item" url="/eaterplanet_ecommerce/pages/goods/goodsDetail?id={{item.actId}}" wx:for="{{list}}" wx:key="id">
<i-img defaultImage="../../images/placeholder-refund.png" height="200" width="180" iClass="new-img" loadImage="{{item.skuImage}}"></i-img>
<view class="act-end" wx:if="{{item.spuCanBuyNum==0}}">已抢光</view>
<view class='title'>{{item.spuName}}</view>
<view class='new-bot'>
<view class='price'>¥{{item.actPrice[0]}}.{{item.actPrice[1]}}</view>
<i-button iClass="add-cart" wx:if="{{disabled||item.spuCanBuyNum==0}}">
<image class='img' src="../../images/icon-add-shopCart-disabled.png"></image>
</i-button>
<i-button bind:click="openSku" data-idx="{{index}}" iClass="add-cart" wx:else>
<image class='img' src="../../images/icon-add-shopCart.png"></image>
</i-button>
</view>
</i-router-link>
</view>
</scroll-view>
</view>

View File

@ -0,0 +1,98 @@
.new-comers {
position: relative;
margin: 20rpx;
background: #fff;
border-radius: 20rpx;
padding: 30rpx 30rpx;
}
.new-comers-title {
position: relative;
margin-bottom: 20rpx;
font-size: 30rpx;
font-weight: bold;
color: #333;
padding-left: 20rpx;
}
.new-comers-title::before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
border-left: 8rpx solid #e7614d;
}
.new-comers-scroll {
max-height: 340rpx;
}
.new-comers-wrap {
position: relative;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
.new-comers-item {
width: 240rpx;
box-sizing: border-box;
padding: 20rpx;
font-size: 28rpx;
}
.new-comers-item .new-img {
width: 200rpx;
height: 180rpx;
margin-bottom: 20rpx;
}
.new-comers-item .title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.new-comers-item .new-bot {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.new-comers-item .add-cart {
width: 44rpx;
height: 44rpx;
padding: 0;
margin: 0;
}
.new-comers-item .add-cart .img {
width: 44rpx;
height: 44rpx;
display: block;
}
.new-comers-item .price {
color: #ff758c;
}
.new-comers-item {
position: relative;
}
.new-comers-item .act-end {
position: absolute;
height: 60rpx;
border-radius: 10rpx;
background: rgba(0, 0, 0, 0.5);
color: #fff;
font-size: 28rpx;
text-align: center;
line-height: 60rpx;
left: 50%;
top: 80rpx;
padding: 0 12rpx;
transform: translateX(-50%);
}

View File

@ -0,0 +1,66 @@
var _extends = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var o = arguments[t];
for (var a in o) Object.prototype.hasOwnProperty.call(o, a) && (e[a] = o[a]);
}
return e;
}, util = require("../../utils/util.js"), status = require("../../utils/index.js"), wcache = require("../../utils/wcache.js"), app = getApp();
Page({
mixins: [ require("../../mixin/globalMixin.js") ],
data: {
isIpx: true,
common_header_backgroundimage: "",
},
getCopyright: function() {
var C = this;
app.util.request({
url: "entry/wxapp/user",
data: {
controller: "user.get_copyright"
},
dataType: "json",
success: function(e) {
if (0 == e.data.code) {
var t = e.data, c = t.supply_diy_name, h = t.common_header_backgroundimage;
C.setData({
common_header_backgroundimage: h || ""
}, );
}
}
});
},
onShow: function() {
var t = this;
t.getCopyright();
},
onReady() {
//5s后跳转
this.data.Time = setInterval(() => {
this.setData({
time: --this.data.time
})
if (this.data.time <= 0) {
clearInterval(this.data.Time)
this.goHome()
}
}, 1000)
},
goHome() {
clearInterval(this.data.Time)
wx.reLaunch({
url: '../index/index'
})
},
data: {
time: 5,
},
})

View File

@ -0,0 +1,6 @@
{
"navigationBarTextStyle": "white",
"backgroundColor": "#fff",
"disableScroll": true,
"usingComponents": {}
}

View File

@ -0,0 +1,18 @@
<view class="upimg">
<view class='container'>
<view class="welcome">
<image src="{{common_header_backgroundimage}}"></image>
</view>
</view>
<view class="bottom">
<view class="logohdimg {{isIpx?'pb20':''}}" >
<image class='logo' src="../../images/logohdimg.png"></image>
</view>
<text class='time' catchtap="goHome">点击跳过{{time}}S</text>
</view>
</view>

View File

@ -0,0 +1,122 @@
.pb20 {
padding-bottom: 60rpx;
}
.upimg {
width: 100%;
top:0;
overflow: hidden;
}
.topic {
border-radius: 0!important;
}
.topic-img {
margin-bottom: 0rpx;
position: relative;
right: 0rpx;
border-radius: 0rpx!important;
width: 100%;
}
.logohdimg .pb20 {
padding-bottom: 50rpx;
background: #fff;
}
.bottom {
width:100%;
padding-bottom: calc(env(safe-area-inset-bottom) + 30rpx)
}
.bottomimg {
width:100%;
height: 175rpx;
position: absolute;
filter: drop-shadow(0px 0px 20px rgba(0, 0, 0, 0.7));
}
.container {
width:100%;
height:100%;
/**background:linear-gradient(90deg,#007FAF 0%,#42ADD5 100%);**/
}
.welcome {
/**margin-top: 400rpx;**/
width: 100%;
height:100%;
flex-direction: column;
align-items: center;
}
.welcome .bottom{
margin-bottom: 100rpx;
}
.welcome image {
width: 100%;
height: 100vh;
overflow: hidden;
}
.welcome button {
background: #00AFBE;
color: #fff;
width: 260rpx;
opacity: 0;
font-size:32rpx;
animation: op 2s infinite;
line-height: 60rpx;
border:2px solid #fff;
margin:100rpx 0
}
@keyframes op {
0% {
opacity: 0.4;
}
25% {
opacity: 0.6;
}
50% {
opacity: 0.8;
}
75% {
opacity: 0.6;
}
100% {
opacity: 0.4;
}
}
.time {
height: 60rpx;
font-size: 24rpx;
position: absolute;
bottom: 100rpx;
border-radius: 20rpx;
line-height: 60rpx;
right: 60rpx;
padding:0 20rpx;
background: rgba(255, 255, 255, 0.542);
}
.logohdimg{
color: #fff;
height: 100rpx;
position: absolute;
left: 50rpx;
bottom: 10rpx;
padding-bottom: 60rpx;
filter: drop-shadow(0 0rpx 5rpx rgba(0, 0, 8, 0.4));
margin-left: 0rpx;
margin-right: 0rpx;
text-align: center;
}
.logohdimg .logo{
height: 80rpx;
width: 331rpx;
text-align: center;
}

View File

@ -0,0 +1,16 @@
<template name="banner">
<view class="swipe" style="margin-top: {{item.marginTop}}px">
<swiper indicatorDots class="swiper-content" duration="400" autoplay indicatorActiveColor="{{item.textColor}}"
indicatorColor="#E7E9E7" interval="5000" circular>
<swiper-item wx:for="{{item.list}}" wx:key="id" wx:for-item="sliderItem">
<!-- 客服按钮 后台待添加 -->
<button class="banner nav-contact" openType="contact" wx:if="{{sliderItem.linktype==5}}">
<i-img iClass="banner-img" loadImage="{{sliderItem.imageUrl}}"></i-img>
</button>
<view class='banner' bindtap='goDiysliderUrl' data-link="{{sliderItem.link}}" wx:else>
<i-img iClass="banner-img" loadImage="{{sliderItem.imageUrl}}"></i-img>
</view>
</swiper-item>
</swiper>
</view>
</template>

View File

@ -0,0 +1,3 @@
<template name="blank">
<view style="margin: 0 {{item.marginLeftRight+'px'}};background-color: {{item.backgroundColor}};height: {{item.height+'px'}}"></view>
</template>

View File

@ -0,0 +1,55 @@
<template name="communityShow">
<view class="header-content" style="background: {{item.backgroundColor}}">
<view class="location" wx:if="{{item.style==1}}" style='color: {{item.textColor}}'>
<view class="location-left" wx:if="{{community&&community.communityName}}">
<navigator hoverClass="router-hover" url="/eaterplanet_ecommerce/pages/position/community"
wx:if="{{hide_community_change_btn==0&&open_danhead_model!=1}}">
<view class="community-title">
<view class="text-overflow1" style="max-width: 360rpx;">{{community.communityName}}</view>
<text class='community-change' wx:if="{{hide_community_change_word==0}}">切换</text>
<text class="iconfont icon-youjiantou"></text>
</view>
</navigator>
<view wx:else>
<view class="community-title">
<span>{{community.communityName}}</span>
</view>
</view>
<view class="community-address" bindtap='gotoMap' wx:if="{{index_hide_headdetail_address==0}}">
<text class="iconfont icon-weizhi-tianchong"></text>
{{community.address||community.communityAddress||community.fullAddress}}
</view>
</view>
<view class="location-left" wx:else>
<navigator hoverClass="router-hover" url="/eaterplanet_ecommerce/pages/position/community">
您还没有选择{{groupInfo.owner_name}},轻触去选择 <text class="iconfont icon-weizhi-tianchong"></text>
</navigator>
</view>
<view class="location-right">
<image src='{{community.headImg ? community.headImg: community.disUserHeadImg}}' class='img'></image>
<text>{{community.disUserName}}</text>
</view>
</view>
<view class="location-theme2" style='color: {{item.textColor}}' wx:else>
<block wx:if="{{community&&community.communityName}}">
<view class="loc-l">
<image src='{{community.headImg ? community.headImg: community.disUserHeadImg}}' class='img'></image>
</view>
<view class="loc-m" wx:if="{{hide_community_change_btn==0&&open_danhead_model!=1}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/position/community">
{{community.communityName}}
<text style='font-size:20rpx;' wx:if="{{hide_community_change_word==0}}" class="u-m-l-20">切换</text>
<text class="iconfont icon-youjiantou" style='font-size:18rpx;'></text>
</view>
<view class="loc-m" wx:else>{{community.communityName}}</view>
</block>
<view class="loc-l" wx:else>
<navigator hoverClass="router-hover" url="/eaterplanet_ecommerce/pages/position/community">
您还没有选择{{groupInfo.owner_name}},轻触去选择 <text class="iconfont icon-weizhi-tianchong"></text>
</navigator>
</view>
<view class="top-search" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/type/search">
<text class="iconfont icon-sousuo1"></text>搜索
</view>
</view>
</view>
</template>

View File

@ -0,0 +1,27 @@
<template name="coupon">
<view wx:if="{{hasCoupon}}" class="promotion">
<view class="slider">
<view class="slider-wraper">
<view class="list">
<view bindtap='receiveCoupon' wx:for="{{quan}}" wx:key="id" data-quan_id="{{qItem.id}}" wx:for-index="idx" wx:for-item='qItem'
class="card-content list-item {{(qItem.is_get==1&&qItem.is_hide>0)? 'get':''}}">
<view class="card">
<view class="card-price span">
<view class="card-price--unit span">¥</view>
<view class="card-price--num span">{{qItem.credit}}</view>
</view>
<view class="card-desc span" wx:if="{{qItem.limit_money >0}}">
满{{qItem.limit_money}}元可用</view>
<view class='card-desc span fsz-16' wx:if="{{qItem.is_limit_goods_buy==0}}">使用范围:所有商品</view>
<view class='card-desc span fsz-16' wx:elif="{{qItem.is_limit_goods_buy==1}}">使用范围:指定商品</view>
<view class='card-desc span fsz-16' wx:elif="{{qItem.is_limit_goods_buy==2}}">使用范围:指定分类</view>
<view class="card-tag span {{(qItem.is_get==1&&qItem.is_hide>0)? 'card-tag--get':''}}">
<view class="card-tag--text span">已领取</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>

View File

@ -0,0 +1,85 @@
.coupon-item2 {
position: relative;
width: 280rpx;
height: 126rpx;
display: flex;
align-items: center;
margin-right: 20rpx;
}
.coupon-item2 .coupon-item2-bg {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 280rpx;
height: 100%;
}
.coupon-item2 .coupon-intro {
position: relative;
flex: 1;
padding-left: 20rpx;
}
.coupon-item2 .coupon-btn {
position: relative;
width: 40rpx;
text-align: center;
line-height: 36rpx;
padding: 0 12rpx;
}
.promotion.coupon-style3 {
padding: 16rpx;
margin-left: 20rpx;
margin-right: 20rpx;
background-color: transparent;
background-size: cover;
border-radius: 16rpx;
}
.coupon-item3 {
position: relative;
width: 220rpx;
height: 268rpx;
margin-right: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.coupon-item3 .coupon-item3-bg {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 220rpx;
height: 100%;
}
.coupon-item3 .coupon-intro {
position: relative;
}
.coupon-item3 .price {
font-size: 48rpx;
}
.coupon-item3 .coupon-desc {
color: #777777;
}
.coupon-item3 .coupon-btn {
position: absolute;
width: 132rpx;
bottom: 20rpx;
left: 50%;
margin-left: -66rpx;
color: #FFFFFF;
line-height: 56rpx;
background-color: #FF4544;
border-radius: 60rpx;
}

View File

@ -0,0 +1,9 @@
<template name="cube">
<view class="rubik-cube" style="{{'background:'+(item.backgroundColor)+';'}}">
<block wx:for="{{item.list}}" wx:for-item="cubeItem" wx:for-index="idx" wx:key="idx">
<view class="item {{item.selectedTemplate}}" bindtap="goDiysliderUrl" data-link="{{cubeItem.link}}" style="padding:{{item.imageGap}}rpx">
<image src="{{cubeItem.imageUrl}}" mode="widthFix"></image>
</view>
</block>
</view>
</template>

View File

@ -0,0 +1,156 @@
.rubik-cube {
overflow: hidden;
padding: 20rpx;
/* display: flex;
flex-wrap: wrap; */
}
.rubik-cube .item {
float: left;
text-align: center;
line-height: 0;
box-sizing: border-box;
}
.rubik-cube .item image {
width: 100%;
max-width: 100%;
/* max-height: 388rpx; */
}
.rubik-cube .item.row1-of2 {
width: 50%;
padding-bottom: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row1-of2:nth-child(1) {
padding-left: 0!important;
}
.rubik-cube .item.row1-of2:nth-child(2) {
padding-right: 0!important;
}
.rubik-cube .item.row1-of3 {
width: 33.33%;
padding-bottom: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row1-of3:nth-child(1) {
padding-left: 0!important;
}
.rubik-cube .item.row1-of3:nth-child(3) {
padding-right: 0!important;
}
.rubik-cube .item.row1-of4 {
width: 25%;
padding-bottom: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row1-of4:nth-child(1) {
padding-left: 0!important;
}
.rubik-cube .item.row1-of4:nth-child(4) {
padding-right: 0!important;
}
.rubik-cube .item.row2-lt-of2-rt {
width: 50%;
display: inline-block;
}
.rubik-cube .item.row2-lt-of2-rt:nth-child(1) {
padding-left: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row2-lt-of2-rt:nth-child(2) {
padding-right: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row2-lt-of2-rt:nth-child(3) {
padding-left: 0!important;
padding-bottom: 0!important;
}
.rubik-cube .item.row2-lt-of2-rt:nth-child(4) {
padding-right: 0!important;
padding-bottom: 0!important;
}
.rubik-cube .item.row1-lt-of2-rt {
width: 50%;
}
.rubik-cube .item.row1-lt-of2-rt:nth-child(1) {
width: 48%;
padding-left: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row1-lt-of2-rt:nth-child(2) {
float: right;
padding-top: 0!important;
padding-right: 0!important;
}
.rubik-cube .item.row1-lt-of2-rt:nth-child(3) {
float: right;
padding-bottom: 0!important;
padding-right: 0!important;
}
.rubik-cube .item.row1-tp-of2-bm:nth-child(1) {
width: 100%;
padding-left: 0!important;
padding-top: 0!important;
padding-right: 0!important;
}
.rubik-cube .item.row1-tp-of2-bm:nth-child(2) {
padding-left: 0!important;
}
.rubik-cube .item.row1-tp-of2-bm:nth-child(3) {
padding-right: 0!important;
}
.rubik-cube .item.row1-tp-of2-bm:nth-child(2),
.rubik-cube .item.row1-tp-of2-bm:nth-child(3) {
width: 50%;
padding-bottom: 0!important;
}
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(1) {
width: 50%;
padding-left: 0!important;
padding-top: 0!important;
padding-bottom: 0!important;
}
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(2) {
width: 50%;
padding-right: 0!important;
padding-top: 0!important;
}
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(3) {
/* padding-left: 0!important; */
}
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(4) {
/* padding-right: 0!important; */
}
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(3),
.rubik-cube .item.row1-lt-of1-tp-of2-bm:nth-child(4) {
width: 25%;
padding-bottom: 0!important;
}

View File

@ -0,0 +1,65 @@
<template name="diyCoupon">
<view wx:if="{{hasCoupon&&item.style!=3}}" class="promotion" style="padding:30rpx;margin-top:{{item.marginTop*2+'rpx'}};background-color:{{item.style==1?item.backgroundColor:'transparent'}};">
<view class="slider">
<view class="slider-wraper">
<view class="list">
<!-- 样式一 -->
<block wx:if="{{item.style==1}}" wx:for="{{quan}}" wx:key="id" wx:for-index="idx" wx:for-item='qItem'>
<view bindtap='receiveCoupon' data-quan_id="{{qItem.id}}" class="card-content list-item {{(qItem.is_get==1&&qItem.is_hide>0)? 'get':''}}" wx:if="{{idx<item.couponCount}}">
<view class="card">
<view class="card-price span">
<view class="card-price--unit span">¥</view>
<view class="card-price--num span">{{qItem.credit}}</view>
</view>
<view class="card-desc span" wx:if="{{qItem.limit_money >0}}">
满{{qItem.limit_money}}元可用</view>
<view class='card-desc span fsz-16' wx:if="{{qItem.is_limit_goods_buy==0}}">使用范围:所有商品</view>
<view class='card-desc span fsz-16' wx:elif="{{qItem.is_limit_goods_buy==1}}">使用范围:指定商品</view>
<view class='card-desc span fsz-16' wx:elif="{{qItem.is_limit_goods_buy==2}}">使用范围:指定分类</view>
<view class="card-tag span {{(qItem.is_get==1&&qItem.is_hide>0)? 'card-tag--get':''}}">
<view class="card-tag--text span">已领取</view>
</view>
</view>
</view>
</block>
<!-- 样式二 -->
<block wx:if="{{item.style==2}}" wx:for="{{quan}}" wx:key="id" wx:for-index="idx" wx:for-item='qItem'>
<view bindtap='receiveCoupon' data-quan_id="{{qItem.id}}" class="coupon-item2">
<image class="coupon-item2-bg" src="{{item.host+'/static/diycomponent/coupon/img/coupon_bg.png'}}"></image>
<view class="coupon-intro u-font-24 w0">
<view class="coupon-price red">¥<text class="u-font-40 weight">{{qItem.credit}}</text></view>
<view class="coupon-desc red u-m-t-5" wx:if="{{qItem.limit_money >0}}">满{{qItem.limit_money}}元可用</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:elif="{{qItem.is_limit_goods_buy==0}}">使用范围:所有商品</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:elif="{{qItem.is_limit_goods_buy==1}}">使用范围:指定商品</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:elif="{{qItem.is_limit_goods_buy==2}}">使用范围:指定分类</view>
</view>
<view class="coupon-btn red u-font-28">{{qItem.is_get==1&&qItem.is_hide>0?'已领取':'领取'}}</view>
</view>
</block>
</view>
</view>
</view>
</view>
<!-- 样式三 -->
<view wx:if="{{hasCoupon&&item.style==3}}" class="promotion coupon-style3" style="margin-top:{{item.marginTop*2+'rpx'}};{{('background-image:url('+item.host+'/static/diycomponent/coupon/img/style3-bg-1.png)')}}">
<view class="slider">
<view class="slider-wraper">
<view class="list">
<block wx:if="{{item.style==3}}" wx:for="{{quan}}" wx:key="id" wx:for-index="idx" wx:for-item='qItem'>
<view bindtap='receiveCoupon' data-quan_id="{{qItem.id}}" class="coupon-item3">
<image class="coupon-item3-bg" src="{{item.host+'/static/diycomponent/coupon/img/style3-bg-2.png'}}"></image>
<view class="coupon-intro u-font-24 u-p-t-30 text-center">
<view class="coupon-price red">¥<text class="price weight">{{qItem.credit}}</text></view>
<view class="red u-m-t-10 u-m-b-10" wx:if="{{qItem.limit_money >0}}">满{{qItem.limit_money}}元可用</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:if="{{qItem.is_limit_goods_buy==0}}">所有商品</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:elif="{{qItem.is_limit_goods_buy==1}}">指定商品</view>
<view class='coupon-desc red text-overflow1 u-m-t-5' wx:elif="{{qItem.is_limit_goods_buy==2}}">指定分类</view>
</view>
<view class="coupon-btn u-font-24 text-center">{{qItem.is_get==1&&qItem.is_hide>0?'已领取':'领取'}}</view>
</view>
</block>
</view>
</view>
</view>
</view>
</template>

View File

@ -0,0 +1,71 @@
<template name="diySeckill">
<view class="seckill" style="margin-top:{{diyInfo.marginTop*2+'rpx'}};">
<block wx:if="{{diyInfo.style==1}}">
<view class="seckill-head i-flex" style="background:{{diyInfo.backgroundColor}}">
<view class="tit">
<view>整点</view>
<view>秒杀</view>
</view>
<view class="i-flex-item i-flex">
<view class="seckill-head-item {{secKillActiveIdx==index?'active':''}}" wx:for="{{scekillTimeList}}" wx:key="id"
data-time="{{item.seckillTime}}" data-idx="{{index}}" bindtap="changeSecKillTime">
<view class="time">{{item.timeStr}}</view>
<view class="desc" style="{{secKillActiveIdx==index?('color:'+diyInfo.backgroundColor):''}}">{{item.desc}}</view>
</view>
</view>
<view class="more" bindtap="goLink"
data-link="/eaterplanet_ecommerce/moduleA/seckill/list?time={{scekillTimeList[secKillActiveIdx].seckillTime}}">
更多 <text class="iconfont icon-gengduo"></text>
</view>
</view>
<view class="seckill-list" wx:if="{{secRushList.length}}">
<swiper indicatorDots class="sec-swiper-content" autoplay duration="400" circular indicator-dots="{{false}}"
bindchange="scrollSecKillGoodsChange">
<swiper-item wx:for="{{secRushList}}" wx:key="id">
<i-seckill-spu spuItem="{{item}}" begin="{{scekillTimeList[secKillActiveIdx].state==2?1:0}}"
needAuth="{{needAuth}}"></i-seckill-spu>
</swiper-item>
</swiper>
<text class="current" wx:if="{{secRushList.length}}">{{secKillGoodsIndex}}/{{secRushList.length}}</text>
</view>
</block>
<block wx:if="{{diyInfo.style==2}}">
<view class="seckill-head2 i-flex i-flex-alc u-p-t-40 u-p-l-30 u-p-r-30 u-p-b-10">
<view class="i-flex-item">
<image style="width:206rpx;height:32rpx" src="{{diyInfo.host+diyInfo.list[1].imageUrl}}"></image>
<view style="color:rgba(255, 69, 68, .6);" class="u-font-28">
<block wx:for="{{scekillTimeList}}" wx:key="id" wx:if="{{secKillActiveIdx==index}}">
{{item.desc}} <text class="seckill-time-i">{{item.timeArr[0]}}</text>:<text class="seckill-time-i">{{item.timeArr[1]}}</text>
</block>
</view>
</view>
<view class="text-gray u-font-24" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/seckill/list?time={{scekillTimeList[secKillActiveIdx].seckillTime}}">
更多秒杀<text class="iconfont icon-youjiantou u-font-22"></text>
</view>
</view>
<view class="seckill-list" wx:if="{{secRushList.length}}">
<view wx:for="{{secRushList}}" wx:key="id">
<i-seckill-spu spuItem="{{item}}" begin="{{scekillTimeList[secKillActiveIdx].state==2?1:0}}" needAuth="{{needAuth}}"></i-seckill-spu>
</view>
</view>
</block>
<block wx:if="{{diyInfo.style==3}}">
<view class="seckill-head2 text-center u-p-t-50 u-p-l-30 u-p-r-30 u-p-b-10">
<view><image style="width:348rpx;height:34rpx" src="{{diyInfo.host+diyInfo.list[2].imageUrl}}"></image></view>
<view style="color:rgba(255, 69, 68, .6);" class="u-font-24 u-m-t-10">
<block wx:for="{{scekillTimeList}}" wx:key="id" wx:if="{{secKillActiveIdx==index}}">
{{item.desc}} <text class="seckill-time-i">{{item.timeArr[0]}}</text>:<text class="seckill-time-i">{{item.timeArr[1]}}</text>
</block>
</view>
</view>
<view class="seckill-list u-m-t-20" wx:if="{{secRushList.length}}">
<view wx:for="{{secRushList}}" wx:key="id">
<i-seckill-spu spuItem="{{item}}" begin="{{scekillTimeList[secKillActiveIdx].state==2?1:0}}" needAuth="{{needAuth}}"></i-seckill-spu>
</view>
</view>
<view class="text-gray u-font-24 text-center border-top u-p-t-30 u-p-b-30 u-m-l-20 u-m-r-20" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/seckill/list?time={{scekillTimeList[secKillActiveIdx].seckillTime}}">
更多秒杀<text class="iconfont icon-youjiantou u-font-22"></text>
</view>
</block>
</view>
</template>

View File

@ -0,0 +1,13 @@
.seckill-time-i {
display: inline-block;
width: 32rpx;
height: 32rpx;
border-radius: 4rpx;
background-color: #303133;
color: #FFFFFF;
text-align: center;
margin: 0 6rpx;
font-size: 24rpx;
line-height: 32rpx;
text-align: center;
}

View File

@ -0,0 +1,7 @@
<template name="diySingleImg">
<view style="margin-top: {{item.marginTop*2}}rpx;padding-left: {{item.paddingLeftRight*2}}rpx;padding-right: {{item.paddingLeftRight*2}}rpx;">
<block wx:for="{{item.list}}" wx:for-item="imgs" wx:for-index="kk" wx:key="kk">
<image src="{{imgs.imageUrl}}" mode="widthFix" bindtap="goDiysliderUrl" data-link="{{imgs.link}}" style="width:100%;vertical-align:top;margin-top:{{kk>0?(item.imageGap*2):0}}rpx;border-radius:{{item.topRadius*2}}rpx {{item.topRadius*2}}rpx {{item.bottomRadius*2}}rpx {{item.bottomRadius*2}}rpx;"></image>
</block>
</view>
</template>

View File

@ -0,0 +1,16 @@
<template name="floatBtn">
<view class="diyFloatBtn fixed-{{item.bottomPosition}}"
style="{{item.bottomPosition==3||item.bottomPosition==4?'bottom:'+(item.baseBtnBottom*1+item.btnBottom*1)+'px;':''}} {{item.bottomPosition==1||item.bottomPosition==2?'top:'+(item.baseBtnBottom*1+item.btnBottom*1)+'px;':''}}">
<block wx:for='{{item.list}}' wx:for-item='btnItem' wx:for-index='idx' wx:key="idx">
<button class="diyFloatBtn-item" wx:if="{{btnItem.linktype=='custom'}}" open-type="contact">
<image class="diyFloatBtn-img" src="{{btnItem.imageUrl}}"></image>
</button>
<button class="diyFloatBtn-item" wx:elif="{{btnItem.linktype=='gotop'}}" bindtap="backTop">
<image class="diyFloatBtn-img" src="{{btnItem.imageUrl}}"></image>
</button>
<button class="diyFloatBtn-item" bindtap="goDiysliderUrl" data-link="{{btnItem.link}}" wx:else>
<image class="diyFloatBtn-img" src="{{btnItem.imageUrl}}"></image>
</button>
</block>
</view>
</template>

View File

@ -0,0 +1,36 @@
.diyFloatBtn {
position: fixed;
z-index: 999;
width: 80rpx;
}
.diyFloatBtn.fixed-1,
.diyFloatBtn.fixed-3 {
left: 20rpx;
}
.diyFloatBtn.fixed-2,
.diyFloatBtn.fixed-4 {
right: 20rpx;
}
.diyFloatBtn-item {
display: inline-block;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
text-align: center;
box-sizing: border-box;
margin-bottom: 10rpx;
line-height: 1;
padding: 0;
}
.diyFloatBtn-item::after {
border: 0;
}
.diyFloatBtn-img {
width: 80rpx;
height: 80rpx;
}

View File

@ -0,0 +1,86 @@
<template name="goodsList">
<block wx:if="{{rushList.length>0}}">
<!-- 样式一 Start -->
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx" wx:if="{{rushList.length>0 && value.style==1}}">
<skeleton wx:for="{{rush}}" wx:key="id">
<view class="active-item">
<view class="list-item-tag-content" wx:if="{{isShowListTimer==1}}">
<view class="empty-1"></view>
<view class="empty-2" wx:if="{{item.spuDescribe}}"></view>
<view class="empty-3"></view>
<view class="list-item-count-down" style="color:{{skin.color}}"
wx:if="{{item.spuCanBuyNum!=0 && !actEndMap[item.end_time]}}" data-xx="{{item.spuCanBuyNum}}">
仅剩
<em wx:if="{{countDownMap[item.end_time].day>0}}">{{countDownMap[item.end_time].day}}天</em>
<span class="item-class">{{countDownMap[item.end_time].hour}}</span>:
<span class="item-class">{{countDownMap[item.end_time].minute}}</span>:
<span class="item-class">{{countDownMap[item.end_time].second}}</span>
</view>
</view>
<i-new-rush-spu actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku"
spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}"
bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal"
needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}"
isShowListTimer="{{isShowListTimer==1}}" showPickTime="{{ishow_index_pickup_time==1}}"
bind:vipModal="vipModal" skin="{{skin}}" saleUnit="{{goods_sale_unit}}" diyInfo="{{value}}"></i-new-rush-spu>
</view>
</skeleton>
</block>
<!-- 样式一 End -->
<!-- 样式二 Start -->
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx"
wx:if="{{rushList.length>0&&value.style==2}}">
<skeleton wx:for="{{rush}}" wx:key="id">
<view class="active-item-two">
<view class="list-item-tag-content" wx:if="{{isShowListTimer==1}}">
<view class="list-item-count-down type-two" style="background:{{skin.color}}"
wx:if="{{item.spuCanBuyNum!=0 && !actEndMap[item.end_time]}}">
仅剩
<em wx:if="{{countDownMap[item.end_time].day>0}}">{{countDownMap[item.end_time].day}}天</em>
<span class="item-class">{{countDownMap[item.end_time].hour}}</span>:
<span class="item-class">{{countDownMap[item.end_time].minute}}</span>:
<span class="item-class">{{countDownMap[item.end_time].second}}</span>
</view>
</view>
<i-rush-spu-big actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku"
spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}"
bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal"
needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}"
showPickTime="{{ishow_index_pickup_time==1}}" bind:vipModal="vipModal" skin="{{skin}}"
saleUnit="{{goods_sale_unit}}" diyInfo="{{value}}"></i-rush-spu-big>
</view>
</skeleton>
</block>
<!-- 样式二 End -->
<!-- 样式三 Start -->
<view class="theme3" wx:if="{{rushList.length>0 && value.style==3}}">
<image class='topic-img' src="{{cate_info.banner}}" mode="widthFix" wx:if="{{cate_info.banner}}" bindtap="goLink"
data-link="/eaterplanet_ecommerce/pages/type/details?id={{classificationId}}"></image>
<view class="theme3-list">
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx">
<block class="item" wx:for="{{rush}}" wx:key="actId">
<i-rush-spu spuItem="{{item}}" reduction="{{reduction}}" stopClick="{{stopClick}}" bind:openSku="openSku"
needAuth="{{needAuth}}" bind:authModal="authModal" bind:changeCartNum="changeCartNum"
changeCarCount="{{changeCarCount}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}"
canLevelBuy="{{canLevelBuy}}" bind:vipModal="vipModal" actEnd="{{actEndMap[item.end_time]}}" diyInfo="{{value}}"></i-rush-spu>
</block>
</block>
</view>
</view>
<!-- 样式三 End -->
<!-- 样式4 Start -->
<view class="comming-list themeTwo" wx:if="{{rushList.length>0&&value.style==4}}">
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx">
<skeleton wx:for="{{rush}}" wx:key="id" class="comming-spu-item">
<i-tworow actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku"
spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}"
bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal"
needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}"
isShowListTimer="{{isShowListTimer==1}}" showPickTime="{{ishow_index_pickup_time==1}}"
bind:vipModal="vipModal" skin="{{skin}}" saleUnit="{{goods_sale_unit}}" diyInfo="{{value}}"></i-tworow>
</skeleton>
</block>
</view>
<!-- 样式4 End -->
</block>
</template>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,41 @@
{
"enablePullDownRefresh": true,
"backgroundTextStyle": "light",
"navigationBarTextStyle": "white",
"backgroundColor": "#4d9ee9",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-tabbar": "../../components/tabbar/index",
"i-router-link": "../../components/router-link/router-link",
"i-rush-spu-big": "../../components/rush-spu-big/index",
"i-comming-spu": "../../components/comming-spu-disabled/index",
"i-img": "../../components/img/index",
"i-sku": "../../components/sku/index",
"i-count-down": "../../components/count-down/index",
"i-load-more": "../../components/load-more/index",
"i-tabs": "../../components/tabs/index",
"i-modal": "../../components/modal/index",
"i-order-notify": "../../components/order-notify/index",
"i-new-rush-spu": "../../components/new-rush-spu/index",
"i-new-comer": "../../components/new-comer/index",
"i-spike": "../../components/spike/index",
"i-topic": "../../components/topic/topic",
"i-new-auth": "../../components/new-auth/index",
"i-change-community": "../../components/changeCommunity/index",
"i-rush-spu": "../../components/rush-spu-col/index",
"i-seckill-spu": "../../components/seckillItem/seckillItem",
"i-vip-price": "../../components/vipPrice/vipPrice",
"i-vip-modal": "../../components/vipModal/index",
"i-tworow": "../../components/tworow/index",
"skeleton": "../../components/skeleton/skeleton",
"ad-alert": "../../components/ad-alert/index",
"advimg": "../../components/advimg/index",
"form-apply": "../../components/form/apply",
"parser":"../../components/parser/parser",
"diy-goods-list":"../../components/diy-goods-list/index",
"diy-many-goods-list":"../../components/diy-many-goods-list/index",
"diy-pintuan":"../../components/diy-pintuan/index",
"i-empty":"../../components/empty/index",
"diy-nav":"../../components/diy-nav/index"
}
}

View File

@ -0,0 +1,553 @@
<wxs module="test" src="./test.wxs"></wxs>
<page-meta bindscroll="{{test.funcA}}">
<image class="header-bg" src="{{shop_info.common_header_backgroundimage?shop_info.common_header_backgroundimage:'../../images/TOP_background@2x.png'}}" wx:if="{{shop_info.index_top_img_bg_open==0}}"></image>
<ep-navBar ref='' background='{{background}}' backgroundColorTop='#4d9ee9' color='#fff' iconTheme='white' titleimg="{{true}}" titleimgplus="{{true}}"></ep-navBar>
<view class="group" style="background-color:rgba(00, 00, 00, 0);height:{{statusBarHeight}}"></view>
<movable-area>
<view class='index-box pb100 {{showNewCoupon?"preventTouchMove":""}}' wx:if="{{(isDiy==1||loadOver)&&isblack!=1&&isparse_formdata!=1}}">
<import src="template/pin.wxml"></import>
<import src="template/pinrow.wxml"></import>
<import src="template/cube.wxml"></import>
<import src="template/seckill.wxml"></import>
<import src="template/video.wxml"></import>
<import src="template/navlist.wxml"></import>
<import src="template/presalerow.wxml"></import>
<import src="coupon.wxml"></import>
<import src="template/virtualcardrow.wxml"></import>
<view class="miniAppTip" wx:if="{{isTipShow}}">
<view bindtap="handleProxy" class="add-myapp" style="{{'top: ' + searchBarHeight + 92}}">
<text>添加到「我的小程序」团购更方便</text>
</view>
</view>
<view bindtap="handleHideProxy" class="guide" wx:if="{{isShowGuide}}">
<image mode="widthFix" src="{{index_lead_image}}"></image>
</view>
<!-- 旧版首页 -->
<block wx:if="{{isDiy==0}}">
<view class="bg-ff">
<view class="header-content" wx:if="{{hide_top_community==0}}">
<view class="header-logoimg">
<image class="header-logoimage" src="../../images/logoimg.png"></image>
</view>
<view class="location" style='color: {{shop_info.index_top_font_color}}' wx:if="{{shop_info.index_communityinfo_showtype!=1}}">
<view class="location-left" wx:if="{{community&&community.communityName}}">
<navigator hoverClass="router-hover" url="/eaterplanet_ecommerce/pages/position/community" wx:if="{{hide_community_change_btn==0&&open_danhead_model!=1}}">
<view class="community-title">
<view class="text-overflow1" style="max-width: 360rpx;">{{community.communityName}}</view>
<text class='community-change' wx:if="{{hide_community_change_word==0}}">切换</text>
<text class="iconfont icon-youjiantou"></text>
</view>
</navigator>
<view wx:else>
<view class="community-title">
<span>{{community.communityName}}</span>
</view>
</view>
<view class="community-address" bindtap='gotoMap' wx:if="{{index_hide_headdetail_address==0}}">
<text class="iconfont icon-weizhi-tianchong"></text>{{community.address||community.communityAddress||community.fullAddress}}
</view>
</view>
<view class="location-left" wx:else>
<navigator hoverClass="router-hover" url="/eaterplanet_ecommerce/pages/position/community">
您还没有选择{{groupInfo.owner_name}},轻触去选择 <text class="iconfont icon-weizhi-tianchong"></text>
</navigator>
</view>
<view class="location-right">
<image src='{{community.headImg ? community.headImg: community.disUserHeadImg}}' class='img'></image>
<text>{{community.disUserName}}</text>
</view>
</view>
<view class="location-theme2" style='color: {{shop_info.index_top_font_color}}' wx:else>
<block wx:if="{{community&&community.communityName}}">
<view class="loc-m" wx:if="{{hide_community_change_btn==0&&open_danhead_model!=1}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/position/community">
{{community.communityName}} <text style='font-size:12px;' wx:if="{{hide_community_change_word==0}}">切换</text><text class="iconfont icon-youjiantou" style='font-size:12px;'></text>
</view>
<view class="loc-m" wx:else>{{community.communityName}}</view>
<view class="loc-l">
<image src='{{community.headImg ? community.headImg: community.disUserHeadImg}}' class='img'></image>
</view>
</block>
<view class="loc-l" wx:else>
<navigator hoverClass="router-hover" style="margin-top: 16rpx" url="/eaterplanet_ecommerce/pages/position/community">
您还没有选择{{groupInfo.owner_name}},轻触去选择 <text class="iconfont icon-weizhi-tianchong"></text>
</navigator>
</view>
</view>
</view>
<!-- 幻灯片 -->
<view class="swipe" wx:if="{{slider_list.length>0}}">
<swiper indicatorDots class="swiper-content" duration="400" autoplay indicatorActiveColor="#4facfe" indicatorColor="#fff" interval="5000" circular>
<swiper-item wx:for="{{slider_list}}" wx:key="id">
<button class="banner nav-contact" openType="contact" wx:if="{{item.linktype==5}}">
<i-img iClass="banner-img" loadImage="{{item.image}}"></i-img>
</button>
<view class='banner' bindtap='goBannerUrl' data-idx="{{index}}" wx:else>
<i-img iClass="banner-img" loadImage="{{item.image}}"></i-img>
</view>
</swiper-item>
</swiper>
</view>
<!-- 导航列表 -->
<template is="navlist" data="{{navigat, navigatEmpty, navigatSwiper, skin}}"></template>
<!-- 弹窗广告 -->
<view style="position: relative;z-index: 3">
<advimg pos="0" bind:switchType="goIndexType" />
</view>
<!-- 优惠券 -->
<template is="coupon" data="{{hasCoupon, quan}}"></template>
<!-- 公告 -->
<view style="padding-bottom:5rpx; z-index: 3; position: relative" wx:if="{{notice_list.length>0}}">
<view class="top-msg" style="color: {{notice_setting.font_color}};background:{{notice_setting.background_color}};">
<image wx:if="{{notice_setting.horn}}" src="{{notice_setting.horn}}"></image>
<text wx:else class="iconfont icon-laba"></text>
<swiper class='notice-swipe' autoplay interval="3000" vertical circular>
<block wx:for="{{notice_list}}" wx:key="id">
<swiper-item class='notice-swipe-item' bindtap='showNoticeTextHandle' data-status="{{true}}" data-idx="{{index}}">
{{item.content}}
</swiper-item>
</block>
</swiper>
</view>
</view>
<!-- 魔方图 -->
<template is="cube" data="{{data:cube}}"></template>
</view>
<!-- 列表 Start -->
<view class="list-content" style="z-index: 666;">
<!-- 拼团 -->
<template is="pin" data="{{pinList:pinList,skin}}"></template>
<!-- 新人专享 -->
<i-new-comer bind:openSku="openSku" refresh="{{newComerRefresh}}" wx:if="{{is_show_new_buy==1}}" skin="{{skin}}" />
<!-- 限时秒杀 -->
<i-spike bind:openSku="openSku" refresh="{{newComerRefresh}}" wx:if="{{is_show_spike_buy==1}}" skin="{{skin}}" />
<!-- 多时段整点秒杀 -->
<template is="seckill" style="background: linear-gradient(180deg,#94cefe 0%, #4d9ee9 100%)" data="{{secRushList:secRushList,skin,scekillTimeList,secKillActiveIdx,secKillGoodsIndex,needAuth,seckill_bg_color}}" wx:if="{{seckill_is_open==1&&seckill_is_show_index==1}}"></template>
<!-- 专题 -->
<i-topic refresh="{{couponRefresh}}" bind:openSku="openSku" showPos="0" />
<!-- 分类专题 -->
<view class="theme3 bg-ff" wx:if="{{typeTopicList.length&&(typeItem.banner||typeItem.list.length)}}" wx:for="{{typeTopicList}}" wx:key="id" wx:for-index="idx" wx:for-item="typeItem">
<image class='topic-img' src="{{typeItem.banner}}" mode="widthFix" wx:if="{{typeItem.banner}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/type/details?id={{typeItem.id}}"></image>
<view class="theme3-list">
<i-rush-spu class="item" wx:for="{{typeItem.list}}" wx:if="{{typeItem.list.length}}" wx:for-item="item" wx:key="actId" spuItem="{{item}}" reduction="{{reduction}}" stopClick="{{stopClick}}" bind:openSku="openSku" needAuth="{{needAuth}}" bind:authModal="authModal" bind:changeCartNum="changeNotListCartNum" notNum="{{true}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}"></i-rush-spu>
</view>
<view class="theme3-more" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/type/details?id={{typeItem.id}}" wx:if="{{typeItem.list.length}}">
查看全部 <text class="iconfont icon-youjiantou"></text>
</view>
</view>
<!-- 预售 -->
<template is="presalerow" data="{{data:presale_index_info,skin}}"></template>
<!-- 礼品卡 -->
<template is="virtualcardrow" data="{{data:virtualcard_info,skin}}"></template>
<!-- 拼团展示2 -->
<template is="pinrow" data="{{pinList:pinList,skin,goods_sale_unit}}"></template>
<!-- 视频 -->
<template is="video" data="{{data:index_video_arr,fmShow,imageSize}}" wx:if="{{index_video_arr&&index_video_arr.enabled==1}}"></template>
<image id='rush-title' wx:if="{{shop_info.index_list_top_image&&shop_info.index_list_top_image_on!=1}}" class="rush-list-title" src="{{shop_info.index_list_top_image}}"></image>
<!--搜索框begin-->
<form bindsubmit="goResult" style="display: block;width: 100%;padding-bottom: 16rpx;background: linear-gradient(180deg,#94cefe 0%, #4d9ee9 100%)" wx:if="{{index_switch_search==1}}">
<view class='search-bar'>
<view class='search-box'>
<input class='ipt' placeholder="搜索商品" confirm-type="搜索" type="text" name="keyword" bindconfirm="goResult"></input>
<view class='search-icon'>
<text class="iconfont icon-sousuo1"></text>
</view>
</view>
</view>
</form>
<!--搜索框end-->
<!-- 分类导航 Start -->
<block wx:if="{{ishide_index_goodslist!=1}}">
<view class='sticky-cate' wx:if="{{index_change_cate_btn==1}}" background='{{background}}' style="{{'top: ' + statusBarHeight}}">
<block wx:if="{{hide_index_type!=1}}">
<view hidden="{{!isShowClassification||tabIdx!==0}}">
<i-tabs activeIndex="{{classification.activeIndex}}" bind:activeIndexChange="classificationChange" data-idx="1" fontColor="#FFF" iClass="category-list" tabs="{{classification.tabs}}" lineBgColor="{{'background:linear-gradient(to right, '+skin.color+', '+skin.light+')'}}"></i-tabs>
</view>
<view class="tab-nav-query"></view>
</block>
</view>
<view wx:else class="sticky-content {{isSticky?'sticky-top':''}} {{scrollDirect==='up'&&isSticky?'tab-nav-sticky':''}}" background='{{background}}' style="{{'top: ' + searchBarHeight}}">
<view class="tab-nav tab-nav-query" style='border-color:{{qgtab.bottom_color?qgtab.bottom_color:"#4facfe"}}'>
<view bindtap="tabSwitch" class="tab-nav-item {{tabIdx===0?'active':''}}" data-idx="0">
<image wx:if="{{tabIdx===0}}" src="{{qgtab.one_select?qgtab.one_select:'../../images/index-tab-left-active.png'}}"></image>
<image wx:else src="{{qgtab.one_selected?qgtab.one_selected:'../../images/index-tab-left-disabled.png'}}"></image>
<span>{{index_qgtab_text[0]?index_qgtab_text[0]:'正在抢购'}}</span>
</view>
<view bindtap="tabSwitch" class="tab-nav-item {{tabIdx===1?'active':''}}" data-idx="1">
<image wx:if="{{tabIdx===1}}" src="{{qgtab.two_select?qgtab.two_select:'../../images/index-tab-right-active.png'}}"></image>
<image wx:else src="{{qgtab.two_selected?qgtab.two_selected:'../../images/index-tab-right-disabled.png'}}"></image>
<span>{{index_qgtab_text[1]?index_qgtab_text[1]:'即将开抢'}}
</span>
</view>
<view class="count-down-content" wx:if="{{tabIdx===0}}">
<i-count-down countdownClass="count-down" itemClass="item-time" showDay="true" target="{{rushEndTime}}" wx:if="{{rushEndTime&&!stopNotify&&index_qgtab_counttime!=1}}" clearTimer="{{stopNotify}}">
<span class="count-down-left-text">仅剩</span>
</i-count-down>
</view>
</view>
<block wx:if="{{hide_index_type!=1}}">
<view hidden="{{!isShowClassification||tabIdx!==0}}">
<i-tabs activeIndex="{{classification.activeIndex}}" bind:activeIndexChange="classificationChange" data-idx="1" fontColor="#FFF" iClass="category-list" tabs="{{classification.tabs}}" lineBgColor="{{'background:linear-gradient(to right, '+skin.color+', '+skin.light+')'}}"></i-tabs>
</view>
<view hidden="{{!isShowCommingClassification||tabIdx!==1}}">
<i-tabs activeIndex="{{commingClassification.activeIndex}}" bind:activeIndexChange="commingClassificationChange" data-idx="2" fontColor="#FFF" iClass="category-list" tabs="{{classification.tabs}}" lineBgColor="{{'background:linear-gradient(to right, '+skin.color+', '+skin.light+')'}}"></i-tabs>
</view>
</block>
</view>
<!-- 分类导航 End -->
<view class='rush-list-box'>
<!-- <view wx:if="{{hide_index_type!=1}}" style="height: {{isSticky?'70rpx':'0'}}"></view> -->
<block wx:if="{{rushList.length>0 && tabIdx===0}}">
<!-- 样式一 Start -->
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx" wx:if="{{rushList.length>0 && theme==0}}">
<skeleton wx:for="{{rush}}" wx:key="id">
<view class="active-item">
<view class="list-item-tag-content" wx:if="{{isShowListTimer==1}}">
<view class="empty-1"></view>
<view class="empty-2" wx:if="{{item.spuDescribe}}"></view>
<view class="empty-3"></view>
<view class="list-item-count-down" style="color:{{skin.color}}" wx:if="{{item.spuCanBuyNum!=0 && !actEndMap[item.end_time]}}" data-xx="{{item.spuCanBuyNum}}">
仅剩
<em wx:if="{{countDownMap[item.end_time].day>0}}">{{countDownMap[item.end_time].day}}天</em>
<span class="item-class">{{countDownMap[item.end_time].hour}}</span>:
<span class="item-class">{{countDownMap[item.end_time].minute}}</span>:
<span class="item-class">{{countDownMap[item.end_time].second}}</span>
</view>
</view>
<i-new-rush-spu actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku" spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}" bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal" needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}" isShowListTimer="{{isShowListTimer==1}}" showPickTime="{{ishow_index_pickup_time==1}}" bind:vipModal="vipModal" skin="{{skin}}" saleUnit="{{goods_sale_unit}}"></i-new-rush-spu>
</view>
</skeleton>
</block>
<!-- 样式一 End -->
<!-- 样式二 Start -->
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx" wx:if="{{rushList.length>0&&theme==1}}">
<skeleton wx:for="{{rush}}" wx:key="id">
<view class="active-item-two">
<view class="list-item-tag-content" wx:if="{{isShowListTimer==1}}">
<view class="list-item-count-down type-two" style="background:{{skin.color}}" wx:if="{{item.spuCanBuyNum!=0 && !actEndMap[item.end_time]}}">
仅剩
<em wx:if="{{countDownMap[item.end_time].day>0}}">{{countDownMap[item.end_time].day}}天</em>
<span class="item-class">{{countDownMap[item.end_time].hour}}</span>:
<span class="item-class">{{countDownMap[item.end_time].minute}}</span>:
<span class="item-class">{{countDownMap[item.end_time].second}}</span>
</view>
</view>
<i-rush-spu-big actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku" spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}" bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal" needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}" showPickTime="{{ishow_index_pickup_time==1}}" bind:vipModal="vipModal" skin="{{skin}}" saleUnit="{{goods_sale_unit}}"></i-rush-spu-big>
</view>
</skeleton>
</block>
<!-- 样式二 End -->
<!-- 样式三 Start -->
<view class="theme3" wx:if="{{rushList.length>0 && theme==2}}">
<image class='topic-img' src="{{cate_info.banner}}" mode="widthFix" wx:if="{{cate_info.banner}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/pages/type/details?id={{classificationId}}"></image>
<view class="theme3-list">
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx">
<block class="item" wx:for="{{rush}}" wx:key="actId">
<i-rush-spu spuItem="{{item}}" reduction="{{reduction}}" stopClick="{{stopClick}}" bind:openSku="openSku" needAuth="{{needAuth}}" bind:authModal="authModal" bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}" bind:vipModal="vipModal" actEnd="{{actEndMap[item.end_time]}}"></i-rush-spu>
</block>
</block>
</view>
</view>
<!-- 样式三 End -->
<!-- 样式4 Start -->
<view class="comming-list themeTwo" wx:if="{{rushList.length>0&&theme==3}}">
<block wx:for="{{rushList}}" wx:key="idx" wx:for-item="rush" wx:for-index="idx">
<skeleton wx:for="{{rush}}" wx:key="id" class="comming-spu-item">
<i-tworow actEnd="{{actEndMap[item.end_time]}}" stopClick="{{stopClick}}" bind:openSku="openSku" spuItem="{{item}}" reduction="{{reduction}}" isShowListCount="{{isShowListCount}}" bind:changeCartNum="changeCartNum" changeCarCount="{{changeCarCount}}" bind:authModal="authModal" needAuth="{{needAuth}}" is_open_vipcard_buy="{{is_open_vipcard_buy}}" canLevelBuy="{{canLevelBuy}}" isShowListTimer="{{isShowListTimer==1}}" showPickTime="{{ishow_index_pickup_time==1}}" bind:vipModal="vipModal" skin="{{skin}}" saleUnit="{{goods_sale_unit}}"></i-tworow>
</skeleton>
</block>
</view>
<!-- 样式4 End -->
<i-load-more iClass="loadMore" loading="{{loadMore}}" tip="{{loadText}}" wx:if="{{loadMore}}"></i-load-more>
</block>
<block wx:if="{{tabIdx===1}}">
<view class="comming-list" wx:if="{{commingList.length}}">
<i-comming-spu category="{{commingClassification.tabs[commingClassification.activeIndex].name}}" class="comming-spu-item" spuItem="{{item}}" wx:if="{{commingList.length}}" wx:for="{{commingList}}" wx:key="id"></i-comming-spu>
<i-load-more iClass="loadMore" loading="{{commigLoadMore}}" tip="{{commigTip}}" wx:if="{{commigLoadMore}}"></i-load-more>
</view>
<view class="none-rush-list" wx:if="{{showCommingEmpty}}">
<image class="img-block" src="../../images/icon-index-empty.png"></image>
<view class="h1">本类商品暂时没有了哦</view>
<view class="h2">我们正在为您加紧准备中</view>
</view>
<view class="slogan" wx:if="{{!commigLoadMore&&commingList.length}}">
<image src="{{indexBottomImage?indexBottomImage:'../../images/icon-index-slogan.png'}}"></image>
</view>
</block>
<block wx:if="{{tabIdx===0}}">
<view class="none-rush-list" wx:if="{{showEmpty}}">
<image class="img-block" src="../../images/icon-index-empty.png"></image>
<view class="h1">本类商品暂时没有了哦</view>
<view class="h2">我们正在为您加紧准备中</view>
</view>
<view class="slogan" wx:if="{{!loadMore&&rushList.length}}">
<image src="{{indexBottomImage?indexBottomImage:'../../images/icon-index-slogan.png'}}"></image>
</view>
</block>
</view>
</block>
<!-- 专题 -->
<i-topic refresh="{{couponRefresh}}" bind:openSku="openSku" showPos="1" />
</view>
<!-- 列表 End -->
<view class="fixed-aside">
<movable-view y="770rpx" direction="vertical" bindtap='showCopyTextHandle' data-status="{{true}}" class="fixed-copytext" wx:if="{{ishow_index_copy_text==1}}">
<view>一键复制</view>
</movable-view>
<movable-view y="860rpx" direction="vertical" bindtap="share_handler" class="fixed-share" wx:if="{{isShowShareBtn==1}}">
<text class="iconfont icon-fenxiang"></text>
<view>分享</view>
</movable-view>
<movable-view y="950rpx" direction="vertical">
<button open-type="contact" wx:if="{{isShowContactBtn==1}}" class="contact-service">
<text class="iconfont icon-kefu"></text>
<view>客服</view>
</button>
</movable-view>
<movable-view y="1040rpx" direction="vertical" bindtap="backTop" class="fixed-top" hidden="{{!isSticky}}" wx:if="{{ishow_index_gotop==1}}">
<text class="iconfont icon-fanhuidingbu"></text>
<view>顶部</view>
</movable-view>
</view>
</block>
<!-- diy组件 -->
<view wx:if="{{isDiy==1&&diyLoaded}}" class="diy-box safebottom" style="background: url({{globalDiyData.bgUrl}}) no-repeat top center {{globalDiyData.bgColor}};background-size: 100%;">
<import src="communityShow.wxml"></import>
<import src="richtext.wxml"></import>
<import src="text.wxml"></import>
<import src="blank.wxml"></import>
<import src="banner.wxml"></import>
<import src="notice.wxml"></import>
<import src="search.wxml"></import>
<import src="line.wxml"></import>
<import src="floatBtn.wxml"></import>
<import src="cube.wxml"></import>
<import src="goodsList.wxml"></import>
<import src="diySeckill.wxml"></import>
<import src="video.wxml"></import>
<import src="diySingleImg.wxml"></import>
<import src="diyCoupon.wxml"></import>
<block wx:for="{{diyJson}}" wx:key="index">
<!-- 社区展示 -->
<template is="communityShow" data="{{item, community, hide_community_change_btn, open_danhead_model, index_hide_headdetail_address, hide_community_change_word}}" wx:if="{{item.controller=='CommunityShow'}}"></template>
<!-- 导航图标 -->
<diy-nav list="{{item}}" skin="{{skin}}" wx:if="{{item.controller=='GraphicNav'}}"></diy-nav>
<!-- 公告 -->
<template is="notice" data="{{item}}" wx:if="{{item.controller=='Notice'}}"></template>
<!-- 优惠券 -->
<template is="diyCoupon" data="{{hasCoupon, quan, item}}" wx:if="{{item.controller=='Coupon'}}"></template>
<!-- 幻灯片 -->
<template is="banner" data="{{item}}" wx:if="{{item.controller=='Slider'}}"></template>
<!-- 搜索框 -->
<template is="search" data="{{item}}" wx:if="{{item.controller=='Search'}}"></template>
<!-- 辅助线 -->
<template is="line" data="{{item}}" wx:if="{{item.controller=='HorzLine'}}"></template>
<!-- 辅助空白 -->
<template is="blank" data="{{item}}" wx:if="{{item.controller=='HorzBlank'}}"></template>
<!-- 富文本 -->
<template is="richtext" data="{{item}}" wx:if="{{item.controller=='RichText'}}"></template>
<!-- 文本 -->
<template is="text" data="{{item}}" wx:if="{{item.controller=='Text'}}"></template>
<!-- 浮动按钮 -->
<template is="floatBtn" data="{{item}}" wx:if="{{item.controller=='FloatBtn'}}"></template>
<!-- 图片魔方 -->
<template is="cube" data="{{item}}" wx:if="{{item.controller=='RubikCube'}}"></template>
<!-- 商品列表 -->
<block wx:if="{{item.controller=='GoodsList'}}">
<diy-goods-list value="{{item}}" idx="{{index}}" bind:diyGoodsList="getDiyGoodsList">
<template is="goodsList" data="{{rushList: diyGoodsList[index], value: item, isShowListTimer, actEndMap, countDownMap, stopClick, isShowListCount, needAuth, is_open_vipcard_buy, ishow_index_pickup_time, skin, goods_sale_unit}}" wx:if="{{diyGoodsList.length}}"></template>
</diy-goods-list>
</block>
<!-- 拼团 -->
<diy-pintuan refresh="{{couponRefresh}}" diyInfo="{{item}}" wx:if="{{item.controller=='Pintuan'}}" skin="{{skin}}" />
<!-- 多时段限时秒杀 -->
<template is="diySeckill" wx:if="{{item.controller=='Seckill'}}" data="{{secRushList:secRushList,skin,scekillTimeList,secKillActiveIdx,secKillGoodsIndex,needAuth,diyInfo:item}}"></template>
<!-- 视频 -->
<template is="video" data="{{item}}" wx:if="{{item.controller=='Video'}}"></template>
<!-- 新人专享 -->
<block wx:if="{{item.controller=='Newcome'}}">
<i-new-comer bind:openSku="openSku" refresh="{{newComerRefresh}}" diyData="{{item}}" skin="{{skin}}" />
</block>
<!-- 专题 -->
<block wx:if="{{item.controller=='Special'}}">
<i-topic refresh="{{couponRefresh}}" bind:openSku="openSku" showPos="0" diyInfo="{{item}}" />
</block>
<!-- 多商品组 -->
<block wx:if="{{item.controller=='ManyGoodsList'}}">
<diy-many-goods-list value="{{item}}" idx="{{index}}" bind:diyGoodsList="getDiyManyGoodsList">
<template is="goodsList" data="{{rushList: diyManyGoodsList, value: item, isShowListTimer, actEndMap, countDownMap, stopClick, isShowListCount, needAuth, is_open_vipcard_buy, ishow_index_pickup_time, skin, goods_sale_unit}}" wx:if="{{diyManyGoodsList.length}}"></template>
<view wx:else>
<i-empty>暂无商品~</i-empty>
</view>
</diy-many-goods-list>
</block>
<!-- 单图组 -->
<template is="diySingleImg" data="{{item}}" wx:if="{{item.controller=='SingleImg'}}"></template>
</block>
<view style="height:100rpx;"></view>
</view>
<i-tabbar currentIdx='0' cartNum='{{cartNum}}' needAuth="{{needAuth}}" tabbarRefresh="{{tabbarRefresh}}" bind:authModal="authModal" />
<i-order-notify i-class="order-notify" wx:if="{{shop_info.order_notify_switch==1}}" stopNotify="{{stopNotify}}" />
<i-change-community wx:if="{{showChangeCommunity}}" wx:if="{{showChangeCommunity}}" visible="{{showChangeCommunity}}" changeCommunity="{{changeCommunity}}" community="{{community}}" bind:changeComunity="confrimChangeCommunity" canChange="{{hide_community_change_btn==0}}" groupInfo="{{groupInfo}}"></i-change-community>
<!-- 弹窗优惠券begin -->
<view class='new-coupou' wx:if="{{showCouponModal && hasAlertCoupon && !showChangeCommunity}}">
<view class='new-coupou-content'>
<view class='new-coupou-body'>
<view class='new-coupou-body-head'>恭喜你获得{{totalAlertMoney}}元红包券</view>
<view class='new-coupou-body-scroll'>
<scroll-view scroll-y style='max-height:580rpx;'>
<view class='new-coupou-item' wx:for="{{alert_quan_list}}" wx:key="id">
<view class="m-coupon-l">
<view class='m-coupou-price'><text>¥</text>{{item.credit}}</view>
</view>
<view class='m-coupou-m'>
<view class='m-coupou-name'>{{item.voucher_title}}</view>
<view class='m-coupou-title' wx:if="{{item.limit_money >0}}">满{{item.limit_money}}元可用</view>
<view class='m-coupou-title' wx:if="{{item.is_limit_goods_buy==0}}">使用范围:所有商品</view>
<view class='m-coupou-title' wx:elif="{{item.is_limit_goods_buy==1}}">使用范围:指定商品</view>
<view class='m-coupou-title' wx:elif="{{item.is_limit_goods_buy==2}}">使用范围:指定分类</view>
</view>
<view class='m-coupou-r'>
<view class='new-coupou-use kong' bindtap='goUse' data-idx='{{index}}'>去使用</view>
</view>
</view>
</scroll-view>
</view>
<view class='new-coupou-body-foot'>
<view class='new-coupou-body-btn' bindtap='toggleCoupon' data-auth="true">立即使用</view>
</view>
</view>
<view class='new-coupou-foot'>
<text class="iconfont icon-guanbi" bindtap='toggleCoupon'></text>
</view>
</view>
</view>
<!-- 弹窗优惠券end -->
<!-- 弹窗广告 -->
<ad-alert pop_page="0" wx:else />
</view>
<!-- 禁用界面 -->
<view class="forbid i-flex-col i-flex-alc" wx:if="{{isblack==1}}">
<text class="iconfont icon-icon-test1"></text>
<view class="h1">您已被禁止访问</view>
<view class="h2">请联系管理员</view>
</view>
<!---规格选择begin-->
<i-sku visible="{{visible}}" skin="{{skin}}" skuList="{{skuList}}" cur_sku_arr="{{cur_sku_arr}}" bind:cancel="closeSku" sku_val="{{sku_val}}" sku="{{sku}}" goodsid="{{addCar_goodsid}}" bind:changeCartNum="changeCartNum" bind:vipModal="vipModal"></i-sku>
<!---规格选择end-->
<!-- 会员表单申请 -->
<!-- {{isparse_formdata}} -->
<!-- 2023-03-21 会员申请屏蔽 -->
<form-apply wx:if="{{isparse_formdata==1}}"></form-apply>
<!-- 分享 -->
<view class='ui-mask' bindtap='hide_share_handler' hidden='{{is_share_html}}'></view>
<view class="model-services show" hidden='{{is_share_html}}'>
<view class="model-services-title">分享</view>
<view class="model-services-content">
<view class="service-list">
<view class="service-item">
<button open-type="share" class='none_btn' plain="true">
<text class="iconfont icon-weixin2 service-icon"></text>
<view class="cube-text">
<text>好友</text>
</view>
</button>
</view>
<view class="service-item" bindtap="goLink" data-link='/eaterplanet_ecommerce/pages/index/share' data-needauth="{{true}}">
<text class="iconfont icon-pengyouquan service-icon"></text>
<view class="cube-text">
<text>海报</text>
</view>
</view>
</view>
</view>
</view>
<!-- 分享 End -->
<!-- 文本复制 Begin -->
<i-modal scrollUp="{{false}}" visible="{{showCopyText}}">
<view class="copytext">
<view class="copytext-title" style="background:{{skin.color}}">
- {{groupInfo.owner_name}}信息 -
<text class="iconfont icon-guanbi copytext-close" bindtap='showCopyTextHandle' data-status="{{false}}"></text>
</view>
<view class="copytext-p">小区:{{community.communityName}}</view>
<view class="copytext-p">{{groupInfo.owner_name}}{{community.disUserName}}</view>
<view class="copytext-p">自提点:{{community.address||community.communityAddress||community.fullAddress}}</view>
<view class="copytext-h3">今日推荐</view>
<scroll-view class="copytext-content" scroll-y>
<view class="copytext-item" wx:for="{{copy_text_arr}}" wx:key="id" wx:if="{{copy_text_arr.length}}">
{{index+1}}. 【{{item.goods_name}}】 <text>团购价{{item.price}}元</text>
</view>
</scroll-view>
<i-button class="community-content-btn" iClass="btn" bindtap="copyText" style="background:{{skin.color}}">一键复制</i-button>
</view>
</i-modal>
<!-- 文本复制 End -->
<i-new-auth needAuth="{{needAuth&&showAuthModal}}" bind:authSuccess="authSuccess" bind:cancel="authModal" needPosition="{{needPosition}}"></i-new-auth>
<i-vip-modal visible="{{showVipModal}}" imgUrl="{{pop_vipmember_buyimage}}" />
<!-- 公众号关注组件 -->
<view class="mp-account" wx:if="{{show_index_wechat_oa==1&&!hideMpAccount}}">
<text class="iconfont icon-guanbi" bindtap="closeMpaccount"></text>
<official-account binderror="binderror" bindload="bindload"></official-account>
</view>
<!-- 公告弹窗 Begin -->
<i-modal scrollUp="{{false}}" visible="{{showNoticeText}}">
<view class="copytext">
<view class="copytext-title" style="background:{{skin.color}}">
- 公告 -
<text class="iconfont icon-guanbi copytext-close" bindtap='showNoticeTextHandle' data-status="{{false}}"></text>
</view>
<scroll-view class="copytext-content" scroll-y>
<view class="copytext-item" wx:if="{{noticeIdx>=0}}">
{{notice_list[noticeIdx].content}}
</view>
</scroll-view>
</view>
</i-modal>
<!-- 公告弹窗 End -->
</movable-area>
</page-meta>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
<template name="line">
<view style="border-top: 1rpx {{item.borderStyle}} {{item.color}};margin:{{item.margin}}px {{item.padding}}px;"></view>
</template>

View File

@ -0,0 +1,15 @@
<template name="notice">
<view style="margin-top: {{item.marginTop}}px;">
<view class="top-msg" style="color: {{item.textColor}};background:{{item.backgroundColor}};">
<image wx:if="{{item.leftImg!='/static/diycomponent/notice/img/notice.png'}}" src="{{item.leftImg}}"></image>
<text wx:else class="iconfont icon-laba"></text>
<swiper class='notice-swipe' autoplay interval="3000" vertical circular>
<block wx:for="{{item.list}}" wx:for-item="noticeItem" wx:key="id">
<swiper-item class='notice-swipe-item' data-content="{{noticeItem.title}}">
{{noticeItem.title}}
</swiper-item>
</block>
</swiper>
</view>
</view>
</template>

View File

@ -0,0 +1,5 @@
<template name="richtext">
<view style="margin: {{item.marginTop*2+'rpx'}} 20rpx 0;background-color: {{item.backgroundColor}};border-radius:10rpx;">
<parser html="{{item.html}}" />
</view>
</template>

View File

@ -0,0 +1,12 @@
<template name="search">
<form bindsubmit="goResult" style="display:block;width: 100%;">
<view class='diy-search-bar u-p-l-20 u-p-r-20 u-p-t-10 u-p-b-10' style="background-color:{{item.backgroundColor}}">
<view class='search-box' style="{{item.borderType==1?'border-radius:0;':''}};text-align:{{item.textAlign}}">
<input class="ipt {{item.borderType==2?'radius':''}}" placeholder="{{item.title?item.title:'搜索商品'}}" confirm-type="search" bindconfirm="goResult" type="text" name="keyword" style="background-color:{{item.bgColor}};color:{{item.textColor}};" placeholder-style="color:{{item.textColor}};"></input>
<view class='diy-search-icon'>
<text class="iconfont icon-sousuo1" style="color:{{item.textColor}}"></text>
</view>
</view>
</view>
</form>
</template>

View File

@ -0,0 +1,42 @@
.diy-search-bar {
background-color: transparent;
width: 94%;
box-sizing: border-box;
display: flex;
align-items: center;
margin:0 auto;
border-radius: 10rpx;
}
.diy-search-bar .search-box {
position: relative;
background-color: #f0f0f0;
height: 76rpx;
line-height: 76rpx;
border-radius: 76rpx;
color: #acacac;
display: flex;
align-content: center;
flex: 1;
}
.diy-search-bar .search-box .ipt {
padding: 0 30rpx;
line-height: 76rpx;
height: 76rpx;
width: 100%;
box-sizing: border-box;
}
.diy-search-bar .search-box .ipt.radius {
border-radius: 76rpx;
}
.diy-search-bar .diy-search-icon {
position: absolute;
right: 12px;
top: 50%;
margin-top: -30rpx;
text-align: center;
line-height: 60rpx;
}

View File

@ -0,0 +1,128 @@
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
goodShareImg: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let type = options.type || '';
if (type == 'commiss'){
this.getCommissShareImage();
}else {
this.getShareImage();
}
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 商品列表分享图
*/
getShareImage: function () {
wx.showLoading({ title: '获取中' })
var that = this;
var token = wx.getStorageSync('token');
var community_id = wx.getStorageSync('community').communityId;
app.util.request({
url: 'entry/wxapp/user',
data: {
controller: 'user.user_index_shareqrcode',
community_id,
token: token
},
dataType: 'json',
method: 'POST',
success: function (res) {
if (res.data.code == 0) {
let goodShareImg = res.data.image_path;
that.setData({ goodShareImg });
wx.hideLoading();
// var image_path = res.data.image_path;
// wx.getImageInfo({
// src: image_path,
// success: function (res) {
// var real_path = res.path;
// wx.saveImageToPhotosAlbum({
// filePath: real_path,
// success(res) {
// wx.showToast({
// title: '图片保存成功,可以分享了',
// icon: 'none',
// duration: 2000
// })
// that.setData({
// is_share_html: true
// });
// }
// })
// }
// })
}
}
})
},
/**
* 会员分销分享图
*/
getCommissShareImage: function () {
wx.showLoading({ title: '获取中' })
var that = this;
var token = wx.getStorageSync('token');
app.util.request({
url: 'entry/wxapp/user',
data: {
controller: 'distribution.get_haibao',
token: token
},
dataType: 'json',
method: 'POST',
success: function (res) {
if (res.data.code == 0) {
let goodShareImg = res.data.commiss_qrcode;
that.setData({ goodShareImg });
wx.hideLoading();
}
}
})
},
//图片点击事件
preImg: function (event) {
var src = event.currentTarget.dataset.src;//获取data-src
var goodShareImg = this.data.goodShareImg;//获取data-list
//图片预览
wx.previewImage({
current: src, // 当前显示图片的http链接
urls: [goodShareImg] // 需要预览的图片http链接列表
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
}
})

View File

@ -0,0 +1,8 @@
{
"navigationBarBackgroundColor": "#FFF",
"navigationBarTitleText": "分享图片",
"navigationBarTextStyle": "black",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar"
}
}

View File

@ -0,0 +1,5 @@
<ep-navBar title="分享" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view class='share-box'>
<view class='tip'>点击图片预览,长按保存图片,发送至群。</view>
<image bindtap='preImg' mode='widthFix' class='img' src='{{goodShareImg}}' data-src='{{goodShareImg}}'></image>
</view>

View File

@ -0,0 +1,18 @@
/* eaterplanet_ecommerce/pages/index/share.wxss */
page {
background: #fff;
}
.share-box {
padding: 0 30rpx 10rpx;
}
.share-box .tip {
line-height: 2.4;
}
.share-box .img {
width: 100%;
border-radius: 30rpx 30rpx 30rpx 30rpx;
box-shadow: 0 0 20rpx rgba(0,0,0,0.3);
}

View File

@ -0,0 +1,102 @@
<!-- 魔方图 -->
<template name="cube">
<view class="cube" wx:if="{{data.length}}">
<block wx:for="{{data}}" wx:key="id">
<!-- 1张 -->
<view class='cube-item' wx:if="{{item.type==1}}">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[0]==7}}">
<image src="{{item.thumb.cover[0]}}" class="cube-one rounded" mode="widthFix"></image>
</button>
<image wx:else src="{{item.thumb.cover[0]}}" class="cube-one rounded" mode="widthFix" data-index="{{index}}" data-idx="0" bindtap="goCube"></image>
</view>
<!-- 2张 -->
<view class='cube-item' wx:if="{{item.type==2}}">
<button class="cube-left nav-contact" openType="contact" wx:if="{{item.thumb.linktype[0]==7}}">
<i-img iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="295" height="365"></i-img>
</button>
<i-img wx:else iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="295" height="365" data-index="{{index}}" data-idx="0" bindtap="goCube"></i-img>
<button class="cube-two nav-contact" openType="contact" wx:if="{{item.thumb.linktype[1]==7}}">
<i-img iClass="cube-two rounded" loadImage="{{item.thumb.cover[1]}}" width="450" height="365"></i-img>
</button>
<i-img wx:else iClass="cube-two rounded" loadImage="{{item.thumb.cover[1]}}" width="450" height="365" data-index="{{index}}" data-idx="1" bindtap="goCube"></i-img>
</view>
<!-- 3张 -->
<view class='cube-item' wx:if="{{item.type==3}}">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[0]==7}}">
<i-img iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="275" height="365"></i-img>
</button>
<i-img wx:else iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="275" height="365" data-index="{{index}}" data-idx="0" bindtap="goCube"></i-img>
<view class="i-flex-col i-flex-spb">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[1]==7}}">
<i-img iClass="cube-three rounded" loadImage="{{item.thumb.cover[1]}}" width="430" height="180"></i-img>
</button>
<i-img wx:else iClass="cube-three rounded" loadImage="{{item.thumb.cover[1]}}" width="430" height="180" data-index="{{index}}" data-idx="1" bindtap="goCube"></i-img>
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[2]==7}}">
<i-img iClass="cube-three rounded" loadImage="{{item.thumb.cover[2]}}" width="430" height="180"></i-img>
</button>
<i-img wx:else iClass="cube-three rounded" loadImage="{{item.thumb.cover[2]}}" width="430" height="180" data-index="{{index}}" data-idx="2" bindtap="goCube"></i-img>
</view>
</view>
<!-- 4张 -->
<view class='cube-item' wx:if="{{item.type==4}}">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[0]==7}}">
<i-img iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="275" height="365"></i-img>
</button>
<i-img wx:else iClass="cube-left rounded" loadImage="{{item.thumb.cover[0]}}" width="275" height="365" data-index="{{index}}" data-idx="0" bindtap="goCube"></i-img>
<view class="i-flex-col i-flex-spb">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[1]==7}}">
<i-img iClass="cube-three rounded" loadImage="{{item.thumb.cover[1]}}" width="430" height="180"></i-img>
</button>
<i-img wx:else iClass="cube-three rounded" loadImage="{{item.thumb.cover[1]}}" width="430" height="180" data-index="{{index}}" data-idx="1" bindtap="goCube"></i-img>
<view class="i-flex i-flex-spb w450">
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[2]==7}}">
<i-img iClass="cube-four rounded" loadImage="{{item.thumb.cover[2]}}" width="212.5" height="180"></i-img>
</button>
<i-img wx:else iClass="cube-four rounded" loadImage="{{item.thumb.cover[2]}}" width="212.5" height="180" data-index="{{index}}" data-idx="2" bindtap="goCube"></i-img>
<button class="nav-contact" openType="contact" wx:if="{{item.thumb.linktype[3]==7}}">
<i-img iClass="cube-four rounded" loadImage="{{item.thumb.cover[3]}}" width="212.5" height="180"></i-img>
</button>
<i-img wx:else iClass="cube-four rounded" loadImage="{{item.thumb.cover[3]}}" width="212.5" height="180" data-index="{{index}}" data-idx="3" bindtap="goCube"></i-img>
</view>
</view>
</view>
<!-- 均分 -->
<!-- 2张 -->
<view class='cube-item' wx:if="{{item.type==5}}">
<block wx:for="{{item.thumb.cover}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="idx">
<button class="cube-w nav-contact" openType="contact" wx:if="{{item.thumb.linktype[idx]==7}}">
<image src="{{imgItem}}" class="w100p" mode="widthFix"></image>
</button>
<image wx:else src="{{imgItem}}" class="cube-w" mode="widthFix" data-index="{{index}}" data-idx="{{idx}}" bindtap="goCube"></image>
</block>
</view>
<!-- 3张 -->
<view class='cube-item' wx:if="{{item.type==6}}">
<block wx:for="{{item.thumb.cover}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="idx">
<button class="cube-w nav-contact" openType="contact" wx:if="{{item.thumb.linktype[idx]==7}}">
<image src="{{imgItem}}" class="w100p" mode="widthFix"></image>
</button>
<image wx:else src="{{imgItem}}" class="cube-w" mode="widthFix" data-index="{{index}}" data-idx="{{idx}}" bindtap="goCube"></image>
</block>
</view>
<!-- 1*4张 -->
<view class='cube-item' wx:if="{{item.type==7}}">
<block wx:for="{{item.thumb.cover}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="idx">
<button class="cube-w4 nav-contact" openType="contact" wx:if="{{item.thumb.linktype[idx]==7}}">
<image src="{{imgItem}}" class="w100p" mode="widthFix"></image>
</button>
<image wx:else src="{{imgItem}}" class="cube-w" mode="widthFix" data-index="{{index}}" data-idx="{{idx}}" bindtap="goCube"></image>
</block>
</view>
<!-- 2*2 -->
<view class='cube-item two-row' wx:if="{{item.type==8}}">
<block wx:for="{{item.thumb.cover}}" wx:for-index="idx" wx:for-item="imgItem" wx:key="idx">
<button class="cube-w nav-contact" openType="contact" wx:if="{{item.thumb.linktype[idx]==7}}">
<image src="{{imgItem}}" class="w100p" mode="widthFix"></image>
</button>
<image wx:else src="{{imgItem}}" class="cube-w" mode="widthFix" data-index="{{index}}" data-idx="{{idx}}" bindtap="goCube"></image>
</block>
</view>
</block>
</view>
</template>

View File

@ -0,0 +1,89 @@
.cube {
position: relative;
padding: 0 20rpx 20rpx;
margin-top: 20rpx;
overflow: hidden;
z-index: 3;
}
.cube-item {
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
}
.cube-item:last-child {
margin-bottom: 0;
}
.cube-one {
border-radius: 20rpx;
width: 710rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-left {
border-radius: 20rpx;
width: 273rpx;
height: 371rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-two {
border-radius: 20rpx;
width: 430rpx;
height: 370rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-three {
border-radius: 20rpx;
width: 430rpx;
height: 181rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-four {
border-radius: 20rpx;
width: 211rpx;
height: 182rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-w {
border-radius: 20rpx;
width: 353rpx;
height: 212rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.cube-w4 {
border-radius: 20rpx;
width: 173rpx;
height: 173rpx;
box-shadow: 0rpx 5rpx 15rpx 0rpx rgb(79, 129, 182);
}
.w450 {
width: 430rpx;
}
.cube-item.two-row {
flex-wrap: wrap;
}
.cube-item.two-row .cube-w {
flex: initial;
width: 355rpx;
height: 355rpx;
}
.cube-item.two-row .cube-w4 {
flex: initial;
width: 355rpx;
height: 355rpx;
}

View File

@ -0,0 +1,41 @@
<template name="navlist">
<view>
<block wx:if="{{navigatSwiper.totnav>10}}">
<swiper class="navswiper" style="height:{{navigatSwiper.totnav>5?'304':'152'}}rpx;" duration="400" wx:if="{{navigatSwiper.totnav>0}}" bindchange="navigatSwiperChange">
<swiper-item wx:for="{{navigat}}" wx:for-item="navItem" wx:key="index">
<view class='nav-list'>
<block wx:for="{{navItem}}" wx:key="id">
<view class='nav-list-item' bindtap='goNavUrl' data-idx="{{index}}" wx:if="{{item.type!=5}}">
<i-img height="86" iClass="nav-list-img" loadImage="{{item.thumb}}" width="86"></i-img>
<view class='nav-list-text'>{{item.navname}}</view>
</view>
<button class="nav-list-item nav-contact" openType="contact" wx:else>
<i-img height="86" iClass="nav-list-img" loadImage="{{item.thumb}}" width="86"></i-img>
<view class='nav-list-text'>{{item.navname}}</view>
</button>
</block>
<div style="width:20%;" wx:for="{{navigatEmpty}}" wx:if="{{navigatEmpty.length}}" wx:key="id"></div>
</view>
</swiper-item>
</swiper>
<view class="text-center navpage" wx:if="{{navigatSwiper.page>1}}">
<text class="item" style="{{navigatSwiper.current==index?'background:'+skin.color:''}}" wx:for="{{navigat}}" wx:key="index"></text>
</view>
</block>
<block wx:else>
<view class='nav-list' wx:for="{{navigat}}" wx:for-item="navItem" wx:key="index">
<block wx:for="{{navItem}}" wx:key="id">
<view class='nav-list-item' bindtap='goNavUrl' data-idx="{{index}}" wx:if="{{item.type!=5}}">
<i-img height="86" iClass="nav-list-img" loadImage="{{item.thumb}}" width="86"></i-img>
<view class='nav-list-text'>{{item.navname}}</view>
</view>
<button class="nav-list-item nav-contact" openType="contact" wx:else>
<i-img height="86" iClass="nav-list-img" loadImage="{{item.thumb}}" width="86"></i-img>
<view class='nav-list-text'>{{item.navname}}</view>
</button>
</block>
<div style="width:20%;" wx:for="{{navigatEmpty}}" wx:if="{{navigatEmpty.length}}" wx:key="id"></div>
</view>
</block>
</view>
</template>

View File

@ -0,0 +1,63 @@
/* 导航列表 S */
.navswiper {
margin: 30rpx 0 10rpx;
}
.nav-list {
position: relative;
z-index: 1;
display: flex;
padding: 0 20rpx;
flex-wrap: wrap;
justify-content: space-between;
}
.nav-list-item {
width: 20%;
color: #333;
margin-bottom: 20rpx;
}
.nav-list-item .nav-list-img {
width: 86rpx;
height: 86rpx;
margin: 0 auto;
}
.nav-list-item .nav-list-text {
text-align: center;
margin-top: 8rpx;
}
.nav-contact {
font-size: inherit;
line-height: inherit;
border-radius: 0;
background: transparent;
color: inherit;
padding: 0;
}
.nav-contact::after {
content: none;
}
.nav-list-item.nav-contact .nav-list-img {
left: 0;
}
.navpage {
line-height: 6rpx;
padding-bottom: 10rpx;
}
.navpage .item{
display: inline-block;
width: 30rpx;
height: 6rpx;
background-color: #e5e5e5;
margin: 0 5rpx;
line-height: 6rpx;
}
/* 导航列表 E */

View File

@ -0,0 +1,28 @@
<template name="pin">
<!-- 拼团 -->
<view class='pin-spec' wx:if="{{pinList.list&&pinList.list.length&&pinList.show==1}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/pin/index">
<image class="pin-spec-img" mode="widthFix" src="{{pinList.img}}" wx:if="{{pinList.img}}"></image>
<scroll-view class='pin-spec-scroll' scroll-x>
<view class='pin-spec-wrap'>
<view class="pin-spec-item" wx:for="{{pinList.list}}" wx:key="id">
<i-img defaultImage="../../images/placeholder-refund.png" height="200" width="200" iClass="pin-img" loadImage="{{item.skuImage}}"></i-img>
<view wx:if="{{item.label_info && item.label_info.type==0}}" class='item-tag'>
<image class='item-tag-bg' mode='widthFix' src="../../images/tag.png"></image>
<view class='tag-name {{item.label_info.len==2?"two-word":""}}'>{{item.label_info.tagcontent}}</view>
</view>
<view wx:if="{{item.label_info && item.label_info.type==1}}" class='item-tag' style='background:url({{item.label_info.tagcontent}}) no-repeat left top;background-size: 100%;'></view>
<view class="act-end" wx:if="{{item.spuCanBuyNum==0}}">已抢光</view>
<view class='title'>{{item.spuName}}</view>
<!-- <view class="spu-desc" wx:if="{{item.spuDescribe}}">
<text class="em">{{item.spuDescribe}}</text>
</view> -->
<text class="pin-tag" style="border-color:{{skin.color}};color:{{skin.color}}">{{item.pin_count}}人团</text>
<view class='new-bot'>
<view class='price'>¥{{item.actPrice[0]}}.{{item.actPrice[1]}}</view>
<view class="market-price">¥{{item.marketPrice[0]}}.{{item.marketPrice[1]}}</view>
</view>
</view>
</view>
</scroll-view>
</view>
</template>

View File

@ -0,0 +1,123 @@
.pin-spec {
position: relative;
background: #fff;
margin: 20rpx;
border-radius: 20rpx;
overflow: hidden;
}
.pin-spec-img {
width: 100%;
vertical-align: top;
border-radius: 10rpx 10rpx 0 0;
}
.pin-spec-scroll {
max-height: 380rpx;
}
.pin-spec-wrap {
position: relative;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
.pin-spec-item {
position: relative;
width: 240rpx;
box-sizing: border-box;
padding: 20rpx;
font-size: 28rpx;
}
.pin-spec-item .pin-img {
width: 200rpx;
height: 200rpx;
margin-bottom: 20rpx;
}
.pin-spec-item .title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pin-spec-item .new-bot {
margin-top: 10rpx;
display: flex;
align-items: center;
}
.pin-spec-item .price {
color: #ff5041;
}
.pin-spec-item .act-end {
position: absolute;
height: 60rpx;
border-radius: 10rpx;
background: rgba(0, 0, 0, 0.5);
color: #fff;
font-size: 28rpx;
text-align: center;
line-height: 60rpx;
left: 50%;
top: 80rpx;
padding: 0 12rpx;
transform: translateX(-50%);
}
.pin-spec-item .market-price {
text-decoration: line-through;
color: #999;
font-size: 22rpx;
margin-left: 10rpx;
}
.pin-spec-item .pin-tag {
display: inline-block;
font-size: 22rpx;
padding: 0 6rpx;
margin-right: 10rpx;
border: 0.1rpx solid #ff758c;
vertical-align: middle;
color: #ff758c;
border-radius: 4rpx;
}
/* 标签 */
.pin-spec .item-tag {
position: absolute;
left: 20rpx;
top: 20rpx;
width: 54rpx;
height: 62rpx;
z-index: 1;
color: #fff;
text-align: center;
}
.item-tag-bg {
position: absolute;
left: 0;
top: 0;
width: 54rpx;
height: 62rpx;
z-index: 0;
}
.pin-spec .item-tag .tag-name {
position: relative;
padding-top: 6rpx;
font-size: 20rpx;
line-height: 1;
font-weight: 600;
z-index: 1;
}
.pin-spec .item-tag .tag-name.two-word {
font-size: 22rpx;
padding-top: 14rpx;
}

View File

@ -0,0 +1,47 @@
<template name="pinrow">
<!-- 拼团 -->
<view class='pin-spec' wx:if="{{pinList.list&&pinList.list.length&&pinList.show==2}}">
<image class="pin-spec-img" mode="widthFix" src="{{pinList.img}}" wx:if="{{pinList.img}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/pin/index"></image>
<view class="pinrow-wrap">
<view class="border-bottom" wx:for="{{pinList.list}}" wx:key="id">
<i-router-link routerClass="spu-content" url="/eaterplanet_ecommerce/moduleA/pin/goodsDetail?&id={{item.actId}}">
<view class="item-top">
<i-img defaultImage="{{placeholdeImg?placeholdeImg:'../../images/placeholder-refund.png'}}" height="240" iClass="spu-img" lazyLoad="true" loadImage="{{item.bigImg?item.bigImg:item.skuImage}}" width="300"></i-img>
<view class="spu-play" wx:if="{{item.is_video}}"><image class="img" src="../../images/play.png"></image></view>
</view>
<view class="item-bottom">
<view class="spu-title">
<text class='span'>{{item.spuName}}</text>
</view>
<view class="spu-desc" wx:if="{{item.spuDescribe}}">
<text class="em">{{item.spuDescribe}}</text>
</view>
<view class="spu-count">
<text class="pin-tag" style="color:{{skin.color}};border-color:{{skin.color}}">{{item.pin_count}}人团</text>
<view>已拼{{item.soldNum}}{{goods_sale_unit}}</view>
</view>
<view class="spu-price">
<view class="sale-price">
<text class='span'>¥{{item.actPrice[0]}}</text>.{{item.actPrice[1]}}
</view>
<view class="market-price">¥{{item.marketPrice[0]}}.{{item.marketPrice[1]}}</view>
</view>
</view>
<block wx:if="{{!isPast}}">
<i-button class="add-cart-disabled" disabled="{{item.spuCanBuyNum==0}}" wx:if="{{item.spuCanBuyNum==0}}">
已抢光
</i-button>
<i-button bind:click="goLink" iClass="add-cart" class="add-cart" style="background: linear-gradient(90deg, {{skin.color}} 0%, {{skin.light}} 100%);" wx:else>
去拼团
</i-button>
</block>
<view class="mask" wx:if="{{spuItem.spuCanBuyNum==0?'disabled':''}}"></view>
<view class="act-end act-out" wx:if="{{item.spuCanBuyNum==0}}">已抢光</view>
</i-router-link>
</view>
</view>
<view class="pin-more" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/pin/index">
查看全部 <text class="iconfont icon-youjiantou fsz-22"></text>
</view>
</view>
</template>

View File

@ -0,0 +1,190 @@
.pinrow-wrap .spu-content {
display: block;
overflow: hidden;
margin: 20rpx auto;
padding: 20rpx 20rpx 30rpx;
box-sizing: border-box;
position: relative;
display: flex;
}
.pinrow-wrap .spu-img {
width: 240rpx;
height: 240rpx;
border-radius: 10rpx;
}
.pinrow-wrap .item-top {
position: relative;
}
.pinrow-wrap .spu-content .item-bottom {
flex: 1;
box-sizing: border-box;
margin-left: 20rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.pinrow-wrap .spu-content .spu-title {
color: #333;
font-size: 30rpx;
height: 32rpx;
width: 400rpx;
margin-bottom: 12rpx;
font-weight: bold;
position: relative;
}
.pinrow-wrap .spu-content .spu-title .span {
width: 100%;
height: 40rpx;
position: absolute;
left: 0;
top: -4rpx;
line-height: 40rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin: 0;
}
.pinrow-wrap .spu-content .spu-desc {
font-size: 26rpx;
line-height: 26rpx;
color: #999;
position: relative;
width: 400rpx;
height: 26rpx;
margin-bottom: 12rpx;
}
.pinrow-wrap .spu-content .spu-desc .em {
width: 100%;
height: 32rpx;
position: absolute;
left: 0;
top: -2rpx;
line-height: 32rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pinrow-wrap .spu-content .spu-price {
display: flex;
align-items: flex-end;
font-size: 26rpx;
line-height: 26rpx;
overflow: hidden;
margin-top: 10rpx;
}
.pinrow-wrap .spu-content .spu-price .sale-price {
font-family: 'DIN';
color: #ff758c;
margin-right: 12rpx;
}
.pinrow-wrap .spu-content .spu-price .sale-price .span {
font-size: 46rpx;
line-height: 42rpx;
margin: 0;
font-weight: bold;
}
.pinrow-wrap .spu-content .spu-price .market-price {
font-family: DIN;
text-decoration: line-through;
color: #999;
margin-right: 20rpx;
}
.pinrow-wrap .spu-content .spu-count {
margin-top: auto;
font-size: 24rpx;
color: #999;
margin-bottom: 10rpx;
}
.pinrow-wrap .spu-content .spu-count .pin-tag {
display: inline-block;
font-size: 22rpx;
padding: 0 6rpx;
margin-bottom: 10rpx;
border: 0.1rpx solid #ff5344;
vertical-align: middle;
color: #ff5344;
border-radius: 4rpx;
}
.pinrow-wrap .spu-content .add-cart,
.pinrow-wrap .spu-content .add-cart-disabled {
width: 160rpx;
height: 60rpx;
padding: 0;
margin: 0;
position: absolute;
right: 20rpx;
bottom: 20rpx;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(90deg, #ff5041 0%, #ff695c 100%);
color: #fff;
border-radius: 30rpx;
font-size: 26rpx;
font-weight: bold;
}
.pinrow-wrap .spu-content .add-cart-disabled {
background: #ccc;
}
.pinrow-wrap .spu-play {
position: absolute;
left: 120rpx;
top: 95rpx;
width: 100rpx;
height: 100rpx;
margin-left: -50rpx;
}
.pinrow-wrap .spu-play .img {
width: 100%;
height: 100%;
}
.pinrow-wrap .mask {
background: rgba(255, 255, 255, 0.5);
width: 300rpx;
height: 240rpx;
position: absolute;
left: 25rpx;
top: 30rpx;
}
.pinrow-wrap .act-end {
position: absolute;
height: 60rpx;
border-radius: 10rpx;
background: rgba(0, 0, 0, 0.5);
color: #fff;
font-size: 28rpx;
text-align: center;
line-height: 60rpx;
left: 130rpx;
top: 120rpx;
padding: 0 12rpx;
margin-left: -45rpx;
}
.pin-more {
text-align: center;
padding-bottom: 20rpx;
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -0,0 +1,67 @@
<template name="presalerow">
<!-- 预售 -->
<view class='pin-spec' wx:if="{{data.goods_list&&data.goods_list.length&&data.show_presale_index_goods==1}}">
<image class="pin-spec-img" mode="widthFix" src="{{data.presale_index_coming_img}}" wx:if="{{data.presale_index_coming_img}}" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleB/presale/index"></image>
<view class="pinrow-wrap presalerow">
<view class="border-bottom" wx:for="{{data.goods_list}}" wx:key="id">
<i-router-link routerClass="spu-content" url="/eaterplanet_ecommerce/pages/goods/goodsDetail?id={{item.actId}}&type=presale">
<view class="item-top">
<!-- 标签 -->
<view wx:if="{{item.label_info && item.label_info.type==0}}" class='item-tag'>
<image class='item-tag-bg' mode='widthFix' src="../../images/tag.png"></image>
<view class='tag-name {{item.label_info.len==2?"two-word":""}}'>{{item.label_info.tagcontent}}</view>
</view>
<view wx:if="{{item.label_info && item.label_info.type==1}}" class='item-tag' style='background:url({{item.label_info.tagcontent}}) no-repeat left top;background-size: 100%;'></view>
<i-img defaultImage="{{placeholdeImg?placeholdeImg:'../../images/placeholder-refund.png'}}" height="240" iClass="spu-img" lazyLoad="true" loadImage="{{item.bigImg?item.bigImg:item.skuImage}}" width="300"></i-img>
<view class="spu-play" wx:if="{{item.is_video}}"><image class="img" src="../../images/play.png"></image></view>
</view>
<view class="item-bottom">
<view class="spu-title">
<text class='span'>{{item.spuName}}</text>
</view>
<view class="spu-desc" wx:if="{{item.spuDescribe}}">
<text class="em">{{item.spuDescribe}}</text>
</view>
<view class="spu-count">
<text class="pin-tag" style="color:{{skin.color}};border-color:{{skin.color}}">
<block wx:if="{{item.presale_type==0}}">定金¥{{item.presale_ding_money}}可抵¥{{item.presale_deduction_money}}</block>
<block wx:else>全款预售</block>
</text>
<view wx:if="{{item.presale_type==0}}">尾款:¥{{item.weikuan}}</view>
<view>预售时间:{{item.presale_ding_time_start}}-{{item.presale_ding_time_end}}</view>
</view>
<view class="spu-price">
<view class="sale-price">
<block wx:if="{{item.presale_type==0}}">
<text class='span'>¥{{item.dingArr[0]}}</text>.{{item.dingArr[1]}}
</block>
<block wx:else>
<text class='span'>¥{{item.actPrice[0]}}</text>.{{item.actPrice[1]}}
</block>
</view>
<view class="market-price">¥{{item.marketPrice[0]}}.{{item.marketPrice[1]}}</view>
</view>
</view>
<block wx:if="{{!isPast}}">
<i-button class="add-cart-disabled" disabled="{{item.spuCanBuyNum==0}}" wx:if="{{item.spuCanBuyNum==0}}">
已抢光
</i-button>
<i-button class="add-cart-disabled" disabled="{{item.saleStatus!=1}}" wx:elif="{{item.saleStatus!=1}}">
{{item.saleStatus==0?'即将开抢':'已结束'}}
</i-button>
<i-button iClass="add-cart" class="add-cart" style="background: linear-gradient(90deg, {{skin.color}} 0%, {{skin.light}} 100%);" wx:else>
去抢购
</i-button>
</block>
<view class="mask" wx:if="{{spuItem.spuCanBuyNum==0||item.saleStatus!=1?'disabled':''}}"></view>
<view class="act-end act-out" wx:if="{{item.spuCanBuyNum==0}}">已抢光</view>
<view class="act-end act-out" wx:if="{{item.saleStatus==0}}">即将开抢</view>
<view class="act-end act-out" wx:if="{{item.saleStatus==2}}">已结束</view>
</i-router-link>
</view>
</view>
<view class="pin-more" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleB/presale/index">
查看全部 <text class="iconfont icon-youjiantou fsz-22"></text>
</view>
</view>
</template>

View File

@ -0,0 +1,47 @@
.presalerow.pinrow-wrap .mask {
width: 240rpx;
height: 240rpx;
left: 20rpx;
top: 20rpx;
}
.presalerow.pinrow-wrap .act-end {
z-index: 100;
top: 95rpx;
}
/* 标签 */
.presalerow .item-tag {
position: absolute;
left: 10rpx;
top: 20rpx;
width: 54rpx;
height: 62rpx;
z-index: 1;
color: #fff;
text-align: center;
}
.presalerow .item-tag-bg {
position: absolute;
left: 0;
top: 0;
width: 54rpx;
height: 62rpx;
z-index: 0;
}
.presalerow .item-tag .tag-name {
position: relative;
padding-top: 6rpx;
font-size: 20rpx;
line-height: 1;
font-weight: 600;
z-index: 1;
}
.presalerow .item-tag .tag-name.two-word {
font-size: 22rpx;
padding-top: 14rpx;
}

View File

@ -0,0 +1,29 @@
<template name="seckill">
<view class="seckill-bg">
<view class="seckill">
<view class="seckill-head i-flex" style="background:{{seckill_bg_color}}">
<view class="tit">
<view>整点</view>
<view>秒杀</view>
</view>
<view class="i-flex-item i-flex">
<view class="seckill-head-item {{secKillActiveIdx==index?'active':''}}" wx:for="{{scekillTimeList}}" wx:key="id" data-time="{{item.seckillTime}}" data-idx="{{index}}" bindtap="changeSecKillTime">
<view class="time">{{item.timeStr}}</view>
<view class="desc" style="{{secKillActiveIdx==index?('color:'+seckill_bg_color):''}}">{{item.desc}}</view>
</view>
</view>
<view class="more" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleA/seckill/list?time={{scekillTimeList[secKillActiveIdx].seckillTime}}">
更多 <text class="iconfont icon-gengduo"></text>
</view>
</view>
<view class="seckill-list" wx:if="{{secRushList.length}}">
<swiper indicatorDots class="sec-swiper-content" autoplay duration="400" circular indicator-dots="{{false}}" bindchange="scrollSecKillGoodsChange">
<swiper-item wx:for="{{secRushList}}" wx:key="id">
<i-seckill-spu spuItem="{{item}}" begin="{{scekillTimeList[secKillActiveIdx].state==2?1:0}}" needAuth="{{needAuth}}"></i-seckill-spu>
</swiper-item>
</swiper>
<text class="current" wx:if="{{secRushList.length}}">{{secKillGoodsIndex}}/{{secRushList.length}}</text>
</view>
</view>
</view>
</template>

View File

@ -0,0 +1,81 @@
.seckill-bg {
background: #94cefe;
}
.seckill {
position: relative;
padding: 20rpx 20rpx 20rpx 20rpx;
z-index: 3;
overflow: hidden;
}
.seckill-head {
color: #fff;
border-radius: 20rpx;
padding: 0 30rpx;
align-items: center;
height: 100rpx;
background: linear-gradient(90deg, #ea404b 0%, #ed745d 100%);
line-height: 1.2;
}
.seckill-head .tit {
font-size: 30rpx;
font-weight: bold;
padding-right: 20rpx;
border-right: 1px solid #fff;
margin-right: 20rpx;
}
.seckill .more {
font-size: 26rpx;
}
.seckill .more .iconfont {
font-size: 28rpx;
}
.seckill-list {
position: relative;
}
.sec-swiper-content {
width: 100%;
height: 290rpx;
}
.seckill-head-item {
margin: 0 19rpx;
text-align: center;
}
.seckill-head-item .time{
font-size: 26rpx;
font-weight: bold;
margin-bottom: 10rpx;
}
.seckill-head-item .desc{
font-size: 22rpx;
}
.seckill-head-item.active .desc {
color: #ea474e;
padding: 2rpx 10rpx;
background-color: #fff;
border-radius: 20rpx;
}
.seckill .current {
height: 32rpx;
line-height: 32rpx;
text-align: center;
border-radius: 24rpx;
background-color: #f8f8f8;
font-size: 24rpx;
color: #c8c8c8;
position: absolute;
right: 20rpx;
top: 20rpx;
z-index: 1;
padding: 0 10rpx;
}

View File

@ -0,0 +1,9 @@
<template name="video">
<view class="index-video">
<view class="poster" bindtap="btnPlay" wx:if="{{fmShow}}">
<image class="img" src="{{data.poster}}" mode="widthFix" bindload="imageLoad" lazy-load></image>
<image class="play-img" src="../../images/play.png"></image>
</view>
<video wx:else src="{{data.url}}" controls style="height:{{imageSize.imageHeight}}px;width:100%;border-radius: 20rpx;" id="myVideo" bindended="videEnd"></video>
</view>
</template>

View File

@ -0,0 +1,21 @@
.index-video {
margin: 20rpx;
position: relative;
overflow: hidden;
}
.index-video .poster .img {
width: 100%;
border-radius: 20rpx;
}
.index-video .poster .play-img {
width: 200rpx;
height: 200rpx;
position: absolute;
top: 50%;
left: 50%;
margin-top: -100rpx;
margin-left: -100rpx;
z-index: 1;
}

View File

@ -0,0 +1,66 @@
<template name="virtualcardrow">
<view class='pin-spec' wx:if="{{data.goods_list&&data.goods_list.length&&data.isopen_virtualcard==1}}">
<image class="pin-spec-img" mode="widthFix" src="{{data.virtualcard_index_coming_img}}"
wx:if="{{data.virtualcard_index_coming_img}}" bindtap="goLink"
data-link="/eaterplanet_ecommerce/moduleB/virtualcard/index"></image>
<view class="pinrow-wrap presalerow">
<view class="border-bottom" wx:for="{{data.goods_list}}" wx:key="id">
<i-router-link routerClass="spu-content"
url="/eaterplanet_ecommerce/pages/goods/goodsDetail?id={{item.actId}}&type=virtualcard">
<view class="item-top">
<!-- 标签 -->
<view wx:if="{{item.label_info && item.label_info.type==0}}" class='item-tag'>
<image class='item-tag-bg' mode='widthFix' src="../../images/tag.png"></image>
<view class='tag-name {{item.label_info.len==2?"two-word":""}}'>{{item.label_info.tagcontent}}</view>
</view>
<view wx:if="{{item.label_info && item.label_info.type==1}}" class='item-tag'
style='background:url({{item.label_info.tagcontent}}) no-repeat left top;background-size: 100%;'>
</view>
<i-img defaultImage="{{placeholdeImg?placeholdeImg:'../../images/placeholder-refund.png'}}" height="240"
iClass="spu-img" lazyLoad="true" loadImage="{{item.bigImg?item.bigImg:item.skuImage}}" width="300">
</i-img>
<view class="spu-play" wx:if="{{item.is_video}}">
<image class="img" src="../../images/play.png"></image>
</view>
</view>
<view class="item-bottom">
<view class="spu-title">
<text class='span'>{{item.spuName}}</text>
</view>
<view class="spu-desc" wx:if="{{item.spuDescribe}}">
<text class="em">{{item.spuDescribe}}</text>
</view>
<view class="spu-count">
<text class="pin-tag"
style="color:{{skin.color}};border-color:{{skin.color}}">可兑换{{item.code_money}}元</text>
</view>
<view class="spu-price">
<view class="sale-price">
<text class='span'>¥{{item.actPrice[0]}}</text>.{{item.actPrice[1]}}
</view>
<view class="market-price">¥{{item.marketPrice[0]}}.{{item.marketPrice[1]}}</view>
</view>
</view>
<block wx:if="{{!isPast}}">
<i-button class="add-cart-disabled" disabled="{{item.spuCanBuyNum==0}}" wx:if="{{item.spuCanBuyNum==0}}">
已抢光
</i-button>
<i-button class="add-cart-disabled" disabled="{{item.actEnd==1}}" wx:if="{{item.actEnd==1}}">
已结束
</i-button>
<i-button iClass="add-cart" class="add-cart"
style="background: linear-gradient(90deg, {{skin.color}} 0%, {{skin.light}} 100%);" wx:else>
去抢购
</i-button>
</block>
<view class="mask" wx:if="{{item.spuCanBuyNum==0||item.actEnd==1?'disabled':''}}"></view>
<view class="act-end act-out" wx:if="{{item.spuCanBuyNum==0}}">已抢光</view>
<view class="act-end act-out" wx:elif="{{item.actEnd==1}}">已结束</view>
</i-router-link>
</view>
</view>
<view class="pin-more" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleB/virtualcard/index">
查看全部 <text class="iconfont icon-youjiantou fsz-22"></text>
</view>
</view>
</template>

View File

@ -0,0 +1,16 @@
var funcA = function (e, ins) {
// console.log('source is', JSON.stringify(e))
var scrollTop = e.detail.scrollTop
if (scrollTop > 600) {
ins.selectComponent('.group').setStyle({
"background-color": 'rgba(77, 158, 233, 1)'
})
} else {
ins.selectComponent('.group').setStyle({
"background-color": 'rgba(77, 158, 233, ' + Math.max(0, (scrollTop) / 600) + ')'
})
}
}
module.exports = {
funcA: funcA
}

View File

@ -0,0 +1,5 @@
<template name="text">
<view bindtap='goDiysliderUrl' data-link="{{item.link}}" style="margin: {{item.marginTop*2+'rpx'}} 20rpx 0;background-color: {{item.backgroundColor}};color:{{item.textColor}};font-size:{{item.fontSize*2}}rpx;text-align:{{item.alignStyle}};border-radius:10rpx;">
{{item.title}}
</view>
</template>

View File

@ -0,0 +1,5 @@
<template name="video">
<view style="margin-top: {{item.marginTop}}px;">
<video src="{{videoItem.videoUrl}}" controls style="width:100%;height:auto;min-height:320rpx;" wx:for="{{item.list}}" wx:key="index" wx:for-item="videoItem"></video>
</view>
</template>

View File

@ -0,0 +1,265 @@
// eaterplanet_ecommerce/pages/order/evaluate.js
var util = require('../../utils/util.js');
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
order_id: 0,
goods_id: 0,
miaoshu_no: 0,
price_no: 0,
zhiliang_no: 0,
is_jifen: 0,
pinjia_text: '',
thumb_img: [],
image: [],
placeholder: "亲,您对这个商品满意吗?您的评价会帮助我们选择更好的商品哦~",
evaluate: "",
imgGroup: [],
imgMax: 4,
isIpx: false,
focus: false,
progressList: []
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
//id=' + id + '&goods_id' + goods_id
var that = this;
var token = wx.getStorageSync('token');
var order_id = options.id;
var goods_id = options.goods_id;
this.setData({
order_id: order_id,
goods_id: goods_id
})
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.order_comment',
'token': token,
order_id: order_id,
goods_id: goods_id
},
dataType: 'json',
success: function(res) {
if (res.data.code == 3) {
//un login
} else if (res.data.code == 0) {
//code goods_image
that.setData({
goods_id: res.data.goods_id,
order_goods: res.data.order_goods,
goods_image: res.data.goods_image,
open_comment_gift: res.data.open_comment_gift,
comment_gift_publish: res.data.comment_gift_publish
})
}
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
addImg: function() {
var that = this,
imgGroup = this.data.imgGroup;
wx.chooseMedia({
count: this.data.imgMax - imgGroup.length,
success: function(res) {
const tempFiles = res.tempFiles;
var new_thumb_img = that.data.thumb_img;
for (var i = 0; i < tempFiles.length; i++) {
wx.showLoading({
title: '上传中'
})
if (new_thumb_img.length >= 4) {
that.setData({
thumb_img: new_thumb_img
});
return false;
} else {
wx.uploadFile({
url: app.util.url('entry/wxapp/index', {
'm': 'eaterplanet_ecommerce',
'controller': 'goods.doPageUpload'
}),
filePath: tempFiles[i].tempFilePath,
name: 'upfile',
formData: {
'name': tempFiles[i].tempFilePath
},
header: {
'content-type': 'multipart/form-data'
},
success: function(res) {
wx.hideLoading();
var data = JSON.parse(res.data);
var image_thumb = data.image_thumb;
var image_o_full = data.image_o_full;
var orign_image = data.image_o;
var new_img = that.data.image;
var new_thumb_img = that.data.thumb_img;
new_img.push(orign_image);
new_thumb_img.push(image_thumb);
imgGroup.push(image_thumb);
that.setData({
thumb_img: new_thumb_img,
image: new_img,
imgGroup: imgGroup
})
}
})
}
}
}
});
},
textinput: function(event) {
var content = event.detail.value;
//pinjia_text
this.setData({
pinjia_text: content
})
},
/**
* 删除图片
*/
choseImg: function(e) {
var idx = e.currentTarget.dataset.idx;
var imgGroup = this.data.imgGroup;
var new_img = this.data.image;
new_img.splice(idx, 1);
imgGroup.splice(idx, 1);
this.setData({
imgGroup: imgGroup,
image: new_img
})
},
sub_comment: function() {
var order_id = this.data.order_id;
var goods_id = this.data.goods_id;
var pinjia_text = this.data.pinjia_text;
var image = this.data.image;
var that = this;
if (pinjia_text == '') {
wx.showToast({
title: '请填写评价内容',
icon: 'success',
duration: 1000
})
return false;
}
wx.showLoading({
title: '评论中',
})
var token = wx.getStorageSync('token');
console.log(image);
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.sub_comment',
'token': token,
order_id: order_id,
goods_id: goods_id,
comment_content: pinjia_text,
imgs: image
},
method: 'POST',
dataType: 'json',
success: function(msg) {
wx.hideLoading();
if (msg.data.code == 3) {
wx.showToast({
title: '未登录',
icon: 'loading',
duration: 1000
})
} else {
wx.showToast({
title: '评价成功',
icon: 'success',
duration: 1000,
success: function(res) {
//是否跳到积分
wx.redirectTo({
url: "/eaterplanet_ecommerce/pages/order/order?id=" + order_id
})
}
})
}
}
})
},
/**
* 预览大图
*/
bigImg: function(e) {
var t = e.currentTarget.dataset.src,
list = e.currentTarget.dataset.list;
wx.previewImage({
current: t,
urls: list
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
}
})

View File

@ -0,0 +1,7 @@
{
"navigationBarTitleText": "评价",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"parser":"../../components/parser/parser"
}
}

View File

@ -0,0 +1,38 @@
<ep-navBar title="评价" background='#fff' back="{{true}}" bindback="handlerGobackClick"/>
<view>
<view class="good-card">
<view class="good">
<image src="{{order_goods.goods_images}}"></image>
<text>{{order_goods.name+' '+order_goods.option_str}}</text>
</view>
<view class="evaluate-content">
<textarea bindinput="textinput" foucs="{{focus}}" maxlength="5000" Class="placeholder-class" placeholder="{{placeholder}}"></textarea>
<view class="img-group">
<view class="img-item" wx:if="{{imgGroup.length}}" wx:for="{{imgGroup}}" wx:key="id">
<view bindtap="choseImg" class="close" data-idx="{{index}}">
<image src="../../images/img-close.png"></image>
</view>
<image bindtap="bigImg" data-list="{{imgGroup}}" data-src="{{item}}" mode="aspectFill" src="{{item}}"></image>
<view class="progress {{progressList[index]===100?'hide-progress':''}}" style="display:none;">
<span style="width: {{progressList[index]+'%'}}"></span>
</view>
</view>
<view bindtap="addImg" class="img-item img-add" wx:if="{{imgGroup.length<imgMax}}">
<image class="cameraImg" src="../../images/icon-camera.png"></image>
<text>{{imgGroup.length?imgGroup.length+'/'+imgMax:'上传图片'}}</text>
</view>
</view>
</view>
</view>
<view class='desc' wx:if="{{open_comment_gift==1}}">
<view class='h2'>说明:</view>
<view class="wxParse">
<parser html="{{comment_gift_publish}}" />
</view>
</view>
<label class="submit {{isIpx?'mb20':''}}">提交评价
<button hidden bindtap="sub_comment"></button>
</label>
</view>

View File

@ -0,0 +1,156 @@
.good-card {
height: 678rpx;
width: 710rpx;
border-radius: 20rpx;
background: #fff;
margin: 30rpx 20rpx;
padding-top: 20rpx;
z-index: 5;
box-shadow: 0 0 40rpx rgba(0, 0, 0, 0.1);
}
.good-card .good {
font-size: 28rpx;
height: 102rpx;
display: flex;
align-items: center;
padding: 0rpx 20rpx 20rpx 20rpx;
background: #fff;
border-bottom: 0.1rpx solid #efefef;
}
.good-card .good image {
width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
}
.good-card .good text {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.good-card .evaluate-content {
min-height: 452rpx;
margin-bottom: 40rpx;
padding: 10rpx 26rpx;
background: #fff;
}
.good-card .evaluate-content textarea {
width: 660rpx;
height: 320rpx;
margin-top: 10rpx;
font-size: 28rpx;
}
.good-card .evaluate-content .placeholder-class {
color: #999;
font-size: 28rpx;
}
.submit {
color: #fff;
font-size: 28rpx;
line-height: 96rpx;
width: 750rpx;
background: #4facfe;
text-align: center;
display: block;
position: fixed;
bottom: 0;
padding-bottom: env(safe-area-inset-bottom);
}
.img-group {
display: flex;
flex-wrap: wrap;
font-size: 24rpx;
}
.img-group .img-item {
margin: 0 6rpx;
width: 150rpx;
height: 150rpx;
position: relative;
box-sizing: border-box;
}
.img-group .img-item .progress {
position: absolute;
left: 16rpx;
bottom: 20rpx;
width: 120rpx;
height: 16rpx;
border-radius: 20rpx;
border: 2rpx solid #ddd;
display: flex;
align-items: center;
}
.img-group .img-item .progress span {
height: 8rpx;
width: 0;
max-width: 112rpx;
border-radius: 12rpx;
position: absolute;
left: 4rpx;
top: 4rpx;
background: #f5f5f5;
}
.img-group .img-item .hide-progress {
opacity: 0;
}
.img-group .img-item .close {
width: 32rpx;
height: 32rpx;
position: absolute;
right: -8rpx;
top: -8rpx;
z-index: 2;
}
.img-group .img-item image {
height: 100%;
width: 100%;
}
.img-group .img-item .closeImg {
font-size: 40rpx;
color: #a0a0a0;
}
.img-group .img-add {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
border: 2rpx dashed #dedede;
color: #bcbcbc;
}
.img-group .img-add .cameraImg {
width: 44rpx;
height: 44rpx;
color: #cdcdcd;
margin-bottom: 8rpx;
display: flex;
justify-content: center;
align-items: center;
}
.desc {
padding: 0 30rpx;
line-height: 1.6;
font-size: 26rpx;
color: #666;
}
.desc .h2 {
font-size: 30rpx;
margin-bottom: 10rpx;
}

View File

@ -0,0 +1,69 @@
// pages/order/goods_express.js
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
var token = wx.getStorageSync('token');
var order_id = options.id;
wx.showLoading();
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'user.goods_express',
token: token,
order_id: order_id
},
dataType: 'json',
success: function (res) {
wx.hideLoading();
if (res.data.code == 2) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/index/index',
})
} else if (res.data.code == 0) {
let order_info = res.data.order_info;
let shipping_traces = order_info.shipping_traces;
if(shipping_traces) {
shipping_traces = shipping_traces.reverse();
}
that.setData({
seller_express: res.data.seller_express,
goods_info: res.data.goods_info,
order_info,
shipping_traces
})
}
}
})
}
})

View File

@ -0,0 +1,8 @@
{
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTitleText": "查看物流",
"navigationBarTextStyle": "black",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar"
}
}

View File

@ -0,0 +1,35 @@
<ep-navBar title="查看物流" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view class="dialog-content">
<view class="express-title flex">
<view class="goods-express-icon" >
<image src="{{goods_info.image}}"></image>
</view>
<view class='flex-item'>
<view class="express-header">
物流公司: <text class="span">{{seller_express.name}}</text>
</view>
<view class="express-shipper">
运单编号: <text class="tracking-number span">{{order_info.shipping_no}}</text>
</view>
<view class="express-tel"></view>
<div class="express-copy" style="display: none;"></div>
</view>
</view>
<view class="express-main">
<view class="express-main-title">
订单跟踪
</view>
<view class="express-ui ul" wx:if="{{shipping_traces}}">
<view class="one-expre li" wx:for="{{shipping_traces}}" wx:key="{{index}}">
<view class="express-trace-info-dot express-trace-info-dot-green"></view>
<view class="express-trace-info">
<view class="_trace-info">
<view class="trace-detail">{{item.AcceptStation}}</view>
<view class="trace-time ">{{item.AcceptTime}}</view>
</view>
</view>
</view>
</view>
<view class="p30 fsz-30 text-center" wx:else>暂无记录</view>
</view>
</view>

View File

@ -0,0 +1,158 @@
.dialog-content {
background-color: #f2f2f2;
width: 100%;
}
.express-title {
background-color: white;
padding: 20rpx;
display: flex;
}
.goods-express-icon {
float: left;
width: 120rpx;
height: 120rpx;
}
.goods-express-icon image {
width: 104rpx;
height: 104rpx;
}
.express-header {
color: #151516;
font-size: 28rpx;
}
.express-header .span {
color: #4facfe;
margin-left: 10rpx;
}
.express-shipper, .express-tel {
color: #9c9c9c;
font-size: 28rpx;
}
.express-shipper .span, .express-tel .span {
margin-left: 10rpx;
}
.express-main {
margin-top: 16rpx;
padding-top: 24rpx;
width: 100%;
overflow: hidden;
background-color: white;
position: relative;
}
.express-main-title {
padding-left: 20rpx;
padding-bottom: 24rpx;
margin-bottom: 74rpx;
font-size: 28rpx;
color: #111;
border-bottom: 1px solid #ededed;
}
.express-ui {
font-size: 28rpx;
position: relative;
margin: 0 0 0 40rpx;
}
.express-ui {
list-style-type: none;
}
.express-ui:before {
position: absolute;
line-height: 200%;
content: "";
width: 200%;
height: 200%;
transform-origin: 0 0;
transform: scale(0.5, 0.5);
box-sizing: border-box;
-webkit-transform-origin: 0 0;
-webkit-transform: scale(0.5, 0.5);
-webkit-box-sizing: border-box;
}
.one-expre {
position: relative;
margin: 0;
padding-left: 46rpx;
border-left: 1px solid #ddd;
}
.express-trace-info-dot {
width: 10px;
height: 10px;
position: absolute;
border-radius: 50%;
-webkit-border-radius: 50%;
top: -5px;
left: -5px;
background-color: #ddd;
}
.express-trace-info-dot-green {
background-color: #4facfe;
box-shadow: rgba(37, 174, 95, 0.3) 0 0 0 3px;
-webkit-box-shadow: rgba(37, 174, 95, 0.3) 0 0 0 3px;
-webkit-transform: translate(0, -0.08rem);
}
.express-trace-info {
width: 100%;
display: inline-block;
height: 100%;
margin-top: 0;
padding-bottom: 44rpx;
}
.express-trace-info ._trace-info {
position: relative;
display: inline-block;
margin-top: -18rpx;
padding-bottom: 30rpx;
width: 100%;
border-bottom: 1px solid #ededed;
}
.one-expre:first-child .express-trace-info ._trace-info {
margin-top: -34rpx;
}
.express-trace-info ._trace-info .trace-detail {
color: #9c9c9c;
line-height: 48rpx;
margin-right: 22rpx;
}
.one-expre:first-child .express-trace-info ._trace-info .trace-detail {
color: #4facfe!important;
}
.express-trace-info ._trace-info .trace-time {
color: #9c9c9c;
font-size: 24rpx;
line-height: 24rpx;
margin-top: 12rpx;
margin-right: 20rpx;
}
.one-expre:first-child .express-trace-info ._trace-info .trace-time {
color: #4facfe!important;
}
page {
background-color: #fff;
}
.one-expre:last-child {
border-left: none !important;
}

View File

@ -0,0 +1,322 @@
var app = getApp();
var util = require('../../utils/util.js');
var canpay = true;
Page({
mixins: [require('../../mixin/globalMixin.js')],
data: {
tablebar: 4,
page: 1,
theme_type: '',
order_status: -1,
no_order: 0,
hide_tip: true,
order: [],
tip: '正在加载',
is_empty: false,
tabs: [
{ id: -1, name: '全部' },
{ id: 3, name: '待付款' },
{ id: 1, name: '待配送' },
{ id: 14, name: '配送中' },
{ id: 4, name: '待提货' },
{ id: 6, name: '已提货' }
],
hexiaoStatus: ['','','','待付款','待使用','','','','','','','已完成']
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
onLoad: function(options) {
let { order_status, is_show_tip, isfail } = options;
wx.showLoading();
if (order_status == undefined) {
order_status = -1;
}
this.setData({
order_status: order_status,
})
if (is_show_tip != undefined && is_show_tip == 1) {
wx.showToast({
title: '支付成功',
})
} else if (isfail != undefined && isfail == 1) {
wx.showToast({
title: '支付失败',
icon: 'none'
})
}
this.getData();
},
getData: function() {
this.setData({ isHideLoadMore: true })
this.data.no_order = 1
let that = this;
var token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.orderlist',
token: token,
page: that.data.page,
order_status: that.data.order_status
},
dataType: 'json',
success: function(res) {
wx.hideLoading();
if (res.data.code == 0) {
let rushList = that.data.order.concat(res.data.data);
that.setData({
order: rushList,
hide_tip: true,
no_order: 0
});
} else {
if(that.data.page == 1 && that.data.order.length <= 0) that.setData({is_empty: true});
that.setData({
isHideLoadMore: true
})
return false;
}
}
})
},
goOrder: function(event) {
let id = event.currentTarget.dataset.type;
var pages_all = getCurrentPages();
let delivery = event.currentTarget.dataset.delivery || '';
let url = `/eaterplanet_ecommerce/pages/order/order?id=${id}&delivery=${delivery}`;
if (pages_all.length > 3) {
wx.redirectTo({ url })
} else {
wx.navigateTo({ url })
}
},
receivOrder: function(event) {
let id = event.currentTarget.dataset.type;
let delivery = event.currentTarget.dataset.delivery;
var token = wx.getStorageSync('token');
if (delivery == "pickup") content = "确认提货";
var that = this;
wx.showModal({
title: '提示',
content: '确认收货',
confirmColor: "#4facfe",
success(res) {
if (res.confirm) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.receive_order',
token: token,
order_id: id
},
dataType: 'json',
success: function(res) {
if (res.data.code == 0) {
wx.showToast({
title: '收货成功',
icon: 'success',
duration: 1000
})
that.order(that.data.order_status);
}
}
})
}
}
})
},
cancelOrder: function(event) {
let id = event.currentTarget.dataset.type;
var token = wx.getStorageSync('token');
var that = this;
wx.showModal({
title: '取消支付',
content: '好不容易挑出来,确定要取消吗?',
confirmColor: "#4facfe",
success(res) {
if (res.confirm) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.cancel_order',
token: token,
order_id: id
},
dataType: 'json',
success: function (res) {
wx.showToast({
title: '取消成功',
icon: 'success',
duration: 1000
})
that.order(that.data.order_status);
}
})
}
}
})
},
getOrder: function(event) {
this.setData({ is_empty: false })
wx.showLoading();
let starus = event.currentTarget.dataset.type;
this.order(starus);
},
order: function(starus) {
var that = this;
that.setData({
order_status: starus,
order: [],
no_order: 0,
page: 1
})
this.getData();
},
/**
* 支付防抖
*/
preOrderPay: util.debounce(function(event) {
canpay&&this.orderPay(event);
}),
orderPay: function(event) {
canpay = false;
let that = this;
var token = wx.getStorageSync('token');
let id = event[0].currentTarget.dataset.type;
let delivery = event[0].currentTarget.dataset.delivery;
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'car.wxpay',
token: token,
order_id: id,
scene: app.globalData.scene
},
dataType: 'json',
method: 'POST',
success: function(res) {
if(res.data.code ==0)
{
var is_pin = res.data.is_pin;
// 交易组件
if(res.data.isRequestOrderPayment==1) {
wx.requestOrderPayment({
orderInfo: res.data.order_info,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: function (wxres) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
})
},
fail: function (res) {
console.log(res);
},
complete: ()=>{
canpay = true;
}
})
} else {
wx.requestPayment({
appId: res.data.appId,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: function (wxres) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
})
},
fail: function (res) {
console.log(res);
},
complete: ()=>{
canpay = true;
}
})
}
} else if (res.data.code == 1) {
wx.showToast({
title: res.data.RETURN_MSG || '支付错误',
icon: 'none'
})
canpay = true;
} else if (res.data.code == 2) {
wx.showToast({
title: res.data.msg,
icon:'none'
})
canpay = true;
setTimeout(() => {
that.setData({
page: 1,
no_order: 0,
order: [],
tip: '正在加载',
is_empty: false
}, ()=>{
that.getData();
})
}, 1500);
}
},
fail: ()=>{
canpay = true;
}
})
},
onReachBottom: function() {
if (this.data.no_order == 1) return false;
this.data.page += 1;
this.getData();
this.setData({
isHideLoadMore: false
})
},
onPullDownRefresh: function () {
this.setData({
is_empty: false,
page: 1,
order: []
})
wx.showLoading();
this.getData();
wx.stopPullDownRefresh();
}
})

View File

@ -0,0 +1,12 @@
{
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "我的订单",
"navigationBarTextStyle": "black",
"enablePullDownRefresh": true,
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-card": "../../components/card/index",
"i-loadMore": "../../components/load-more/index",
"i-img": "../../components/img/index"
}
}

View File

@ -0,0 +1,86 @@
<ep-navBar background='#fff' title="我的订单" back="{{true}}" bindback="handlerGobackClick"/>
<view>
<view class="nav-bar">
<view class="nav-bar-inner">
<view bindtap="getOrder" wx:for="{{tabs}}" wx:key="id" class="nav-bar-item {{order_status==item.id?'current':''}}" data-type="{{item.id}}" style="{{order_status==item.id?'border-color:'+skin.color:''}}">
{{item.name}}
</view>
</view>
</view>
<view class='nav-bar-content'>
<!-- 订单项目 S -->
<block wx:if="{{!is_empty}}">
<view class="card" wx:for="{{order}}" wx:key="id" bindtap="goOrder" data-type="{{item.order_id}}" data-delivery="{{item.delivery}}">
<i-card data-orderId="{{item.order_id}}" iClass="my-card" showModal="true">
<view class="card-header" slot="header">
<view>下单时间:
<text>{{item.createTime}}</text>
</view>
<view class="bold {{item.order_status_id==3?'red':'gray'}}" style="{{item.order_status_id==3?'color:'+skin.color:''}}">
<block wx:if="{{item.delivery=='hexiao'&&(item.order_status_id==3||item.order_status_id==4||item.order_status_id==11)}}">{{hexiaoStatus[item.order_status_id]}}</block>
<block wx:else>{{item.status_name}}</block>
</view>
</view>
<view class="card-content" slot="content">
<view class="content-wrap" wx:if="{{item.is_pin==1}}">
<i-img height="60" iClass="show-img mar-right-10" lazyLoad="true" loadImage="{{item.goods_list[0].goods_images}}" width="60"></i-img>
<view class="i-flex-item">
<view class="name bold">
<text class="pintag" style="background:{{skin.color}}">拼团</text>
{{item.goods_list[0].name}}
</view>
<view class="mount">{{item.goods_list[0].option_str}} x {{item.goods_list[0].quantity}}</view>
<view class="bottom-info">¥{{item.goods_list[0].price}} <text>¥{{item.goods_list[0].orign_price}}</text></view>
</view>
</view>
<view class="content-wrap" wx:else>
<view class='clearfix'>
<i-img wx:for="{{item.goods_list}}" wx:if="{{i_inx<4}}" wx:key="id" wx:for-item="img" wx:for-index="i_inx" height="60" iClass="show-img {{i_inx<4?'mar-right-10':''}}" lazyLoad="true" loadImage="{{img.goods_images}}" width="60"></i-img>
</view>
<view class="dot" wx:if="{{item.goods_list.length>=4}}">
<view class="dot-item"></view>
<view class="dot-item dot-middle"></view>
<view class="dot-item"></view>
</view>
</view>
</view>
<view class="card-footer" slot="footer">
<view>共
<text class="i-class">{{item.goods_list.length}}</text> 件商品
<view class="accual-pay" wx:if="{{item.orderStatus!=3}}">实付:
<view class="money" wx:if="{{item.type=='integral'}}">
<block wx:if="{{item.shipping_fare>0}}">¥{{item.shipping_fare}} + </block>{{item.score}}积分
</view>
<view class="money" wx:else>
¥{{item.total}}
</view>
</view>
</view>
<view class="button-group" wx:if="{{item.order_status_id==3}}">
<view catchtap="cancelOrder" data-type="{{item.order_id}}" class="my-button" data-show="cancelVisible">取消订单</view>
<view catchtap="preOrderPay" data-type="{{item.order_id}}" data-delivery="{{item.delivery}}" class="my-button-pay padding-15" style="background: linear-gradient(90deg, {{skin.color}} 0%, {{skin.light}} 100%)">
立即支付
</view>
</view>
<view wx:if="{{item.order_status_id==4}}">
<view data-type="{{item.order_id}}" class="my-button" size="small" wx:if="{{item.delivery=='hexiao'}}">去使用</view>
<view data-type="{{item.order_id}}" class="get-goods" data-delivery="{{item.delivery}}" wx:else>
<view class="sure-get">{{item.delivery=="pickup"?"确认提货":"确认收货"}}</view>
<image class="right-arrow" src="../../images/rightArrowImg.png"></image>
</view>
</view>
<view wx:if="{{item.order_status_id==1||item.order_status_id==6||item.order_status_id==11||item.order_status_id==14}}">
<view data-type="{{item.order_id}}" class="my-button" size="small">查看详情</view>
</view>
</view>
</i-card>
</view>
</block>
<view class="empty-wrap" wx:else>
<image class="empty-img" src="../../images/noData.png"></image>
<view class="empty-txt">暂无任何订单记录~</view>
</view>
<!-- 订单项目 E -->
<i-loadMore tip="{{tip}}" wx:if="{{!isHideLoadMore}}"></i-loadMore>
</view>
</view>

View File

@ -0,0 +1,724 @@
.tabs {
box-sizing: border-box;
position: relative;
overflow: hidden;
zoom: 1;
color: #666;
}
.tabs-bar, .tabs-link-bar {
box-sizing: border-box;
}
.tabs-bar {
outline: none;
width: 100%;
background-color: #fff;
}
.tabs-nav--container {
overflow: hidden;
font-size: 0.75rem;
line-height: 1.5rem;
box-sizing: border-box;
position: relative;
white-space: nowrap;
margin-bottom: -1px;
zoom: 1;
}
.tabs-nav--container:after, .tabs-nav--container:before {
content: " ";
display: table;
}
.tabs-nav--container:after {
clear: both;
visibility: hidden;
font-size: 0;
height: 0;
}
.tabs.tabs-card>.tabs-bar .tabs-nav--wrap {
margin-bottom: 0;
}
.tabs-nav--wrap {
overflow: hidden;
margin-bottom: -.01rem;
}
.tabs-nav {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding-left: 0;
-webkit-transition: -webkit-transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: -webkit-transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1),
-webkit-transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
position: relative;
margin: 0;
list-style: none;
justify-content: space-around;
}
.tabs-nav:after, .tabs-nav:before {
display: table;
content: " ";
}
.tabs-nav:after {
clear: both;
}
.tabs-nav .tabs-tab {
display: block;
height: 2.2rem;
line-height: 2.2rem;
margin: 0 5px;
-moz-box-sizing: border-box;
box-sizing: border-box;
position: relative;
-webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
cursor: pointer;
text-decoration: none;
text-align: center;
font-size: 28rpx;
color: #333;
}
.tabs-nav .tabs-tab-active {
color: #4facfe;
}
.tabs.tabs-card>.tabs-bar .tabs-tab {
margin: 0;
border: 1px solid #d9d9d9;
border-bottom: 0;
border-radius: 0.06rem 0.06rem 0 0;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
background: #f9f9f9;
margin-right: 0.02rem;
}
.tabs.tabs-card>.tabs-bar .tabs-tab-active {
background: #fff;
color: #4facfe;
}
.tabs.tabs-card>.tabs-bar .tabs-tab-active {
color: #4facfe;
}
.tabs.tabs-card>.tabs-bar .tabs-tab.list-line {
border: 0;
background: #fff;
}
.tabs:not(.tabs-vertical) .tabs-content-animated {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
-moz-box-orient: horizontal;
-moz-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
will-change: transform;
transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
-webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.tabs:not(.tabs-vertical) .tabs-tabpane {
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
width: 100%;
}
.meili-all-vue-base-goodswall .module-list-wrap {
display: block !important;
}
.meili-all-vue-base-goodswall .module-list-wrap[data-v-498b2138] {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
overflow: hidden;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-flow: row wrap;
-moz-box-orient: horizontal;
-moz-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
}
.meili-all-vue-base-goodswall .show {
height: auto !important;
}
.meili-all-vue-base-goodswall .module-item-wrap {
width: 100%;
margin-bottom: 10rpx;
}
.order {
width: 100%;
background: #fff;
}
.order-panel {
padding: 0 10px;
}
.shop-product, .shop-title {
padding: 0 10px;
margin: 0 -10px;
}
.shop-title image {
width: 40rpx;
height: 40rpx;
border-radius: 100%;
display: inline-block;
vertical-align: top;
margin-top: 20rpx;
margin-right: 10rpx;
}
.no_order {
margin-top: 30%;
text-align: center;
}
.shop-title {
border: 1px solid #e5e5e5;
border-right: none;
border-left: none;
font-size: 28rpx;
height: 90rpx;
line-height: 90rpx;
}
.shop:first-child .shop-title {
border-top: none;
}
.shop-title--name {
color: #333;
display: inline-block;
max-width: 10rem;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.shop-title--status {
float: right;
margin-left: 0.2rem;
color: #4facfe;
white-space: nowrap;
}
.shop-product, .shop-title {
padding: 0 10px;
margin: 0 -10px;
}
.product {
border-bottom: 1px solid #ddd;
min-height: 1.8rem;
}
.product-list {
padding: 10px 0;
}
.product.is-noborder {
border: none;
}
.product-wrap {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
}
.product-pic {
width: 150rpx;
height: 150rpx;
display: inline-block;
}
.product-pic image {
width: 150rpx;
height: 150rpx;
visibility: inherit;
display: inherit;
}
.product-des {
-webkit-box-flex: 1;
-webkit-flex: 1;
-moz-box-flex: 1;
-ms-flex: 1;
flex: 1;
margin: 0 10px;
position: relative;
}
.red {
color: #4facfe;
padding-right: 5rpx;
}
.product-des--name {
color: #333;
font-size: 28rpx;
height: 46px;
text-overflow: ellipsis;
overflow: hidden;
display: block;
margin-bottom: 14px;
font-weight: 400;
}
.product-des--sku {
margin-bottom: 5px;
font-size: 24rpx;
color: #999;
}
.meili-all-order-list-order-shop .product-des--sku view {
display: inline-block;
margin-right: 5px;
}
.product-price {
text-align: right;
line-height: 1rem;
font-size: 24rpx;
}
.product-price--origin {
text-decoration: line-through;
color: #999;
}
.product-price--number {
color: #999;
}
.order-panel--operate {
border-top: 1px solid #e5e5e5;
margin: 0 -10px;
vertical-align: middle;
text-align: right;
}
.operate-button {
overflow: hidden;
}
.meili-all-vue-base-button {
display: inline-block;
-moz-box-sizing: border-box;
box-sizing: border-box;
font-size: 0.75rem;
padding: 5px 10px;
border-radius: 5px;
vertical-align: middle;
margin: 10px 5px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
min-width: 5rem;
text-align: center;
}
.primary {
color: #fff;
background: #4facfe;
}
.operate-button .meili-all-vue-base-button {
width: 6rem;
height: 1.8rem;
line-height: 1.8rem;
font-size: 0.75rem;
padding: 0;
margin: 10px;
border-radius: 5px;
}
.operate-button--white.primary {
color: #666;
border: 1px solid #999;
background: #fdfdfd;
}
.buy {
margin-bottom: 116rpxpx;
}
.order-panel--price {
margin: 0 -10px;
padding: 10px;
border-top: 1px solid #e5e5e5;
text-align: right;
color: #999;
}
.pay {
color: #333;
}
.pay-delivery {
margin-right: -5px;
font-size: 0.75rem;
}
.pay-price {
line-height: 1rem;
font-size: 0.75rem;
}
.pay-price--content {
font-size: 0.75rem;
color: #4facfe;
}
.weui-loading {
margin: 0 5px;
width: 20px;
height: 20px;
display: inline-block;
vertical-align: middle;
-webkit-animation: weuiLoading 1s steps(12, end) infinite;
animation: weuiLoading 1s steps(12, end) infinite;
background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;
background-size: 100%;
}
.weui-loadmore {
width: 65%;
margin: 1.5em auto;
line-height: 1.6em;
font-size: 14px;
text-align: center;
}
.weui-loadmore__tips {
display: inline-block;
vertical-align: middle;
}
/* lottery begin */
.orders-lottery-status {
z-index: 99;
position: absolute;
width: 67px;
height: 67px;
right: 12px;
top: 7px;
}
.order-lottery-lucky,.order-lottery-not,.order-lottery-wait {
background-image: url(https://wxapp.ch871.com/Common/image/sprites_stamps-02e13e88f3.png);
background-repeat: no-repeat;
background-size: 299.83425px 299.83425px;
background-position: -199.8895px -99.94475px;
}
.order-lottery-lucky {
background-position: -99.94475px 0;
}
.order-lottery-not {
background-position: -199.8895px 0;
}
.order-lottery-wait {
background-position: -199.8895px -99.94475px;
}
/* lottery end */
/* 20181206 */
.nav-bar {
width: 100%;
position: fixed;
left: 0;
top: 0;
z-index: 10;
}
.nav-bar .nav-bar-inner {
display: flex;
justify-content: space-between;
padding: 0 40rpx;
background-color: white;
}
.nav-bar .nav-bar-item {
position: relative;
word-break: keep-all;
font-size: 28rpx;
font-weight: 500;
color: #666;
padding: 20rpx 0;
}
.nav-bar .current.nav-bar-item::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(255,89,0,0.25);
border-radius: 24rpx;
}
.nav-bar-content {
margin-top:49px;
padding-bottom: 30rpx;
}
.mar-right-10 {
margin-right: 20rpx;
}
.card {
margin-bottom: 20rpx;
margin-left: 20rpx;
color: #444;
}
.card .card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx;
font-size: 24rpx;
}
.card .card-content {
padding: 30rpx;
border-top: 0.1rpx solid #efefef;
border-bottom: 0.1rpx solid #efefef;
}
.card .card-content .content-wrap {
display: flex;
align-items: center;
justify-content: space-between;
}
.card .card-content .show-img {
float: left;
width: 120rpx !important;
height: 120rpx !important;
}
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.card .card-content .dot {
display: flex;
align-items: center;
justify-content: space-between;
}
.card .card-content .dot .dot-item {
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #d8d8d8;
}
.card .card-content .dot .dot-middle {
margin: 0 10rpx;
}
.card .card-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx;
font-size: 24rpx;
}
.card .card-footer .money {
font-family: DIN;
font-size: 32rpx;
font-weight: bold;
display: inline-block;
}
.card .card-footer .accual-pay {
display: inline-block;
}
.empty-wrap {
padding-top: 300rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.empty-wrap .empty-img {
width: 218rpx;
height: 218rpx;
}
.empty-wrap .empty-txt {
font-size: 30rpx;
font-weight: 400;
color: #777;
margin-top: 32rpx;
}
.padding-15 {
margin-left: 16rpx;
}
.button-group {
display: flex;
justify-content: space-between;
}
.my-button {
position: relative;
color: #666;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
text-align: center;
}
.my-button::after {
box-sizing: border-box;
content: '';
position: absolute;
top: 0;
left: 0;
width: 200%;
height: 200%;
transform: scale(0.5);
transform-origin: 0 0;
border: 2rpx solid #b6b6b6;
border-radius: 52rpx;
pointer-events: none;
}
.get-goods {
display: flex;
justify-content: space-between;
align-items: center;
}
.get-goods .sure-get {
color: #aaa;
}
.my-button-pay {
position: relative;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
text-align: center;
color: white;
border: none;
border-radius: 26rpx;
background: linear-gradient(100deg, #ff758c 0%, #ff7eb3 100%);
}
.right-arrow {
width: 12rpx;
height: 22rpx;
margin-left: 10rpx;
}
.bold {
font-weight: 500;
}
.red {
color: #4facfe;
font-size: 24rpx;
}
.gray {
color: #aaa;
}
.name {
width: 510rpx;
font-size: 26rpx;
color: #444;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.pintag {
background: linear-gradient(to right, #ff5041, #ff695c);
color: #fff;
font-size: 20rpx;
padding: 1rpx 8rpx;
border-radius: 6rpx;
font-weight: bold;
margin-right: 10rpx;
}
.mount {
font-size: 22rpx;
color: #aaa;
margin-top: 10rpx;
}
.bottom-info {
justify-content: space-between;
font-size: 28rpx;
color: #444;
margin-top: 18rpx;
}
.bottom-info text {
text-decoration: line-through;
color: #999;
font-size: 22rpx;
}

View File

@ -0,0 +1,862 @@
var util = require('../../utils/util.js');
var app = getApp();
var status = require('../../utils/index.js');
var location = require("../../utils/Location");
var canpay = true;
function count_down(that, total_micro_second) {
var second = Math.floor(total_micro_second / 1000);
var days = second / 3600 / 24;
var daysRound = Math.floor(days);
var hours = second / 3600 - (24 * daysRound);
var hoursRound = Math.floor(hours);
var minutes = second / 60 - (24 * 60 * daysRound) - (60 * hoursRound);
var minutesRound = Math.floor(minutes);
var seconds = second - (24 * 3600 * daysRound) - (3600 * hoursRound) - (60 * minutesRound);
that.setData({
endtime: {
days: daysRound,
hours: fill_zero_prefix(hoursRound),
minutes: fill_zero_prefix(minutesRound),
seconds: fill_zero_prefix(seconds),
show_detail: 1
}
});
if (total_micro_second <= 0) {
that.setData({
changeState: 1,
endtime: {
days: "00",
hours: "00",
minutes: "00",
seconds: "00",
}
});
return;
}
setTimeout(function() {
total_micro_second -= 1000;
count_down(that, total_micro_second);
}, 1000)
}
// 位数不足补零
function fill_zero_prefix(num) {
return num < 10 ? "0" + num : num
}
Page({
mixins: [require('../../mixin/compoentCartMixin.js'), require('../../mixin/globalMixin.js')],
data: {
endtime: {
days: "00",
hours: "00",
minutes: "00",
seconds: "00",
},
cancelOrderVisible: false,
orderSkuResps: [],
tablebar: 4,
navState: 0,
theme_type: '',
loadover: false,
pingtai_deal: 0,
is_show: false,
order: {},
common_header_backgroundimage: '',
isShowModal: false,
userInfo: {},
groupInfo: {
group_name: '社区',
owner_name: '团长',
delivery_ziti_name: '社区自提',
delivery_tuanzshipping_name: '团长配送',
delivery_express_name: '快递配送',
localtown_modifypickingname: '包装费'
},
is_show_guess_like: 1,
showRefundModal: false,
order_hexiao_type: 0, //0订单1按次2混合
salesroomIdx: 0,
order_goods_list: '',
hx_receive_info: '',
salesroom_list: '',
goodsHexiaoIdx: 0,
share_title: '',
presale_info: '',
presalePickup: {
pickup: '自提', localtown_delivery:'配送', express:'发货', hexiao: '核销', tuanz_send: '配送'
},
showPresalePayModal: false
},
is_show_tip: '',
timeOut: function() {
console.log('计时完成')
},
options: '',
canCancel: true,
isFirst: 1,
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
onLoad: function(options) {
var that = this;
that.options = options;
var userInfo = wx.getStorageSync('userInfo');
userInfo && (userInfo.shareNickName = userInfo.nickName.length > 3 ? userInfo.nickName.substr(0, 3) + "..." : userInfo.nickName);
status.setGroupInfo().then((groupInfo) => {
that.setData({
groupInfo
})
});
util.check_login() ? this.setData({
needAuth: false
}) : this.setData({
needAuth: true
});
let delivery = options.delivery || '';
that.setData({
userInfo,
delivery
});
// wx.showLoading();
var is_show_tip = options && options.is_show || 0;
let isfail = options && options.isfail || '';
this.is_show_tip = is_show_tip;
if (isfail != undefined && isfail == 1) {
wx.showToast({
title: '支付失败',
icon: 'none'
})
}
let latitude = wx.getStorageSync('latitude2') || '';
let longitude = wx.getStorageSync('longitude2') || '';
if(delivery=='hexiao'&&!latitude) {
this.getMyLocal().then(res=>{
this.getData(options.id, res.latitude, res.longitude, is_show_tip, delivery);
}).catch(()=>{
this.getData(options.id, latitude, longitude, is_show_tip, delivery);
});
} else {
console.log('step2')
this.getData(options.id, latitude, longitude, is_show_tip, delivery);
}
},
getData: function(id, latitude="", longitude="", is_show_tip='', delivery=''){
if (is_show_tip != undefined && is_show_tip == 1) {
//todo 弹出分享
} else {
wx.showLoading();
}
var that = this;
var token = wx.getStorageSync('token');
app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'order.order_info',
token,
id,
latitude,
longitude
},
dataType: 'json',
method: 'POST',
success: function(res) {
setTimeout(() => {
wx.hideLoading();
}, 1000);
if(res.data.code==0){
let order_info = res.data.data.order_info;
if (is_show_tip != undefined && is_show_tip == 1 && order_info.type == 'integral') {
wx.showToast({
title: '兑换成功'
})
} else if (is_show_tip != undefined && is_show_tip == 1) {
if (res.data.order_pay_after_share == 1) {
let share_img = res.data.data.share_img;
let share_title = res.data.data.share_title;
that.setData({
share_title,
share_img,
isShowModal: true
})
} else {
wx.showToast({
title: '支付成功'
})
}
}
if (order_info.order_status_id == 3) {
var seconds = (order_info.over_buy_time - order_info.cur_time) * 1000;
if (seconds > 0) {
count_down(that, seconds);
} else {
order_info.open_auto_delete == 1 && that.setData({
changeState: 1
})
}
}
let {
pingtai_deal,
order_refund,
order_can_del_cancle,
is_hidden_orderlist_phone,
is_show_guess_like,
user_service_switch,
common_header_backgroundimage,
order_can_shen_refund,
order_note_open,
order_note_name,
open_comment_gift,
presale_info,
virtualcard_info
} = res.data;
let order = res.data.data || {order_info: {}};
order.order_info.order_note_open = order_note_open || '';
order.order_info.order_note_name = order_note_name || '';
let markers = [];
// if(delivery=='hexiao'&&order.order_info.salesroom_list) {
// let marker = that.createMarker(order.order_info.salesroom_list[0].lat, order.order_info.salesroom_list[0].lon);
// markers.push(marker)
// }
let order_goods_list = order.order_goods_list || '';
let hx_receive_info = order.order_info.hx_receive_info || '';
let salesroom_list = order.salesroom_list || '';
// 预售订单
presale_info = Object.keys(presale_info).length>0 ? presale_info : '';
if(presale_info) {
if(presale_info.presale_type==0) {
let goodsTot = 0;
order_goods_list.forEach(goodsItem=>{ goodsTot += goodsItem.price*goodsItem.quantity; });
let { presale_deduction_money, presale_ding_money } = presale_info;
presale_deduction_money = presale_deduction_money>0?presale_deduction_money:presale_ding_money;
let payTot = order.order_info.total*1-presale_deduction_money*1;
presale_info.payTot = payTot>0?payTot.toFixed(2):0;
let weikuan = goodsTot - presale_deduction_money*1;
presale_info.weikuan = weikuan>0?weikuan.toFixed(2):0;
presale_info.presale_deduction_money = presale_deduction_money;
}
}
// 礼品卡
virtualcard_info = Object.keys(virtualcard_info).length>0 ? virtualcard_info : '';
that.setData({
order,
order_goods_list,
hx_receive_info,
salesroom_list,
pingtai_deal: pingtai_deal,
order_refund: order_refund,
order_can_del_cancle: order_can_del_cancle,
loadover: true,
is_show: 1,
hide_lding: true,
is_hidden_orderlist_phone: is_hidden_orderlist_phone || 0,
is_show_guess_like: is_show_guess_like || 0,
user_service_switch: user_service_switch || 1,
common_header_backgroundimage,
order_can_shen_refund,
open_comment_gift,
latitude,
longitude,
markers,
presale_info,
virtualcard_info
})
that.caclGoodsTot(res.data.data);
that.hide_lding();
} else if(res.data.code==2){
that.setData({ needAuth: true })
}
}
})
},
onShow: function(){
console.log(this.isFirst, 'onShow', this.options.id);
if (this.isFirst>1) this.reload_data();
this.isFirst++;
},
onHide: function(){
console.log('order Hide');
},
getMyLocal: function() {
let that = this;
return new Promise((resovle, reject)=>{
location.getGps().then(ret=>{
console.log('step1')
wx.getLocation({
type: 'wgs84',
success: (res) => {
resovle(res)
that.setData({
scale: 12,
longitude: res.longitude,
latitude: res.latitude
})
},
fail: ()=>{
reject();
}
});
}).catch(()=>{
console.log('step3')
reject();
app.util.message('地图功能开启失败,部分功能受影响', '', 'error');
})
})
},
caclGoodsTot: function(order){
if(order && order.order_goods_list) {
let order_goods_list = order.order_goods_list;
let goodsTot = 0;
Object.keys(order_goods_list).forEach(k=>{
if(order_goods_list[k].is_vipcard_buy==1 || order_goods_list[k].is_level_buy) {
goodsTot += order_goods_list[k].total;
} else {
goodsTot += order_goods_list[k].real_total;
}
})
this.setData({ goodsTot: goodsTot.toFixed(2) })
}
},
/**
* 授权成功回调
*/
authSuccess: function() {
this.onLoad(this.options);
},
reload_data: function() {
console.log('reload_data--', this.options.id);
var that = this;
var token = wx.getStorageSync('token');
let id = this.options.id || '';
let latitude = wx.getStorageSync('latitude2');
let longitude = wx.getStorageSync('longitude2');
// this.getData(id, latitude, longitude, '', this.data.delivery)
id && app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'order.order_info',
token,
id,
latitude,
longitude
},
dataType: 'json',
method: 'POST',
success: function(res) {
let order_info = res.data.data.order_info;
if (order_info.order_status_id == 3) {
var seconds = (order_info.over_buy_time - order_info.cur_time) * 1000;
if (seconds > 0) {
count_down(that, seconds);
} else {
that.setData({
changeState: 1
})
}
}
that.setData({
order: res.data.data,
pingtai_deal: res.data.pingtai_deal,
order_refund: res.data.order_refund,
loadover: true,
is_show: 1,
hide_lding: true
})
}
})
},
receivOrder: function(event) {
let id = event.currentTarget.dataset.type || '';
var token = wx.getStorageSync('token');
var that = this;
var that = this;
wx.showModal({
title: '提示',
content: '确认收货',
confirmColor: '#4facfe',
success(res) {
if (res.confirm) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.receive_order',
token: token,
order_id: id
},
dataType: 'json',
success: function(res) {
if (res.data.code == 0) {
wx.showToast({
title: '收货成功',
icon: 'success',
duration: 1000
})
that.reload_data();
} else {
app.util.message(res.data.msg||'收货失败', '', 'error');
}
}
})
}
}
})
},
callDialog: function(e) {
var order_id = e.currentTarget.dataset.type || '';
var token = wx.getStorageSync('token');
wx.showModal({
title: '取消支付',
content: '好不容易挑出来,确定要取消吗?',
confirmColor: '#F75451',
success(res) {
if (res.confirm) {
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.cancel_order',
token: token,
order_id: order_id
},
dataType: 'json',
success: function(res) {
wx.showToast({
title: '取消成功',
icon: 'success',
complete: function() {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/index'
})
}
})
}
})
}
}
})
},
applyForService: function(e) {
var order_id = e.currentTarget.dataset.type || '';
var order_goods_id = e.currentTarget.dataset.order_goods_id;
order_id && wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/refund?id=' + order_id + '&order_goods_id=' + order_goods_id + '&delivery=' + this.data.delivery
})
},
/**
* 支付防抖
*/
// preOrderPay: util.debounce(function(event) {
// canpay && this.payNow(event);
// }),
preOrderPay: function(event) {
canpay && this.payNow(event);
},
payNow: function(e) {
canpay = false;
let that = this;
var order_id = e.currentTarget.dataset.type || '';
var token = wx.getStorageSync('token');
order_id && app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'car.wxpay',
token,
order_id,
scene: app.globalData.scene
},
dataType: 'json',
method: 'POST',
success: function(res) {
if (res.data.code == 0) {
// 交易组件
if(res.data.isRequestOrderPayment==1) {
wx.requestOrderPayment({
orderInfo: res.data.order_info,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: function(wxres) {
canpay = true;
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/order?id=' + order_id + '&is_show=1&delivery='+that.data.delivery
})
},
'fail': function(res) {
canpay = true;
console.log(res);
}
})
} else {
wx.requestPayment({
"appId": res.data.appId,
"timeStamp": res.data.timeStamp,
"nonceStr": res.data.nonceStr,
"package": res.data.package,
"signType": res.data.signType,
"paySign": res.data.paySign,
'success': function(wxres) {
canpay = true;
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/order?id=' + order_id + '&is_show=1&delivery='+that.data.delivery
})
},
'fail': function(res) {
canpay = true;
console.log(res);
}
})
}
} else if (res.data.code == 1) {
wx.showToast({
title: res.data.RETURN_MSG || '支付错误',
icon: 'none'
})
canpay = true;
} else if (res.data.code == 2) {
wx.showToast({
title: res.data.msg,
icon: 'none'
})
setTimeout(() => {
canpay = true;
that.reload_data();
}, 1500);
}
},
fail: ()=>{
canpay = true;
}
})
},
hide_lding: function() {
wx.hideLoading();
this.setData({
is_show: true
})
},
call_mobile: function(event) {
let mobile = event.currentTarget.dataset.mobile;
wx.makePhoneCall({
phoneNumber: mobile
})
},
goComment: function(event) {
let id = event.currentTarget.dataset.type;
let order_goods_id = event.currentTarget.dataset.order_goods_id;
var goods_id = event.currentTarget.dataset.goods_id;
var pages_all = getCurrentPages();
if (pages_all.length > 3) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/evaluate?id=' + id + '&goods_id=' + goods_id + '&order_goods_id=' + order_goods_id
})
} else {
wx.navigateTo({
url: '/eaterplanet_ecommerce/pages/order/evaluate?id=' + id + '&goods_id=' + goods_id + '&order_goods_id=' + order_goods_id
})
}
},
gokefu: function(event) {
let id = event.currentTarget.dataset.s_id;
var pages_all = getCurrentPages();
if (pages_all.length > 3) {
wx.redirectTo({
url: '/pages/im/index?id=' + id
})
} else {
wx.navigateTo({
url: '/pages/im/index?id=' + id
})
}
},
goRefund: function(event) {
let id = event.currentTarget.dataset.id || 0;
if(id) {
var pages_all = getCurrentPages();
if (pages_all.length > 3) {
wx.redirectTo({
url: `/eaterplanet_ecommerce/pages/order/refunddetail?id=${id}`
})
} else {
wx.navigateTo({
url: `/eaterplanet_ecommerce/pages/order/refunddetail?id=${id}`
})
}
}
},
closeModal: function(event) {
let h = {};
let type = event.currentTarget.dataset.type || 0;
if(type==1) {
h.showRefundModal = false;
} else {
h.isShowModal = false;
}
this.setData(h)
},
//取消订单
cancelOrder: function(e){
let that = this;
this.canCancel && wx.showModal({
title: '取消订单并退款',
content: '取消订单后,款项将原路退回到您的支付账户;详情请查看退款进度。',
confirmText: '取消订单',
confirmColor: '#ff5344',
cancelText: '再等等',
cancelColor: '#666666',
success(res) {
if (res.confirm) {
that.canCancel = false;
let order_id = e.currentTarget.dataset.type;
let token = wx.getStorageSync('token');
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.del_cancle_order',
token,
order_id
},
dataType: 'json',
method: 'POST',
success: function (res) {
if(res.data.code==0){
//提交成功
wx.showModal({
title: '提示',
content: '取消订单成功',
showCancel: false,
confirmColor: '#ff5344',
success(ret) {
if(ret.confirm) {
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/order/index'
})
}
}
})
} else {
that.canCancel = true;
wx.showToast({
title: res.data.msg || '取消订单失败',
icon: 'none'
})
}
}
})
console.log('用户点击确定')
} else if (res.cancel) {
that.canCancel = true;
console.log('用户点击取消')
}
}
})
},
/**
* 弹窗显示退款信息
* @param {*} res
*/
showRefundInfo: function(e) {
let idx = e.currentTarget.dataset.idx;
let hasrefund = e.currentTarget.dataset.hasrefund;
if(hasrefund>0) {
let order = this.data.order;
let refundGoodsInfo = order.order_goods_list[idx];
this.setData({
showRefundModal: true,
refundGoodsInfo
})
}
},
/**
* 查看地图
*/
gotoMap: function (e) {
let tot = e.currentTarget.dataset.tot || '';
let longitude = '';
let latitude = '';
let name = '';
let address = '';
if(tot==1) {
let salesroom_list = this.data.order.order_info.salesroom_list;
let salesroomIdx = this.data.salesroomIdx;
longitude = salesroom_list[salesroomIdx].lon;
latitude = salesroom_list[salesroomIdx].lat;
name = salesroom_list[salesroomIdx].room_name;
address = salesroom_list[salesroomIdx].room_address;
} else {
longitude = e.currentTarget.dataset.lon;
latitude = e.currentTarget.dataset.lat;
name = e.currentTarget.dataset.name;
address = e.currentTarget.dataset.address;
}
wx.openLocation({
latitude: parseFloat(latitude),
longitude: parseFloat(longitude),
name,
address,
scale: 28
})
},
createMarker: function(latitude, longitude){
let marker = {
iconPath: "../../images/location-red.png",
id: '',
title: '门店',
latitude: parseFloat(latitude),
longitude: parseFloat(longitude),
label:{
anchorX: -12,
anchorY: 0,
content: '门店'
},
width: 30,
height: 30
};
return marker;
},
handleHexiaoModal: function() {
this.setData({
showHexiaoModal: !this.data.showHexiaoModal
})
},
changeMendian: function(e) {
let salesroomIdx = e.currentTarget.dataset.idx;
this.setData({ salesroomIdx, showHexiaoModal: !this.data.showHexiaoModal })
},
handleHexiaoGoodsModal: function() {
this.setData({
showHexiaoGoodsModal: !this.data.showHexiaoGoodsModal
})
},
handleGoodsHexiao: function(e) {
let goodsHexiaoIdx = e.currentTarget.dataset.idx;
this.setData({ goodsHexiaoIdx, showHexiaoGoodsModal: true })
},
hanlePresaleModal: function(e) {
this.setData({
showPresaleDesc: !this.data.showPresaleDesc
})
},
hanlePresalePayModal: function(){
console.log(this.data.showPresalePayModal)
this.setData({
showPresalePayModal: !this.data.showPresalePayModal
})
},
copyCont: function(e) {
let data = e.currentTarget.dataset.code || "";
data&&wx.setClipboardData({
data,
success:function (res) {
wx.showToast({
title: '复制成功',
})
}
})
},
goLink: function(event) {
let url = event.currentTarget.dataset.link;
let needauth = event.currentTarget.dataset.needauth || '';
if(needauth){ if (!this.authModal()) return; }
url && wx.redirectTo({ url })
},
showFanliView: function() {
let pin_rebate = this.data.order.pin_rebate || '';
console.log(pin_rebate)
let text = "";
if(pin_rebate&&pin_rebate.rebate_reward==1) {
text = "拼团返利赠送"+ pin_rebate.reward_amount +"积分";
} else {
text = "拼团返利赠送余额:+"+ pin_rebate.reward_amount;
}
pin_rebate&&wx.showModal({
title: "返利详情",
content: text,
showCancel: false,
confirmText: "我知道了"
})
},
onShareAppMessage: function(res) {
var order_id = this.data.order.order_info.order_id || '';
let goods_share_image = this.data.order.order_goods_list[0].goods_share_image;
let share_img = this.data.share_img;
let share_title = this.data.share_title;
share_title = share_title?share_title:`@${this.data.order.order_info.ziti_name}${this.data.groupInfo.owner_name},我是${this.data.userInfo.shareNickName},刚在你这里下单啦!!!`;
if (order_id && this.is_show_tip == 1) {
return {
title: share_title,
path: "eaterplanet_ecommerce/pages/order/shareOrderInfo?order_id=" + order_id,
imageUrl: share_img ? share_img : goods_share_image
};
}
}
})

View File

@ -0,0 +1,23 @@
{
"navigationBarBackgroundColor": "#FFF",
"navigationBarTitleText": "订单详情",
"navigationBarTextStyle": "black",
"enablePullDownRefresh": false,
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-auth": "../../components/auth/index",
"i-card": "../../components/card/index",
"i-fixedBottom": "../../components/fixed-bottom/index",
"i-dialog": "../../components/dialog/index",
"i-order-info-express": "../../components/order/orderInfoExpress",
"i-goods-info": "../../components/goodsInfo/index",
"i-order-info": "../../components/orderInfo/index",
"i-modal": "../../components/modal/index",
"i-orderComment": "../../components/orderComment/index",
"i-img": "../../components/img/index",
"sku": "../../components/sku/index",
"guess-like": "../../components/guess-like/index",
"i-aside-btn": "../../components/asideBtn/index",
"s-form-show": "../../components/s-form-show/index"
}
}

View File

@ -0,0 +1,717 @@
<ep-navBar title="订单详情" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<i-auth bind:authSuccess="authSuccess" needAuth="{{needAuth}}">
<view class="orderpage">
<view class="head">
<view class="head">
<view class="to-pay-wrap" wx:if="{{order.order_info.order_status_id==3 && changeState!=1}}">
<view class="font-bold-30" wx:if="{{order.order_info.open_auto_delete == 1}}">
<view class="tradeStatus-index--count-down count-down">
<text wx:if="{{endtime.days >0}}">{{endtime.days}}天</text>{{endtime.hours}}:{{endtime.minutes}}:{{endtime.seconds}}</view>
</view>
<view class="font-bold-30" wx:if="{{order.order_info.open_auto_delete == 0}}">
<view class="tradeStatus-index--count-down count-down">待付款</view>
</view>
<view class="font-12" wx:if="{{order.order_info.open_auto_delete==1}}">请尽快付款,超时将被自动取消</view>
<view class="font-12" wx:else>请尽快付款,不然就被抢光了</view>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==1}}">
<view class="font-bold-20">
<block wx:if="{{presale_info&&presale_info.id}}">
<view>{{order.order_status_info.name}}</view>
<view class="fsz-24">
发货时间:<block wx:if="{{presale_info.presale_sendorder_date}}">{{presale_info.presale_sendorder_date}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内</block>开始{{presalePickup[order.order_info.delivery]}}
</view>
</block>
<block wx:else>备货中</block>
</view>
<image class="little-img" src="../../images/img_delivery@2x.png"></image>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==2}}">
<view class="font-bold-20">拼团中,已付款</view>
<image class="little-img" src="../../images/img_delivery@2x.png"></image>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==14}}">
<view class="font-bold-20">配送中</view>
<image class="little-img" src="../../images/img_delivery@2x.png"></image>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==4}}">
<view class="font-bold-20">
<view>{{order.order_status_info.name?order.order_status_info.name:"可提货"}}</view>
<view class="fsz-24" wx:if="{{presale_info}}">
发货时间:<block wx:if="{{presale_info.presale_sendorder_date}}">{{presale_info.presale_sendorder_date}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内</block>开始{{presalePickup[order.order_info.delivery]}}
</view>
</view>
<image class="little-img" src="../../images/img_ready_to_get@2x.png"></image>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==6}}">
<view class="font-bold-20">已签收</view>
<image class="little-img" src="../../images/img_trade_succeed@2x.png"></image>
</view>
<view class="trade-cancel-wrap" wx:if="{{order.order_info.order_status_id==10}}">
<view class="font-bold-20 cancel-box">
<image class="cancel-img" src="../../images/icon_exclamation@2x.png"></image>等待退款
</view>
</view>
<view class="to-get-wrap" wx:if="{{order.order_info.order_status_id==11}}">
<view class="font-bold-20">交易完成</view>
<image class="little-img" src="../../images/img_trade_succeed@2x.png"></image>
</view>
<view class="trade-cancel-wrap" wx:if="{{order.order_info.order_status_id==12}}">
<view class="font-bold-20 cancel-box">
<image class="cancel-img" src="../../images/icon_exclamation@2x.png"></image>售后中
</view>
</view>
<view class="trade-cancel-wrap" wx:if="{{order.order_info.order_status_id==5 || changeState==1}}">
<view class="font-bold-20 cancel-box">
<block wx:if="{{presale_info&&presale_info.is_unpay_ding_cancle==1}}">
<view class="fsz-32">未在规定时间内支付,订单已取消</view>
<view class="fsz-24" wx:if="{{presale_info.presale_limit_balancepaytime==1}}">支付尾款时间:{{presale_info.balance_pay_begintime}} - {{presale_info.balance_pay_endtime}}</view>
</block>
<block wx:else><image class="cancel-img" src="../../images/icon_exclamation@2x.png"></image>交易取消</block>
</view>
</view>
<view class="trade-cancel-wrap" wx:if="{{order.order_info.order_status_id==7}}">
<view class="font-bold-20 cancel-box">
<image class="cancel-img" src="../../images/icon_exclamation@2x.png"></image>已退款
</view>
</view>
<!-- 预售订单状态 -->
<view class="to-get-wrap" wx:if="{{presale_info&&order.order_info.order_status_id==15}}">
<view class="font-bold-20">
<view>{{order.order_status_info.name}}</view>
<view class="fsz-24" wx:if="{{presale_info.presale_limit_balancepaytime==1}}">支付尾款时间:{{presale_info.balance_pay_begintime}} - {{presale_info.balance_pay_endtime}}</view>
</view>
<image class="little-img" src="../../images/img_delivery@2x.png"></image>
</view>
</view>
</view>
<view class="content">
<!-- 核销 -->
<block wx:if="{{delivery=='hexiao'}}">
<!-- 券码已使用 -->
<block wx:if="{{hx_receive_info.goods_count==!hx_receive_info.receive_count}}">
<i-card>
<view slot="header" class="header">{{order.order_info.shopname}}</view>
<view slot="content" class="content-wrap middle">
<view class="each-item" wx:for="{{order_goods_list}}" wx:for-item="goodsInfo" wx:key="id">
<view style="margin-right: 10px">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{goodsInfo.image}}" width="60"></i-img>
</view>
<view style="flex-grow: 1">
<view class="name bold-text">{{goodsInfo.name}}</view>
<view class="mount">
<block wx:if="{{goodsInfo.option_str}}">{{goodsInfo.option_str}} </block>
¥{{goodsInfo.price}} x {{goodsInfo.quantity}}
</view>
<view class="bottom-info i-flex i-flex-alc">
<view class='bold-text i-flex-item'>小计:¥{{goodsInfo.real_total}}</view>
<view class="card-btn" style="margin: 0;">
<view catchtap="hanlePresalePayModal" class="btn-1 mar-left-8" wx:if="{{presale_info.need_repay==2&&!presale_info.second_paytime}}">付尾款</view>
<block wx:if="{{goodsInfo.is_refund_state>0&&goodsInfo.order_refund_goods.ref_id}}">
<view class="btn-2 mar-left-8" catchtap="goRefund" data-id="{{goodsInfo.order_refund_goods.ref_id}}">
<block wx:if="{{goodsInfo.is_refund_state==1}}">
{{(goodsInfo.order_refund_goods&&goodsInfo.order_refund_goods.state==3)?'退款成功':'查看售后'}}
</block>
<block wx:else>退款成功</block>
</view>
</block>
<view catchtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{goodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{goodsInfo.is_statements_state==0&&goodsInfo.is_refund_state==0&&(order.order_info.order_status_id==6||order.order_info.order_status_id==11)&&order_can_shen_refund==1}}">申请售后</view>
</view>
</view>
</view>
</view>
</view>
<view slot="footer">
<view class="footer">
共{{hx_receive_info.goods_count}}{{goods_sale_unit}}商品 小计:
<view class="money">¥{{goodsTot}}</view>
</view>
</view>
</i-card>
<!-- 已使用信息 -->
<view class="mt10"></view>
<i-card>
<view slot="header" class="header i-flex">
<view class="i-flex-item fsz-30">{{order.order_info.order_status_id==7?'已退款':'已收货'}}</view>
<view class="text-gray">{{hx_receive_info.goods_count}}{{goods_sale_unit}}商品</view>
</view>
<view slot="content" class="content-wrap p15 fsz-24">
<view>使用时间:{{hx_receive_info.use_time}}</view>
<view class="mt5">使用地址:{{hx_receive_info.salesroom_name}}</view>
<view class="i-flex mt5">
<view>券码:</view>
<view class="i-flex-item weight">
<view wx:for="{{hx_receive_info.volume_code_list}}" wx:key="index">
<text class="line-through">{{order.order_info.hexiao_volume_code}}</text> <text class="bule ml5" wx:if="{{order.order_info.order_status_id==7}}">已退款</text>
</view>
</view>
</view>
</view>
</i-card>
</block>
<!-- 券码未使用 -->
<block wx:else>
<i-card wx:if="{{order.order_info.order_status_id!=11&&order.order_info.order_status_id!=6}}">
<view slot="header" class="header">{{order.order_info.shopname}}</view>
<view slot="content" class="content-wrap">
<view class="text-center mt10" wx:if="{{order.order_info.hexiao_qr_code}}">
<image src="{{order.order_info.hexiao_qr_code}}" style="width:300rpx;height:300rpx;"></image>
</view>
<view class="text-center weight mt5 pt10">{{order.order_info.hexiao_volume_code}}</view>
<view class="text-center u-font-24 mt5 pb15 text-gray">出示二维码给店员核销</view>
</view>
</i-card>
<!-- 商品信息 -->
<block wx:for="{{order_goods_list}}" wx:for-item="goodsInfo" wx:key="id">
<view class="mt10"></view>
<i-card bindtap="handleGoodsHexiao" data-idx="{{index}}">
<view slot="header" class="header i-flex i-flex-spb" wx:if="{{goodsInfo.is_hexiao_expire==1}}">
<view class="red fsz-24">有效期至{{goodsInfo.effect_end_time}}</view>
<view class="red fsz-24" wx:if="{{goodsInfo.is_refund_state>0}}">已退款</view>
<view class="red fsz-24" wx:else>已过期</view>
</view>
<view slot="header" class="header i-flex i-flex-spb" wx:else>
<view class="red fsz-24">有效期至{{goodsInfo.effect_end_time}}</view>
<view class="red fsz-24" wx:if="{{goodsInfo.is_refund_state>0}}">{{goodsInfo.is_refund_state==1?'已退款':'部分退款'}}</view>
<view class="red fsz-24" wx:elif="{{goodsInfo.is_hexiao_over==1}}">已使用({{goodsInfo.hexiao_count-goodsInfo.remain_hexiao_count}}{{goodsInfo.hexiao_type==0?'份':'次'}}</view>
<view class="red fsz-24" wx:else>未使用({{goodsInfo.remain_hexiao_count ==0?'不限':goodsInfo.remain_hexiao_count}}{{goodsInfo.hexiao_type==0?'份':'次'}}</view>
</view>
<view slot="content" class="content-wrap middle">
<view class="each-item">
<view style="margin-right: 10px">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{goodsInfo.image}}" width="60"></i-img>
</view>
<view style="flex-grow: 1">
<view class="name bold-text">{{goodsInfo.name}}</view>
<view class="mount">
<block wx:if="{{goodsInfo.option_str}}">{{goodsInfo.option_str}} </block>
¥{{goodsInfo.price}} x {{goodsInfo.quantity}}
</view>
<view class="bottom-info i-flex i-flex-alc">
<view class='bold-text i-flex-item'>小计:¥{{goodsInfo.real_total}}</view>
<view class="card-btn" style="margin: 0;">
<view catchtap="hanlePresalePayModal" class="btn-1 mar-left-8" wx:if="{{presale_info.need_repay==2&&!presale_info.second_paytime}}">付尾款</view>
<block wx:if="{{goodsInfo.is_refund_state>0&&goodsInfo.order_refund_goods.ref_id}}">
<view class="btn-2 mar-left-8" catchtap="goRefund" data-id="{{goodsInfo.order_refund_goods.ref_id}}">
<block wx:if="{{goodsInfo.is_refund_state==1}}">
{{(goodsInfo.order_refund_goods&&goodsInfo.order_refund_goods.state==3)?'退款成功':'查看售后'}}
</block>
<block wx:else>退款成功</block>
</view>
</block>
<view catchtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{goodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{goodsInfo.is_statements_state==0&&goodsInfo.is_refund_state==0&&(order.order_info.order_status_id==6||order.order_info.order_status_id==11)&&order_can_shen_refund==1}}">申请售后</view>
<text class="iconfont icon-erweima1 fsz-36 ml10" wx:if="{{order.order_info.order_status_id!=11&&order.order_info.order_status_id!=6}}"></text>
</view>
</view>
</view>
</view>
</view>
</i-card>
</block>
<!-- 使用情况信息 -->
<block wx:if="{{hx_receive_info.goods_count!=hx_receive_info.receive_count&&hx_receive_info.receive_count>0}}">
<view class="mt10"></view>
<i-card>
<view slot="header" class="header i-flex">
<view class="i-flex-item fsz-28">
<block wx:if="{{hx_receive_info.receive_count}}">已收货{{hx_receive_info.receive_count}}份,</block>
<block wx:if="{{hx_receive_info.wait_count}}">待收货{{hx_receive_info.wait_count}}份</block>
<block wx:if="{{hx_receive_info.refund_goods_quantity}}">已退款{{hx_receive_info.refund_goods_quantity}}份</block>
</view>
<view class="text-gray">{{hx_receive_info.goods_count}}{{goods_sale_unit}}商品</view>
</view>
<view slot="content" class="content-wrap p15 fsz-24">
<view>使用时间:{{hx_receive_info.use_time}}</view>
<view class="mt5" wx:if="{{hx_receive_info.salesroom_name}}">使用地址:{{hx_receive_info.salesroom_name}}</view>
<view class="i-flex mt5">
<view>劵码:</view>
<view class="i-flex-item weight">
<view wx:for="{{hx_receive_info.volume_code_list}}" wx:key="index">
<text class="{{item.is_use==1?'line-through':''}}">{{item.hexiao_volume_code}}</text>
<text class="red" wx:if="{{item.is_hexiao_expire==1}}">已过期(有效期至{{item.effect_end_time}})</text>
<text class="bule" wx:elif="{{item.refund_quantity==1}}">已退款({{item.refund_quantity}}份)</text>
</view>
</view>
</view>
</view>
</i-card>
</block>
<view class="i-flex weight" style="background:#fbf1eb;margin:20rpx 0;padding:15rpx 20rpx;color:#f2792c;border-radius:5rpx;" wx:if="{{order.order_info.order_status_id!=11&&order.order_info.order_status_id!=6}}">
<text class="iconfont icon-laba" style="margin-right:10rpx;"></text>
商品门店信息请点击商品右下角二维码查看
</view>
</block>
<view class="mt10"></view>
</block>
<!-- 礼品卡 -->
<block wx:elif="{{virtualcard_info}}">
<i-card wx:if="{{virtualcard_info.state==1&&virtualcard_info.is_effect}}">
<view slot="header" class="header">礼品卡</view>
<view slot="content" class="content-wrap">
<view class="text-center weight mt5 pt10 pb15" bindtap="copyCont" data-code="{{virtualcard_info.code_sn}}">
{{virtualcard_info.code_sn}} <text class="bule">复制</text>
</view>
</view>
</i-card>
<!-- 商品信息 -->
<block wx:for="{{order_goods_list}}" wx:for-item="goodsInfo" wx:key="id">
<view class="mt10"></view>
<i-card data-idx="{{index}}">
<view slot="header" class="header i-flex i-flex-spb" wx:if="{{virtualcard_info.is_effect==0}}">
<view class="red fsz-24">{{virtualcard_info.effect_type==1?'有效期至'+virtualcard_info.effect_enddate:''}}</view>
<view class="red fsz-24" wx:if="{{goodsInfo.is_refund_state>0}}">已退款</view>
<view class="red fsz-24" wx:else>已过期</view>
</view>
<view slot="header" class="header i-flex i-flex-spb" wx:else>
<view class="red fsz-24">{{virtualcard_info.effect_type==1?'有效期至'+virtualcard_info.effect_enddate:''}}</view>
<view class="red fsz-24" wx:if="{{goodsInfo.is_refund_state>0}}">{{goodsInfo.is_refund_state==1?'已退款':'部分退款'}}</view>
<view class="red fsz-24" wx:elif="{{virtualcard_info.state==2}}">已使用</view>
<view class="red fsz-24" wx:else>未使用</view>
</view>
<view slot="content" class="content-wrap middle">
<view class="each-item">
<view style="margin-right: 10px">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{goodsInfo.image}}" width="60"></i-img>
</view>
<view style="flex-grow: 1">
<view class="name bold-text">{{goodsInfo.name}}</view>
<view class="mount">
<block wx:if="{{goodsInfo.option_str}}">{{goodsInfo.option_str}} </block>
¥{{goodsInfo.price}} x {{goodsInfo.quantity}}
</view>
<view class="bottom-info i-flex i-flex-alc">
<view class='bold-text i-flex-item'>小计:¥{{goodsInfo.real_total}}</view>
<view class="card-btn" style="margin: 0;">
<block wx:if="{{goodsInfo.is_refund_state>0&&goodsInfo.order_refund_goods.ref_id}}">
<view class="btn-2 mar-left-8" catchtap="goRefund" data-id="{{goodsInfo.order_refund_goods.ref_id}}">
<block wx:if="{{goodsInfo.is_refund_state==1}}">
{{(goodsInfo.order_refund_goods&&goodsInfo.order_refund_goods.state==3)?'退款成功':'查看售后'}}
</block>
<block wx:else>退款成功</block>
</view>
</block>
<view catchtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{goodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{goodsInfo.is_statements_state==0&&goodsInfo.is_refund_state==0&&(order.order_info.order_status_id==6||order.order_info.order_status_id==11)&&order_can_shen_refund==1}}">申请售后</view>
<block wx:if="{{virtualcard_info.is_effect==1&&virtualcard_info.state==1}}">
<view class="btn-1 mar-left-8" bindtap="goLink" data-link="/eaterplanet_ecommerce/moduleB/virtualcard/exchange">去使用</view>
</block>
</view>
</view>
</view>
</view>
</view>
</i-card>
</block>
<view class="mt10"></view>
<block wx:if="{{virtualcard_info.state>=2}}">
<i-card>
<view slot="header" class="header">
<view class="i-flex-item fsz-30">{{order.order_info.order_status_id==7?'已退款':'已收货'}}</view>
</view>
<view slot="content" class="content-wrap p15 fsz-24">
<view wx:if="{{virtualcard_info.use_date}}">使用时间:{{virtualcard_info.use_date}}</view>
<view class="mt5" wx:if="{{virtualcard_info.use_member_name}}">兑换人:{{virtualcard_info.use_member_name}}</view>
<view class="i-flex mt5">
<view>兑换码:</view>
<view class="i-flex-item weight">
<view>
<text class="line-through">{{virtualcard_info.code_sn}}</text> <text class="bule ml5" wx:if="{{order.order_info.order_status_id==7}}">已退款</text>
</view>
</view>
</view>
</view>
</i-card>
<view class="mt10"></view>
</block>
</block>
<block wx:else>
<view class="goods-info" wx:if="{{order.order_info.delivery!='pickup'}}">
<i-order-info-express order="{{order}}" hidePhone="{{is_hidden_orderlist_phone}}" groupInfo="{{groupInfo}}" goodsTot="{{goodsTot}}" wx:if="{{order.order_info}}" goods_sale_unit="{{goods_sale_unit}}" presale="{{presale_info}}">
</i-order-info-express>
</view>
<view class="goods-info" wx:elif="{{order.order_info.order_status_id!=3&&order.order_info.order_status_id!=5}}">
<i-goods-info order="{{order}}" hidePhone="{{is_hidden_orderlist_phone}}" groupInfo="{{groupInfo}}" goodsTot="{{goodsTot}}" goods_sale_unit="{{goods_sale_unit}}">
</i-goods-info>
</view>
<block wx:if="{{presale_info&&presale_info.presale_type==0}}">
<i-card>
<view slot="header" class="header">预售信息</view>
<view slot="content" class="content-wrap middle p10">
<view class="red">预售价¥{{goodsTot}},付定金后再减¥{{presale_info.presale_deduction_money}},尾款需付金额¥{{presale_info.weikuan}}(若有优惠,优惠将在尾款时使用)</view>
<view>
<view class="presale-item red i-flex i-flex-spb">
<view class="presale-item-circle">定金({{presale_info.first_paytime>0?'已支付':'未支付'}}) <text class="iconfont icon-shuoming text-gray fsz-28" bindtap="hanlePresaleModal"></text></view>
<view>¥{{presale_info.presale_ding_money}}</view>
</view>
<view class="presale-item i-flex i-flex-spb {{presale_info.second_paytime>0?'red':''}}">
<view class="presale-item-circle">尾款({{presale_info.is_unpay_ding_cancle==1?'已过期':(presale_info.second_paytime>0?'已支付':'未支付')}})</view>
<view>¥{{presale_info.weikuan}}</view>
</view>
</view>
<view class="mt10 fsz-24 text-gray" wx:if="{{presale_info.presale_limit_balancepaytime==1}}">
{{presale_info.balance_pay_begintime}} - {{presale_info.balance_pay_endtime}} 开始支付尾款
</view>
<view class="mt10 fsz-24 i-flex i-flex-spb" wx:if="{{presale_info.presale_sendorder_date||presale_info.presale_sendorder_afterday}}">
<view>
<em wx:if="{{order.order_info.delivery=='express'}}">{{groupInfo.delivery_express_name}}</em>
<em wx:elif="{{order.order_info.delivery=='localtown_delivery'}}">同城配送</em>
<em wx:elif="{{order.order_info.delivery=='pickup'}}">{{groupInfo.delivery_ziti_name}}</em>
<em wx:else>{{groupInfo.delivery_tuanzshipping_name}}</em>
</view>
<view>
{{!presale_info.second_paytime&&presale_info.presale_type==0?'尾款支付成功后':''}}
<block wx:if="{{presale_info.presale_sendorder_date}}">{{presale_info.presale_sendorder_date}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内</block>开始{{presalePickup[order.order_info.delivery]}}
</view>
</view>
</view>
</i-card>
<view class="mt10"></view>
</block>
<view class="goods-card">
<view class="i-card">
<view class="header" slot="header">
<view class="goods-cancel bold-text" wx:if="{{order.order_info.order_status_id==5}}">已取消</view>
<view class="goods-ready bold-text" wx:if="{{order.order_info.order_status_id==1||order.order_info.order_status_id==14}}" style="color:{{skin.color}}">
<block wx:if="{{presale_info&&presale_info.id}}">
<block wx:if="{{presale_info.presale_sendorder_date}}">{{presale_info.presale_sendorder_date}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内</block>开始{{presalePickup[order.order_info.delivery]}}
</block>
<block wx:else>
<block wx:if="{{order.order_info.delivery=='pickup'}}">预计{{order.order_info.pick_up_time}}可提货</block>
<block wx:elif="{{order.order_info.delivery=='tuanz_send'}}">预计{{order.order_info.pick_up_time}}{{groupInfo.owner_name}}配送</block>
<block wx:elif="{{order.order_info.delivery=='localtown_delivery'}}">同城配送</block>
<block wx:else>{{groupInfo.delivery_express_name}}</block>
</block>
</view>
<view class="goods-done bold-text" wx:if="{{order.order_info.order_status_id==6||order.order_info.order_status_id==11}}">{{showRealPickUpTime}}提货完成</view>
<view class="goods-num">{{order.goods_count}}{{goods_sale_unit}}商品</view>
</view>
<view class="middle" slot="content">
<block wx:for="{{order_goods_list}}" wx:for-item="goodsInfo" wx:key="id">
<view class="middle-line"></view>
<view class='each-item' bindtap="showRefundInfo" data-idx="{{index}}" data-hasrefund="{{goodsInfo.has_refund_quantity}}">
<view style="margin-right: 10px">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{goodsInfo.image}}" width="60"></i-img>
</view>
<view style="flex-grow: 1 ">
<view class="name bold-text">
<text class="red" wx:if="{{presale_info}}">[预售]</text>
<text class="pintag" wx:if="{{order.order_info.is_pin==1}}" style="background:{{skin.color}}">拼团</text>
{{goodsInfo.name}}
</view>
<view class="mount">
<block wx:if="{{goodsInfo.option_str}}">{{goodsInfo.option_str}} </block>
<block wx:if="{{order.order_info.type!='integral'}}">¥</block>{{goodsInfo.price}}
<block wx:if="{{order.order_info.type=='integral'}}">积分</block> x {{goodsInfo.quantity}}
<block wx:if="{{goodsInfo.refund_info}}">
<text wx:if="{{goodsInfo.refund_info.state==0}}" class="bg-primary text-white tag">{{goodsInfo.refund_info.real_refund_quantity}}个 申请退款中</text>
<text wx:if="{{goodsInfo.refund_info.state==3}}" class="bg-sucess text-white tag">{{goodsInfo.refund_info.real_refund_quantity}}个 退款成功</text>
<text wx:if="{{goodsInfo.refund_info.state==4}}" class="bg-warning text-white tag">{{goodsInfo.refund_info.real_refund_quantity}}个 退款失败</text>
</block>
</view>
<view class="bottom-info">
<view class='bold-text'>
小计:<block wx:if="{{order.order_info.type!='integral'}}">¥</block>{{goodsInfo.real_total}}
<block wx:if="{{order.order_info.type=='integral'}}">积分</block>
</view>
<i-dialog bind:cancel="callDialog" bind:confirm="confirmGoods" data-cancel="confirmGoodsVisible" text="确认该商品已经提货?" visible="{{confirmGoodsVisible}}"></i-dialog>
</view>
<view class="card-btn">
<block wx:if="{{goodsInfo.is_refund_state>0&&goodsInfo.order_refund_goods.ref_id}}">
<view class="btn-2 mar-left-8" catchtap="goRefund" data-id="{{goodsInfo.order_refund_goods.ref_id}}">
<block wx:if="{{goodsInfo.is_refund_state==1}}">
{{(goodsInfo.order_refund_goods&&goodsInfo.order_refund_goods.state==3)?'退款成功':'查看售后'}}
</block>
<block wx:else>退款成功</block>
</view>
</block>
<view catchtap="goComment" data-order_goods_id="{{goodsInfo.order_goods_id}}" data-goods_id="{{goodsInfo.goods_id}}" data-type="{{order.order_info.order_id}}" class="btn-1" wx:if="{{goodsInfo.is_refund_state == 0 && order.order_info.order_status_id==6&& goodsInfo.hascomment == 0}}">{{open_comment_gift==1?'评价有礼':'去评价'}}</view>
<!-- <block wx:if="{{order_can_del_cancle==1}}">
<view catchtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{goodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{goodsInfo.can_ti_refund!=0&&goodsInfo.is_refund_state==0&&order.order_info.order_status_id==4&&order_can_shen_refund==1}}">申请售后</view>
</block> -->
<view catchtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{goodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{goodsInfo.can_ti_refund!=0&goodsInfo.is_statements_state==0&&goodsInfo.is_refund_state==0&&(order.order_info.order_status_id==6||order.order_info.order_status_id==11)&&order_can_shen_refund==1&&presale_info.presale_type!=1}}">申请售后</view>
<button class="btn-1 mar-left-8" openType="contact" sessionFrom="sobot|{{userInfo.nickName}}|{{userInfo.avatarUrl}}" wx:if="{{user_service_switch==1}}">
<text>联系客服</text>
</button>
<view class="btn-2 mar-left-8" wx:if="{{goodsInfo.is_refund_state == 0 && order.order_info.order_status_id==1}}">备货中</view>
<view class="btn-2 mar-left-8" wx:if="{{goodsInfo.is_refund_state == 0 && order.order_info.order_status_id==14}}">配送中</view>
</view>
</view>
</view>
</block>
</view>
<view class="footer">
<view bindtap="hanlePresalePayModal" class="btn-1 mar-left-8" wx:if="{{presale_info.need_repay==2&&!presale_info.second_paytime}}">付尾款</view>
<view bindtap="cancelOrder" data-order_goods_id="0" data-type="{{order.order_info.order_id}}" class="btn-1 mar-left-8" wx:if="{{order.order_info.order_status_id==1&&order_can_del_cancle==1&&order.order_info.is_pin!=1}}">取消订单</view>
<view wx:if="{{order.order_info.is_pin==1&&order.order_info.order_status_id==7&&order.pin_rebate}}" class="btn-1" bindtap="showFanliView">返利详情</view>
<navigator url="/eaterplanet_ecommerce/moduleA/pin/share?id={{order.order_info.order_id}}" wx:if="{{order.order_info.is_pin==1&&order.order_info.order_status_id!=3}}" class="btn-1 mar-left-8">拼团详情</navigator>
<view catchtap="receivOrder" data-type="{{order.order_info.order_id}}" class="btn-3 mar-left-8" data-show="confirmGoodsVisible" wx:if="{{order.order_info.order_status_id==4&&order.order_info.is_can_received==1}}">{{order.order_info.delivery=='pickup'?"确认提货":"确认收货"}}</view>
</view>
</view>
<view class="space-between-card" wx:if="{{index!==orderSkuResps.length-1}}"></view>
</view>
</block>
<i-orderComment wx:if="{{order.order_info.comment}}" comment="{{order.order_info.comment}}" />
<view class="order-info">
<i-order-info orderInfo="{{order.order_info}}" order_goods_list="{{order_goods_list}}" groupInfo="{{groupInfo}}" goodsTot="{{goodsTot}}" wx:if="{{order.order_info}}"></i-order-info>
</view>
<!-- 下单表单 -->
<view class="rounded bg-f u-p-30" wx:if="{{order.order_form&&order.order_form.form_type}}">
<s-form-show formData="{{order.order_form}}"></s-form-show>
</view>
</view>
<view class="foot" wx:if="{{order.order_info.order_status_id==3 && changeState!=1}}">
<i-fixedBottom>
<view class="btn-group" wx:if="{{order.order_info.order_status_id==3}}">
<label class="cancelBtn" for="formId">
<view bindtap="callDialog" data-type="{{order.order_info.order_id}}" class="cancel-btn" data-show="cancelOrderVisible">取消订单</view>
</label>
<label class="cancelBtn" for="formId2">
<view bindtap="preOrderPay" data-type="{{order.order_info.order_id}}" class="pay-btn" style="background:{{skin.color?skin.color:'#ff5344'}}">
立即付款
</view>
</label>
</view>
</i-fixedBottom>
</view>
<i-aside-btn showHome="{{true}}" showContact="{{user_service_switch==1}}" i-class="home-btn"></i-aside-btn>
<guess-like bind:openSku="openSku" wx:if="{{is_show_guess_like==1}}" updateCart="{{updateCart}}" likeTitle="猜你喜欢" bind:vipModal="vipModal"></guess-like>
</view>
</i-auth>
<i-dialog bind:cancel="callDialog" bind:confirm="cancelOrder" data-cancel="cancelOrderVisible" text="好不容易挑出来,确定要取消吗?" visible="{{cancelOrderVisible}}"></i-dialog>
<!-- 下单成功分享 begin -->
<i-modal scrollUp="{{false}}" visible="{{isShowModal}}" wx:if="{{order.order_info.ziti_name}}">
<view class="share-modal">
<image class='close-modal' src='../../images/img-close.png' bindtap='closeModal'></image>
<view class='share-modal-title' wx:if="{{share_title}}">{{share_title}}</view>
<view class='share-modal-title' wx:else>@{{order.order_info.ziti_name}}{{groupInfo.owner_name}},我是{{userInfo.shareNickName}},刚在你这里下单啦!!!</view>
<view class='share-modal-img'>
<image mode='widthFix' src='{{share_img?share_img:order_goods_list[0].goods_share_image}}'></image>
</view>
<view class='share-modal-btn'>
<button open-type='share' hover-class='none' class='btn-item share-btn' style="background:{{skin.color}}">
通知{{groupInfo.owner_name}}接单
</button>
</view>
</view>
</i-modal>
<!-- 下单成功分享 end -->
<sku visible="{{visible}}" skuList="{{skuList}}" cur_sku_arr="{{cur_sku_arr}}" bind:cancel="closeSku" sku_val="{{sku_val}}" sku="{{sku}}" goodsid="{{addCar_goodsid}}" bind:changeCartNum="changeCartNum" bind:vipModal="vipModal"></sku>
<i-vip-modal visible="{{showVipModal}}" imgUrl="{{pop_vipmember_buyimage}}" />
<i-modal scrollUp="{{false}}" visible="{{showRefundModal&&refundGoodsInfo}}">
<view class="refundModal">
<view class="refundScroll bg-f p15 rounded mb20">
<view class="goodinfo pos-r pb15">
<view class='i-flex'>
<view style="margin-right: 10px">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{refundGoodsInfo.image}}" width="60"></i-img>
</view>
<view class="i-flex-item" style="width:0;">
<view class="weight text-overflow1"><text class="pintag" wx:if="{{order.order_info.is_pin==1}}">拼团</text> {{order_goods_list[refundIdx].name}}</view>
<view class="mount">
<block wx:if="{{refundGoodsInfo.option_str}}">{{refundGoodsInfo.option_str}} </block>
<block wx:if="{{order.order_info.type!='integral'}}">¥</block>{{refundGoodsInfo.price}}
<block wx:if="{{order.order_info.type=='integral'}}">积分</block> x {{refundGoodsInfo.quantity}}
</view>
<view class="weight mt5">
小计:<block wx:if="{{order.order_info.type!='integral'}}">¥</block>{{refundGoodsInfo.real_total}}
<block wx:if="{{order.order_info.type=='integral'}}">积分</block>
</view>
<view class="card-btn">
<block wx:if="{{refundGoodsInfo.is_refund_state>0&&refundGoodsInfo.order_refund_goods.ref_id}}">
<view class="btn-2 mar-left-8" bindtap="goRefund" data-id="{{refundGoodsInfo.order_refund_goods.ref_id}}">
<block wx:if="{{refundGoodsInfo.is_refund_state==1}}">
{{(refundGoodsInfo.order_refund_goods&&refundGoodsInfo.order_refund_goods.state==3)?'退款成功':'查看售后'}}
</block>
<block wx:else>退款成功</block>
</view>
</block>
<!-- <block wx:if="{{order_can_del_cancle==1}}">
<view bindtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{refundGoodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{refundGoodsInfo.can_ti_refund!=0&&refundGoodsInfo.is_refund_state==0&&order.order_info.order_status_id==4}}">申请售后</view>
</block> -->
<view bindtap="applyForService" data-type="{{order.order_info.order_id}}" data-order_goods_id="{{refundGoodsInfo.order_goods_id}}" class="btn-1 mar-left-8" wx:if="{{refundGoodsInfo.is_statements_state==0&&refundGoodsInfo.is_refund_state==0&&(order.order_info.order_status_id==6||order.order_info.order_status_id==11)&&presale_info.presale_type!=1}}">申请售后</view>
</view>
</view>
</view>
</view>
<view class="line"></view>
<view class="refundinfo">
<view class="m-head border-bottom i-flex i-flex-spb py10 mb10">
<view class="weight">已退款({{refundGoodsInfo.has_refund_quantity}}{{goods_sale_unit}}</view>
<view class="text-gray fsz-24">{{order.goods_count}}{{goods_sale_unit}}商品</view>
</view>
<block wx:if="{{refundGoodsInfo.order_goods_refund_list.length}}">
<view class="fsz-24 text-6" wx:for="{{refundGoodsInfo.order_goods_refund_list}}" wx:key="index">
<view class="mb5">退款时间:<text class="text-3">{{item.addtime}}</text></view>
<view class="mb5">退款金额:<text class="text-3">¥{{item.money}}</text></view>
</view>
</block>
</view>
</view>
<view class="close text-white text-center">
<text bindtap="closeModal" data-type="1" class="iconfont icon-guanbi fsz-60"></text>
</view>
</view>
</i-modal>
<!-- 核销门店弹窗 -->
<i-modal scrollUp="{{true}}" visible="{{showHexiaoModal}}" bind:cancel="handleHexiaoModal">
<view class="sku-card">
<view class="title text-gray mb10 fsz-26 i-flex i-alc">
<view class="i-flex-item">共 <text class="red bold">{{order.order_info.salesroom_list.length}}</text> 个自提点</view>
<text class="iconfont icon-guanbi fsz-34 text-3" bindtap="handleHexiaoModal"></text>
</view>
<scroll-view scroll-y style="height: 60vh;">
<view class="border-bottom py10 i-flex i-flex-alc" wx:for="{{order.order_info.salesroom_list}}" wx:key="index" bindtap="changeMendian" data-idx="{{index}}">
<view class="i-flex-item">
<view class="fsz-28 weight mb5">{{item.room_name}}</view>
<view class="fsz-22">{{item.room_address}}</view>
</view>
<text class="iconfont icon-youjiantou fsz-28 text-gray"></text>
</view>
</scroll-view>
</view>
</i-modal>
<!-- 商品核销详情弹窗 -->
<i-modal scrollUp="{{true}}" visible="{{showHexiaoGoodsModal}}" bind:cancel="handleHexiaoGoodsModal">
<view class="sku-card" style="padding: 40rpx 0 0;">
<view class="weight fsz-32 pb10 text-center" style="padding: 0 40rpx;">{{order.order_info.shopname}}</view>
<view class="mt10 border-bottom pb15" style="padding: 0 40rpx;">
<view class="text-center mt10" wx:if="{{order_goods_list[goodsHexiaoIdx].hexiao_qr_code}}">
<image src="{{order_goods_list[goodsHexiaoIdx].hexiao_qr_code}}" style="width:300rpx;height:300rpx;"></image>
</view>
<view class="text-center weight mt5 pt10">{{order_goods_list[goodsHexiaoIdx].hexiao_volume_code}}</view>
<view class="text-center u-font-24 mt5 pb15 text-gray">出示二维码给店员核销</view>
</view>
<scroll-view scroll-y style="max-height: 40vh;padding: 0 40rpx;" class="pb15 mt10">
<view class="i-flex border-bottom pb15">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{order_goods_list[goodsHexiaoIdx].goods_images}}" width="60"></i-img>
<view class="i-flex-item ml10">
<view class="fsz-28">{{order_goods_list[goodsHexiaoIdx].name}}</view>
<view class="fsz-24 text-gray mt10">x {{order_goods_list[goodsHexiaoIdx].quantity}}</view>
</view>
</view>
<!-- 使用记录 -->
<view class="fsz-24 pb15 border-bottom">
<view class="fsz-28 weight mb10 mt10 i-flex">
使用情况
<view class="red" wx:if="{{order_goods_list[goodsHexiaoIdx].is_refund_state>0}}">(已退款)</view>
<view class="red" wx:elif="{{order_goods_list[goodsHexiaoIdx].is_hexiao_expire==1}}">
(已过期 <text class="fsz-24">有效期至{{order_goods_list[goodsHexiaoIdx].effect_end_time}}</text>
</view>
<text class="red" wx:else>{{order_goods_list[goodsHexiaoIdx].is_hexiao_over==1?"核销完成":"未核销完成"}}</text>
</view>
<view class="mt10">
<view>总{{order_goods_list[goodsHexiaoIdx].hexiao_type==0?'份':'次'}}数:{{order_goods_list[goodsHexiaoIdx].hexiao_count == 0?'不限':order_goods_list[goodsHexiaoIdx].hexiao_count}}{{order_goods_list[goodsHexiaoIdx].hexiao_type==0?'份':'次'}}</view>
<view class="mt5">剩余{{order_goods_list[goodsHexiaoIdx].hexiao_type==0?'份':'次'}}数:{{order_goods_list[goodsHexiaoIdx].remain_hexiao_count == 0?'不限':order_goods_list[goodsHexiaoIdx].remain_hexiao_count}}{{order_goods_list[goodsHexiaoIdx].hexiao_type==0?'份':'次'}}</view>
<view class="mt5" wx:if="{{order_goods_list[goodsHexiaoIdx].has_refund_quantity>0}}">已退款:{{order_goods_list[goodsHexiaoIdx].has_refund_quantity}}{{order_goods_list[goodsHexiaoIdx].hexiao_type==0?'份':'次'}}</view>
</view>
</view>
<block wx:if="{{order_goods_list[goodsHexiaoIdx].salesroom_list.length}}">
<view class="fsz-28 weight mb10 mt10">适用门店({{order_goods_list[goodsHexiaoIdx].salesroom_list.length}})</view>
<view class="fsz-24">
<block wx:for="{{order_goods_list[goodsHexiaoIdx].salesroom_list}}" wx:key="index" wx:if="{{order_goods_list[goodsHexiaoIdx].salesroom_list}}">
<view class="i-flex i-flex-alc roomitem border-bottom" bindtap="gotoMap" data-lat="{{item.lat}}" data-lon="{{item.lon}}" data-name="{{item.room_name}}" data-address="{{item.room_address}}">
<view class="i-flex-item">
<view>门店名称:{{item.room_name}}<text class="red">(距你{{item.distance}}公里)</text></view>
<view class="mt5">门店地址:{{item.room_address}}</view>
</view>
<text class="iconfont icon-youjiantou fsz-28 text-3"></text>
</view>
</block>
</view>
</block>
</scroll-view>
<view class="shadow-top" style="padding: 20rpx 40rpx 0;">
<view class="text-center text-white bg-primary fsz-30" style="height: 74rpx;line-height: 74rpx;" bindtap="handleHexiaoGoodsModal">关闭</view>
</view>
</view>
</i-modal>
<!-- 预售说明 -->
<i-modal bind:cancel="hanlePresaleModal" iClass="confirm-modal-content" visible="{{showPresaleDesc}}">
<view class="confirm-coupon-modal" style="background:#fff;">
<view class='title'>预售协议</view>
<scroll-view class='list' scroll-y style="min-height: 300rpx;padding-top:30rpx;">
<text>{{presale_info.presale_agreement}}</text>
</scroll-view>
</view>
</i-modal>
<!-- 预售尾款 -->
<i-modal bind:cancel="hanlePresalePayModal" iClass="confirm-modal-content" visible="{{showPresalePayModal}}">
<view class="confirm-presale-modal">
<view class="title text-center">预售尾款支付信息</view>
<view class="order-content">
<view class="msg-group">
<span>尾款金额:</span>
<em>+¥{{presale_info.weikuan}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.shipping_fare>0}}">
<span wx:if="{{order.order_info.delivery=='localtown_delivery'}}">同城配送费:</span>
<span wx:else>{{order.order_info.delivery=="express"?groupInfo.placeorder_trans_name:groupInfo.placeorder_tuan_name}}</span>
<em>+ ¥{{order.order_info.shipping_fare}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.is_free_shipping_fare==1}}">
<span>满金额免{{order.order_info.delivery=="express"?groupInfo.placeorder_trans_name:groupInfo.placeorder_tuan_name}}</span>
<em>- ¥{{order.order_info.fare_shipping_free}}</em>
</view>
<view class="msg-group" wx:if="{{(order.order_info.score_for_money*1)>0}}">
<span>积分抵扣:</span>
<em>- ¥{{order.order_info.score_for_money}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.voucher_credit>0}}">
<span>优惠券:</span>
<em>- ¥{{order.order_info.voucher_credit}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.fullreduction_money>0}}">
<span>满减:</span>
<em>- ¥{{order.order_info.fullreduction_money}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.packing_fare>0}}">
<span>{{groupInfo.localtown_modifypickingname}}</span>
<em>+ ¥{{order.order_info.packing_fare}}</em>
</view>
<view class="msg-group" wx:if="{{order.order_info.localtown_add_shipping_fare>0}}">
<span>加价配送费:</span>
<em>+ ¥{{order.order_info.localtown_add_shipping_fare}}</em>
</view>
<view class="msg-group">
<span>配送方式:</span>
<em wx:if="{{order.order_info.delivery=='express'}}">{{groupInfo.delivery_express_name}}</em>
<em wx:elif="{{order.order_info.delivery=='localtown_delivery'}}">同城配送</em>
<em wx:else>{{groupInfo.delivery_tuanzshipping_name}}</em>
</view>
<view class="msg-group" wx:if="{{presale_info.presale_sendorder_date||presale_info.presale_sendorder_afterday}}">
<span>发货时间:</span>
<em>
{{!presale_info.second_paytime&&presale_info.presale_type==0?'尾款支付成功后':''}}
<block wx:if="{{presale_info.presale_sendorder_date}}">{{presale_info.presale_sendorder_date}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内</block>开始{{presalePickup[order.order_info.delivery]}}
</em>
</view>
<view class="total">
合计:<em>¥{{presale_info.payTot}}</em>
</view>
</view>
<view class="button-group i-flex">
<i-button bindtap="hanlePresalePayModal" class="btn-content text-center" iClass="btn left-btn">取消</i-button>
<i-button class="btn-content text-center" iClass="btn right-btn" loading="{{payBtnLoading}}" bindtap="preOrderPay" data-type="{{order.order_info.order_id}}">
<view style="background:{{skin.color}};line-height:80rpx;color:#fff;">确认支付</view>
</i-button>
</view>
</view>
</i-modal>

View File

@ -0,0 +1,699 @@
.orderpage {
background: #4facfe;
}
.content {
padding: 0 20rpx;
padding-bottom: 80rpx;
}
.back-to-home {
position: fixed;
right: 40rpx;
bottom: 200rpx;
}
.back-to-home image {
width: 92rpx;
height: 92rpx;
}
.goods-info {
margin-bottom: 20rpx;
}
.order-info {
margin-bottom: 20rpx;
}
.foot {
width: 100%;
position: fixed;
bottom: 0;
z-index: 1000;
}
.mar-left-8 {
margin-left: 16rpx;
}
.space-between-card {
height: 22rpx;
}
.btn-group {
display: flex;
text-align: center;
font-size: 30rpx;
z-index: 1000;
}
.btn-group .cancelBtn {
width: 50%;
}
.btn-group .cancelBtn .cancel-btn {
background-color: white;
color: #666;
height: 96rpx;
line-height: 96rpx;
font-weight: 500;
}
.btn-group .pay-btn {
background: linear-gradient(100deg, #ff758c 0%, #ff7eb3 100%);
color: white;
height: 96rpx;
line-height: 96rpx;
font-weight: 500;
border-radius: 20px 0px 0px 20px;
}
.btn-group .confirm-receipt {
width: 100%;
background-color: white;
color: #4facfe;
border-top: 0.1rpx solid rgba(0,0,0,0.1);
height: 96rpx;
line-height: 96rpx;
}
.btn-group .del-order {
margin: 20rpx 0 0 20rpx;
padding: 34rpx 276rpx;
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
border-radius: 20rpx;
color: white;
font-size: 30rpx;
}
/* 20181206 end */
/**订单状态begin**/
.font-bold-30 {
font-size: 60rpx;
}
.font-bold-20 {
color: #fff;
font-size: 40rpx;
font-weight: 500;
}
.font-12 {
font-size: 24rpx;
}
.head .little-img {
width: 230rpx;
height: 120rpx;
}
.back-img-wrap {
width: 100%;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
.back-img-wrap .back-img {
width: 100%;
height: 340rpx;
}
.to-pay-wrap {
text-align: center;
padding: 46rpx 0;
color: #fff;
}
.to-get-wrap {
display: flex;
justify-content: space-between;
padding: 50rpx 50rpx 0 50rpx;
color: white;
}
.trade-cancel-wrap {
padding: 50rpx 76rpx;
color: white;
text-align: center;
}
.cancel-box {
display: flex;
align-items: center;
justify-content: center;
}
.cancel-img {
margin-right: 10rpx;
width: 40rpx;
height: 40rpx;
}
.count-down {
font-weight: 500;
}
/***订单状态end**/
/***goods begin **/
.header {
padding: 20rpx 30rpx;
color: #444;
font-size: 28rpx;
font-weight: 500;
}
.content-wrap {
border-top: 0.1rpx solid #efefef;
padding-bottom: 20rpx;
}
.content-wrap .item {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 24rpx;
padding: 16rpx 30rpx 0;
}
.content-wrap .item .title {
word-break: keep-all;
color: #aaa;
}
.content-wrap .item .detail {
color: #444;
text-align: right;
display: flex;
align-items: center;
}
.content-wrap .item .detail .phone {
margin-left: 20rpx;
padding: 0 20rpx;
height: 44rpx;
display: flex;
align-items: center;
border: 0.1rpx solid #efefef;
border-radius: 26rpx;
}
.content-wrap .item .detail .phone .icon-phone {
width: 20rpx;
height: 20rpx;
margin-right: 10rpx;
}
/***goods end **/
/***goods card begin **/
.bold-text {
font-weight: 500;
}
.show-img {
float: left;
width: 120rpx;
height: 120rpx;
}
.name {
margin-top: -8rpx;
width: 510rpx;
font-size: 26rpx;
color: #444;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.mount {
font-size: 22rpx;
color: #aaa;
margin-top: 10rpx;
}
.bottom-info {
justify-content: space-between;
font-size: 28rpx;
color: #444;
margin-top: 18rpx;
}
.bold-text {
font-weight: 500;
}
.header {
display: flex;
justify-content: space-between;
padding: 30rpx;
font-size: 24rpx;
}
.header .goods-num {
color: #aaa;
}
.header .goods-done {
color: #aaa;
}
.header .goods-ready {
color: #4facfe;
}
.header .goods-cancel {
color: #aaa;
}
.middle .middle-line {
height: 0.1rpx;
background: #efefef;
}
.middle .each-item {
box-sizing: border-box;
display: flex;
width: 100%;
padding: 32rpx 30rpx;
}
/** goods card end **/
/** oprate begin **/
.mar-left-8 {
margin-left: 16rpx;
}
.card-btn {
margin-top: 20rpx;
float:right;
display: flex;
}
.card-btn .button-hover {
background: #b6b6b6;
}
.footer .btn-1, .card-btn .btn-1 {
position: relative;
color: #666;
text-align: center;
padding: 0;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
border-radius: 26rpx;
box-sizing: border-box;
}
.footer .btn-1::after, .card-btn .btn-1::after {
box-sizing: border-box;
content: '';
position: absolute;
top: 0;
left: 0;
width: 200%;
height: 200%;
transform: scale(0.5);
transform-origin: 0 0;
border: 2rpx solid #b6b6b6;
border-radius: 52rpx;
pointer-events: none;
}
.card-btn .btn-2 {
text-align: center;
padding: 0;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
border-radius: 26rpx;
box-sizing: border-box;
color: #aaa;
background-color: #f6f6f6;
}
.card-btn .btn-3 {
color: white;
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
text-align: center;
padding: 0;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
border-radius: 26rpx;
box-sizing: border-box;
}
.card-btn .btn-5 {
display: flex;
align-items: center;
color: #aaa;
}
.card-btn .arrow-right {
width: 12rpx;
height: 22rpx;
margin-left: 10rpx;
font-size: 24rpx;
}
/***operate end **/
/**order_info begin **/
.i-card {
width: 710rpx;
border-radius: 20rpx;
background: #fff;
box-shadow: 0 0 40rpx 0 rgba(0, 0, 0, 0.05);
display: flex;
flex-direction: column;
overflow: hidden;
}
.header {
padding: 20rpx 30rpx;
color: #444;
font-size: 28rpx;
font-weight: 500;
}
.content-wrap {
border-top: 0.1rpx solid #efefef;
padding-bottom: 20rpx;
}
.content-wrap .item {
display: flex;
justify-content: space-between;
font-size: 24rpx;
padding: 16rpx 30rpx;
padding-bottom: 0;
}
.content-wrap .item .title {
color: #aaa;
}
.content-wrap .item .detail {
color: #444;
}
.footer {
border-top: 0.1rpx solid #efefef;
padding: 32rpx;
display: flex;
justify-content: flex-end;
align-items: center;
font-size: 28rpx;
font-weight: 500;
}
.footer .money {
color: #4facfe;
font-weight: 500;
font-size: 30rpx;
}
/**order_info end **/
/* share-modal begin */
.share-modal {
position: relative;
background-color: #fff;
border-radius: 10rpx;
width: 600rpx;
box-sizing: border-box;
padding: 20rpx;
}
.share-modal-title {
font-size: 32rpx;
color: #333;
padding-bottom: 20rpx;
}
.share-modal-img {
padding-bottom: 10rpx;
}
.share-modal-img image {
width: 100%;
}
.share-modal-btn {
display: flex;
line-height: 90rpx;
text-align: center;
}
.btn-item {
position: relative;
flex: 1;
font-size: 30rpx;
background: #4facfe;
}
.share-btn {
color: #fff;
line-height: inherit;
border-radius: 10rpx;
}
.share-btn::after {
border: 0;
}
.close-modal {
position: absolute;
right: -16rpx;
top: -16rpx;
width: 48rpx;
height: 48rpx;
}
.home-btn {
bottom: 40% !important;
}
.pintag {
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
color: #fff;
font-size: 20rpx;
padding: 1rpx 8rpx;
border-radius: 6rpx;
font-weight: bold;
margin-right: 10rpx;
}
.refundModal {
position: relative;
width: 90%;
box-sizing: border-box;
}
.refund-btn {
position: absolute;
right: 0;
bottom: 30rpx;
}
.btn-gray {
text-align: center;
padding: 0;
width: 136rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 24rpx;
border-radius: 26rpx;
box-sizing: border-box;
color: #aaa;
background-color: #f6f6f6;
}
.line {
height: 10rpx;
border-radius: 5rpx;
background: #f6f6f6;
}
.refundScroll {
max-height: 600rpx;
overflow-y: scroll;
}
.mapbox {
position: relative;
}
.map-distance {
position: absolute;
left: 0;
top: 0;
padding: 8rpx 15rpx;
background: rgba(0, 0, 0, 0.6);
color: #fff;
font-size: 24rpx;
z-index: 1000;
border-radius: 0 0 10rpx 0;
}
.roomitem {
margin: 10rpx 0;
padding-bottom: 15rpx;
}
.mount .tag {
font-size: 20rpx;
padding: 4rpx 8rpx;
border-radius: 5rpx;
margin-left: 10rpx;
}
.presale-item {
padding: 15rpx 50rpx;
}
.presale-item-circle {
position: relative;
padding-left: 25rpx;
}
.presale-item-circle::before {
position: absolute;
content: "";
width: 14rpx;
height: 14rpx;
border-radius: 50%;
background: #cccccc;
top: 50%;
margin-top: -7rpx;
left: 0;
}
.presale-item.red .presale-item-circle::before {
background: #ff5344;
}
.presale-item .presale-item-circle::after {
position: absolute;
content: "";
border-right: 1rpx solid #cccccc;
left: 7rpx;
bottom: 50%;
height: 40rpx;
}
.presale-item.red .presale-item-circle::after {
position: absolute;
content: "";
border-right: 1rpx solid #ff5344;
left: 7rpx;
top: 50%;
height: 30rpx;
}
.presale-item.red:last-child .presale-item-circle::after {
position: absolute;
content: "";
border-right: 1rpx solid #ff5344;
left: 7rpx;
bottom: 50%;
height: 50rpx;
top: initial;
}
.confirm-coupon-modal {
background: #f6f6f6;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
padding-bottom: 30rpx;
}
.confirm-coupon-modal .title {
width: 100%;
border-bottom: 1rpx solid #efefef;
line-height: 2.5;
font-size: 32rpx;
text-align: center;
background: #fff;
}
.confirm-coupon-modal .list {
width: 100%;
max-height: 700rpx;
overflow-y: auto;
padding: 0 20rpx;
box-sizing: border-box;
}
.confirm-presale-modal .button-group {
border-top: 1rpx solid rgba(0, 0, 0, 0.1);
}
.confirm-presale-modal .btn-content {
flex: 1;
height: 80rpx;
line-height:80rpx;
font-size: 30rpx;
}
.confirm-presale-modal .title {
font-size: 32rpx;
color: #444;
line-height: 32rpx;
font-weight: 500;
padding: 30rpx 0;
}
.confirm-presale-modal .order-content {
width: 690rpx;
border-radius: 20rpx;
padding-top: 30rpx;
background: #f6f6f6;
margin: 0 auto 20rpx;
}
.confirm-presale-modal .order-content .msg-group {
width: 690rpx;
padding: 0 30rpx;
margin-bottom: 20rpx;
display: flex;
font-size: 24rpx;
line-height: 24rpx;
color: #444;
box-sizing: border-box;
align-items: center;
}
.confirm-presale-modal .order-content .msg-group span {
font-weight: bold;
white-space: nowrap;
}
.confirm-presale-modal .order-content .msg-group em {
font-weight: 400;
flex: 1;
line-height: 1.4;
}
.confirm-presale-modal .order-content .total {
line-height: 86rpx;
padding: 0 30rpx;
text-align: right;
color: #444;
font-size: 30rpx;
border-top: 1rpx solid #e2e2e2;
}
.confirm-presale-modal .order-content .total em {
color: #ff5344;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{
"navigationBarTitleText": "提交订单",
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-auth": "../../components/auth/index",
"i-card": "../../components/card/index",
"i-img": "../../components/img/index",
"i-button": "../../components/button/index",
"i-fixed-bottom": "../../components/fixed-bottom/index",
"i-modal": "../../components/modal/index",
"i-dialog": "../../components/dialog/index",
"i-vip-price": "../../components/vipPrice/vipPrice",
"s-form": "../../components/s-form/index"
}
}

View File

@ -0,0 +1,584 @@
<i-auth bind:authSuccess="authSuccess" needAuth="{{needAuth}}">
<ep-navBar ref='' backgroundColorTop='#fff' color='#000' title='提交订单' background='#fff' iconTheme='black' bindback="handlerGobackClick" back="{{true}}" ></ep-navBar>
<view class='placeOrderBox'>
<block wx:if="{{buy_type!='virtualcard'}}">
<view class="address-content">
<view class="tab-nav {{tabLength==1?'tab-nav-one':''}}" style="border-color:{{skin.color}}">
<view bindtap="tabSwitch" wx:for="{{tabList}}" wx:key="id" class="tab-nav-item {{tabIdx==item.id?'active':''}}" data-idx="{{item.id}}" wx:if="{{item.enabled}}" style="{{tabIdx==item.id?'background:'+skin.color:''}}">
<span>{{item.name}}</span>
</view>
</view>
<view class="receiver">
<text space="ensp">{{(tabIdx==0||tabIdx==4)?"提 货 人":"收 货 人"}} </text>
<input bindinput="changeReceiverName" class="receive-name" placeholder="{{(tabIdx==0||tabIdx==4)?'提货人':'收货人'}}" type="text" value="{{tabAddress[tabIdx].name}}" focus='{{focus_name}}'></input>
</view>
<view class="receiver">
<text>手机号码:</text>
<input bindinput="bindReceiverMobile" class="mobile" placeholder="手机号码" type="text" value="{{tabAddress[tabIdx].mobile}}" focus='{{focus_mobile}}'></input>
</view>
<view class="receiver" wx:if="{{order_note_open==1&&(tabIdx==0||tabIdx==1||tabIdx==3)}}">
<text space="ensp">{{order_note_name}} </text>
<input bindinput="changeNoteName" class="receive-name" placeholder="请填写{{order_note_name}}" type="text" value="{{order_note_content?order_note_content:''}}"></input>
</view>
<view class='address-box' wx:if="{{tabIdx!=0&&tabIdx!=4}}">
<block wx:if="{{tabIdx==2||tabIdx==3}}">
<view class="receiver">
<text>所在地区: </text>
<view class='sel-btn' bindtap='choseLocation'>{{tabAddress[tabIdx].region[0] || "选择地址"}}{{tabAddress[tabIdx].region[1]}}{{tabAddress[tabIdx].region[2]}}</view>
<image src='../../images/rightArrowImg.png' class='icon-right'></image>
</view>
<view class="receiver align-start">
<text>详细地址:</text>
<textarea hidden="{{showConfirmModal||showAlertTime}}" class="receive-name" bindinput="changeReceiverAddress" type="text" value="{{tabAddress[tabIdx].receiverAddress}}" placeholder="详细地址" focus='{{focus_addr}}' />
</view>
</block>
<block wx:else>
<view class='receiver align-start' bindtap='choseLocation'>
<text>所在位置:</text>
<view class='sel-btn tuan-pos'>{{tabAddress[tabIdx].receiverAddress}}
<image class='icon-right' src='../../images/rightArrowImg.png'></image>
</view>
</view>
<view class="receiver align-start">
<text>{{order_lou_meng_hao}}</text>
<textarea wx:if="{{!showConfirmModal}}" class="receive-name" bindinput="changeTuanAddress" type="text" value="{{tabAddress[tabIdx].lou_meng_hao}}" placeholder="{{order_lou_meng_hao_placeholder}}" focus='{{focus_addr}}' />
</view>
</block>
</view>
<view wx:if="{{tabIdx==2}}" class="use-wx-address" bindtap='getWxAddress' style="color:{{skin.color}}">+使用微信地址</view>
<block wx:if="{{tabIdx!=2&&tabIdx!=3&&is_hexiao!=1}}">
<p class="address-red">{{groupInfo.owner_name}}信息:{{disUserName}} ({{pickUpCommunityName}})</p>
<p class="address">{{tabIdx==0?"提货地点":groupInfo.owner_name+"位置"}}{{pickUpAddress}}</p>
</block>
</view>
<view class="address-line">
<image src="../../images/icon-address-line.png"></image>
</view>
<!-- 同城配送预计时间 -->
<view class="act-content" wx:if="{{tabIdx==3&&buy_type!='presale'}}">
<view class="cell" bindtap="handleTimeModal">
<block wx:if="{{curAlertTime==-1}}">
<span>立即送出</span>
<em class="red i-flex-item" style="text-align:right;">大约{{localtown_dispatchtime}}送达</em>
</block>
<block wx:else>
<span>送达时间</span>
<em class="red i-flex-item" style="text-align:right;">
<block wx:if="{{localtown_expected_delivery.localtown_delivery_space_month!=localtown_delivery_space_month}}">
{{localtown_delivery_space_month}}
</block>
{{localtown_expected_delivery.localtown_delivery_space_time_list[localtown_delivery_space_month][curAlertTime].time}}
</em>
</block>
<view wx:if="{{localtown_expected_delivery.localtown_expected_delivery_status&&localtown_expected_delivery.localtown_delivery_space_month}}">
<image class='icon-right' src='../../images/rightArrowImg.png' style="margin-top: -12rpx;"></image>
</view>
</view>
</view>
</block>
<view class="u-m-t-20" wx:else></view>
<view class="card-container" style="padding-bottom:0;" wx:for="{{seller_goodss}}" wx:for-index="key" wx:for-item="value" wx:key="key">
<i-card iClass="card-content">
<view class="card-header" slot="header" style="color:{{skin.color}}">
<view>{{buy_type=='virtualcard'?'礼品卡':''}}</view>
<view class="cart-header-right">{{value.goodsnum}}{{goods_sale_unit}}商品</view>
</view>
<view class="cart-item" slot="content">
<block wx:for="{{value.goods}}" wx:key="key">
<view class="sku-item">
<i-img defaultImage="../../images/placeholder-refund.png" height="60" iClass="sku-img" loadImage="{{item.image}}" width="60"></i-img>
<view class="sku-msg">
<view class="sku-title">
<text wx:if="{{buy_type=='presale'}}" class="red">[预售]</text> {{item.name}}
</view>
<view class="sku-spec" wx:if="{{item.option.length>0}}">规格:
<text wx:for="{{item.option}}" wx:key="option_id" wx:for-item="option">{{option.value}}</text>
</view>
<view class="original-price">
<block wx:if="{{buy_type!='integral'}}">¥</block>{{item.price}} ×{{item.quantity}}
<block wx:if="{{buy_type=='integral'}}">积分</block>
<i-vip-price wx:if="{{is_open_vipcard_buy==1&&item.is_take_vipcard==1&&is_vip_card_member==1}}" price="{{item.card_price}}"></i-vip-price>
<i-vip-price wx:elif="{{item.is_mb_level_buy}}" price="{{item.levelprice}}" type="1"></i-vip-price>
</view>
<view class="sku-price">小计:
<span>
<block wx:if="{{buy_type!='integral'}}">¥</block>{{item.total}}
<block wx:if="{{buy_type=='integral'}}">积分</block>
</span>
</view>
<block wx:if="{{buy_type!='presale'&&buy_type!='virtualcard'}}">
<view class="mt5" wx:if="{{tabIdx==0}}" style="color:{{skin.color}}">
<view class="picktime" wx:if="{{item.pick_up_type == 3}}">预计{{item.pick_up_time}}可自提</view>
<view class="picktime" wx:else>预计{{item.pick_up_time}}({{item.pick_up_weekday}})可自提</view>
</view>
<view class="mt5" wx:elif="{{tabIdx==1}}" style="color:{{skin.color}}">
<view class="picktime" wx:if="{{item.pick_up_type == 3}}">预计{{item.pick_up_time}}{{groupInfo.owner_name}}配送</view>
<view class="picktime" wx:else>预计{{item.pick_up_time}}({{item.pick_up_weekday}}){{groupInfo.owner_name}}配送</view>
</view>
</block>
</view>
</view>
</block>
</view>
<view class="cart-footer" slot="footer" wx:if="{{is_open_order_message==1}}">
<input bindinput="bindInputMessage" class="order-message" placeholder="备注" type="text" data-idx="{{key}}"></input>
</view>
</i-card>
</view>
<!-- 优惠信息 -->
<view class="act-content">
<view class="cell" wx:if="{{is_vip_card_member==1&&is_open_vipcard_buy==1&&vipcard_save_money>0}}">
<span>会员优惠</span>
<em>- ¥ {{vipcard_save_money}}</em>
</view>
<view class="cell" wx:if="{{levelAmount>0}}">
<span>等级折扣</span>
<em>- ¥ {{levelAmount}}</em>
</view>
<view class="cell" wx:if="{{tabIdx==1&&delivery_tuanz_money>0}}">
<span>{{groupInfo.placeorder_tuan_name}}</span>
<em>+ ¥ {{delivery_tuanz_money}}</em>
</view>
<view class="cell" wx:if="{{tabIdx==2&&trans_free_toal>0}}">
<span>{{groupInfo.placeorder_trans_name}}</span>
<em>+ ¥ {{trans_free_toal}}</em>
</view>
<!-- 同城配送 配送费 -->
<block wx:if="{{tabIdx==3}}">
<block wx:if="{{localtown_shipping_fare_arr.total_yl_shipping_fare>0}}">
<view class="cell">
<view style="line-height: 1;">
同城配送费
<view wx:if="{{localtown_shipping_fare_arr.shipping_fare>0}}" class="fsz-22 text-gray mt5">已减{{localtown_shipping_fare_arr.shipping_fare}}元</view>
</view>
<view>
<text class="localtownfare" wx:if="{{localtown_shipping_fare_arr.shipping_fare>0}}">¥{{localtown_shipping_fare_arr.total_yl_shipping_fare}}</text>
+ ¥ {{localtown_shipping_fare_arr.total_shipping_fare}}
</view>
</view>
</block>
<view class="cell" wx:if="{{localtown_makeup_delivery_money>0}}">
<span>加价配送费</span>
<em>+ ¥ {{localtown_makeup_delivery_money}}</em>
</view>
<view class="cell" wx:if="{{pickingup_fare>0}}">
<span>{{localtown_modifypickingname}}</span>
<em>+ ¥ {{pickingup_fare}}</em>
</view>
</block>
<view class="cell" wx:if="{{tabIdx!=0}}">
<block wx:if="{{tabIdx==1&&is_man_delivery_tuanz_fare>0}}">
<span>满{{man_free_tuanzshipping}}免{{groupInfo.placeorder_tuan_name}}</span>
<em>- ¥ {{fare_man_delivery_tuanz_fare_money}}</em>
</block>
<block wx:if="{{tabIdx==2&&is_man_shipping_fare>0&&buy_type!='pintuan'}}">
<span>满{{man_free_shipping}}免{{groupInfo.placeorder_trans_name}}</span>
<em>- ¥ {{fare_man_shipping_fare_money}}</em>
</block>
</view>
<view class="cell" wx:if="{{reduce_money&&is_open_fullreduction}}">
<span>满减</span>
<em>- ¥ {{reduce_money}}</em>
</view>
<!-- 预售优惠暂时关闭 -->
<block wx:if="{{!presale_info}}">
<view class="cell" wx:if='{{seller_goodss[sgvKey].show_voucher==1}}' bindtap='show_voucher' data-seller_id="{{seller_goodss[sgvKey].store_info.s_id}}">
<view>
<span>优惠券</span>
<span class="cell-desc" wx:if="{{sel_chose_vouche.limit_money>0}}">满{{sel_chose_vouche.limit_money}}元优惠{{sel_chose_vouche.credit}}元</span>
<span class="cell-desc" wx:else="{{sel_chose_vouche.limit_money<=0}}">优惠{{sel_chose_vouche.credit}}元</span>
</view>
<view>
<em>- ¥ {{sel_chose_vouche.can_vouche_amount}}</em>
<image class='icon-right' src='../../images/rightArrowImg.png'></image>
</view>
</view>
<view class="cell" wx:if="{{ssvoucher_list.length&&seller_goodss[sgvKey].show_voucher==0}}" bindtap='show_voucher' data-seller_id="{{seller_goodss[sgvKey].store_info.s_id}}">
<view>
<span>选择优惠券</span>
</view>
<view>
<image class='icon-right' src='../../images/rightArrowImg.png'></image>
</view>
</view>
<view class="cell" wx:if="{{open_score_buy_score==1}}">
<span>
当前积分{{score}},本次<block wx:if="{{bue_use_score>0}}">可用{{bue_use_score}}积分抵扣{{score_for_money}}元</block><block wx:else>不可用积分支付</block>
</span>
<view><switch checked='{{use_score==1}}' bindchange="scoreChange" disabled="{{bue_use_score<=0}}" /></view>
</view>
</block>
</view>
<!-- 预售信息 -->
<view class="act-content p10" style="box-sizing: border-box;" wx:if="{{buy_type=='presale'&&presale_info}}">
<block wx:if="{{presale_info.presale_type==1}}">
<view class="fsz-24 i-flex i-flex-spb">
<view>{{tabList[tabIdx].name}}</view>
<view>
<block wx:if="{{presale_info.presale_sendorder_type==0}}">{{presale_info.presale_sendorder_datetime}}开始{{presalePickup[tabIdx]}}</block>
<block wx:else>{{presale_info.presale_sendorder_afterday}}日内开始{{presalePickup[tabIdx]}}</block>
</view>
</view>
<view class="mt10 i-flex i-flex-spb">
<view>
<view>同意支付定金 <text class="iconfont icon-shuoming text-gray fsz-28" bindtap="hanlePresaleModal"></text></view>
<view class="fsz-22 text-gray">预售商品,定金不退哦</view>
</view>
<view><switch checked='{{isAgreePresale}}' bindchange="agreePresaleChange" /></view>
</view>
</block>
<block wx:else>
<view class="red">预售价¥{{presale_info.goods_price}},付定金后再减¥{{presale_info.totDeduction}},尾款需付金额¥{{presale_info.balance}}(若有优惠,优惠将在尾款时使用)</view>
<view class="presale-item red i-flex i-flex-spb">
<view class="presale-item-circle">定金</view>
<view>¥{{presale_info.totdingMoney}}</view>
</view>
<view class="presale-item i-flex i-flex-spb">
<view class="presale-item-circle">尾款</view>
<view>¥{{presale_info.balance}}</view>
</view>
<view class="mt10 fsz-24 text-gray">{{presale_info.balance_pay_begintime}} - {{presale_info.balance_pay_endtime}} 开始支付尾款</view>
<view class="mt10 fsz-24 i-flex i-flex-spb">
<view>{{tabList[tabIdx].name}}</view>
<view>
<block wx:if="{{presale_info.presale_sendorder_type==0}}">尾款支付成功后{{presale_info.presale_sendorder_datetime}}开始{{presalePickup[tabIdx]}}</block>
<block wx:else>尾款支付成功后{{presale_info.presale_sendorder_afterday}}日内开始{{presalePickup[tabIdx]}}</block>
</view>
</view>
<view class="mt10 i-flex i-flex-spb">
<view>
<view>同意支付定金 <text class="iconfont icon-shuoming text-gray fsz-28" bindtap="hanlePresaleModal"></text></view>
<view class="fsz-22 text-gray">预售商品,定金不退哦</view>
</view>
<view><switch checked='{{isAgreePresale}}' bindchange="agreePresaleChange" /></view>
</view>
</block>
</view>
<block wx:if="{{buy_type=='integral'}}">
<!-- 积分商品 -->
<view class="act-content" wx:if="{{total_free>0}}">
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_wxpays">
<view class="oc-payment-item {{ck_yupay==0?'oc-payment-selected':''}}" style="{{ck_yupay==0?'color:'+skin.color:''}}">
<text class="iconfont icon-weixinzhifu oc-payment-icon" style="color:#00c800;"></text>
<view class="oc-payment-method">微信支付</view>
<view class="oc-payment-recommend" style="color:{{skin.color}};border-color:{{skin.color}}">推荐</view>
</view>
</view>
<block wx:if="{{is_yue_open==1}}">
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_yupays" wx:if="{{can_yupay}}">
<view class="oc-payment-item {{ck_yupay==1?'oc-payment-selected':''}}" style="{{ck_yupay==1?'color:'+skin.color:''}}">
<text class="iconfont icon-balance oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">余额支付(余额:{{yu_money}}</view>
</view>
</view>
<view class="oc-payment" wx:else>
<view class="oc-payment-item">
<text class="iconfont icon-balance oc-payment-icon text-gray"></text>
<view class="oc-payment-method">余额支付(余额:{{yu_money}}</view>
</view>
</view>
</block>
</view>
</block>
<block wx:else>
<!-- 普通商品 -->
<view class="act-content">
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_wxpays">
<view class="oc-payment-item {{ck_yupay==0?'oc-payment-selected':''}}" style="{{ck_yupay==0?'color:'+skin.color:''}}">
<text class="iconfont icon-weixinzhifu oc-payment-icon" style="color:#00c800;"></text>
<view class="oc-payment-method">微信支付</view>
<view class="oc-payment-recommend" style="color:{{skin.color}};border-color:{{skin.color}}">推荐</view>
</view>
</view>
<block wx:if="{{is_yue_open==1}}">
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_yupays" wx:if="{{can_yupay}}">
<view class="oc-payment-item {{ck_yupay==1?'oc-payment-selected':''}}" style="{{ck_yupay==1?'color:'+skin.color:''}}">
<text class="iconfont icon-balance oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">余额支付(余额:{{yu_money}}</view>
</view>
</view>
<view class="oc-payment" wx:else>
<view class="oc-payment-item">
<text class="iconfont icon-balance oc-payment-icon text-gray"></text>
<view class="oc-payment-method">余额支付(余额:{{yu_money}}</view>
</view>
</view>
</block>
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_cash" wx:if="{{cashondelivery_data.isopen_cashondelivery==1&&tabIdx==0&&cashondelivery_data.isopen_cashondelivery_ziti==1}}">
<view class="oc-payment-item {{ck_yupay==2?'oc-payment-selected':''}}" style="{{ck_yupay==2?'color:'+skin.color:''}}">
<text class="iconfont icon-huodaofukuan oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">货到付款</view>
</view>
</view>
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_cash" wx:if="{{cashondelivery_data.isopen_cashondelivery==1&&tabIdx==1&&cashondelivery_data.isopen_cashondelivery_communityhead==1}}">
<view class="oc-payment-item {{ck_yupay==2?'oc-payment-selected':''}}" style="{{ck_yupay==2?'color:'+skin.color:''}}">
<text class="iconfont icon-huodaofukuan oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">货到付款</view>
</view>
</view>
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_cash" wx:if="{{cashondelivery_data.isopen_cashondelivery==1&&tabIdx==2&&cashondelivery_data.isopen_cashondelivery_express==1}}">
<view class="oc-payment-item {{ck_yupay==2?'oc-payment-selected':''}}" style="{{ck_yupay==2?'color:'+skin.color:''}}">
<text class="iconfont icon-huodaofukuan oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">货到付款</view>
</view>
</view>
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_cash" wx:if="{{cashondelivery_data.isopen_cashondelivery==1&&tabIdx==3&&cashondelivery_data.isopen_cashondelivery_localtown==1}}">
<view class="oc-payment-item {{ck_yupay==2?'oc-payment-selected':''}}" style="{{ck_yupay==2?'color:'+skin.color:''}}">
<text class="iconfont icon-huodaofukuan oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">货到付款</view>
</view>
</view>
<view class="oc-payment" avalonctrl="oc_payment" bindtap="ck_cash" wx:if="{{cashondelivery_data.isopen_cashondelivery==1&&tabIdx==4&&cashondelivery_data.isopen_cashondelivery_hexiao==1}}">
<view class="oc-payment-item {{ck_yupay==2?'oc-payment-selected':''}}" style="{{ck_yupay==2?'color:'+skin.color:''}}">
<text class="iconfont icon-huodaofukuan oc-payment-icon" style="color:#ff5777;"></text>
<view class="oc-payment-method">货到付款</view>
</view>
</view>
</view>
</block>
<!-- 自定义表单 -->
<view wx:if="{{allform&&allform.is_open_orderform}}" class="u-m-t-20 rounded u-m-l-20 u-m-r-20 u-p-20 bg-f">
<s-form id="sForm" formData="{{allform}}" bind:success="goOrderfrom"></s-form>
</view>
<i-fixed-bottom>
<view class="fixed-content">
<view class="fixed-left">
<!-- 预售显示定义 -->
<block wx:if="{{buy_type=='presale'&&presale_info.presale_type==0}}">
<view class="h1">
定金:<span>¥{{presale_info.totdingMoney}}</span>
</view>
<view class="h2">
<em>总额:¥{{presale_info.totdingMoney}}</em>
<em wx:if="{{disAmount>0}}">
{{presale_info.presale_type==0?'尾款':''}}总优惠:¥{{disAmount}} <text class="iconfont icon-shuoming text-gray fsz-28" bindtap="showPresaleAmoutDesc"></text></em>
</view>
</block>
<block wx:else>
<view class="h1" wx:if="{{buy_type=='integral'}}">
实付:
<span>
<block wx:if="{{total_free>0}}">¥{{total_free}} + </block>{{total_integral}}积分
</span>
</view>
<view class="h1" wx:else>
合计:<span>¥{{tot_price}}</span>
</view>
<view class="h2" wx:if="{{buy_type!='integral'}}">
<em>总额:¥{{total_all}}</em>
<em wx:if="{{disAmount>0}}">总优惠:¥{{disAmount}}</em>
</view>
</block>
</view>
<view wx:if="{{btnDisable}}" class="fixed-bar-btn bgDisabled">{{btnText?btnText:"立即支付"}}</view>
<i-button wx:else bind:click="preOrderConfirm" iClass="fixed-bar-btn" loading="{{btnLoading}}">
<view wx:if="{{buy_type=='integral'}}">立即兑换</view>
<view wx:else>立即支付</view>
</i-button>
</view>
</i-fixed-bottom>
</view>
</i-auth>
<i-modal bind:cancel="closeConfirmModal" iClass="confirm-modal-content" visible="{{showConfirmModal}}">
<view class="confirm-order-modal">
<block wx:if="{{tabIdx==0}}">
<view class="title">此商品需要您{{tabList[tabIdx].name}},请确认提货信息</view>
<view class="sub-title">
<image src="../../images/icon-give.png"></image>
<text wx:if="{{buy_type=='presale'&&presale_info}}">
<block wx:if="{{presale_info.presale_sendorder_type==0}}">{{presale_info.presale_type==0?'尾款支付成功后':''}}{{presale_info.presale_sendorder_datetime}}开始{{presalePickup[tabIdx]}}</block>
<block wx:else>{{presale_info.presale_type==0?'尾款支付成功后':''}}{{presale_info.presale_sendorder_afterday}}日内开始{{presalePickup[tabIdx]}}</block>
</text>
<block wx:else>
<text wx:if="{{pick_up_type == 3}}">预计{{pick_up_time}}可自提</text>
<text wx:else>预计{{pick_up_time}}({{pick_up_weekday}})可自提</text>
</block>
</view>
</block>
<block wx:elif="{{tabIdx==1}}">
<view class="title">需要{{groupInfo.owner_name}}配送,请确认收货信息</view>
<view class="sub-title">
<image src="../../images/icon-give.png"></image>
<text wx:if="{{buy_type=='presale'&&presale_info}}">
<block wx:if="{{presale_info.presale_sendorder_type==0}}">{{presale_info.presale_type==0?'尾款支付成功后':''}}{{presale_info.presale_sendorder_datetime}}开始{{presalePickup[tabIdx]}}</block>
<block wx:else>{{presale_info.presale_type==0?'尾款支付成功后':''}}{{presale_info.presale_sendorder_afterday}}日内开始{{presalePickup[tabIdx]}}</block>
</text>
<block wx:else>
<text wx:if="{{pick_up_type == 3}}">预计{{pick_up_time}}{{groupInfo.owner_name}}配送</text>
<text wx:else>预计{{pick_up_time}}({{pick_up_weekday}}){{groupInfo.owner_name}}配送</text>
</block>
</view>
</block>
<view class="title" wx:elif="{{tabIdx==2}}">需要快递配送,请确认收货信息</view>
<view class="title" wx:elif="{{tabIdx==3}}">需要同城配送,请确认收货信息</view>
<view class="title" wx:elif="{{tabIdx==4}}">此商品需要您到店核销,请确认预留信息</view>
<view class="order-content">
<block wx:if="{{buy_type!='presale'&&presale_info.presale_type==0}}">
<view class="msg-group">
<span>商品总额:</span>
<em>+¥{{total_goods_price}}</em>
</view>
<view class="msg-group" wx:if="{{tabIdx==1&&delivery_tuanz_money>0}}">
<span>{{groupInfo.placeorder_tuan_name}}</span>
<em>+¥{{delivery_tuanz_money?delivery_tuanz_money:0}}</em>
</view>
<view class="msg-group" wx:if="{{tabIdx==2&&trans_free_toal>0}}">
<span>{{groupInfo.placeorder_trans_name}}</span>
<em>+¥{{trans_free_toal?trans_free_toal:0}}</em>
</view>
<block wx:if="{{tabIdx==3}}">
<view class="msg-group" wx:if="{{localtown_shipping_fare_arr.total_yl_shipping_fare>0}}">
<span>同城配送费:</span>
<em>+¥{{localtown_shipping_fare_arr.total_yl_shipping_fare}}</em>
</view>
<view class="msg-group" wx:if="{{localtown_shipping_fare_arr.shipping_fare>0}}">
<span>免同城配送费:</span>
<em>- ¥ {{localtown_shipping_fare_arr.shipping_fare}}</em>
</view>
<view class="msg-group" wx:if="{{localtown_makeup_delivery_money>0}}">
<span>加价配送费:</span>
<em>+ ¥ {{localtown_makeup_delivery_money}}</em>
</view>
<view class="msg-group" wx:if="{{pickingup_fare>0}}">
<span>{{localtown_modifypickingname}}</span>
<em>+¥{{pickingup_fare}}</em>
</view>
</block>
</block>
<view class="msg-group" wx:if="{{disAmount>0}}">
<span><block wx:if="{{buy_type=='presale'&&presale_info.presale_type==0}}">尾款</block>优惠金额:</span>
<em>-¥{{disAmount}}</em>
</view>
<!-- 核销 -->
<block wx:if="{{tabIdx==4}}">
<view class="msg-group">
<span>提 货 人:</span>
<em>{{tabAddress[tabIdx].name}}</em>
</view>
<view class="msg-group">
<span>手机号码:</span>
<em>{{tabAddress[tabIdx].mobile}}</em>
</view>
</block>
<block wx:else>
<view class="msg-group">
<span>{{groupInfo.owner_name}}信息:</span>
<em>{{disUserName}} <text class='distance' wx:if="{{current_distance&&tabIdx==1}}">(距您{{current_distance_str}})</text></em>
</view>
<view class="msg-group">
<span>{{(tabIdx==0)?"提 货 人":"收 货 人"}}</span>
<em>{{tabAddress[tabIdx].name}} {{tabAddress[tabIdx].mobile}}</em>
</view>
</block>
<view class="msg-group" wx:if="{{tabIdx==0}}">
<block wx:if="{{index_hide_headdetail_address==0}}">
<span>提货地点:</span>
<em>{{pickUpAddress}}</em>
</block>
</view>
<view class="msg-group" wx:elif="{{tabIdx==1}}">
<span>收货地址:</span>
<em>{{tabAddress[tabIdx].receiverAddress}}</em>
</view>
<view class="msg-group" wx:elif="{{tabIdx!=4}}">
<span style="align-self: start;">收货地址:</span>
<em>{{tabAddress[tabIdx].region[0]}}{{tabAddress[tabIdx].region[1]}}{{tabAddress[tabIdx].region[2]}}{{tabAddress[tabIdx].receiverAddress}}</em>
</view>
<view class="total" wx:if="{{buy_type=='presale'&&presale_info.presale_type==0}}">
合计{{ck_yupay==2?'到付':''}}:<em>¥{{presale_info.totdingMoney}}</em>
</view>
<view class="total" wx:else>
合计{{ck_yupay==2?'到付':''}}:<em>¥{{tot_price}}</em>
</view>
</view>
<view class="button-group">
<i-button bind:click="closeConfirmModal" class="btn-content" iClass="btn left-btn">取消</i-button>
<view wx:if="{{btnDisable}}" class="btn-content btn right-btn bgDisabled">{{btnText?btnText:"确认支付"}}</view>
<i-button wx:else bind:click="preSubscript" class="btn-content" iClass="btn right-btn" loading="{{payBtnLoading}}" styleStr="background:{{skin.color}}">
<view style="background:{{skin.color}}">确认支付</view>
</i-button>
</view>
</view>
</i-modal>
<i-dialog bind:cancel="delete" bind:confirm="continuePay" confirmText="确认" text="赠品已送完,确认支付?" visible="{{visible}}"></i-dialog>
<!-- 优惠券选择 -->
<i-modal bind:cancel="closeCouponModal" iClass="confirm-modal-content" visible="{{!hide_quan}}">
<view class="confirm-coupon-modal">
<view class='title'>请选择优惠券</view>
<scroll-view class='list' scroll-y>
<view class='item' bindtap='chose_voucher_id' data-voucher_id="0" data-seller_id="{{voucher_serller_id}}">
<view>不使用</view>
<image class='no-tag-img' wx:if="{{seller_chose_id==0}}" src='../../images/checkbox-checked.png'></image>
<image class='no-tag-img' wx:else src='../../images/checkbox-disabled.png'></image>
</view>
<view class="coupon" wx:for="{{ssvoucher_list}}" wx:key="id" bindtap='chose_voucher_id' data-voucher_id="{{item.id}}" data-seller_id="{{voucher_serller_id}}">
<view class='header'>
<view class='price'>
<view class='reduce-price'>
{{item.credit}}<text>元</text>
</view>
<view class='reduce-desc'>{{item.limit_money >0.01 ?'满'+item.limit_money+'元可用':'不限制'}}</view>
</view>
<view class='info'>
<view class='reduce-title'>{{item.voucher_title}}<text class='reduce-type' wx:if="{{item.cate_name}}">{{item.cate_name}}</text></view>
</view>
<view class='status'>
<image class='tag-img' wx:if="{{item.id == seller_chose_id}}" src='../../images/checkbox-checked.png'></image>
<image class='tag-img' wx:else src='../../images/checkbox-disabled.png'></image>
</view>
</view>
<view class='footer'>有效期:{{item.begin_time}}~{{item.end_time}}</view>
</view>
</scroll-view>
</view>
</i-modal>
<!-- 配送时间 -->
<i-modal scrollUp="{{true}}" visible="{{showAlertTime}}" bind:cancel="handleTimeModal">
<view class="time-alert">
<view class="alertTtitle text-center fsz-32 border-bottom">
选择预计送达时间段
<text class="iconfont icon-guanbi alertClose" bindtap="handleTimeModal"></text>
</view>
<view class="alertTimebox i-flex i-flex-spb">
<view class="left_box">
<block wx:if="{{localtown_expected_delivery.localtown_delivery_space_time_list}}" wx:for="{{localtown_expected_delivery.localtown_delivery_space_time_list}}" wx:key="index">
<view class="{{index==localtown_delivery_space_month?'active':''}}" bindtap="selectAlertDate" data-idx="{{index}}">
{{index}}
</view>
</block>
</view>
<view class="right_box">
<scroll-view scroll-y style="height:660rpx;">
<view class="{{curAlertTime==-1?'active':''}}" wx:if="{{localtown_expected_delivery.localtown_delivery_space_month==localtown_delivery_space_month}}" bindtap="selectAlertTime" data-idx="-1">立即送出({{localtown_dispatchtime}})</view>
<block wx:for="{{localtown_expected_delivery.localtown_delivery_space_time_list[localtown_delivery_space_month]}}" wx:key="index">
<view class="{{(index)==curAlertTime?'active':''}}" bindtap="selectAlertTime" data-idx="{{(index)}}">
{{item.time}}
</view>
</block>
</scroll-view>
</view>
</view>
<view class="alertTimebtn">
<view class="alertTimebtn-item weight" style="background:{{skin.color}}" bindtap="handleTimeModal">确定</view>
</view>
</view>
</i-modal>
<!-- 预售说明 -->
<i-modal bind:cancel="hanlePresaleModal" iClass="confirm-modal-content" visible="{{showPresaleDesc}}">
<view class="confirm-coupon-modal" style="background:#fff;">
<view class='title'>预售协议</view>
<scroll-view class='list' scroll-y style="min-height: 300rpx;padding-top:30rpx;">
<text>{{presale_info.presale_agreement}}</text>
</scroll-view>
</view>
</i-modal>

View File

@ -0,0 +1,966 @@
page {
background: #f6f6f6;
}
.address-content {
padding: 22rpx 20rpx;
background: #fff;
}
.address-content .receiver {
display: flex;
align-items: center;
position: relative;
color: #444;
font-size: 28rpx;
margin-bottom: 20rpx;
font-weight: 500;
}
.address-content .receiver text {
width: 160rpx;
color: #666;
}
.address-content .receiver input,
.sel-btn {
border-radius: 4rpx;
flex: 1;
height: 52rpx;
line-height: 52rpx;
padding: 5rpx 10rpx;
box-sizing: border-box;
font-weight: bold;
background-color: #f7f7f7;
}
.sel-btn {
color: #999;
}
.address-content .receiver input:nth-child(3) {
width: 280rpx;
}
.address-content p {
color: #999;
font-size: 22rpx;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.address-line {
margin-bottom: 20rpx;
height: 4rpx;
background: #fff;
}
.address-line image {
width: 750rpx;
height: 4rpx;
display: block;
}
.card-content {
margin: 0 auto 20rpx;
}
.card-container {
padding-bottom: 20rpx;
}
.card-header {
font-size: 24rpx;
color: #aaa;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 30rpx;
height: 84rpx;
border-bottom: 1rpx solid #efefef;
}
.cart-item {
display: flex;
flex-direction: column;
}
.sku-item {
padding: 26rpx;
border-bottom: 1rpx solid #efefef;
display: flex;
align-items: flex-start;
}
.sku-item .sku-img {
width: 120rpx;
height: 120rpx;
margin-right: 20rpx;
}
.sku-item .sku-msg {
width: 510rpx;
}
.sku-item .sku-msg .sku-title {
font-size: 26rpx;
color: #444;
line-height: 32rpx;
margin-bottom: 10rpx;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sku-item .sku-msg .sku-spec {
font-size: 22rpx;
line-height: 22rpx;
color: #aaa;
margin-bottom: 12rpx;
}
.sku-item .sku-msg .original-price {
font-size: 22rpx;
line-height: 22rpx;
color: #aaa;
margin-bottom: 10rpx;
}
.sku-item .sku-msg .sku-price {
font-size: 22rpx;
line-height: 26rpx;
color: #444;
margin-top: 10rpx;
}
.sku-item .sku-msg .sku-price span {
font-family: DIN;
color: #ff758c;
font-size: 26rpx;
font-weight: 500;
}
.sku-item-gift {
width: 650rpx;
height: 140rpx;
background: #f9f9f9;
margin: 28rpx auto 30rpx;
padding: 20rpx;
box-sizing: border-box;
display: flex;
order: 99;
}
.sku-item-gift .sku-img {
width: 100rpx;
height: 100rpx;
margin-right: 20rpx;
}
.sku-item-gift .sku-msg {
width: 510rpx;
}
.sku-item-gift .sku-msg .sku-title {
font-size: 26rpx;
color: #444;
line-height: 30rpx;
margin-bottom: 10rpx;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sku-item-gift .sku-msg .sku-spec {
font-size: 22rpx;
line-height: 22rpx;
color: #aaa;
margin-bottom: 14rpx;
}
.sku-item-gift .sku-msg .tag {
border: 1rpx solid #4facfe;
padding: 0 12rpx;
font-size: 20rpx;
border-radius: 16rpx;
color: #4facfe;
height: 24rpx;
line-height: 24rpx;
position: absolute;
}
.sku-item-gift .sku-msg .tag.tag-disabled {
border-color: #a3a3a3;
color: #a3a3a3;
}
.fixed-content {
display: flex;
padding-left: 20rpx;
justify-content: space-between;
align-items: center;
height: 96rpx;
}
.fixed-content .fixed-left {
display: flex;
justify-content: center;
flex-direction: column;
}
.fixed-content .fixed-left .h1 {
font-size: 28rpx;
line-height: 28rpx;
color: #444;
margin-bottom: 12rpx;
}
.fixed-content .fixed-left .h1 span {
color: #ff758c;
font-weight: bold;
}
.fixed-content .fixed-left .h2 {
font-size: 22rpx;
line-height: 22rpx;
color: #666;
}
.fixed-content .fixed-left .h2 em {
margin-right: 20rpx;
}
.fixed-content .fixed-bar-btn {
width: 260rpx;
height: 96rpx;
text-align: center;
line-height: 96rpx;
color: #fff;
font-size: 30rpx;
background: linear-gradient(100deg, #ff758c 0%, #ff7eb3 100%);
padding: 0;
margin: 0;
font-weight: bold;
border-radius: 48rpx 0rpx 0rpx 48rpx;
}
.confirm-order-modal {
border-radius: 30rpx 30rpx 0 0;
background: #fff;
padding: 52rpx 30rpx 0;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
.confirm-order-modal .title {
font-size: 32rpx;
color: #444;
line-height: 32rpx;
margin-bottom: 40rpx;
font-weight: 500;
}
.confirm-order-modal .sub-title {
display: flex;
justify-content: center;
align-items: center;
color: #4facfe;
line-height: 26rpx;
font-size: 26rpx;
margin-bottom: 48rpx;
font-weight: 500;
}
.confirm-order-modal .sub-title image {
width: 28rpx;
height: 28rpx;
margin-right: 14rpx;
}
.confirm-order-modal .order-content {
width: 690rpx;
border-radius: 20rpx;
padding-top: 30rpx;
background: #f6f6f6;
margin-bottom: 136rpx;
box-shadow: inset 0 0 10rpx rgba(0,0,0,0.1);
}
.confirm-order-modal .order-content .msg-group {
width: 690rpx;
padding: 0 30rpx;
margin-bottom: 20rpx;
display: flex;
font-size: 24rpx;
line-height: 24rpx;
color: #444;
box-sizing: border-box;
align-items: center;
}
.confirm-order-modal .order-content .msg-group span {
font-weight: bold;
white-space: nowrap;
}
.confirm-order-modal .order-content .msg-group em {
font-weight: 400;
flex: 1;
line-height: 1.4;
}
.confirm-order-modal .order-content .total {
line-height: 86rpx;
padding: 0 30rpx;
text-align: right;
color: #444;
font-size: 30rpx;
border-top: 1rpx solid #e2e2e2;
}
.confirm-order-modal .order-content .total em {
color: #ff758c;
}
.confirm-order-modal .button-group {
display: flex;
width: 100%;
border-top: 1rpx solid rgba(0, 0, 0, 0.1);
position: absolute;
left: 0;
bottom: 0;
padding-bottom: calc(env(safe-area-inset-bottom) - 30rpx);
}
.confirm-order-modal .button-group .btn-content {
flex: 1;
}
.confirm-order-modal .button-group .btn {
flex: 1;
margin: 0;
padding: 0;
font-size: 30rpx;
line-height: 88rpx;
text-align: center;
border-radius: 0;
font-weight: bold;
}
.confirm-order-modal .button-group .left-btn {
color: #666;
background: #fff;
}
.confirm-order-modal .button-group .right-btn {
color: #fff;
background: linear-gradient(100deg, #ff758c 0%, #ff7eb3 100%);
border-radius: 20px 0px 0px 20px;
}
.tab-nav {
height: 70rpx;
display: flex;
border-bottom: 4rpx solid #008dd3;
transition: all 0.3s linear;
margin-bottom: 20rpx;
}
.tab-nav .tab-nav-item {
color: #6c6c6c;
font-size: 26rpx;
font-weight: bold;
position: relative;
z-index: 1;
width: 190rpx;
height: 70rpx;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
max-width: 190rpx;
}
.tab-nav-one .tab-nav-item {
flex: initial;
width: 30%;
}
.tab-nav .tab-nav-item span {
position: relative;
}
.tab-nav .tab-nav-item.active {
background-color: #008dd3;
color: #fff;
z-index: 2;
border-radius: 8px 8px 0 0;
}
.receiver.align-start {
align-items: flex-start;
}
textarea.receive-name {
border-radius: 4rpx;
flex: 1;
line-height: 1.6;
box-sizing: border-box;
font-weight: bold;
background-color: #f7f7f7;
position: relative;
z-index: 1;
padding: 10rpx;
height: 124rpx;
}
picker.receive-name {
border-radius: 4rpx;
flex: 1;
line-height: 52rpx;
box-sizing: border-box;
font-weight: bold;
background-color: #f7f7f7;
position: relative;
z-index: 1;
height: 52rpx;
}
.receive-name .picker {
padding: 5rpx 10rpx;
color: #999;
}
.receive-icon {
width: 40rpx;
height: 40rpx;
position: absolute;
right: 10rpx;
bottom: 6rpx;
z-index: 20;
}
.act-content {
width: 710rpx;
margin: 0 auto 20rpx;
border-radius: 20rpx;
background: #fff;
box-shadow: 0 0 40rpx 0 rgba(0, 0, 0, 0.05);
display: flex;
flex-direction: column;
overflow: hidden;
}
.cell {
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid #efefef;
line-height: 78rpx;
font-size: 24rpx;
color: #444;
padding: 0 30rpx;
}
.icon-right {
position: absolute;
right: 10rpx;
top: 50%;
width: 12rpx;
height: 22rpx;
margin-top: -10rpx;
}
.cell-desc {
margin-left: 8rpx;
color: #666;
font-size: 22rpx;
}
.confirm-coupon-modal {
background: #f6f6f6;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
padding-bottom: 30rpx;
}
.confirm-coupon-modal .title {
width: 100%;
border-bottom: 1rpx solid #efefef;
line-height: 2.5;
font-size: 32rpx;
text-align: center;
background: #fff;
}
.confirm-coupon-modal .list {
width: 100%;
max-height: 700rpx;
overflow-y: auto;
padding: 0 20rpx;
box-sizing: border-box;
}
.confirm-coupon-modal .item {
display: flex;
box-sizing: border-box;
padding: 20rpx 10rpx 20rpx 20rpx;
justify-content: space-between;
align-items: center;
margin: 20rpx 0;
background: #fff;
border-radius: 10rpx;
box-shadow: 0 0 6rpx #ccc;
}
.tag-img {
position: absolute;
width: 48rpx;
height: 48rpx;
right: 10rpx;
top: 15rpx;
}
.no-tag-img {
width: 48rpx;
height: 48rpx;
}
.use-wx-address {
text-align: center;
margin-top: 20rpx;
margin-bottom: 20rpx;
color: #4facfe;
}
/* 订单留言 */
.cart-footer {
padding: 26rpx;
}
.order-message {
position: relative;
background-color: #f7f7f7;
padding: 5rpx 10rpx;
border-radius: 5rpx;
z-index: 0;
}
.tuan-pos {
height: 124rpx;
line-height: 1.6;
}
.placeOrderBox {
padding-bottom: 100rpx;
}
.oc-payment {
position: relative;
box-sizing: border-box;
width: 100%;
padding: 0 10px;
background-color: #fff;
}
.oc-payment-item {
position: relative;
width: 100%;
line-height: 70rpx;
font-size: 0;
display: flex;
align-items: center;
}
.oc-payment-method {
position: relative;
display: inline-block;
margin-left: 10rpx;
font-size: 13px;
color: #333;
}
.oc-payment-recommend {
position: relative;
display: inline-block;
width: 30px;
height: 17px;
margin-left: 10px;
line-height: 17px;
text-align: center;
font-size: 11px;
color: #ff758c;
border-radius: 2px;
border: 1px solid #ff758c;
}
.oc-payment-selected:after {
font-family: iconfont!important;
font-size: 28rpx;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #ee2e3a;
content: "\e650";
position: absolute;
top: 0;
right: 0;
line-height: 70rpx;
}
.oc-payment-icon {
font-size: 36rpx;
}
/* 新优惠券20190314 */
.coupon {
background-color: #fefefe;
position: relative;
padding: 0 20rpx;
border-radius: 6rpx;
margin-top: 24rpx;
box-shadow: 0 0 6rpx #ccc;
}
.coupon:before,
.coupon:after {
content: '';
position: absolute;
width: 20rpx;
height: 40rpx;
background: #f6f6f6;
top: 70rpx;
z-index: 1;
}
.coupon:before {
border-radius: 0 40rpx 40rpx 0;
left: 0;
}
.coupon:after {
border-radius: 40rpx 0 0 40rpx;
right: 0;
}
.coupon .header {
display: flex;
padding: 15rpx 0;
border-bottom: 2rpx dashed #dbdbdb;
height: 140rpx;
}
.coupon .footer {
color: #747474;
font-size: 24rpx;
padding: 22rpx 0 20rpx 35rpx;
}
.coupon .price {
color: #333;
width: 175rpx;
text-align: center;
border-right: 2rpx dashed #dbdbdb;
}
.coupon .price .reduce-price {
color: #000;
font-size: 38rpx;
font-weight: bold;
padding-top: 30rpx;
}
.coupon .price .reduce-price text {
font-size: 24rpx;
}
.coupon .price .reduce-desc {
font-size: 20rpx;
margin-top: 10rpx;
}
.coupon .info {
padding-left: 30rpx;
flex: 1;
}
.coupon .info .reduce-title {
color: #000;
font-size: 28rpx;
font-weight: bold;
padding-top: 20rpx;
}
.coupon .info .reduce-type {
color: #fff;
font-weight: normal;
font-size: 20rpx;
background: #4facfe;
padding: 2rpx 8rpx;
border-radius: 4rpx;
margin-left: 10rpx;
}
.coupon .status {
width: 130rpx;
text-align: center;
}
.coupon .status image {
width: 48rpx;
height: 48rpx;
}
.coupon.used,
.coupon.expired {
background: #fafafa;
}
.coupon.used .price,
.coupon.expired .price {
color: #949494;
}
.coupon.used .reduce-price,
.coupon.expired .reduce-price,
.coupon.used .reduce-title,
.coupon.expired .reduce-title {
color: #7a7a7a;
}
.coupon.used .reduce-type,
.coupon.expired .reduce-type {
background: #00f2fe;
}
.coupon.used .footer,
.coupon.expired .footer {
color: #b6b6b6;
}
.distance {
color: #4facfe;
}
/*swtich样式-start*/
/*swtich整体大小*/
.wx-switch-input {
width: 82rpx!important;
height: 40rpx!important;
margin: 0!important;
padding: 0!important;
}
.wx-switch-input::before {
width: 80rpx!important;
height: 36rpx!important;
}
.wx-switch-input::after {
width: 38rpx!important;
height: 36rpx!important;
}
.cart-header-left {
color: #008dd3;
}
/* 禁止访问 */
.forbid {
position: relative;
height: 100vh;
color: #999;
z-index: 9999;
background: #fff;
}
.forbid .iconfont {
font-size: 200rpx;
}
.forbid .h1 {
font-size: 32rpx;
margin-top: 30rpx;
font-weight: bold;
}
.forbid .h2 {
font-size: 28rpx;
margin-top: 10rpx;
}
.mp-account {
position: fixed;
left: 20rpx;
right: 20rpx;
bottom: 97rpx;
z-index: 100;
border: 1rpx solid #ccc;
border-radius: 8rpx;
/* overflow: hidden; */
}
.mp-account .iconfont {
position: absolute;
right: -10rpx;
top: -15rpx;
font-size: 35rpx;
z-index: 10;
}
/* 送达时间 */
.alertTtitle {
position: relative;
line-height: 100rpx;
}
.alertClose {
position: absolute;
right: 30rpx;
top: 0;
font-size: 36rpx;
}
.alertTimebox {
background-color: #fbf8fb;
height: 660rpx;
}
.alertTimebox .left_box,
.alertTimebox .right_box {
height: 100%;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
font-size: 28rpx;
}
.alertTimebox .left_box {
color: #919191;
width: 45%;
}
.alertTimebox .left_box view,
.alertTimebox .right_box view {
text-align: center;
line-height: 90rpx;
position: relative;
}
.alertTimebox .right_box view::before {
content: ' ';
width: 80%;
position: absolute;
left: 10%;
bottom: 0;
border: 1rpx dashed #f4f4f4;
}
.alertTimebox .right_box view:last-child::before {
border: none;
}
.alertTimebox .right_box {
color: #222222;
width: 55%;
flex: 1;
background-color: #fff;
text-align: center;
}
.alertTimebox .right_box .active {
position: relative;
color: #ff5344;
}
.alertTimebox .left_box .active {
background-color: #fff;
color: #222222;
}
.alertTimebox .right_box .active::after {
content: ' ';
position: absolute;
top: 50%;
margin-top: -16rpx;
right: 50rpx;
width: 10rpx;
height: 20rpx;
border-color: #ff5344;
border-style: solid;
border-width: 0 3rpx 5rpx 0;
transform: rotate(45deg);
}
.alertTimebtn-item {
line-height: 88rpx;
color: #ffffff;
text-align: center;
font-size: 30rpx;
}
.localtownfare {
color: #999;
text-decoration: line-through;
margin-right: 10rpx;
}
.picktime {
font-size: 22rpx;
}
.presale-item {
padding: 15rpx 50rpx;
}
.presale-item-circle {
position: relative;
padding-left: 25rpx;
}
.presale-item-circle::before {
position: absolute;
content: "";
width: 14rpx;
height: 14rpx;
border-radius: 50%;
background: #cccccc;
top: 50%;
margin-top: -7rpx;
left: 0;
}
.presale-item.red .presale-item-circle::before {
background: #ff5344;
}
.presale-item .presale-item-circle::after {
position: absolute;
content: "";
border-right: 1rpx solid #cccccc;
left: 7rpx;
bottom: 50%;
height: 40rpx;
}
.presale-item.red .presale-item-circle::after {
position: absolute;
content: "";
border-right: 1rpx solid #ff5344;
left: 7rpx;
top: 50%;
height: 30rpx;
}

View File

@ -0,0 +1,447 @@
// pages/order/refund.js
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
xarray: ['点击选择退款理由', '商品有质量问题', '没有收到货', '商品少发漏发发错', '商品与描述不一致', '收到商品时有划痕或破损', '质疑假货', '其他'],
index: 0,
refund_type: 1,
refund_imgs: [],
complaint_mobile: '',
refund_thumb_imgs: [],
complaint_desc: '',
order_id: 0,
order_status_id: -1,
complaint_name: '',
ref_id: 0,
complaint_money: 0,
refund_money: 0,
selArr: [],
refund_score: 0,
can_shipping_fare: 0
},
canRefund: true,
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let { id, order_goods_id, ref_id, delivery } = options;
let that = this;
this.setData({
order_id: id || 0,
order_goods_id: order_goods_id || 0,
ref_id: ref_id || 0,
delivery: delivery || ''
}, ()=> {
that.getData();
})
},
bindPickerChange: function (e) {
this.setData({
index: e.detail.value
})
},
choseImg: function () {
var self = this;
var refund_imgs = this.data.refund_imgs;
if (refund_imgs.length >= 3) {
wx.showToast({
title: '最多三张图片',
icon: 'success',
duration: 1000
})
return false;
}
wx.chooseMedia({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表tempFilePath可以作为img标签的src属性显示图片
const tempFiles = res.tempFiles;
wx.showLoading({
title: '上传中',
})
wx.uploadFile({
url: app.util.url('entry/wxapp/index', {'m':'eaterplanet_ecommerce','controller':'goods.doPageUpload'}), //仅为示例,非真实的接口地址
filePath: tempFiles[0].tempFilePath,
name: 'upfile',
formData: {
'name': tempFiles[0].tempFilePath
},
header: {
'content-type': 'multipart/form-data'
},
success: function (res) {
wx.hideLoading();
var data = JSON.parse(res.data);
var image_thumb = data.image_thumb;
var orign_image = data.image_o;
var new_img = self.data.refund_imgs;
var new_thumb_img = self.data.refund_thumb_imgs;
new_img.push(orign_image);
new_thumb_img.push(image_thumb);
self.setData({
refund_thumb_imgs: new_thumb_img,
refund_imgs: new_img
})
}
})
}
})
},
chose_type: function (event) {
let stype = event.currentTarget.dataset.rel;
this.setData({
refund_type: stype
})
},
cancle_img: function (event) {
let sr = event.currentTarget.dataset.sr;
var j = 0;
var refund_imgs = this.data.refund_imgs;
var refund_thumb_imgs = this.data.refund_thumb_imgs;
var new_refund_imgs = [];
var new_refund_thumb_imgs = [];
for (var i in refund_thumb_imgs) {
if (refund_thumb_imgs[i] == sr) {
console.log('find');
j = i;
} else {
new_refund_thumb_imgs.push(refund_thumb_imgs[i]);
}
}
for (var i in refund_imgs) {
if (i != j) {
new_refund_imgs.push(refund_imgs[i]);
}
}
this.setData({
refund_thumb_imgs: new_refund_thumb_imgs,
refund_imgs: new_refund_imgs
})
console.log(new_refund_thumb_imgs.length);
console.log(new_refund_imgs.length);
},
wenti_input: function (event) {
var content = event.detail.value;
//pinjia_text
this.setData({
complaint_desc: content
})
},
mobile_input: function (event) {
var content = event.detail.value;
this.setData({
complaint_mobile: content
})
},
name_input: function (event) {
var content = event.detail.value;
this.setData({
complaint_name: content
})
},
refund_money_input: function (event) {
var content = parseFloat(event.detail.value);
let refund_money = this.data.refund_money;
let data = {};
if (content > refund_money) {
let tip = `最大退款金额为${refund_money}`;
if(this.data.order_goods.type=='integral') { tip = `最大可退积分为${refund_money}` }
wx.showToast({
title: tip,
icon: 'none',
duration: 1000
})
content = refund_money;
data.refund_money = refund_money;
}
data.complaint_money = content ? content : 0;
this.setData(data)
},
sub_refund: function () {
let that = this;
if (!that.canRefund) return;
console.log(that.canRefund)
let {
index,
xarray,
order_id,
order_goods_id,
refund_type,
refund_imgs,
complaint_desc,
complaint_mobile,
total,
complaint_name,
complaint_money,
// refund_money,
ref_id,
real_refund_quantity
} = this.data;
complaint_money = parseFloat(complaint_money);
if(real_refund_quantity<=0) {
this.errorToast('请选择退款商品');
return false;
}
if (index == 0) {
this.errorToast('请选择问题类型');
return false;
}
var rfund_name = xarray[index];
if (complaint_money < 0) {
this.errorToast('请填写正确退款金额');
return false;
}
if (complaint_money > total) complaint_money = total;
if (complaint_desc == '') {
this.errorToast('请填写正确问题描述');
return false;
}
if (complaint_name == '') {
this.errorToast('请填写正确联系人');
return false;
}
if (complaint_mobile == '') {
this.errorToast('请填写正确手机号');
return false;
}
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\d{8})$/;
if (!myreg.test(complaint_mobile)) {
this.errorToast('请填写正确手机号');
return false;
}
let complaint_shipping_fare = this.data.order_goods.shipping_fare;
that.canRefund = false;
var token = wx.getStorageSync('token');
app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'afterorder.refund_sub',
token,
ref_id,
order_id,
order_goods_id,
complaint_type: refund_type,
complaint_images: refund_imgs,
complaint_desc,
complaint_mobile,
complaint_reason: rfund_name,
complaint_money,
complaint_name,
real_refund_quantity,
complaint_shipping_fare
},
method: 'POST',
dataType: 'json',
success: function (msg) {
wx.hideLoading();
if (msg.data.code == 3) {
wx.showToast({
title: '未登录',
icon: 'loading',
duration: 1000
})
}
else if (msg.data.code == 0) {
wx.showToast({
title: msg.data.msg,
icon: 'success',
duration: 1000
})
return;
} else {
wx.showToast({
title: '申请成功',
icon: 'success',
duration: 3000,
success: function (res) {
wx.redirectTo({
url: "/eaterplanet_ecommerce/pages/order/order?id=" + that.data.order_id + '&delivery='+that.data.delivery
})
}
})
}
},
complete: ()=>{
setTimeout(()=>{
that.canRefund = true;
}, 1500)
}
})
},
errorToast: function(msg) {
wx.showToast({
title: msg,
icon: 'none',
duration: 1000
})
},
/**
* 获取详情 20190711
*/
getData: function () {
const token = wx.getStorageSync('token');
var that = this;
const { order_id, order_goods_id, ref_id } = this.data;
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'afterorder.get_order_money',
token: token,
order_id,
order_goods_id,
ref_id
},
dataType: 'json',
success: function (res) {
if (res.data.code == 1) {
const { order_goods, order_status_id, refund_image, refund_info, shipping_name, shipping_tel, total } = res.data;
let xarray = that.data.xarray;
let ref_name = refund_info.ref_name;
let index = xarray.findIndex((item) => (item == ref_name));
index = (index <= 0) ? 0 : index;
let { ref_description, ref_mobile, complaint_name, ref_money } = refund_info;
//商品数量
let { quantity, has_refund_quantity, has_refund_money, type, total_score } = order_goods;
let selArr = new Array(parseInt(quantity));
has_refund_quantity = parseInt(has_refund_quantity);
for(let i=0; i<selArr.length; i++){
if(i>=has_refund_quantity) {
selArr[i] = { isselect: true, isrefund: false };
} else {
selArr[i] = { isselect: true, isrefund: true };
}
}
let can_refund_money = (total*1 - has_refund_money*1).toFixed(2);
if(type=='integral') can_refund_money = (total_score*1 - has_refund_money*1).toFixed(2);
let real_refund_quantity = parseInt(quantity) - has_refund_quantity;
let can_shipping_fare = real_refund_quantity*order_goods.shipping_fare/parseInt(quantity);
if(order_goods && order_goods.price) {
order_goods.price = (order_goods.price*1).toFixed(2);
}
that.setData({
order_goods,
order_status_id,
refund_image,
refund_info,
shipping_name,
shipping_tel,
total: can_refund_money,
index: index || 0,
complaint_desc: ref_description || '',
complaint_mobile: ref_mobile || shipping_tel,
complaint_name: complaint_name || shipping_name,
complaint_money: ref_money || can_refund_money,
refund_money: ref_money || can_refund_money,
selArr,
real_refund_quantity,
max_can_refund: ref_money || can_refund_money,
can_shipping_fare: can_shipping_fare.toFixed(2)
})
} else if (res.data.code == 3) {
//un login
}
}
})
},
goodsselect: function(e) {
let idx = e.target.dataset.idx;
let { selArr, order_goods, total } = this.data;
let selItem = { isselect: !selArr[idx].isselect, isrefund: selArr[idx].isrefund};
selArr[idx] = selItem;
// 均分计算可退款金额
let totNum = selArr.length || 0;
let num = 0;
let canfunnum = 0;
selArr.forEach(item=>{
if(!item.isrefund) canfunnum += 1;
if(item.isselect&&!item.isrefund) num += 1;
})
let danPrice = total/canfunnum;
let can_refund_money = danPrice*num;
let refund_score = order_goods.one_goods_score*num;
// 均分配送费
let shipping_fare = order_goods.shipping_fare || 0;
let dan_shipping_fare = shipping_fare/totNum;
let can_shipping_fare = dan_shipping_fare*num;
if(can_refund_money>total || totNum==num){
can_refund_money = total*1;
refund_score = order_goods.use_score;
}
if(can_shipping_fare>shipping_fare || totNum==num){
can_shipping_fare = shipping_fare*1;
}
let max_can_refund = can_refund_money.toFixed(2);
can_shipping_fare = can_shipping_fare.toFixed(2);
this.setData({
selArr,
real_refund_quantity: num,
complaint_money: can_refund_money,
refund_money: can_refund_money.toFixed(2),
refund_score,
max_can_refund,
can_shipping_fare
})
}
})

View File

@ -0,0 +1,6 @@
{
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-img": "../../components/img/index"
}
}

View File

@ -0,0 +1,126 @@
<ep-navBar title="售后申请" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view class="wrap">
<view class="goods">
<view class="goods-item">
<view class="goods-item-l">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{order_goods.goods_images}}" width="60"></i-img>
</view>
<view class="goods-item-r">
<view class="name">{{order_goods.name}}</view>
<block wx:if="{{order_goods.type=='integral'}}">
<view class="mount">
<block wx:if="{{order_goods.option_str}}">{{order_goods.option_str}} </block>{{order_goods.price}}积分 x {{order_goods.quantity}}
</view>
<view class="price">{{order_goods.total_score}}积分</view>
</block>
<block wx:else>
<view class="mount">
<block wx:if="{{order_goods.option_str}}">{{order_goods.option_str}} </block>¥{{order_goods.price}} x {{order_goods.quantity}}
</view>
<view class="price">¥{{total}}</view>
</block>
</view>
</view>
</view>
<view class="cell-col">
<view class="tit">退款数量:</view>
<view class="ll">
<block wx:if="{{selArr&&selArr.length}}" wx:for="{{selArr}}" wx:key="index">
<label class="i-flex i-flex-alc fsz-26 mb10 {{item.isrefund?'isrefund':''}}">
<view class="checkbox" wx:if="{{item.isrefund}}">
<image class="checkbox-img" src="../../images/checkbox-disabled.png"></image>
</view>
<checkbox-group bindchange="goodsselect" data-idx="{{index}}" wx:else>
<view class="checkbox">
<image class="checkbox-img" src="../../images/checkbox-checked.png" wx:if="{{item.isselect}}"></image>
<image class="checkbox-img" src="../../images/checkbox-disabled.png" wx:else></image>
<checkbox hidden checked="{{item.isselect}}" value="{{item.isselect}}"></checkbox>
</view>
</checkbox-group>
<view class="mx10 i-flex-item text-overflow1">{{order_goods.name}}</view>
<!-- <view class="red fsz-28 weight">¥{{order_goods.price}}</view> -->
</label>
</block>
</view>
</view>
<view class="cell">
<view class="cell-hd">售后类型:</view>
<view class="cell-bd">申请退款</view>
</view>
<view class="cell">
<view class="cell-hd">问题类型:</view>
<view class="cell-bd">
<picker bindchange="bindPickerChange" value="{{index}}" range="{{xarray}}">
<view class="picker">
{{xarray[index]}}
</view>
</picker>
</view>
</view>
<view class="cell">
<view class="cell-hd">退款金额:</view>
<view class="cell-bd i-flex" wx:if="{{order_goods.type=='integral'}}">
<input class='cell-ipt i-flex-item i-aic' value="{{refund_money}}" bindinput="refund_money_input" type="text" placeholder="最高可退 {{refund_money}}积分"></input> <text style="margin-top:2px;margin-left:3px;">积分</text>
</view>
<view class="cell-bd" wx:else>
<input class='cell-ipt' value="{{refund_money}}" bindinput="refund_money_input" type="text" placeholder="最高可退款 ¥{{max_can_refund}}"></input>
</view>
</view>
<block wx:if="{{order_goods.use_score>0}}">
<view class="cell">
<view class="cell-hd">积分抵扣金额:</view>
<view class="cell-bd">¥{{order_goods.score_for_money}}</view>
</view>
<view class="cell">
<view class="cell-hd">可退积分:</view>
<view class="cell-bd">{{refund_score?refund_score:order_goods.use_score}}积分</view>
</view>
</block>
<view class="cell">
<view class="cell-hd">可退配送费:</view>
<view class="cell-bd">
<view>¥{{can_shipping_fare}}</view>
<view class="fsz-22 text-gray" wx:if="{{order_goods.shipping_fare==0}}">无配送费</view>
</view>
</view>
<view class="cell-col">
<view class="tit">商品问题描述:</view>
<textarea class='cell-textarea' bindinput="wenti_input" maxlength="1000" placeholder="问题描述越详细,可以提高您的申请成功率哦~" value="{{complaint_desc}}"></textarea>
</view>
<view class='cell-col'>
<view class="tit">上传凭证图片(最多三张)</view>
<view class='img-wrap'>
<view class="image_uploader_image" wx:for="{{refund_thumb_imgs}}" wx:key="index">
<image class="image_uploader_image_img_portrait" src="{{item}}"> </image>
<view class="image_uploader_image_delete" data-sr="{{item}}" bindtap='cancle_img'>-</view>
</view>
<view class="image_uploader_selector" bindtap='choseImg'>
<view class="image_uploader_indicate">+</view>
</view>
</view>
</view>
<view class="cell">
<view class="cell-hd">联系人:</view>
<view class="cell-bd">
<input class='cell-ipt' value="{{complaint_name}}" bindinput="name_input" type="text" maxlength="20" placeholder="请输入联系人"></input>
</view>
</view>
<view class="cell">
<view class="cell-hd">联系方式:</view>
<view class="cell-bd">
<input class='cell-ipt' value="{{complaint_mobile}}" bindinput="mobile_input" type="number" maxlength="20" placeholder="请输入手机号"></input>
</view>
</view>
<view class="submit_button">
<view class="span" bindtap='sub_refund'>提交申请</view>
</view>
<view class='note'>
<view class='note-tit'>退款须知</view>
<view class="article">
<view class="p">请按照提示关注维权进度和超时提醒并提供相应凭证。</view>
</view>
</view>
</view>

View File

@ -0,0 +1,222 @@
.goods {
background-color: #fff;
}
.goods-item {
position: relative;
display: flex;
padding: 30rpx;
}
.goods-item::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
right: 0;
border-bottom: 1px solid #e5e5e5;
transform-origin: 0 0;
transform: scaleY(0.5);
}
.goods-item-r {
flex: 1;
margin-left: 20rpx;
width: 0;
}
.show-img {
width: 120rpx;
height: 120rpx;
}
.name {
font-size: 26rpx;
color: #444;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.mount {
font-size: 22rpx;
color: #aaa;
margin-top: 8rpx;
}
.goods-item .price {
display: block;
font-size: 28rpx;
color: #444;
margin-top: 14rpx;
}
.cell {
position: relative;
display: flex;
justify-content: space-between;
background-color: #fff;
padding: 30rpx;
align-items: center;
}
.cell::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
right: 0;
border-bottom: 1px solid #e5e5e5;
transform-origin: 0 0;
transform: scaleY(0.5);
}
.cell-hd,
.tit {
color: #000;
}
.cell-col {
position: relative;
background-color: #fff;
padding: 20rpx 30rpx;
}
.cell-col .tit {
margin-bottom: 20rpx;
}
.cell-col::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
right: 0;
border-bottom: 1px solid #e5e5e5;
transform-origin: 0 0;
transform: scaleY(0.5);
}
.image_uploader_selector {
width: 56px;
height: 56px;
border: 1px dashed #ccc;
display: inline-block;
}
.image_uploader_indicate {
position: absolute;
font-size: 32px;
color: #ccc;
width: 56px;
height: 56px;
line-height: 52px;
text-align: center;
}
.cell-ipt {
text-align: right;
}
.cell-textarea {
width: 100%;
}
.submit_button {
height: 70rpx;
line-height: 70rpx;
top: 10px;
position: relative;
border-top: 1px solid #eee;
text-align: center;
margin: 15px 30rpx 30px;
}
.submit_button .span {
padding: 5px 20px;
font-size: 15px;
color: #fff;
background-color: #4facfe;
position: relative;
text-align: center;
border-radius: 5px;
}
.note {
padding: 30rpx 30rpx 100rpx;
}
.note-tit {
font-weight: bold;
margin-bottom: 10rpx;
font-size: 28rpx;
}
.article .p {
font-size: 24rpx;
color: #666;
line-height: 1.6;
}
.image_uploader_image {
position: relative;
display: inline-block;
width: 56px;
height: 56px;
border: 1px dashed #e6e6e6;
padding: 1px;
box-sizing: border-box;
margin-right: 12px;
}
.image_uploader_image image {
width: 52px;
height: auto;
max-width: 52px;
max-height: 52px;
overflow: hidden;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.image_uploader_image .image_uploader_image_img_portrait {
width: auto !important;
height: 52px !important;
}
.image_uploader_image .image_uploader_image_delete {
border-radius: 50%;
-webkit-border-radius: 50%;
position: absolute;
right: -8px;
top: -8px;
background-color: #4facfe;
line-height: 20px;
height: 20px;
width: 20px;
text-align: center;
color: #fff;
font-size: 14px;
font-weight: bold;
}
.checkbox {
width: 50rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
}
.checkbox .checkbox-img {
width: 48rpx;
height: 48rpx;
}
.isrefund {
text-decoration: line-through;
}

View File

@ -0,0 +1,154 @@
// pages/order/refunddetail.js
var util = require('../../utils/util.js');
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
ref_id: 0,
order_goods: {}, // 20190712
order_id: 0,
order_info: {},
order_refund: {},
order_refund_historylist: [],
refund_images: []
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var ref_id = options.id;
var that = this;
this.setData({
ref_id: ref_id
}, ()=>{
//20190711
that.getData();
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
this.getData();
},
sub_cancle: function() {
var order_id = this.data.order_id;
var ref_id = this.data.ref_id;
var token = wx.getStorageSync('token');
var that = this;
app.util.request({
'url': 'entry/wxapp/user',
'data': {
controller: 'user.cancel_refund',
'token': token,
ref_id: ref_id
},
dataType: 'json',
success: function(res) {
if (res.data.code == 3) {
//un login
} else if (res.data.code == 1) {
wx.showToast({
title: '撤销成功',
icon: 'success',
duration: 1000,
success: function(res) {
wx.redirectTo({
url: "/eaterplanet_ecommerce/pages/order/order?id=" + order_id
})
}
})
}
}
})
},
getData: function() {
var ref_id = this.data.ref_id;
var token = wx.getStorageSync('token');
var that = this;
app.util.request({
url: 'entry/wxapp/user',
data: {
controller: 'afterorder.refunddetail',
token,
ref_id
},
dataType: 'json',
success: function (res) {
wx.stopPullDownRefresh();
if (res.data.code == 3) {
//un login
} else if (res.data.code == 1) {
const { order_goods, order_id, order_info, order_refund, order_refund_historylist, refund_images } = res.data;
that.setData({ order_goods, order_id, order_info, order_refund, order_refund_historylist, refund_images })
}
}
})
},
/**
* 撤销申请
*/
cancelApply: function () {
let that = this;
wx.showModal({
title: '撤销申请',
content: '退款申诉一旦撤销就不可恢复,并且不可以再次申请,确定要撤销本次申诉吗?',
confirmText: '我要撤销',
confirmColor: '#ff5344',
cancelText: '暂不撤销',
cancelColor: '#666666',
success(res) {
if (res.confirm) {
that.sub_cancle();
}
}
})
},
/**
* 修改申请
*/
editApply: function (){
const { order_goods, order_refund, } = this.data;
let ref_id = order_refund.ref_id || 0;
let order_id = order_goods.order_id || 0;
let order_goods_id = order_goods.order_goods_id || 0;
ref_id && order_id && order_goods_id && wx.navigateTo({
url: `/eaterplanet_ecommerce/pages/order/refund?ref_id=${ref_id}&id=${order_id}&order_goods_id=${order_goods_id}`,
})
}
})

View File

@ -0,0 +1,7 @@
{
"enablePullDownRefresh": true,
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-img": "../../components/img/index"
}
}

View File

@ -0,0 +1,58 @@
<ep-navBar title="售后进度" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view class='wrap'>
<view class='details'>
<view class='tit'>审核进度:</view>
<view class="timeline" wx:if="{{order_refund_historylist.length}}">
<!-- timeline-first-item timeline-last-item -->
<view class="timeline-item timeline-first-item" wx:for="{{order_refund_historylist}}" wx:key="index">
<view class="timeline-item-divider"></view>
<view class="timeline-item-content">
<view>{{item.message}}</view>
<view class="datetime">{{item.addtime}}</view>
</view>
</view>
</view>
<view class="noplan" wx:else>暂无记录</view>
</view>
<view class="details" style="display:none;">
<view class='tit'>审核留言:</view>
<view class="content">审核成功</view>
</view>
<view class="details">
<view class='tit'>审核详情:</view>
<view class="goods">
<view class="goods-item">
<view class="goods-item-l">
<i-img height="60" iClass="show-img" lazyLoad="true" loadImage="{{order_goods.goods_images}}" width="60"></i-img>
</view>
<view class="goods-item-r">
<view class="name">{{order_goods.name}}</view>
<view class="mount">
<block wx:if="{{order_goods.option_str}}">{{order_goods.option_str}} </block>¥{{order_goods.price}} x {{order_goods.quantity}}
</view>
<view class="price">¥{{order_goods.total}}</view>
</view>
</view>
</view>
<view class="ll">实际退款金额:<text>¥{{order_refund.ref_money}}</text></view>
<view class="ll">问题类型:<text>{{order_refund.ref_name}}</text></view>
<view class="ll" wx:if="{{order_refund.complaint_name}}">联系人: <text>{{order_refund.complaint_name}}</text></view>
<view class="ll">联系方式: <text>{{order_refund.ref_mobile}}</text></view>
<!-- <view class="ll">问题商品占比:<text>100%</text></view> -->
</view>
<view class="details" wx:if="{{refund_images.length}}">
<view class='tit'>商品图片:</view>
<view class="img-list">
<i-img iClass="img" lazyLoad="true" loadImage="{{item.thumb_image}}" width="100" height="100" wx:for="{{refund_images}}" wx:key="{{index}}"></i-img>
</view>
</view>
<view class="details">
<view class='tit'>问题描述:</view>
<view class="content">{{order_refund.ref_description}}</view>
</view>
<view class="btn" wx:if="{{order_refund.state==0}}">
<view class="btn-item bule" bindtap='cancelApply'>撤销申请</view>
<view class="btn-item red" bindtap='editApply'>修改申请</view>
</view>
</view>

View File

@ -0,0 +1,172 @@
.wrap {
padding-bottom: 100rpx;
}
.details {
padding: 30rpx;
background-color: #fff;
margin-bottom: 20rpx;
}
.tit {
padding-bottom: 20rpx;
}
.content {
color: #666;
}
.timeline {
display: flex;
flex-direction: column;
position: relative;
}
.timeline-item {
display: flex;
flex-direction: row;
position: relative;
padding-bottom: 20rpx;
box-sizing: border-box;
overflow: hidden;
}
.timeline-item .timeline-item-keynode {
width: 160rpx;
flex-shrink: 0;
box-sizing: border-box;
padding-right: 20rpx;
text-align: right;
line-height: 65rpx;
}
.timeline-item .timeline-item-divider {
flex-shrink: 0;
position: relative;
width: 30rpx;
height: 30rpx;
top: 6rpx;
border-radius: 50%;
background-color: #bbb;
}
.timeline-item-divider::before, .timeline-item-divider::after {
position: absolute;
left: 15rpx;
width: 1rpx;
height: 100vh;
content: '';
background: inherit;
}
.timeline-item-divider::before {
bottom: 100%;
}
.timeline-item-divider::after {
top: 100%;
}
.timeline .timeline-item:last-child .timeline-item-divider:after {
display: none;
}
.timeline .timeline-item:first-child .timeline-item-divider:before {
display: none;
}
.timeline-item .timeline-item-content {
padding-left: 20rpx;
}
.timeline-last-item .bottom-border::after {
display: none;
}
.timeline-item-content .datetime {
color: #ccc;
}
.goods {
background-color: #fff;
}
.goods-item {
position: relative;
display: flex;
padding: 30rpx;
}
.goods-item-r {
flex: 1;
margin-left: 20rpx;
width: 0;
}
.show-img {
width: 120rpx;
height: 120rpx;
}
.name {
font-size: 26rpx;
color: #444;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.mount {
font-size: 22rpx;
color: #aaa;
margin-top: 8rpx;
}
.goods-item .price {
display: block;
font-size: 28rpx;
color: #444;
margin-top: 14rpx;
}
.img-list {
display: flex;
}
.img-list .img {
width: 200rpx;
height: 200rpx;
margin-right: 30rpx;
}
.ll {
color: #666;
line-height: 2;
}
.ll text {
color: #333;
}
.btn {
display: flex;
line-height: 98rpx;
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
.btn-item {
flex: 1;
text-align: center;
color: #fff;
}
.btn-item.red {
background: linear-gradient(270deg,#ff758c 0%,#ff7eb3 100%);
}
.btn-item.bule {
background: linear-gradient(90deg,#4facfe 0%,#00f2fe 100%);
}

View File

@ -0,0 +1,109 @@
var app = getApp();
var status = require('../../utils/index.js');
Page({
data: {
order: [],
groupInfo: {
group_name: '社区',
owner_name: '团长'
}
},
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let that = this;
status.setGroupInfo().then((groupInfo) => {
that.setData({ groupInfo })
});
let order_id = options.order_id || 0;
if (order_id == undefined || !order_id){
wx.redirectTo({
url: '/eaterplanet_ecommerce/pages/index/index',
})
}
wx.showLoading();
this.getData(order_id);
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 获取数据
*/
getData: function (order_id) {
let that = this;
app.util.request({
'url': 'entry/wxapp/index',
'data': {
controller: 'order.order_share_info',
id: order_id,
is_share: 1
},
dataType: 'json',
method: 'POST',
success: function (res) {
wx.hideLoading();
if(res.data.code == 0){
let order = res.data.data;
let order_info = order.order_info || '';
if (order_info){
let { shipping_name, shipping_address } = order_info;
shipping_name = that.formatData(shipping_name, 2);
shipping_address = that.formatData(shipping_address, 6);
order.order_info.shipping_name = shipping_name;
order.order_info.shipping_address = shipping_address;
}
that.setData({ order })
} else {
app.util.message(res.data.msg || '请求出错', '', 'error');
}
}
})
},
/**
* 去商品详情
*/
goGoodsDetails: function(e){
let id = e.currentTarget.dataset.id || 0;
let head_id = this.data.order.order_info.head_id || '';
wx.navigateTo({
url: '/eaterplanet_ecommerce/pages/goods/goodsDetail?id=' + id + '&community_id=' + head_id,
})
},
formatData: function(str, len) {
str = str+"";
len = str.length > 3 ? len : 1;
if (str.length > len) {
return str.substr(0, str.length - len) + new Array(len+1).join('*');
} else {
return str;
}
}
})

View File

@ -0,0 +1,13 @@
{
"navigationBarTitleText": "订单详情",
"navigationBarBackgroundColor": "#4facfe",
"navigationBarTextStyle": "white",
"usingComponents": {
"ep-navBar": "../../components/navigation-bar",
"i-order-info-express": "../../components/order/orderInfoExpress",
"i-goods-info": "../../components/goodsInfo/index",
"i-order-info": "../../components/orderInfo/index",
"i-card": "../../components/card/index",
"i-aside-btn": "../../components/asideBtn/index"
}
}

View File

@ -0,0 +1,44 @@
<ep-navBar title="订单详情" background='#4facfe' back="{{true}}" iconTheme='white' color='#fff' bindback="handlerGobackClick"/>
<view class="content">
<view class='order-status'>
<view class='user-info'><image src='{{order.order_info.avatar}}'></image> <span>我付款了,{{groupInfo.owner_name}}请接单!</span></view>
</view>
<view class="goods-info" wx:if="{{order.order_info.delivery!='pickup'}}">
<i-order-info-express order="{{order}}" wx:if="{{order.order_info}}" hideInfo="{{true}}" groupInfo="{{groupInfo}}"></i-order-info-express>
</view>
<view class="goods-info" wx:elif="{{order.order_info.order_status_id!=3&&order.order_info.order_status_id!=5}}">
<i-goods-info order="{{order}}" wx:if="{{order.order_info}}" hideInfo="{{true}}" groupInfo="{{groupInfo}}"></i-goods-info>
</view>
<view class="goods-card">
<i-card>
<view class="header" slot="header">商品详情</view>
<view class="middle" slot="content">
<block wx:for="{{order.order_goods_list}}" wx:for-item="goodsInfo" wx:key="id">
<view class="middle-line"></view>
<view class='each-item'>
<view style="margin-right: 10px">
<image src='{{goodsInfo.image}}' width="60" height="60" class='show-img'></image>
</view>
<view style="flex-grow: 1 ">
<view class="name bold-text">{{goodsInfo.name}}</view>
<view class="mount">
<block wx:if="{{goodsInfo.option_str}}">规格:{{goodsInfo.option_str}} </block>数量:{{goodsInfo.quantity}}</view>
<view class="bottom-info">
<view class='bold-text'>¥{{goodsInfo.price}}</view>
</view>
<view class="card-btn">
<view bindtap="goGoodsDetails" data-id="{{goodsInfo.goods_id}}" class="btn-3 mar-left-8">我也买</view>
</view>
</view>
</view>
</block>
</view>
<view slot="footer"></view>
</i-card>
</view>
<view class="order-info">
<i-order-info orderInfo="{{order.order_info}}" order_goods_list="{{order.order_goods_list}}"></i-order-info>
</view>
<i-aside-btn showHome="{{true}}"></i-aside-btn>
</view>

Some files were not shown because too many files have changed in this diff Show More