819 lines
31 KiB
Vue
819 lines
31 KiB
Vue
<template>
|
||
<view>
|
||
<!-- 状态栏 -->
|
||
<status-nav :titleVal="'购物车'" :statusTitle="true"></status-nav>
|
||
<view v-if="loading" :style="{paddingTop: statusHeight+'px'}" class="pad-zy30" style="padding-bottom: 150rpx;">
|
||
<view class="bacf radius20 mar-s20 disjbac pad-sx27-zy20">
|
||
<view class="bold">配送方式</view>
|
||
<view class="fon26 col3 disac">
|
||
<view @tap="expressEv(1)" :class="!isExpress?'activeT':'expressT'" :style="{background:isExpress?'':publicColor}">自提</view>
|
||
<view v-if="!isVirtual" @tap="expressEv(0)" :class="isExpress?'activeT':'expressT'" :style="{background:isExpress?publicColor:''}">快递</view>
|
||
</view>
|
||
</view>
|
||
<!-- 地址信息 -->
|
||
<view v-if="isExpress" class="bacf radius20 mar-s20 pad-sx27-zy20">
|
||
<view class="bold">收件人信息</view>
|
||
<navigator url="/pagesA/myAddress/myAddress?isWhere=0" hover-class="none">
|
||
<view class="fon26 col3 disjbac pad-s50">
|
||
<view v-if="addressInfo!=''">
|
||
<view class="fon28 col3 bold mar-x20">{{addressInfo.name}} <span class="mar-z20">{{userPphone}}</span></view>
|
||
<view class="fon24 col9">{{addressInfo.province_str}}{{addressInfo.city_str}}{{addressInfo.county_str || ''}}{{addressInfo.address || ''}}</view>
|
||
</view>
|
||
<view v-else class="fon24 col9">请完善收件人信息</view>
|
||
<image src="/static/public/nextM.png" class="xiaDan-next" mode="aspectFill"></image>
|
||
</view>
|
||
</navigator>
|
||
</view>
|
||
<!-- 自提地址 -->
|
||
<view v-else class="bacf radius20 mar-s20 pad-sx27-zy20">
|
||
<view class="bold">自提地址</view>
|
||
<input type="number" maxlength="11" :focus="isFocus" @blur="blurEv" v-model="zPhone" class="mar-s50 mar-x20" style="border: 2rpx solid #E0E0E0;padding: 20rpx;border-radius: 10rpx;font-size: 24rpx;" placeholder="请输入收货人手机号" />
|
||
<view class="fon26 col3 disjbac">
|
||
<view>
|
||
<view class="fon28 col3 bold mar-x20">Company</view>
|
||
<view class="fon24 col9">{{goAddress}}</view>
|
||
</view>
|
||
<!-- 立即导航 -->
|
||
<image @tap="goThere(goAddress)" src="/static/public/daoh.png" class="there" mode="aspectFill"></image>
|
||
</view>
|
||
</view>
|
||
<!-- 订单信息 -->
|
||
<view class="bacf radius20 mar-s20 pad-sx27-zy20">
|
||
<view class="bold">订单信息</view>
|
||
<view v-for="(item,index) in orderList" :key="index" class="fon26 col3 disjbac pad-sx50 disjbac bbot">
|
||
<image lazy-load @tap="goShopDetail(item.id)" :src="item.imgSrc" class="flexs order-image" mode="aspectFill"></image>
|
||
<view class="width100 disjb fw" style="height: 166rpx;">
|
||
<view>
|
||
<view @tap="goShopDetail(item.id)" class="fon28 col3 bold clips2">{{item.title}}</view>
|
||
<view class="order-sy">{{item.sku_name}}</view>
|
||
</view>
|
||
<view class="disjbac mar-s10 width100">
|
||
<view class="order-item-price" v-if="isNei!=3">¥{{item.price}}</view>
|
||
<view class="order-item-price" v-else>积分:{{item.price}}</view>
|
||
<view class="fon28 col6">x{{item.num}}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="fon28 disjbac mar-s20 pad-s10">
|
||
<view class="col6">共{{allNum}}件</view>
|
||
<view class="bold colf8" v-if="isNei!=3">应付款:{{zanAllPrice}}</view>
|
||
<view class="bold colf8" v-else>应付款:{{allPrice}}</view>
|
||
</view>
|
||
</view>
|
||
<!-- 选择支付方式 -->
|
||
<view class="bacf radius20 mar-s20 fon28 col3 pad-sx30 pad-zy20">
|
||
<view class="bold fon28">选择支付方式</view>
|
||
<view @tap="chooseFS(index)" v-for="(item,index) in payFS" :key="index" v-if="isCurrent!=index" class="disjbac mar-s30">
|
||
<view class="disac">
|
||
<image v-if="item.isActive" src="/static/public/chooseFS.png" class="chooseDX" mode=""></image>
|
||
<image v-else src="/static/public/cancle-FS.png" class="chooseDX" mode=""></image>
|
||
<view class="mar-z25">{{item.title}}</view>
|
||
</view>
|
||
<view v-if="item.num!=0">余{{item.num}}</view>
|
||
</view>
|
||
</view>
|
||
<!-- 优惠 -->
|
||
<view v-if="isNei!=3" class="bacf radius20 mar-s20 pad-sx27-zy20">
|
||
<view class="bold">优惠</view>
|
||
<view @tap="quanEv(1)" class="fon28 col3 disjbac mar-sx40">
|
||
<view>优惠券</view>
|
||
<view class="disac">
|
||
<view class="colf8 bold">-¥{{youQuan.youPrice}}</view>
|
||
<image src="/static/public/nextM.png" class="xiaDan-next" mode="aspectFill"></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 快递费用 -->
|
||
<view v-if="isExpress" class="bacf radius20 mar-s20 disjbac pad-sx27-zy20">
|
||
<view class="bold">快递费用</view>
|
||
<view class="fon28 colf8 bold">¥{{expressInfo.default_price}}</view>
|
||
</view>
|
||
<view class="disjbac posixzy bacf pad-zy32" style="height: 124rpx;line-height: 124rpx;">
|
||
<!-- 去支付 -->
|
||
<view class="fon36 colf8 bold" v-if="isNei!=3">合计:¥{{allPrice<0?0:allPrice}}<span v-if="isKq">+{{zf_kqPrice}}孔雀币</span><span v-if="isExpress && expressInfo.default_price!=0" style="font-size: 24rpx;color: #000;">+ ¥{{expressInfo.default_price}}</span></view>
|
||
<view class="fon40 colf8 bold dis" v-else><span class="col3 fon28">合计积分:</span>{{allPrice}}<span v-if="isExpress && expressInfo.default_price!=0">+ ¥{{expressInfo.default_price}}</span></view>
|
||
<view @tap="goPayment" v-if="isNei!=3" class="goPayment" :style="{background: publicColor}">去支付</view>
|
||
<view @tap="isDui=true" v-else class="goPayment" :style="{background: publicColor}">去兑换</view>
|
||
</view>
|
||
</view>
|
||
<view v-if="showQuan" @tap.stop="showQuan=false" class="posAll">
|
||
<view class="bacf posixzy" style="border-radius: 40rpx 40rpx 0rpx 0rpx;" @tap.stop="showQuan=true">
|
||
<view class="pad-sx20 pad-zy50">
|
||
<view class="disjbac">
|
||
<view class="fon28 bold col3">可用优惠券({{quanList.length}})</view>
|
||
<image @tap.stop="showQuan=false" src="/static/public/cha-close.png" style="width: 30rpx;height: 30rpx;" mode="aspectFill"></image>
|
||
</view>
|
||
<!-- <view class="fon28 bold col3 disja pad-s50" style="padding-bottom: 16rpx;">
|
||
<view class="posir" :class="switchQuan?'activeQuan':''" @tap="switchQuan=true">可用优惠券(1)</view>
|
||
<view class="posir" :class="!switchQuan?'activeQuan':''" @tap="switchQuan=false">失效优惠券(0)</view>
|
||
</view> -->
|
||
<scroll-view scroll-y class="mar-s40 quan-list-box">
|
||
<view @tap.stop="chooseQuan(index)" v-for="(item,index) in quanList" :key="index" class="mar-x40">
|
||
<view class="disjbac quan-item-box">
|
||
<view class="posir">
|
||
<image class="posia" src="/static/public/quan-left.png" mode=""></image>
|
||
<view class="posir" style="z-index: 1;">
|
||
<view class="pad-s40 pad-x30 fon28">¥<span class="bold fon56">{{item.youPrice}}</span></view>
|
||
<view class="fon24" style="padding-left: 12rpx;">满{{item.manPrice}}元可使用</view>
|
||
</view>
|
||
</view>
|
||
<view>
|
||
<!-- <view class="fon28 col3 mar-s20">{{['黄金','白银'][item.isGrade]}}会员专属优惠券</view> -->
|
||
<view class="fon28 col3 mar-s20">{{item.name}}</view>
|
||
<view>
|
||
<image v-if="item.isStatus" src="/static/public/chooseQuan.png"></image>
|
||
<image v-else src="/static/public/cancleQuan.png"></image>
|
||
</view>
|
||
<view class="fon20 col3 mar-x20">有效期:{{item.startTime.slice(0,10)}}至{{item.endTime.slice(0,10)}}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<!-- 领取优惠券按钮 -->
|
||
<view @tap.stop="goCoupon" class="ling-btn">领取优惠券</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 确认兑换弹框 -->
|
||
<view v-if="isDui" @tap.stop="isDui=false" class="posAll zhun-dui-box">
|
||
<view class="bacf radius20 width100 tc fon28 col3 pad20" @tap.stop="isDui=true">
|
||
<view class="bold" style="margin: 0rpx 0 56rpx 0;">兑换商品</view>
|
||
<view style="margin: 0rpx 0 66rpx 0;">您确定使用{{allPrice}}积分兑换吗?</view>
|
||
<view class="disjbac mar-x20 pad-zy20 zhun-dui-btn">
|
||
<view @tap.stop="isDui=false">暂不兑换</view>
|
||
<view @tap.stop="goPayment">立即兑换</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 支付成功 -->
|
||
<view v-if="isSuccess" class="posAll" :style="{top:statusHeight+'px'}" style="z-index: 3;background-color: #F5F5F5;">
|
||
<view class="bacf radius20 mar-s20 mar-zy20 success-box">
|
||
<image src="/static/public/pay-success.png" mode=""></image>
|
||
<view class="fon28 col3 pad-s20 pad-x40">支付成功</view>
|
||
<view class="success-hj"><span v-if="isNei!=3">¥{{jsPrice<0?0:jsPrice}}</span><span v-else>合计:{{jsPrice}}</span></view>
|
||
<view class="disja success-btn">
|
||
<view @tap="goDetail">查看订单</view>
|
||
<view @tap="goShop" class="colf" :style="{background:publicColor}">再逛一逛</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 分享弹框 -->
|
||
<view v-if="isfen" class="posAll disjcac" style="background-color: rgba(0,0,0,.25);z-index: 8;">
|
||
<view class="bacf width100 radius20 posir" style="padding: 60rpx 50rpx;margin: 0 70rpx;text-align: center;">
|
||
<image @tap="isfen=false" src="../../static/public/closequan.png" class="posia heyan-close" mode=""></image>
|
||
<view style="color: #f55255;font-size: 36rpx;">立即完成拼单?</view>
|
||
<view style="margin: 50rpx 0;font-size: 26rpx;">点击下方分享给朋友,完成拼单</view>
|
||
<view class="posir radius15 disjcac pad-sx20" style="background-color: #22cc3e;color: #FFFFFF;font-size: 36rpx;">
|
||
分享给朋友
|
||
<button open-type="share" class="posia-op">分享给朋友</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 用户信息授权,手机号授权 -->
|
||
<auth-userInfo-mobileInfo></auth-userInfo-mobileInfo>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
isExpress:false,
|
||
switchQuan:true,
|
||
showQuan:false,//是否显示优惠券弹框
|
||
isDui:false,
|
||
orderList:uni.getStorageSync('orderList'),
|
||
quanList:[],
|
||
goAddress:'四川省成都市成华区双店路B口',
|
||
youQuan:{
|
||
id:0,
|
||
youPrice:0
|
||
},//优惠券
|
||
allPrice:0,//合计
|
||
allNum:0,//总数量
|
||
zanAllPrice:0,//暂存合计
|
||
isNei:0,
|
||
expressInfo:{},//快递信息
|
||
addressInfo:'',//地址信息
|
||
userPphone:'请完善信息',
|
||
zPhone:'',//自提时的手机号
|
||
page:1,
|
||
size:10,
|
||
isFocus:false,
|
||
loading:false,
|
||
zf_allPrice:0,//实际付款
|
||
zf_kqPrice:0,//孔雀币
|
||
payFS:[
|
||
{title:'微信支付',isActive:true,num:0},
|
||
{title:'孔雀币',isActive:false,num:100},
|
||
{title:'积分',isActive:false,num:100},
|
||
],
|
||
isKq:false,
|
||
jsPrice:0,//结算时的金额,
|
||
zc_allPrice:0,//暂存实际总金额
|
||
coin_price:0,//孔雀币转换后的元
|
||
isSuccess:false,//支付成功
|
||
ntype:'money',//默认money孔雀币转钱 coin钱转孔雀币
|
||
times:0,//点击次数
|
||
isCurrent:2,
|
||
isfen:false,
|
||
checkGrounpId:0,
|
||
expressInfo:{
|
||
default_price:0
|
||
},
|
||
isVirtual:false,//是否是虚拟商品
|
||
payType:''//支付方式 wechat=微信支付;coin=孔雀币;hybrid=混合支付
|
||
}
|
||
},
|
||
computed: {
|
||
// 主题颜色
|
||
publicColor() {
|
||
return this.$store.state.publicColor
|
||
},
|
||
statusHeight() {
|
||
return this.$store.state.statusHeight
|
||
}
|
||
},
|
||
onShareAppMessage(res) {
|
||
var shareObj = {
|
||
title: this.orderList[0].title, // 默认是小程序的名称(可以写slogan等)
|
||
path: `/pagesB/shopDetail/shopDetail?id=${this.orderList[0].id}&category_id=0&is_activity=${this.orderList[0].is_activity}&share_id=${uni.getStorageSync('userId')}&invite_code=${uni.getStorageSync('invite_code')}`, // 默认是当前页面,必须是以‘/’开头的完整路径
|
||
imageUrl: this.orderList[0].imgSrc//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
|
||
};
|
||
return shareObj;
|
||
// return false;
|
||
},
|
||
onShow() {
|
||
// 禁止分享
|
||
this.$toolAll.tools.disableShareEv();
|
||
this.checkChoose();//检测地址
|
||
uni.removeStorageSync('orderInfo');
|
||
},
|
||
onLoad(options) {
|
||
// wechat=微信支付;coin=孔雀币;hybrid=混合支付
|
||
// this.payType = uni.getStorageSync('payType');
|
||
this.payType = 'wechat';
|
||
if(this.payType=='wechat') {
|
||
this.payFS = [{title:'微信支付',isActive:true,num:0}]
|
||
} else if(this.payType=='coin'){
|
||
this.payFS = [{title:'孔雀币',isActive:true,num:0}]
|
||
} else if(this.payType=='hybrid'){
|
||
this.payFS = [
|
||
{title:'微信支付',isActive:true,num:0},
|
||
{title:'孔雀币',isActive:false,num:0}
|
||
]
|
||
}
|
||
// 自提手机号
|
||
this.zPhone = uni.getStorageSync('phone');
|
||
// 判断是不是虚拟商品
|
||
options.isVirtual == "virtual" ? this.isVirtual = true : this.isVirtual = false
|
||
this.checkexpress();//查询快递
|
||
this.checkeList(options.isNei);//查询订单列表
|
||
this.checkOrderDetail();//查询订单信息
|
||
this.isNei = options.isNei;
|
||
if(this.isNei==3) {
|
||
this.payFS[0].isActive = false;
|
||
this.payFS[2].isActive = true;
|
||
this.isCurrent = 1;
|
||
}
|
||
},
|
||
methods: {
|
||
checkChoose(){
|
||
if(uni.getStorageSync('chooseAddress')==''){
|
||
this.checkAddress();//查询地址
|
||
} else {
|
||
let naddress = uni.getStorageSync('chooseAddress');
|
||
this.addressInfo = {
|
||
id:naddress.id,
|
||
name:naddress.userName,
|
||
phone:naddress.userPhone,
|
||
province_str:naddress.province,
|
||
city_str:naddress.city,
|
||
county_str:naddress.county,
|
||
address:naddress.address
|
||
}
|
||
this.userPphone = this.$toolAll.tools.hideMPhone(naddress.userPhone);
|
||
}
|
||
},
|
||
obtainCoin(coinNum){//获取当前账户孔雀币
|
||
this.$requst.post('user/get-coin-price',{amount:coinNum,get_type:this.ntype}).then(res=>{
|
||
if(res.code==0){
|
||
if(this.ntype=='money'){
|
||
this.coin_price = res.data.amount/100;
|
||
if(this.payType=='coin'){
|
||
// 只有孔雀币支付方式
|
||
if(this.zanAllPrice - this.coin_price<=0){//孔雀币足以抵扣
|
||
this.allPrice = 0;
|
||
this.zf_kqPrice = this.zanAllPrice*1;
|
||
} else {//孔雀币不足以抵扣
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.coin_price)*1).toFixed(2);
|
||
this.zf_kqPrice = this.coin_price;
|
||
}
|
||
this.isKq = true;
|
||
}
|
||
} else {
|
||
this.zf_kqPrice = res.data.amount;
|
||
this.isKq = true;
|
||
}
|
||
}
|
||
})
|
||
},
|
||
goShopDetail(id){
|
||
uni.navigateTo({
|
||
url:`/pagesB/shopDetail/shopDetail?id=${id}`
|
||
})
|
||
},
|
||
chooseFS(index){
|
||
this.payFS[index].isActive = !this.payFS[index].isActive;
|
||
if(this.isNei==3){//积分
|
||
if(!this.payFS[0].isActive && !this.payFS[2].isActive){
|
||
this.$toolAll.tools.showToast('请选择支付方式');
|
||
this.allPrice = this.zanAllPrice;
|
||
this.isKq = false;
|
||
return;
|
||
}
|
||
} else {//孔雀币
|
||
if(this.payType!='coin'){
|
||
if(!this.payFS[0].isActive && !this.payFS[1].isActive){
|
||
this.$toolAll.tools.showToast('请选择支付方式')
|
||
this.allPrice = this.zanAllPrice;
|
||
this.isKq = false;
|
||
this.zf_kqPrice = this.payFS[1].num;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
if(this.payFS[index].title=='微信支付'){
|
||
if(this.isNei!=3){
|
||
//选择了微信支付+选择了孔雀币
|
||
if(this.payFS[0].isActive && this.payFS[1].isActive){
|
||
if(this.zanAllPrice - this.coin_price >=0){//孔雀币不足以抵扣
|
||
this.allPrice = this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.coin_price);
|
||
this.zf_kqPrice = this.payFS[1].num;
|
||
} else {//孔雀币足以抵扣
|
||
this.allPrice = 0;
|
||
this.ntype = 'coin';
|
||
this.obtainCoin(this.zanAllPrice*100);
|
||
}
|
||
return;
|
||
}
|
||
//取消了微信支付+选择了孔雀币
|
||
if(!this.payFS[0].isActive && this.payFS[1].isActive){
|
||
if(this.zanAllPrice - this.coin_price>0){
|
||
this.$toolAll.tools.showToast('孔雀币不足');
|
||
}
|
||
return;
|
||
}
|
||
//选择了微信支付+取消了孔雀币
|
||
if(this.payFS[0].isActive && !this.payFS[1].isActive){
|
||
this.isKq = false;
|
||
this.zf_kqPrice = 0;
|
||
return;
|
||
}
|
||
} else {
|
||
if(this.expressInfo.default_price==0){
|
||
this.$toolAll.tools.showToast('暂不可微信支付');
|
||
this.payFS[index].isActive = false;
|
||
}
|
||
}
|
||
}
|
||
if(this.payFS[index].title=='孔雀币') {
|
||
if(this.payType!='coin'){
|
||
if(this.youQuan.youPrice!=0){
|
||
this.payFS[1].isActive = false;
|
||
this.$toolAll.tools.showToast('无法使用孔雀币支付');
|
||
} else {
|
||
if(this.coin_price!=0){
|
||
//选择了微信支付+选择了孔雀币
|
||
if(this.payFS[0].isActive && this.payFS[1].isActive) {
|
||
if(this.zanAllPrice - this.coin_price<=0){//孔雀币足以抵扣
|
||
this.ntype = 'coin';
|
||
this.obtainCoin(this.zanAllPrice*100);
|
||
this.allPrice = 0;
|
||
} else {//孔雀币不足以抵扣
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.coin_price)*1).toFixed(2);
|
||
this.zf_kqPrice = this.payFS[1].num;
|
||
}
|
||
this.isKq = true;
|
||
return;
|
||
}
|
||
//选择了微信支付+取消了孔雀币
|
||
if(this.payFS[0].isActive && !this.payFS[1].isActive) {
|
||
this.isKq = false;
|
||
this.zf_kqPrice = 0;
|
||
// 如果优惠券金额等:0
|
||
if(this.youQuan.youPrice==0){
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice)*1).toFixed(2);
|
||
} else {
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.youQuan.youPrice)*1).toFixed(2);
|
||
}
|
||
return;
|
||
}
|
||
//取消了微信支付+选择了孔雀币
|
||
if(!this.payFS[0].isActive && this.payFS[1].isActive){
|
||
if(this.zanAllPrice - this.coin_price<=0){//孔雀币足以抵扣应付款
|
||
this.ntype = 'coin'
|
||
this.obtainCoin(this.allPrice*100);
|
||
this.allPrice = 0;
|
||
}
|
||
if(this.zanAllPrice - this.coin_price>0){//孔雀币不足以抵扣应付款
|
||
this.$toolAll.tools.showToast('孔雀币不足')
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.coin_price)*1).toFixed(2);
|
||
this.zf_kqPrice = this.payFS[1].num;
|
||
}
|
||
return;
|
||
}
|
||
//取消了微信支付+取消了孔雀币
|
||
if(!this.payFS[0].isActive && !this.payFS[1].isActive){
|
||
this.isKq = false;
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice)*1).toFixed(2);
|
||
return;
|
||
}
|
||
} else {
|
||
this.$toolAll.tools.showToast('暂无可用孔雀币');
|
||
this.payFS[index].isActive = false;
|
||
}
|
||
}
|
||
} else {
|
||
if(!this.payFS[index].isActive) {
|
||
this.isKq = false;
|
||
this.zf_kqPrice = 0;
|
||
this.allPrice = this.zanAllPrice;
|
||
} else {
|
||
// 只有孔雀币支付方式
|
||
if(this.zanAllPrice - this.coin_price<=0){//孔雀币足以抵扣
|
||
this.ntype = 'coin';
|
||
this.obtainCoin(this.zanAllPrice*100);
|
||
this.allPrice = 0;
|
||
} else {//孔雀币不足以抵扣
|
||
this.allPrice = (this.$toolAll.tools.addXiaoShu(this.zanAllPrice - this.coin_price)*1).toFixed(2);
|
||
this.zf_kqPrice = this.payFS[0].num;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
},
|
||
goPayment(){//去付款
|
||
this.isFocus = false;
|
||
this.isDui = false;
|
||
let nphone = '';
|
||
if(this.isExpress) {
|
||
nphone = this.addressInfo.phone;//默认地址的手机号
|
||
} else nphone = this.zPhone;//自提时的手机号
|
||
let self = 0;//快递的配送方式
|
||
if(!this.isExpress) self = 1;//自提的方式
|
||
let nsku_list = [];
|
||
let is_only = 0;
|
||
this.orderList.forEach(item=>{
|
||
let obj = {
|
||
sku_coding:item.coding,
|
||
num:item.num,
|
||
group_id:item.pin_user_id
|
||
}
|
||
nsku_list.push(obj);
|
||
is_only = item.is_only;
|
||
})
|
||
let is_score = 0;
|
||
if(this.isNei == 3) {is_score = 1}
|
||
if(this.zf_kqPrice!=0) {
|
||
this.jsPrice = `${this.allPrice} +${this.zf_kqPrice}孔雀币`;
|
||
} else {
|
||
this.jsPrice = this.allPrice;
|
||
}
|
||
let parmas = {
|
||
sku_list: nsku_list,//商品单号和数量数组
|
||
total: this.allPrice*100,//总金额
|
||
address_id: this.addressInfo.id || 0,//地址ID
|
||
express_code: this.expressInfo.code || 0,//快递编码
|
||
coupon_id: this.youQuan.id,//优惠券ID
|
||
coupon_price: this.youQuan.youPrice*100,//优惠券可用
|
||
pick_self: self,//是否自提0 快递, 1自提
|
||
pick_self_phone: nphone,//联系电话
|
||
original_total: this.zanAllPrice*100,//原价总金额
|
||
freight: this.expressInfo.default_price || 0,//快递费
|
||
remarks: "",//备注
|
||
is_only:is_only,//是否是单独购买0 不是单独购买1,2是单独购买
|
||
is_score:is_score,//是否是积分商品0 不是积分商品,1是积分商品
|
||
coin:this.zf_kqPrice//孔雀币
|
||
}
|
||
if(this.addressInfo=='' && self!=1){
|
||
this.$toolAll.tools.showToast('请完善收件人信息');
|
||
} else if(nphone=='') {
|
||
this.$toolAll.tools.showToast('请填写收货人手机号');
|
||
this.focusEv();
|
||
} else if(this.$toolAll.tools.isPhone(nphone)) {
|
||
this.$toolAll.tools.showToast('请正确填写收货人手机号');
|
||
this.focusEv();
|
||
} else if(this.isNei == 3 && !this.payFS[2].isActive){//积分判断条件
|
||
this.$toolAll.tools.showToast('请选择积分付款方式');
|
||
} else if(this.isNei == 3 && this.expressInfo.default_price!=0 && this.expressInfo.default_price!=undefined && !this.payFS[0].isActive){//积分判断条件
|
||
this.$toolAll.tools.showToast('请添加微信支付方式');
|
||
} else if(this.isNei != 3 && !this.payFS[0].isActive && !this.payFS[1].isActive){
|
||
this.$toolAll.tools.showToast('请选择支付方式')
|
||
} else if(this.payType=='coin' && this.allPrice*1 > this.coin_price*1){
|
||
this.$toolAll.tools.showToast('孔雀币不足');
|
||
} else if(this.payType=='hybrid' && this.isNei != 3 && !this.payFS[0].isActive && this.allPrice*1 > this.coin_price*1){
|
||
this.$toolAll.tools.showToast('孔雀币不足');
|
||
} else {
|
||
if(this.times==0){
|
||
this.times++;
|
||
if(this.allPrice==0){
|
||
this.$toolAll.tools.showToast('正在支付','loading',1500);
|
||
} else {
|
||
this.$toolAll.tools.showToast('正在调起支付','loading',1500);
|
||
}
|
||
uni.request({
|
||
url:`${getApp().globalData.hostApi}order/create`,
|
||
data:parmas,
|
||
method:'post',
|
||
header:{
|
||
'Content-Type': 'application/json; charset=UTF-8',
|
||
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
||
},
|
||
success: (res) => {
|
||
if(res.data.code==0){
|
||
this.times = 0;
|
||
this.payment(res.data.data);
|
||
// uni.setStorageSync('orderList',this.orderList);
|
||
// uni.setStorageSync('orderInfo',res.data.data);
|
||
// uni.navigateTo({
|
||
// url:`/pagesA/immediatePayment/immediatePayment?allPrice=${this.allPrice}&allNum=${this.allNum}&startTime=${new Date(res.header.Date).getTime()}`
|
||
// })
|
||
} else {
|
||
this.$toolAll.tools.showToast(res.data.msg,'none',3000);
|
||
this.times = 0;
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
},
|
||
payment(info){
|
||
if(info.needPay){
|
||
uni.requestPayment({
|
||
provider: 'wxpay',
|
||
appId:info.payment_params.appId,//appId
|
||
timeStamp: info.payment_params.timeStamp,//时间戳
|
||
nonceStr: info.payment_params.nonceStr,//随机字符串
|
||
package: info.payment_params.package,//package
|
||
signType: info.payment_params.signType,//MD5
|
||
paySign: info.payment_params.sign,//签名
|
||
success:(res)=> {
|
||
this.$requst.post('order/paid',{order_coding:info.coding}).then(res=>{
|
||
if(res.code==0){
|
||
this.suseeceEv(info.coding);
|
||
} else this.$toolAll.tools.showToast(res.msg);
|
||
})
|
||
},
|
||
fail:()=> {
|
||
this.$toolAll.tools.showToast('取消支付');
|
||
setTimeout(()=>{
|
||
uni.navigateTo({
|
||
url:'/pagesA/myOrder/myOrder'
|
||
})
|
||
},2000)
|
||
}
|
||
});
|
||
} else {
|
||
this.$requst.post('order/paid',{order_coding:info.coding}).then(res=>{
|
||
if(res.code==0){
|
||
this.suseeceEv(info.coding);
|
||
} else this.$toolAll.tools.showToast(res.msg);
|
||
})
|
||
}
|
||
},
|
||
suseeceEv(coding){
|
||
uni.removeStorageSync('chooseAddress')
|
||
this.isSuccess = true;
|
||
if(this.orderList[0].cateNum==1 && this.orderList.pin_user_id!=0){
|
||
this.isfen = true;
|
||
this.$requst.post('order/get-group-id',{order_coding:coding}).then(res=>{
|
||
if(res.code==0){
|
||
this.checkGrounpId = res.data.group_id;
|
||
}
|
||
})
|
||
}
|
||
},
|
||
goThere(val){//去这里
|
||
wx.getLocation({//获取当前经纬度
|
||
type: 'wgs84', //返回可以用于wx.openLocation的经纬度,官方提示bug: iOS 6.3.30 type 参数不生效,只会返回 wgs84 类型的坐标信息
|
||
success: function (res) {
|
||
wx.openLocation({//使用微信内置地图查看位置。
|
||
latitude: getApp().globalData.latitude,//要去的纬度-地址
|
||
longitude: getApp().globalData.longitude,//要去的经度-地址
|
||
name: val,
|
||
address: val
|
||
})
|
||
}
|
||
})
|
||
},
|
||
checkAddress(){//默认地址查询
|
||
this.$requst.post('user/address').then(res=>{
|
||
if(res.code==0){
|
||
if(res.data.length!=0){
|
||
res.data.forEach(item=>{
|
||
if(item.is_default==1) {
|
||
this.addressInfo = item;
|
||
} else {
|
||
if(res.data.length==1){
|
||
this.addressInfo = item;
|
||
}
|
||
}
|
||
})
|
||
this.userPphone = this.$toolAll.tools.hideMPhone(this.addressInfo.phone);
|
||
}
|
||
}
|
||
})
|
||
},
|
||
checkexpress(){//查询快递费
|
||
if(this.isExpress) {
|
||
this.$requst.post('common/express-list').then(res=>{
|
||
if(res.code==0){
|
||
if(res.data.length!=0){
|
||
res.data.forEach(item=>{
|
||
if(item.is_default==1){
|
||
this.expressInfo = item;
|
||
this.expressInfo.default_price = this.expressInfo.default_price/100;
|
||
}
|
||
})
|
||
this.totalEv();
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
expressEv(index){//快递自取切换事件
|
||
if(index==0) {
|
||
this.isExpress = true;
|
||
this.checkexpress();
|
||
if(this.addressInfo==''){this.$toolAll.tools.showToast('请完善收件人信息','none',1500);}
|
||
}
|
||
if(index==1) {
|
||
this.isExpress = false;
|
||
this.expressInfo.default_price = 0;
|
||
}
|
||
},
|
||
totalEv(){//合计运算
|
||
if(this.isNei!=3) {
|
||
// 商品订单合计
|
||
this.allPrice = this.zanAllPrice - this.youQuan.youPrice;
|
||
if(this.payType=='coin'){
|
||
this.obtainCoin(this.payFS[0].num);
|
||
}
|
||
} else {
|
||
// 积分订单合计
|
||
this.allPrice = this.zanAllPrice;
|
||
}
|
||
this.loading = true;
|
||
},
|
||
checkOrderDetail(){//查询订单准备信息
|
||
let nsku_list = [];
|
||
this.orderList.forEach(item=>{
|
||
let obj = {
|
||
sku_coding:item.coding,
|
||
num:item.num
|
||
}
|
||
nsku_list.push(obj)
|
||
})
|
||
let parmas = {
|
||
sku_list: nsku_list,
|
||
pick_self: 0
|
||
}
|
||
this.$requst.post('order/prepare-info',parmas).then(res=>{
|
||
if(res.code==0){
|
||
this.obtainCoin(res.data.account.coin);
|
||
if(this.payType=='coin'){
|
||
this.payFS[0].num = res.data.account.coin;
|
||
} else if(this.payType=='wechat'){
|
||
|
||
} else if(this.payType=='hybrid'){
|
||
this.payFS[1].num = res.data.account.coin;
|
||
if(res.data.account.coin==0) {
|
||
this.payFS[1].isActive = false;
|
||
} else {
|
||
setTimeout(()=>{
|
||
this.chooseFS(1);
|
||
},500)
|
||
}
|
||
} else {
|
||
this.payFS[1].num = res.data.account.coin;
|
||
this.payFS[2].num = res.data.account.score;
|
||
}
|
||
} else this.$toolAll.tools.showToast(res.msg);
|
||
})
|
||
},
|
||
checkeList(isJfen){
|
||
this.allPrice = this.allPrice*1;
|
||
this.orderList.forEach(item=>{
|
||
this.allPrice += item.price*item.num;
|
||
this.allNum += item.num;
|
||
})
|
||
if(isJfen==3){// 是积分商品
|
||
this.zanAllPrice = this.allPrice;
|
||
} else {
|
||
this.zanAllPrice = this.$toolAll.tools.addXiaoShu(this.allPrice);
|
||
}
|
||
this.quanEv(0);//查询优惠券列表
|
||
this.totalEv();
|
||
},
|
||
quanEv(index){//调起优惠券弹框事件
|
||
if(this.payType!='coin' && this.payType!='wechat'){
|
||
if(this.payFS[1].isActive){
|
||
// this.$toolAll.tools.showToast('无法使用优惠券减免');
|
||
// this.allPrice = this.$toolAll.tools.addXiaoShu(this.zanAllPrice*1 + this.expressInfo.default_price*1);
|
||
} else {
|
||
if(index==1){
|
||
this.showQuan = true
|
||
}
|
||
this.youQuan.id = 0;
|
||
this.youQuan.youPrice = 0;
|
||
this.allPrice = (this.zanAllPrice*1 - this.expressInfo.default_price*1).toFixed(2);
|
||
this.checkQuan();//查询可用优惠券事件
|
||
}
|
||
}
|
||
},
|
||
checkQuan(){//查询可用优惠券事件
|
||
this.$requst.post('user/get-coupon-list',{status:'normal',page:this.page,size:this.size}).then(res=>{
|
||
if(res.code==0){
|
||
this.quanList = [];
|
||
if(res.data.length!=0){
|
||
res.data.forEach(item=>{
|
||
if(item.type!='taste'){//如果不等于体验券
|
||
let obj = {
|
||
id:item.id,
|
||
youPrice:item.amount/100,
|
||
manPrice:item.condition/100,
|
||
isGrade:0,
|
||
name:item.name,
|
||
startTime:item.begin_at,
|
||
endTime:item.end_at,
|
||
isStatus:false
|
||
}
|
||
this.quanList.push(obj);
|
||
}
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
chooseQuan(index){//选择可用优惠券事件
|
||
if(this.zanAllPrice <= this.quanList[index].manPrice){//如果满减大于合计
|
||
this.$toolAll.tools.showToast('未达到使用条件')
|
||
} else {
|
||
if(this.allPrice==0){
|
||
this.$toolAll.tools.showToast('此订单费用为 0');
|
||
// this.$requst.post('user/get-coin-price',{amount:this.quanList[index].youPrice,get_type:'coin'}).then(res=>{
|
||
// if(res.code==0){
|
||
// this.zf_kqPrice = this.zf_kqPrice - res.data.amount;
|
||
// this.showQuan = false;
|
||
// }
|
||
// })
|
||
} else {
|
||
this.quanList.forEach(item=>{
|
||
item.isStatus = false;
|
||
});
|
||
this.quanList[index].isStatus = true;
|
||
this.showQuan = false;
|
||
this.quanList[index].youPrice = this.$toolAll.tools.addXiaoShu(this.quanList[index].youPrice);
|
||
this.youQuan = this.quanList[index];
|
||
this.allPrice = this.zanAllPrice*1 - this.quanList[index].youPrice*1 + this.expressInfo.default_price*1;//合计 = 暂存合计 - 选中的优惠券
|
||
this.allPrice = this.allPrice.toFixed(2)*1;
|
||
}
|
||
}
|
||
},
|
||
goCoupon(){//去领取优惠券
|
||
this.showQuan = false;
|
||
uni.navigateTo({
|
||
url:'/pagesA/coupon/coupon'
|
||
})
|
||
},
|
||
focusEv(){//获取焦点
|
||
this.isFocus = true;
|
||
},
|
||
blurEv(){//失去焦点
|
||
this.isFocus = false;
|
||
},
|
||
goDetail(){//去订单列表
|
||
uni.navigateTo({
|
||
url:'/pagesA/myOrder/myOrder'
|
||
})
|
||
},
|
||
goShop(){//逛一逛
|
||
let nurl = '';
|
||
if(this.isNei==3) nurl = '/pagesA/pointsMall/pointsMall';
|
||
else nurl = '/pages/tabbar/shop/shop';
|
||
uni.reLaunch({
|
||
url:nurl
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
page {
|
||
background-color: #F5F5F5;
|
||
}
|
||
</style>
|