@@ -35,7 +35,8 @@ | |||||
"pages/paySnapshoot/paySnapshoot", | "pages/paySnapshoot/paySnapshoot", | ||||
"pages/refund/refund", | "pages/refund/refund", | ||||
"pages/serviceWebView/serviceWebView", | "pages/serviceWebView/serviceWebView", | ||||
"pages/liveLsit/liveLsit" | |||||
"pages/liveLsit/liveLsit", | |||||
"pages/coupon/confirmation/confirmation" | |||||
], | ], | ||||
"window": { | "window": { | ||||
"backgroundTextStyle": "light", | "backgroundTextStyle": "light", | ||||
@@ -168,6 +168,9 @@ button { | |||||
background-color: #ffffff; | background-color: #ffffff; | ||||
border-radius: 10rpx; | border-radius: 10rpx; | ||||
overflow: hidden; | overflow: hidden; | ||||
left: 5%; | |||||
position: absolute; | |||||
z-index: 1000; | |||||
} | } | ||||
.fuwu{ | .fuwu{ | ||||
/* font-size: 28rpx; */ | /* font-size: 28rpx; */ | ||||
@@ -0,0 +1,674 @@ | |||||
const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px' | |||||
var config = require("../../../config/config.js"); | |||||
var app = getApp(); | |||||
const Http = require("../../../utils/HttpBasics"); | |||||
const util = require("../../../utils/util"); | |||||
const imgurl = require("../../../utils/imgurl"); | |||||
Page({ | |||||
data: { | |||||
couponIds:"", | |||||
couponChannelId:"", | |||||
showPage:false, | |||||
data:{}, | |||||
spuIdObj:{}, | |||||
priceAndStockObj:{} | |||||
}, | |||||
onLoad: function (options) { | |||||
console.log(options); | |||||
tt.showLoading({ | |||||
title: "加载中..." | |||||
}); | |||||
let that = this | |||||
if (app.globalData.token){ | |||||
if (options && (options.couponChannelId || options.couponIds)) { | |||||
if (options.couponIds) { | |||||
this.setData({ | |||||
couponIds: options.couponIds | |||||
}) | |||||
that.getDetail(options.couponIds, 'notendclock'); | |||||
} else { | |||||
that.getDetail(options.couponChannelId, 'notendclock'); | |||||
that.getSupId(options.couponChannelId) | |||||
} | |||||
} | |||||
}else{ | |||||
app.tokenCallback = token => { | |||||
if (options && (options.couponChannelId || options.couponIds)) { | |||||
if (options.couponIds) { | |||||
this.setData({ | |||||
couponIds: options.couponIds | |||||
}) | |||||
that.getDetail(options.couponIds, 'notendclock'); | |||||
} else { | |||||
that.getDetail(options.couponChannelId, 'notendclock'); | |||||
// that.getSupId(options.couponChannelId) | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
getSupId(id) { | |||||
Http.get({ | |||||
url: config.api.getSpuid, | |||||
data: { id: id } | |||||
}).then(res => { | |||||
if (res.data) { | |||||
this.setData({ | |||||
spuIdObj: res.data | |||||
}) | |||||
} | |||||
}).catch(err => { | |||||
// tt.showToast({ | |||||
// title: err.message, | |||||
// icon: 'none', | |||||
// duration: 2000, | |||||
// mask: false | |||||
// }); | |||||
}) | |||||
}, | |||||
getCouponPriceAndStock(couponChannelId) {//获取券价格与库存 | |||||
Http.get({ | |||||
url: config.api.couponPriceAndStock, | |||||
data: { | |||||
couponChannelId | |||||
} | |||||
}).then(res => { | |||||
let tempBoj = JSON.parse(res.data) | |||||
console.log(tempBoj, "$"); | |||||
this.setData({ | |||||
priceAndStockObj: tempBoj | |||||
}) | |||||
}) | |||||
}, | |||||
getDetail: function (couponChannelId, flag) { | |||||
let that = this; | |||||
let data = {}; | |||||
that.getCouponPriceAndStock(couponChannelId);//获取券价格和库存 | |||||
if (that.data.couponIds) { | |||||
data.couponId = couponChannelId | |||||
} else { | |||||
data.couponChannelId = couponChannelId | |||||
} | |||||
var parmer = { | |||||
url: config.api.newCouponDetail, | |||||
data: data | |||||
}; | |||||
Http.get(parmer).then(res => { | |||||
that.setData({ | |||||
couponId: res.data.couponId | |||||
}) | |||||
/** | |||||
* activityStatus==0 活动未开始 | |||||
* activityStatus==1 活动已开始 | |||||
* flag == endclock 说明倒计时已经结束 | |||||
*/ | |||||
if (res.data.endTime && res.data.beginTime) { | |||||
that.setData({ | |||||
begin_time: res.data.beginTime, | |||||
end_time: res.data.endTime, | |||||
activityStatus: res.data.actStatus ? res.data.actStatus : '' | |||||
}) | |||||
if (res.data.actStatus == 0 && flag != 'endclock') { | |||||
that.countdown(res.data.beginTime); | |||||
} else if (res.data.actStatus != 0 && flag != 'endclock') { | |||||
that.countdown(res.data.endTime); | |||||
} else { | |||||
clearInterval(that.data.setInterval) | |||||
} | |||||
if (res.data.actStatus == 0) { | |||||
var beginTime = util.formatTime(res.data.beginTime, "yyyy-MM-dd hh:mm:ss"); | |||||
if (util.timechuo(beginTime).indexOf('-') == 0) { | |||||
that.setData({ | |||||
beginTime: "活动已结束", | |||||
}); | |||||
} else { | |||||
that.setData({ | |||||
beginTime: util.timechuo(beginTime) | |||||
}); | |||||
} | |||||
} else { | |||||
var endTime = util.formatTime(res.data.endTime, "yyyy-MM-dd hh:mm:ss"); | |||||
if (util.timechuo(endTime).indexOf('-') == 0) { | |||||
that.setData({ | |||||
endtime: "活动已结束", | |||||
}); | |||||
} else { | |||||
that.setData({ | |||||
endtime: util.timechuo(endTime) | |||||
}); | |||||
} | |||||
} | |||||
} | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
data: res.data, | |||||
}); | |||||
if (res.data.type == 10) { | |||||
that.setData({ | |||||
salePriceStr: res.data.salePriceStr, | |||||
pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"), | |||||
pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"), | |||||
priceStr: res.data.priceStr, | |||||
tailPriceStr: res.data.tailPriceStr, | |||||
origPriceStr: res.data.origPriceStr | |||||
}) | |||||
} | |||||
if (res.data.validType == 1) { | |||||
that.setData({ | |||||
validStartDate: util.formatTime(res.data.validStartDate, "yyyy-MM-dd"), | |||||
validEndDate: util.formatTime(res.data.validEndDate, "yyyy-MM-dd"), | |||||
pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"), | |||||
pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"), | |||||
}); | |||||
} else { | |||||
if (res.data.validDays) { | |||||
that.setData({ | |||||
validDays: res.data.validDays | |||||
}); | |||||
} | |||||
} | |||||
if (res.data.itemGroup) { | |||||
let tempObj = this.data.data | |||||
tempObj.itemGroup = JSON.parse(tempObj.itemGroup) | |||||
this.setData({ | |||||
data: tempObj | |||||
}) | |||||
console.log(this.data.data, "data"); | |||||
} | |||||
if (res.data.productAttrs && res.data.skuAttrs) { | |||||
let tempObj = this.data.data | |||||
tempObj.productAttrs = JSON.parse(tempObj.productAttrs) | |||||
tempObj.skuAttrs = JSON.parse(tempObj.skuAttrs) | |||||
tempObj.productAttrs.map(item => { | |||||
if (item.key == "Notification") { | |||||
if (item.data != '') { | |||||
tempObj.curLsit = JSON.parse(item.data) | |||||
} | |||||
} | |||||
if (item.key == "bring_out_meal") { | |||||
tempObj.besides = item.data | |||||
} | |||||
if (item.key == "free_pack") { | |||||
tempObj.pack = item.data | |||||
} | |||||
if (item.key == "superimposed_discounts") { | |||||
tempObj.superimposed_discounts = item.data | |||||
} | |||||
if (item.key == "private_room") { | |||||
tempObj.private_room = item.data | |||||
} | |||||
if (item.key == "rec_person_num_max") { | |||||
tempObj.rec_person_num_max = item.data | |||||
} | |||||
if (item.key == 'Description') { | |||||
tempObj.Description = JSON.parse(item.data) | |||||
} | |||||
if (item.key == "can_no_use_date") { | |||||
tempObj.can_no_use_date = JSON.parse(item.data) | |||||
} | |||||
}) | |||||
tempObj.skuAttrs.map(item => { | |||||
if (item.key == "commodity") { | |||||
if (item.data != '') { | |||||
tempObj.itemGroup = JSON.parse(item.data) | |||||
} | |||||
} | |||||
}) | |||||
this.setData({ | |||||
data: tempObj | |||||
}) | |||||
console.log(this.data.data, "data"); | |||||
} | |||||
}).catch(err => { | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
}, | |||||
/** | |||||
* 支付订单更新 | |||||
*/ | |||||
payOrderUpdate: (orderId, payOrderId, status, reason, type, _this, composeOrderType) => { | |||||
let that = this; | |||||
// 支付成功 | |||||
Http.post({ | |||||
url: config.api.payOrderUpdate, | |||||
data: { | |||||
payOrderId: payOrderId, | |||||
composeOrderId: orderId, | |||||
status: status, | |||||
reason: reason | |||||
} | |||||
}) | |||||
.then(res => { | |||||
tt.hideLoading() | |||||
// 有价券 | |||||
if (!type && type != 'free') { | |||||
tt.navigateTo({ | |||||
url: `/pages/order/detail/index?orderId=${orderId | |||||
}` | |||||
}); | |||||
} else if (type == 'free') { | |||||
tt.navigateTo({ | |||||
url: `/pages/order/detail/index?orderId=${orderId | |||||
}` | |||||
}); | |||||
} | |||||
}) | |||||
.catch(err => { | |||||
console.log(err); | |||||
if (!type) { | |||||
setTimeout(function () { | |||||
_this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this, composeOrderType); | |||||
}, 2000) | |||||
} | |||||
}) | |||||
}, | |||||
/** | |||||
* 发起支付 | |||||
*/ | |||||
orderFunc(discount) { | |||||
if(this.data.showbutton)return; | |||||
let that = this; | |||||
tt.showLoading({ | |||||
title: "加载中..." | |||||
}); | |||||
that.setData({ | |||||
showbutton: true, | |||||
}) | |||||
Http.get({ | |||||
url: config.api.checkUserStatus, | |||||
data: { | |||||
token: app.globalData.token | |||||
} | |||||
}).then(res => { | |||||
Http.get({ | |||||
url: config.api.checkPhoneStatus, | |||||
data: {} | |||||
}).then(res => { | |||||
if ((!tt.canIUse('createOrder')) || that.data.data.type == 50 || that.data.priceAndStockObj.salePrice == 0) { | |||||
//积分券和免费券 | |||||
// 发起砍价 | |||||
if (discount == 'discount') { | |||||
var data = { | |||||
couponChannelId: "" + that.data.couponChannelId, | |||||
couponId: "" + that.data.couponId, | |||||
formId: "" + that.data.formId, | |||||
press: true | |||||
} | |||||
} else if (discount == 'discount1') { | |||||
var data = { | |||||
couponChannelId: "" + that.data.couponChannelId, | |||||
couponId: "" + that.data.couponId, | |||||
formId: "" + that.data.formId, | |||||
press: false | |||||
} | |||||
} else if (that.data.couponChannelId == null) { | |||||
var data = { | |||||
couponId: "" + that.data.couponId, | |||||
formId: "" + that.data.formId, | |||||
}; | |||||
} else { | |||||
var data = { | |||||
couponChannelId: "" + that.data.couponChannelId, | |||||
couponId: "" + that.data.couponId, | |||||
formId: "" + that.data.formId, | |||||
} | |||||
} | |||||
console.log(data, "data") | |||||
let url = "" | |||||
let tempObj; | |||||
let tempArr = [] | |||||
if (that.data.data.type == 12) { | |||||
url = config.api.couponPackageSave | |||||
tempObj = { | |||||
signleOrder: { | |||||
couponChannelId: "" + that.data.couponChannelId, | |||||
couponId: "" + that.data.couponId, | |||||
formId: "" + that.data.formId, | |||||
}, | |||||
count: "1" | |||||
} | |||||
tempArr.push(tempObj) | |||||
} else { | |||||
url = config.api.orderSave | |||||
} | |||||
/** | |||||
* orderSave 下单 | |||||
*/ | |||||
Http.post({ | |||||
url: url, | |||||
data: that.data.data.type == 12 ? JSON.stringify(tempArr) : data | |||||
}).then(res => { | |||||
if (discount != 'discount') { | |||||
if (typeof (res) != "undefined") { | |||||
let orderId = "" + res.data.mainOrderId; | |||||
that.setData({ | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
}); | |||||
if (res.data.payment > 0) { | |||||
// 支付金额不为0 | |||||
/** | |||||
* 支付订单创建 | |||||
*/ | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
} | |||||
}).then(res => { | |||||
var payOrderId = "" + res.data.outOrderNo; | |||||
tt.hideLoading(); | |||||
tt.pay({ | |||||
service: 5, | |||||
orderInfo: { | |||||
order_id: res.data.orderId, | |||||
order_token: res.data.token, | |||||
}, | |||||
success: res => { | |||||
tt.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | |||||
if (res.code === 0) { | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that, that.data.composeOrderType); | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
/** | |||||
* 用户支付成功以后跳转到券包列表 | |||||
*/ | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != 5 && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
else if (res.code === 1) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付超时', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 2) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付失败', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 3) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付关闭', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 4) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付取消', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 9) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '订单状态开发者自行获取', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} | |||||
}, | |||||
fail: res => { | |||||
tt.hideLoading(); | |||||
/** | |||||
* 支付失败,需要更新订单的状态 | |||||
*/ | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that, that.data.composeOrderType); | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
return; | |||||
}, | |||||
complete: res => { } | |||||
}); | |||||
/// End payment -------- | |||||
}) | |||||
.catch(err => { | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
} else { | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free', that, that.data.composeOrderType); | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != "5" && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
} else { | |||||
if (res) { | |||||
tt.navigateTo({ | |||||
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.mainOrderId}&composeOrderType=${res.data.composeOrderType}`, | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} else { | |||||
//有价券 | |||||
console.log(tt.canIUse('createOrder'), "是否支持2.0js-api"); | |||||
if (tt.canIUse('createOrder')) { | |||||
//支持 支付2.0 js-api | |||||
let tempCallbackData = {} | |||||
tempCallbackData[that.data.data.couponChannel.ttSpuId] = that.data.data.couponChannel.id | |||||
let options = { | |||||
callbackData: tempCallbackData, | |||||
goodsList: [ | |||||
{ | |||||
quantity: 1, // 购买数量 必填 | |||||
price: that.data.priceAndStockObj.salePrice, // 商品价格 必填 | |||||
goodsName: that.data.data.title, // 商品名称 必填 | |||||
goodsPhoto: that.data.data.coverImg, // 商品图片链接 必填 | |||||
goodsId: that.data.data.couponChannel.ttSpuId, // 商品ID 必填 | |||||
goodsType: 1, // 商品类型 必填 | |||||
goodsLabels: ['过期退', '随时退', '免预约'], // 商品标签 非必填 | |||||
dateRule: '', // 使用规则 非必填 | |||||
}, | |||||
], | |||||
payment: { | |||||
totalAmount: that.data.priceAndStockObj.salePrice, // 订单总价 必填 | |||||
}, | |||||
success: res => { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
}) | |||||
const { orderId, outOrderNo } = res; | |||||
that.setData({ orderId, outOrderNo }); | |||||
that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that, ''); | |||||
}, | |||||
fail: res => { | |||||
const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; | |||||
if (errLogId) { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
}) | |||||
console.log('预下单失败', errNo, errMsg, errLogId); | |||||
} | |||||
if (orderId || outOrderNo) { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
}) | |||||
console.log('支付失败', errNo, errMsg, orderId, outOrderNo); | |||||
console.log(that.payOrderUpdate, "payOrderUpdate"); | |||||
that.payOrderUpdate(outOrderNo,outOrderNo,2,'','fail') | |||||
} | |||||
}, | |||||
} | |||||
console.log(options, "options"); | |||||
tt.createOrder(options) | |||||
} else { | |||||
//不支持 支付2.0 js -api | |||||
} | |||||
} | |||||
}).catch(err => { | |||||
tt.hideLoading() | |||||
that.setData({ | |||||
showbutton: false, | |||||
}) | |||||
if (err.code == 2011) { | |||||
tt.showToast({ | |||||
title: "商户信息没找到", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 2013) { | |||||
tt.showToast({ | |||||
title: "商户信息禁用", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3000) { | |||||
tt.showToast({ | |||||
title: "库存不足", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3001) { | |||||
tt.showToast({ | |||||
title: "您已超过限购", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3002) { | |||||
tt.showToast({ | |||||
title: "订单失败", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3003) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3004) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 4003) { | |||||
tt.showToast({ | |||||
title: "卡券已作废", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3012) { | |||||
that.getUnPaidOrder(that.data.couponId); | |||||
} else if (err.code == 11005) { | |||||
/** | |||||
* 将值传到用户手机号授权的页面 | |||||
* | |||||
*/ | |||||
tt.redirectTo({ | |||||
url: "/pages/getphoneInfo/index?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else if (err.code == 11006) { | |||||
// 用户手机已加密 | |||||
tt.redirectTo({ | |||||
url: "/pages/phoneinput/phoneinput?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else { | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}) | |||||
}).catch(err => { | |||||
console.log(err) | |||||
if (err.code == 11004) { | |||||
tt.redirectTo({ | |||||
url: `/pages/getuserinfo/index?fromflag=coupondetail&couponChannelIdflag=${that.data.couponChannelId}`, | |||||
}) | |||||
} else { | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: "none", | |||||
duration: 2500 | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
}) |
@@ -0,0 +1,12 @@ | |||||
{ | |||||
"usingComponents": { | |||||
"navbar": "../../../components/navbar/navbar", | |||||
"store": "../../../components/store/index", | |||||
"c-coupons": "../../../components/coupons/index", | |||||
"phoen":"../../../components/getPhoen/getPhoen" | |||||
}, | |||||
"navigationBarTitleText": "确认订单", | |||||
"backgroundColor":"#f4f4f4", | |||||
"navigationBarBackgroundColor": "#f4f4f4", | |||||
"navigationBarTextStyle": "black" | |||||
} |
@@ -0,0 +1,19 @@ | |||||
<view class="commodityBox"> | |||||
<view class="commodityImgBox"> | |||||
<image class="commodityImg" src="{{data.coverImg}}"></image> | |||||
</view> | |||||
<view class="contentBox"> | |||||
<view class="topBox"> | |||||
<view class="title">{{data.title}}</view> | |||||
<view class="unit">¥{{data.salePriceStr}}</view> | |||||
</view> | |||||
<view class="subhead"> {{data.subTitle}}</view> | |||||
</view> | |||||
<view class="app-border-topX"> | |||||
<view class="actually"> 实付 </view> | |||||
<view class="payZ">¥</view> | |||||
<view class="price">{{data.salePriceStr}}</view> | |||||
<view class="buyX" bindtap="orderFunc">提交订单</view> | |||||
</view> | |||||
</view> |
@@ -0,0 +1,92 @@ | |||||
.commodityBox{ | |||||
background-color: #fff; | |||||
width: 96%; | |||||
border-radius: 12rpx; | |||||
overflow: hidden; | |||||
margin: 10rpx auto; | |||||
} | |||||
.commodityImgBox{ | |||||
width: 100rpx; | |||||
height: 100rpx; | |||||
overflow: hidden; | |||||
float: left; | |||||
margin: 20rpx; | |||||
border-radius: 8rpx; | |||||
} | |||||
.commodityImg{ | |||||
width: 100%; | |||||
height: 100%; | |||||
} | |||||
.contentBox{ | |||||
width: 560rpx; | |||||
float: left; | |||||
height: 100rpx; | |||||
margin-top: 20rpx; | |||||
} | |||||
.topBox{ | |||||
overflow: hidden; | |||||
} | |||||
.title{ | |||||
height: 60rpx; | |||||
font-size: 26rpx; | |||||
width: 490rpx; | |||||
float: left; | |||||
text-overflow: ellipsis; | |||||
display: -webkit-box; | |||||
-webkit-box-orient: vertical; | |||||
-webkit-line-clamp: 2; /* 这里是超出几行省略 */ | |||||
overflow: hidden; | |||||
} | |||||
.unit{ | |||||
float: right; | |||||
font-size: 24rpx; | |||||
} | |||||
.subhead{ | |||||
margin-top: 4rpx; | |||||
color: #a6a6a6; | |||||
font-size: 20rpx; | |||||
} | |||||
.app-border-topX{ | |||||
width: 100%; | |||||
height: 120rpx; | |||||
background-color: #fff; | |||||
overflow: hidden; | |||||
position: fixed; | |||||
left: 0; | |||||
bottom: 0; | |||||
} | |||||
.actually{ | |||||
margin-left: 10%; | |||||
font-size: 24rpx; | |||||
color: #a6a6a6; | |||||
line-height: 120rpx; | |||||
float: left; | |||||
} | |||||
.payZ{ | |||||
margin-left: 6rpx; | |||||
font-size: 20rpx; | |||||
color: #d5af67; | |||||
line-height: 126rpx; | |||||
float: left; | |||||
} | |||||
.price{ | |||||
font-size: 26rpx; | |||||
color: #d5af67; | |||||
line-height: 120rpx; | |||||
float: left; | |||||
} | |||||
.buyX{ | |||||
float: right; | |||||
background: linear-gradient(270deg, #DDAB5A, #B8832D); | |||||
/* width: 80rpx; */ | |||||
color: #fff; | |||||
font-size: 28rpx; | |||||
border-radius: 60rpx; | |||||
margin: 30rpx 40rpx; | |||||
padding: 10rpx 20rpx; | |||||
} |
@@ -6,7 +6,7 @@ const util = require("../../../utils/util"); | |||||
const imgurl = require("../../../utils/imgurl"); | const imgurl = require("../../../utils/imgurl"); | ||||
Page({ | Page({ | ||||
data: { | data: { | ||||
priceAndStockObj:{},//存放价格和库存 | |||||
priceAndStockObj: {},//存放价格和库存 | |||||
isGetUser: true,//判断是否授权抖音 | isGetUser: true,//判断是否授权抖音 | ||||
mouldType: 0, | mouldType: 0, | ||||
navigationBarHeight, | navigationBarHeight, | ||||
@@ -95,7 +95,7 @@ Page({ | |||||
page: 1,//查询商户优惠券page | page: 1,//查询商户优惠券page | ||||
idList: [], | idList: [], | ||||
showBox: false,//手机号授权框 | showBox: false,//手机号授权框 | ||||
spuIdObj:{} | |||||
spuIdObj: {} | |||||
}, | }, | ||||
/** | /** | ||||
@@ -429,7 +429,7 @@ Page({ | |||||
url: config.api.checkPhoneStatus, | url: config.api.checkPhoneStatus, | ||||
}).then(res => { | }).then(res => { | ||||
tt.showLoading(); | tt.showLoading(); | ||||
if (e.currentTarget.dataset.type == 51 || e.currentTarget.dataset.type == 50) { | |||||
if (e.currentTarget.dataset.type == 51 || e.currentTarget.dataset.type == 50) { | |||||
tt.navigateTo({ | tt.navigateTo({ | ||||
url: '/pages/integralmall/payIntegcoupondetail/index?couponChannelId=' + that.data.couponChannelId + '&couponId=' + that.data.couponId, | url: '/pages/integralmall/payIntegcoupondetail/index?couponChannelId=' + that.data.couponChannelId + '&couponId=' + that.data.couponId, | ||||
}) | }) | ||||
@@ -480,18 +480,18 @@ Page({ | |||||
} | } | ||||
}).catch(err => { | }).catch(err => { | ||||
app.globalData.type = '' | app.globalData.type = '' | ||||
app.globalData.skipUrl="" | |||||
app.globalData.skipUrl = "" | |||||
app.globalData.skip = 'navigateBack' | app.globalData.skip = 'navigateBack' | ||||
if(app.globalData.ifCongPh==1){ | |||||
if (app.globalData.ifCongPh == 1) { | |||||
tt.navigateTo({ | tt.navigateTo({ | ||||
url: '/pages/getPhone/getPhone?skipUrl=1', | |||||
url: '/pages/getPhone/getPhone?skipUrl=1', | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
this.setData({ | this.setData({ | ||||
showBox: true | showBox: true | ||||
}) | }) | ||||
} | } | ||||
}) | }) | ||||
}).catch(err => { | }).catch(err => { | ||||
app.globalData.type = '' | app.globalData.type = '' | ||||
@@ -568,7 +568,8 @@ Page({ | |||||
* 获取用户信息 | * 获取用户信息 | ||||
*/ | */ | ||||
onLoad(options) { | onLoad(options) { | ||||
console.log(options); | |||||
this.setData({ | this.setData({ | ||||
mouldType: app.globalData.mouldType, | mouldType: app.globalData.mouldType, | ||||
}) | }) | ||||
@@ -632,17 +633,17 @@ Page({ | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
getSupId(id){ | |||||
getSupId(id) { | |||||
Http.get({ | Http.get({ | ||||
url:config.api.getSpuid, | |||||
data:{id:id} | |||||
}).then(res=>{ | |||||
if(res.data){ | |||||
url: config.api.getSpuid, | |||||
data: { id: id } | |||||
}).then(res => { | |||||
if (res.data) { | |||||
this.setData({ | this.setData({ | ||||
spuIdObj:res.data | |||||
spuIdObj: res.data | |||||
}) | }) | ||||
} | } | ||||
}).catch(err=>{ | |||||
}).catch(err => { | |||||
// tt.showToast({ | // tt.showToast({ | ||||
// title: err.message, | // title: err.message, | ||||
// icon: 'none', | // icon: 'none', | ||||
@@ -652,27 +653,27 @@ Page({ | |||||
}) | }) | ||||
}, | }, | ||||
getCouponPriceAndStock(couponChannelId){//获取券价格与库存 | |||||
getCouponPriceAndStock(couponChannelId) {//获取券价格与库存 | |||||
Http.get({ | Http.get({ | ||||
url:config.api.couponPriceAndStock, | |||||
data:{ | |||||
url: config.api.couponPriceAndStock, | |||||
data: { | |||||
couponChannelId | couponChannelId | ||||
} | } | ||||
}).then(res=>{ | |||||
}).then(res => { | |||||
let tempBoj = JSON.parse(res.data) | let tempBoj = JSON.parse(res.data) | ||||
console.log(tempBoj,"$"); | |||||
console.log(tempBoj, "$"); | |||||
this.setData({ | this.setData({ | ||||
priceAndStockObj:tempBoj | |||||
priceAndStockObj: tempBoj | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
getCouponMerchant(couponChannelId){//获取适用门店 | |||||
getCouponMerchant(couponChannelId) {//获取适用门店 | |||||
Http.get({ | Http.get({ | ||||
url:config.api.couponMerchant, | |||||
data:{ | |||||
couponChannelId:couponChannelId | |||||
url: config.api.couponMerchant, | |||||
data: { | |||||
couponChannelId: couponChannelId | |||||
} | } | ||||
}).then(res=>{ | |||||
}).then(res => { | |||||
if (res.data && res.data.length) { | if (res.data && res.data.length) { | ||||
let merchantVoList = res.data | let merchantVoList = res.data | ||||
let idList = [] | let idList = [] | ||||
@@ -838,14 +839,62 @@ Page({ | |||||
} | } | ||||
} | } | ||||
if(res.data.itemGroup){ | |||||
if (res.data.itemGroup) { | |||||
let tempObj = this.data.data | let tempObj = this.data.data | ||||
tempObj.itemGroup = JSON.parse(tempObj.itemGroup) | tempObj.itemGroup = JSON.parse(tempObj.itemGroup) | ||||
this.setData({ | this.setData({ | ||||
data:tempObj | |||||
data: tempObj | |||||
}) | |||||
console.log(this.data.data, "data"); | |||||
} | |||||
if (res.data.productAttrs && res.data.skuAttrs) { | |||||
let tempObj = this.data.data | |||||
tempObj.productAttrs = JSON.parse(tempObj.productAttrs) | |||||
tempObj.skuAttrs = JSON.parse(tempObj.skuAttrs) | |||||
tempObj.productAttrs.map(item => { | |||||
if (item.key == "Notification") { | |||||
if (item.data != '') { | |||||
tempObj.curLsit = JSON.parse(item.data) | |||||
} | |||||
} | |||||
if (item.key == "bring_out_meal") { | |||||
tempObj.besides = item.data | |||||
} | |||||
if (item.key == "free_pack") { | |||||
tempObj.pack = item.data | |||||
} | |||||
if (item.key == "superimposed_discounts") { | |||||
tempObj.superimposed_discounts = item.data | |||||
} | |||||
if (item.key == "private_room") { | |||||
tempObj.private_room = item.data | |||||
} | |||||
if (item.key == "rec_person_num_max") { | |||||
tempObj.rec_person_num_max = item.data | |||||
} | |||||
if (item.key == 'Description') { | |||||
tempObj.Description = JSON.parse(item.data) | |||||
} | |||||
if (item.key == "can_no_use_date") { | |||||
tempObj.can_no_use_date = JSON.parse(item.data) | |||||
} | |||||
}) | |||||
tempObj.skuAttrs.map(item => { | |||||
if (item.key == "commodity") { | |||||
if (item.data != '') { | |||||
tempObj.itemGroup = JSON.parse(item.data) | |||||
} | |||||
} | |||||
}) | |||||
this.setData({ | |||||
data: tempObj | |||||
}) | }) | ||||
console.log(this.data.data,"data"); | |||||
console.log(this.data.data, "data"); | |||||
} | } | ||||
}).catch(err => { | }).catch(err => { | ||||
tt.showToast({ | tt.showToast({ | ||||
@@ -940,14 +989,26 @@ Page({ | |||||
}); | }); | ||||
} | } | ||||
}) | }) | ||||
}, | |||||
}, | |||||
// 券包支付 | // 券包支付 | ||||
/** | /** | ||||
* 发起支付 | * 发起支付 | ||||
*/ | */ | ||||
orderFunc(discount) { | orderFunc(discount) { | ||||
tt.navigateTo({ | |||||
url: `/pages/coupon/confirmation/confirmation?couponChannelId=${this.data.couponChannelId}`, | |||||
}) | |||||
return | |||||
let that = this; | let that = this; | ||||
tt.showLoading({ | |||||
title: "加载中..." | |||||
}); | |||||
that.setData({ | |||||
showbutton: true, | |||||
showbutton1: true | |||||
}) | |||||
Http.get({ | Http.get({ | ||||
url: config.api.checkUserStatus, | url: config.api.checkUserStatus, | ||||
data: { | data: { | ||||
@@ -958,7 +1019,9 @@ Page({ | |||||
url: config.api.checkPhoneStatus, | url: config.api.checkPhoneStatus, | ||||
data: {} | data: {} | ||||
}).then(res => { | }).then(res => { | ||||
console.log(tt.canIUse('createOrder'),"版本号" ); | |||||
if ((!tt.canIUse('createOrder')) || that.data.data.type == 50 || that.data.priceAndStockObj.salePrice == 0) { | |||||
//积分券和免费券 | |||||
// 发起砍价 | // 发起砍价 | ||||
if (discount == 'discount') { | if (discount == 'discount') { | ||||
var data = { | var data = { | ||||
@@ -1007,245 +1070,310 @@ Page({ | |||||
/** | /** | ||||
* orderSave 下单 | * orderSave 下单 | ||||
*/ | */ | ||||
return Http.post({ | |||||
Http.post({ | |||||
url: url, | url: url, | ||||
data: that.data.data.type == 12 ? JSON.stringify(tempArr) : data | data: that.data.data.type == 12 ? JSON.stringify(tempArr) : data | ||||
}); | |||||
}).catch(err => { | |||||
tt.hideLoading() | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | |||||
if (err.code == 2011) { | |||||
tt.showToast({ | |||||
title: "商户信息没找到", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 2013) { | |||||
tt.showToast({ | |||||
title: "商户信息禁用", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3000) { | |||||
tt.showToast({ | |||||
title: "库存不足", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3001) { | |||||
tt.showToast({ | |||||
title: "您已超过限购", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3002) { | |||||
tt.showToast({ | |||||
title: "订单失败", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3003) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3004) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 4003) { | |||||
tt.showToast({ | |||||
title: "卡券已作废", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3012) { | |||||
that.getUnPaidOrder(that.data.couponId); | |||||
} else if (err.code == 11005) { | |||||
/** | |||||
* 将值传到用户手机号授权的页面 | |||||
* | |||||
*/ | |||||
tt.redirectTo({ | |||||
url: "/pages/getphoneInfo/index?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else if (err.code == 11006) { | |||||
// 用户手机已加密 | |||||
tt.redirectTo({ | |||||
url: "/pages/phoneinput/phoneinput?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else { | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}).then(res => { | |||||
if (discount != 'discount') { | |||||
if (typeof (res) != "undefined") { | |||||
let orderId = "" + res.data.mainOrderId; | |||||
that.setData({ | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
}); | |||||
if (res.data.payment > 0) { | |||||
// 支付金额不为0 | |||||
/** | |||||
* 支付订单创建 | |||||
*/ | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
} | |||||
}).then(res => { | |||||
var payOrderId = "" + res.data.outOrderNo; | |||||
tt.hideLoading(); | |||||
tt.pay({ | |||||
service: 5, | |||||
orderInfo: { | |||||
order_id: res.data.orderId, | |||||
order_token: res.data.token, | |||||
}, | |||||
success: res => { | |||||
tt.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | |||||
if (res.code === 0) { | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that, that.data.composeOrderType); | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
/** | |||||
* 用户支付成功以后跳转到券包列表 | |||||
*/ | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != 5 && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
}).then(res => { | |||||
if (discount != 'discount') { | |||||
if (typeof (res) != "undefined") { | |||||
let orderId = "" + res.data.mainOrderId; | |||||
that.setData({ | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
}); | |||||
if (res.data.payment > 0) { | |||||
// 支付金额不为0 | |||||
/** | |||||
* 支付订单创建 | |||||
*/ | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId, | |||||
composeOrderType: res.data.composeOrderType | |||||
} | |||||
}).then(res => { | |||||
var payOrderId = "" + res.data.outOrderNo; | |||||
tt.hideLoading(); | |||||
tt.pay({ | |||||
service: 5, | |||||
orderInfo: { | |||||
order_id: res.data.orderId, | |||||
order_token: res.data.token, | |||||
}, | |||||
success: res => { | |||||
tt.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | |||||
if (res.code === 0) { | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that, that.data.composeOrderType); | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
/** | |||||
* 用户支付成功以后跳转到券包列表 | |||||
*/ | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != 5 && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | } | ||||
} | } | ||||
} | |||||
else if (res.code === 1) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付超时', // 内容 | |||||
icon: "none" | |||||
}); | |||||
else if (res.code === 1) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付超时', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 2) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付失败', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 3) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付关闭', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 4) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
} else if (res.code === 2) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付失败', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 3) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付关闭', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 4) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付取消', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 9) { | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '订单状态开发者自行获取', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} | |||||
}, | |||||
fail: res => { | |||||
tt.hideLoading(); | tt.hideLoading(); | ||||
tt.showToast({ | |||||
title: '支付取消', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 9) { | |||||
/** | |||||
* 支付失败,需要更新订单的状态 | |||||
*/ | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that, that.data.composeOrderType); | |||||
that.setData({ | that.setData({ | ||||
showbutton: false | showbutton: false | ||||
}) | }) | ||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '订单状态开发者自行获取', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} | |||||
}, | |||||
fail: res => { | |||||
tt.hideLoading(); | |||||
/** | |||||
* 支付失败,需要更新订单的状态 | |||||
*/ | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that, that.data.composeOrderType); | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
return; | |||||
}, | |||||
complete: res => { } | |||||
}); | |||||
/// End payment -------- | |||||
}) | |||||
.catch(err => { | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
return; | |||||
}, | |||||
complete: res => { } | |||||
}); | }); | ||||
/// End payment -------- | |||||
}) | }) | ||||
} else { | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free', that, that.data.composeOrderType); | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
.catch(err => { | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
} else { | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free', that, that.data.composeOrderType); | |||||
if (that.data.cardType == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != "5" && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
} else { | |||||
if (res) { | |||||
tt.navigateTo({ | |||||
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.mainOrderId}&composeOrderType=${res.data.composeOrderType}`, | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} else { | |||||
//有价券 | |||||
console.log(tt.canIUse('createOrder'), "是否支持2.0js-api"); | |||||
if (tt.canIUse('createOrder')) { | |||||
//支持 支付2.0 js-api | |||||
let tempCallbackData = {} | |||||
tempCallbackData[that.data.data.couponChannel.ttSpuId] = that.data.data.couponChannel.id | |||||
let options = { | |||||
callbackData: tempCallbackData, | |||||
goodsList: [ | |||||
{ | |||||
quantity: 1, // 购买数量 必填 | |||||
price: that.data.priceAndStockObj.salePrice, // 商品价格 必填 | |||||
goodsName: that.data.data.title, // 商品名称 必填 | |||||
goodsPhoto: that.data.data.coverImg, // 商品图片链接 必填 | |||||
goodsId: that.data.data.couponChannel.ttSpuId, // 商品ID 必填 | |||||
goodsType: 1, // 商品类型 必填 | |||||
goodsLabels: ['过期退', '随时退', '免预约'], // 商品标签 非必填 | |||||
dateRule: '', // 使用规则 非必填 | |||||
}, | |||||
], | |||||
payment: { | |||||
totalAmount: that.data.priceAndStockObj.salePrice, // 订单总价 必填 | |||||
}, | |||||
success: res => { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | |||||
const { orderId, outOrderNo } = res; | |||||
that.setData({ orderId, outOrderNo }); | |||||
that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that, ''); | |||||
}, | |||||
fail: res => { | |||||
const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; | |||||
if (errLogId) { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | }) | ||||
} else if (that.data.data.type != "5" && that.data.cardType != 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
console.log('预下单失败', errNo, errMsg, errLogId); | |||||
} | |||||
if (orderId || outOrderNo) { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | }) | ||||
console.log('支付失败', errNo, errMsg, orderId, outOrderNo); | |||||
console.log(that.payOrderUpdate, "payOrderUpdate"); | |||||
that.payOrderUpdate(outOrderNo,outOrderNo,2,'','fail') | |||||
} | } | ||||
} | |||||
}, | |||||
} | } | ||||
console.log(options, "options"); | |||||
tt.createOrder(options) | |||||
} else { | } else { | ||||
if (res) { | |||||
tt.navigateTo({ | |||||
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.mainOrderId}&composeOrderType=${res.data.composeOrderType}`, | |||||
}) | |||||
} | |||||
//不支持 支付2.0 js -api | |||||
} | } | ||||
} | |||||
}).catch(err => { | |||||
tt.hideLoading() | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | }) | ||||
if (err.code == 2011) { | |||||
tt.showToast({ | |||||
title: "商户信息没找到", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 2013) { | |||||
tt.showToast({ | |||||
title: "商户信息禁用", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3000) { | |||||
tt.showToast({ | |||||
title: "库存不足", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3001) { | |||||
tt.showToast({ | |||||
title: "您已超过限购", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3002) { | |||||
tt.showToast({ | |||||
title: "订单失败", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3003) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3004) { | |||||
tt.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 4003) { | |||||
tt.showToast({ | |||||
title: "卡券已作废", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3012) { | |||||
that.getUnPaidOrder(that.data.couponId); | |||||
} else if (err.code == 11005) { | |||||
/** | |||||
* 将值传到用户手机号授权的页面 | |||||
* | |||||
*/ | |||||
tt.redirectTo({ | |||||
url: "/pages/getphoneInfo/index?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else if (err.code == 11006) { | |||||
// 用户手机已加密 | |||||
tt.redirectTo({ | |||||
url: "/pages/phoneinput/phoneinput?couponChannelId=" + | |||||
that.data.couponChannelId | |||||
}); | |||||
} else { | |||||
tt.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}) | |||||
}).catch(err => { | }).catch(err => { | ||||
console.log(err) | console.log(err) | ||||
if (err.code == 11004) { | if (err.code == 11004) { | ||||
@@ -1328,7 +1456,7 @@ Page({ | |||||
}) | }) | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.ifGetUser()//判断是否授权抖音 | this.ifGetUser()//判断是否授权抖音 | ||||
this.setData({ | this.setData({ | ||||
@@ -1394,23 +1522,23 @@ Page({ | |||||
}, | }, | ||||
// onShareAppMessage: function(e) { | |||||
// console.log("onShareAppMessage", e); | |||||
// return { | |||||
// channel: 'video', | |||||
// title: "测试小程序分享", | |||||
// desc: "这是默认的分享文案,用户可以直接发送,也可以在发布器内修改", | |||||
// extra: { | |||||
// spu_id:"7091460633887279111" //开发者在抖音开放平台设置的商品id | |||||
// }, | |||||
// success: function(e) { | |||||
// console.log("分享成功"); | |||||
// }, | |||||
// fail: function(e) { | |||||
// console.log(e,"分享成功失败") | |||||
// } | |||||
// }; | |||||
// }, | |||||
// onShareAppMessage: function(e) { | |||||
// console.log("onShareAppMessage", e); | |||||
// return { | |||||
// channel: 'video', | |||||
// title: "测试小程序分享", | |||||
// desc: "这是默认的分享文案,用户可以直接发送,也可以在发布器内修改", | |||||
// extra: { | |||||
// spu_id:"7091460633887279111" //开发者在抖音开放平台设置的商品id | |||||
// }, | |||||
// success: function(e) { | |||||
// console.log("分享成功"); | |||||
// }, | |||||
// fail: function(e) { | |||||
// console.log(e,"分享成功失败") | |||||
// } | |||||
// }; | |||||
// }, | |||||
// 下拉刷新 | // 下拉刷新 | ||||
onPullDownRefresh: function () { | onPullDownRefresh: function () { | ||||
@@ -88,12 +88,13 @@ | |||||
<text class='throgh'>{{priceAndStockObj.price/100}}元</text> | <text class='throgh'>{{priceAndStockObj.price/100}}元</text> | ||||
</view> | </view> | ||||
<view class="sellBox"> {{'已售'+(priceAndStockObj.inventory-priceAndStockObj.remainInventory)+'|'+'库存'+priceAndStockObj.remainInventory}}</view> | |||||
</view> | </view> | ||||
<view class="subTitleBox"> | |||||
<!-- <view class="subTitleBox"> | |||||
<text class="subTitle">{{data.subTitle}}</text> | <text class="subTitle">{{data.subTitle}}</text> | ||||
<view class="sellBox"> {{'已售'+(priceAndStockObj.inventory-priceAndStockObj.remainInventory)+'|'+'库存'+priceAndStockObj.remainInventory}}</view> | |||||
</view> | |||||
</view> --> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -107,7 +108,8 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<vieW class="groupTitleBox"> | <vieW class="groupTitleBox"> | ||||
<view class="groupTitle" tt:if="{{data.itemGroup.length>0}}">团购详情</view> | |||||
<view class="groupTitle" tt:if="{{data.itemGroup.length>0}}">餐饮搭配</view> | |||||
<view class="groupTitle" tt:if="{{data.Description.length>0}}">商品描述</view> | |||||
</vieW> | </vieW> | ||||
<view class="groupTextBox" tt:if="{{data.itemGroup.length>0}}" tt:for="{{data.itemGroup}}"> | <view class="groupTextBox" tt:if="{{data.itemGroup.length>0}}" tt:for="{{data.itemGroup}}"> | ||||
@@ -121,6 +123,12 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="groupTextBox" tt:if="{{data.Description.length>0}}" tt:for="{{data.Description}}"> | |||||
<view class="groupTitleS">{{item}}</view> | |||||
</view> | |||||
<!-- 适用门店 --> | <!-- 适用门店 --> | ||||
<store merchantVoList="{{merchantVoList}}" tt:if="{{data.type!=12}}"></store> | <store merchantVoList="{{merchantVoList}}" tt:if="{{data.type!=12}}"></store> | ||||
@@ -129,15 +137,37 @@ | |||||
<view class="timeText">有效期</view> | <view class="timeText">有效期</view> | ||||
<view class="Hchild">{{validStartDate}}至{{validEndDate}}</view> | <view class="Hchild">{{validStartDate}}至{{validEndDate}}</view> | ||||
<view class="timeText">可用时间</view> | <view class="timeText">可用时间</view> | ||||
<view class="Hchild">•商家营业时间可用</view> | |||||
<view class="Hchild">• 商家营业时间内到店使用</view> | |||||
<view class="Hchild" tt:if="{{data.can_no_use_date.weekend}}">• 周末不支持使用</view> | |||||
<view class="Hchild" tt:if="{{data.can_no_use_date.HolidaysFlag}}">• 节假日(元旦、春节、清明、劳动节、端午节、中秋节、国庆节、情人节、圣诞节)不支持使用</view> | |||||
<view class="timeText">购买限制</view> | |||||
<view class="Hchild">• 每个用户限购{{data.useLimitQuantity}}单</view> | |||||
<view class="timeText">预约消费</view> | <view class="timeText">预约消费</view> | ||||
<view class="Hchild">• 不需预约,高峰时段可能需要排队</view> | |||||
<view class="Hchild">• 无需预约,高峰时段可能等位</view> | |||||
<view class="timeText" tt:if="{{data.rec_person_num_max}}">适用人数</view> | |||||
<view class="Hchild" tt:if="{{data.rec_person_num_max}}">• 该团购劵最多{{data.rec_person_num_max}}人使用</view> | |||||
<view class="timeText">温馨提示</view> | |||||
<view class="Hchild">• 团购券不支持配送或外卖</view> | <view class="Hchild">• 团购券不支持配送或外卖</view> | ||||
<view class="timeText">使用规则</view> | |||||
<view class="Hchild" tt:if="{{data.pack}}">• 该团购商品{{data.pack=='false'?'不支持':'支持'}}打包</view> | |||||
<view class="Hchild" tt:if="{{data.besides}}">• {{data.besides=="false"?'不可以':'可以'}}外带餐食</view> | |||||
<view class="Hchild" tt:if="{{data.superimposed_discounts}}">• {{data.superimposed_discounts=="false"?'不可以':'可以'}}享受店内其他优惠</view> | |||||
<view class="Hchild" tt:if="{{data.private_room}}">• {{data.private_room=="false"?'不提供':'提供'}}包间</view> | |||||
<view class="notesH">使用规则</view> | |||||
<text tt:if="{{curHtml==''}}" class="notesText">{{data.remark}}</text> | <text tt:if="{{curHtml==''}}" class="notesText">{{data.remark}}</text> | ||||
<view tt:if="{{curHtml!=''}}"> | <view tt:if="{{curHtml!=''}}"> | ||||
<rich-text nodes="{{curHtml}}"></rich-text> | <rich-text nodes="{{curHtml}}"></rich-text> | ||||
</view> | </view> | ||||
<view tt:if="{{data.curLsit}}" tt:for="{{data.curLsit}}" tt:key="{{index}}"> | |||||
<view class="timeText" tt:if="{{item.title!=''}}">{{item.title}}</view> | |||||
<text class="Hchild">{{item.content}}</text> | |||||
</view> | |||||
</view> | </view> | ||||
<view tt:if="{{couponList.length!=0}}" | <view tt:if="{{couponList.length!=0}}" | ||||
@@ -355,7 +355,7 @@ button::after { | |||||
height: 25px; | height: 25px; | ||||
line-height: 25px; | line-height: 25px; | ||||
width: 92%; | width: 92%; | ||||
margin: 10rpx auto; | |||||
margin: 10rpx auto 0 auto; | |||||
} | } | ||||
.fl { | .fl { | ||||
float: left; | float: left; | ||||
@@ -1120,7 +1120,7 @@ checkbox-group, radio-group { | |||||
color: #333; | color: #333; | ||||
letter-spacing: 0; | letter-spacing: 0; | ||||
font-size: 28rpx; | font-size: 28rpx; | ||||
height: 50rpx; | |||||
/* height: 50rpx; */ | |||||
line-height: 50rpx; | line-height: 50rpx; | ||||
width: 90%; | width: 90%; | ||||
margin: 0 auto; | margin: 0 auto; | ||||
@@ -2,7 +2,7 @@ | |||||
<!-- <navbar back home text="我的券包" background='#fff' color="#000"></navbar> | <!-- <navbar back home text="我的券包" background='#fff' color="#000"></navbar> | ||||
<view style="height:{{navigationBarHeight}} "></view> --> | <view style="height:{{navigationBarHeight}} "></view> --> | ||||
<view class="boatBoxf" style="top:{{navigationBarHeight}}"> | |||||
<view class="boatBoxf" > | |||||
<view class="boatBox"> | <view class="boatBox"> | ||||
<view class="boatItemBox" tt:for="{{boatLsit}}" tt:key="index" bindtap="setBoatFlag" data-index="{{index}}"> | <view class="boatItemBox" tt:for="{{boatLsit}}" tt:key="index" bindtap="setBoatFlag" data-index="{{index}}"> | ||||
<view class="{{boatFlag==item.value? 'boatTitleA':'boatTitle'}}">{{item.name}}</view> | <view class="{{boatFlag==item.value? 'boatTitleA':'boatTitle'}}">{{item.name}}</view> | ||||
@@ -150,6 +150,11 @@ Page({ | |||||
checkuserstatus(options) { | checkuserstatus(options) { | ||||
let that = this; | let that = this; | ||||
if(options && options.couponChannelId&&options.type=='orderAffirm'){ | |||||
tt.redirectTo({ | |||||
url:`/pages/coupon/confirmation/confirmation?couponChannelId=${options.couponChannelId}` | |||||
}) | |||||
} | |||||
if(options && options.couponChannelId && !options.spellGroup && app.globalData.type != 'sd'){ | if(options && options.couponChannelId && !options.spellGroup && app.globalData.type != 'sd'){ | ||||
if (options.cuserId) { | if (options.cuserId) { | ||||
tt.redirectTo({ | tt.redirectTo({ | ||||
@@ -10,9 +10,10 @@ Page({ | |||||
* 页面的初始数据 | * 页面的初始数据 | ||||
*/ | */ | ||||
data: { | data: { | ||||
payOrderNo:"",//评价订单id | |||||
evaluateFlag:false,//控制评价显隐藏 | |||||
serviceUrl:'',//客服外部链接 | |||||
outOrderNo:'',//支付2.0继续支付id | |||||
payOrderNo: "",//评价订单id | |||||
evaluateFlag: false,//控制评价显隐藏 | |||||
serviceUrl: '',//客服外部链接 | |||||
dynamicRq: "", | dynamicRq: "", | ||||
expiredSeconds: 0, | expiredSeconds: 0, | ||||
showhieRq: false, | showhieRq: false, | ||||
@@ -90,13 +91,13 @@ Page({ | |||||
}, | }, | ||||
}); | }); | ||||
}, | }, | ||||
refund(){//退款 | |||||
refund() {//退款 | |||||
Http.post({ | Http.post({ | ||||
url:config.api.refund, | |||||
data:{ | |||||
orderId:this.data.order.id | |||||
url: config.api.refund, | |||||
data: { | |||||
orderId: this.data.order.id | |||||
} | } | ||||
}).then(res=>{ | |||||
}).then(res => { | |||||
tt.navigateTo({ | tt.navigateTo({ | ||||
url: `/pages/refund/refund?id=${this.data.order.id}`, | url: `/pages/refund/refund?id=${this.data.order.id}`, | ||||
success: (res) => { | success: (res) => { | ||||
@@ -106,7 +107,7 @@ Page({ | |||||
}, | }, | ||||
}); | }); | ||||
}).catch(err=>{ | |||||
}).catch(err => { | |||||
tt.showToast({ | tt.showToast({ | ||||
title: err.message ? err.message : err.data, // 内容 | title: err.message ? err.message : err.data, // 内容 | ||||
icon: "none" | icon: "none" | ||||
@@ -115,14 +116,14 @@ Page({ | |||||
}, | }, | ||||
goRefund(e) { | goRefund(e) { | ||||
let this_ = this | let this_ = this | ||||
if(this_.data.order.couponOrderStatus==0){ | |||||
if (this_.data.order.couponOrderStatus == 0) { | |||||
tt.showModal({ | tt.showModal({ | ||||
title: "申请退款", | title: "申请退款", | ||||
content: "提交申请退款", | content: "提交申请退款", | ||||
confirmText: "确定", | confirmText: "确定", | ||||
success(res) { | success(res) { | ||||
if (res.confirm) { | if (res.confirm) { | ||||
this_.refund() | this_.refund() | ||||
console.log("confirm, continued"); | console.log("confirm, continued"); | ||||
} else if (res.cancel) { | } else if (res.cancel) { | ||||
@@ -135,7 +136,7 @@ Page({ | |||||
console.log(`showModal调用失败`); | console.log(`showModal调用失败`); | ||||
}, | }, | ||||
}); | }); | ||||
}else if(this_.data.order.couponOrderStatus==3){//退款中 | |||||
} else if (this_.data.order.couponOrderStatus == 3) {//退款中 | |||||
tt.navigateTo({ | tt.navigateTo({ | ||||
url: `/pages/refund/refund?id=${this.data.order.id}`, | url: `/pages/refund/refund?id=${this.data.order.id}`, | ||||
success: (res) => { | success: (res) => { | ||||
@@ -146,7 +147,7 @@ Page({ | |||||
}, | }, | ||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
@@ -170,12 +171,13 @@ Page({ | |||||
tempData.validEndDate = util.formatTime(tempData.validEndDate, "yyyy-MM-dd") | tempData.validEndDate = util.formatTime(tempData.validEndDate, "yyyy-MM-dd") | ||||
that.setData({ | that.setData({ | ||||
outOrderNo:res.data.id, | |||||
order: tempData, | order: tempData, | ||||
showPage: true, | showPage: true, | ||||
createDate: createDate, | createDate: createDate, | ||||
composeOrderType: tempData.composeOrderType, | composeOrderType: tempData.composeOrderType, | ||||
contentType: tempData.contentType ? tempData.contentType : 0, | contentType: tempData.contentType ? tempData.contentType : 0, | ||||
orderFlag: tempData.type == 11 ? true : false ,//判断是不是线上配送 | |||||
orderFlag: tempData.type == 11 ? true : false,//判断是不是线上配送 | |||||
}) | }) | ||||
if (tempData.couponOrderId) { //0未付款 1已支付 2已取消 3退款中 4已退款 | if (tempData.couponOrderId) { //0未付款 1已支付 2已取消 3退款中 4已退款 | ||||
that.setRq() | that.setRq() | ||||
@@ -220,7 +222,7 @@ Page({ | |||||
setInter: setInter | setInter: setInter | ||||
}) | }) | ||||
} | } | ||||
if(tempData.couponOrderStatus&&tempData.couponOrderStatus==1){//核销后 | |||||
if (tempData.couponOrderStatus && tempData.couponOrderStatus == 1) {//核销后 | |||||
that.goIfEvaluate()//判断订单是否能评价 | that.goIfEvaluate()//判断订单是否能评价 | ||||
} | } | ||||
}) | }) | ||||
@@ -327,7 +329,7 @@ Page({ | |||||
couponOrderId: _this.data.order.couponOrderId | couponOrderId: _this.data.order.couponOrderId | ||||
} | } | ||||
}).then(res => { | }).then(res => { | ||||
console.log(res, "res") | |||||
console.log(res, "res") | |||||
_this.setData({ | _this.setData({ | ||||
dynamicRq: res.data.dynamicId, | dynamicRq: res.data.dynamicId, | ||||
expiredSeconds: res.data.expiredSeconds | expiredSeconds: res.data.expiredSeconds | ||||
@@ -338,9 +340,9 @@ Page({ | |||||
TYPE: "couponorder", | TYPE: "couponorder", | ||||
ID: _this.data.dynamicRq | ID: _this.data.dynamicRq | ||||
}) | }) | ||||
if(res.data.expiredSeconds==0){ | |||||
if (res.data.expiredSeconds == 0) { | |||||
//倒计时为零直接显示券码 | //倒计时为零直接显示券码 | ||||
}else{ | |||||
} else { | |||||
let inre = setInterval(() => { | let inre = setInterval(() => { | ||||
if (_this.data.expiredSeconds > 1) { | if (_this.data.expiredSeconds > 1) { | ||||
_this.setData({ | _this.setData({ | ||||
@@ -440,7 +442,7 @@ Page({ | |||||
console.log(err); | console.log(err); | ||||
}) | }) | ||||
}, | }, | ||||
goEvaluate(){ | |||||
goEvaluate() { | |||||
let _this = this | let _this = this | ||||
tt.rateAwemeOrder({ | tt.rateAwemeOrder({ | ||||
orderId: _this.data.payOrderNo, | orderId: _this.data.payOrderNo, | ||||
@@ -450,10 +452,10 @@ Page({ | |||||
tt.navigateBack({ | tt.navigateBack({ | ||||
delta: 1, | delta: 1, | ||||
success: (res) => { | success: (res) => { | ||||
}, | }, | ||||
fail: (res) => { | fail: (res) => { | ||||
}, | }, | ||||
}); | }); | ||||
// 用户已经评价的逻辑 | // 用户已经评价的逻辑 | ||||
@@ -467,28 +469,28 @@ Page({ | |||||
}); | }); | ||||
}, | }, | ||||
goIfEvaluate(){ | |||||
goIfEvaluate() { | |||||
let _this = this | let _this = this | ||||
Http.get({ | Http.get({ | ||||
url:config.api.getchanId, | |||||
data:{ | |||||
id:_this.data.order.couponOrderId | |||||
url: config.api.getchanId, | |||||
data: { | |||||
id: _this.data.order.couponOrderId | |||||
} | } | ||||
}).then(res=>{ | |||||
}).then(res => { | |||||
tt.canRateAwemeOrders({ | tt.canRateAwemeOrders({ | ||||
orderIds: [res.data.payOrderNo], | orderIds: [res.data.payOrderNo], | ||||
success({ result }) { | success({ result }) { | ||||
console.log("result", result); | console.log("result", result); | ||||
_this.setData({ | _this.setData({ | ||||
evaluateFlag:result[0], | |||||
payOrderNo:res.data.payOrderNo | |||||
evaluateFlag: result[0], | |||||
payOrderNo: res.data.payOrderNo | |||||
}) | }) | ||||
}, | }, | ||||
fail(err) { | fail(err) { | ||||
console.log(err); | console.log(err); | ||||
}, | }, | ||||
}); | }); | ||||
}).catch(err=>{ | |||||
}).catch(err => { | |||||
tt.showToast({ | tt.showToast({ | ||||
title: err.message ? err.message : err.data, // 内容 | title: err.message ? err.message : err.data, // 内容 | ||||
icon: "none" | icon: "none" | ||||
@@ -521,7 +523,7 @@ Page({ | |||||
title: "加载中" | title: "加载中" | ||||
}); | }); | ||||
}, | }, | ||||
onShow: function () { | onShow: function () { | ||||
@@ -531,32 +533,32 @@ Page({ | |||||
}) | }) | ||||
that.updetail() | that.updetail() | ||||
}, | }, | ||||
getSeUrl(){//获取客服链接 | |||||
getSeUrl() {//获取客服链接 | |||||
const openId = tt.getStorageSync('openId'); | const openId = tt.getStorageSync('openId'); | ||||
Http.post({ | Http.post({ | ||||
url:config.api.getServiceUrl, | |||||
data:{ | |||||
url: config.api.getServiceUrl, | |||||
data: { | |||||
appid: app.globalData.appId, | appid: app.globalData.appId, | ||||
openid: openId | openid: openId | ||||
} | } | ||||
}).then(res=>{ | |||||
}).then(res => { | |||||
this.setData({ | this.setData({ | ||||
serviceUrl:res.data?res.data:'' | |||||
serviceUrl: res.data ? res.data : '' | |||||
}) | }) | ||||
if(res.data){ | |||||
if (res.data) { | |||||
tt.setStorageSync('serviceData', res.data); | tt.setStorageSync('serviceData', res.data); | ||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
goWebView(){ | |||||
goWebView() { | |||||
let _this = this | let _this = this | ||||
tt.navigateTo({ | tt.navigateTo({ | ||||
url: `/pages/serviceWebView/serviceWebView`, | url: `/pages/serviceWebView/serviceWebView`, | ||||
success: (res) => { | success: (res) => { | ||||
}, | }, | ||||
fail: (res) => { | fail: (res) => { | ||||
}, | }, | ||||
}); | }); | ||||
}, | }, | ||||
@@ -589,6 +591,7 @@ Page({ | |||||
*/ | */ | ||||
orderFunc(e) { | orderFunc(e) { | ||||
var that = this; | var that = this; | ||||
const orderId = "" + that.data.orderId; | |||||
that.setData({ | that.setData({ | ||||
showButton: true | showButton: true | ||||
}) | }) | ||||
@@ -596,134 +599,170 @@ Page({ | |||||
title: "加载中..." | title: "加载中..." | ||||
}); | }); | ||||
const orderId = "" + that.data.orderId; | |||||
if (that.data.order.payment > 0) { | |||||
// 支付金额不为0 | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId, | |||||
composeOrderType: that.data.composeOrderType | |||||
} | |||||
}).then(res => { | |||||
var payOrderId = "" + res.data.outOrderNo; | |||||
tt.hideLoading(); | |||||
tt.pay({ | |||||
service: 5, | |||||
orderInfo: { | |||||
order_id: res.data.orderId, | |||||
order_token: res.data.token, | |||||
}, | |||||
success: res => { | |||||
tt.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | |||||
if (res.code == 0) { | |||||
setTimeout(function () { | |||||
tt.hideLoading() | |||||
}, 5000) | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); // 支付成功 | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
if (that.data.order.type == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.order.type != 5) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} else if (res.code === 1) { | |||||
that.setData({ | |||||
showButton: false | |||||
if (!tt.canIUse('createOrder')) {//兼容不支持支付2.0 js-api | |||||
if (that.data.order.payment > 0) { | |||||
// 支付金额不为0 | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId, | |||||
composeOrderType: that.data.composeOrderType | |||||
} | |||||
}).then(res => { | |||||
var payOrderId = "" + res.data.outOrderNo; | |||||
tt.hideLoading(); | |||||
tt.pay({ | |||||
service: 5, | |||||
orderInfo: { | |||||
order_id: res.data.orderId, | |||||
order_token: res.data.token, | |||||
}, | |||||
success: res => { | |||||
tt.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | }) | ||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付超时', // 内容 | |||||
icon: "none" | |||||
}); | |||||
if (res.code == 0) { | |||||
setTimeout(function () { | |||||
tt.hideLoading() | |||||
}, 5000) | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); // 支付成功 | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
if (that.data.order.type == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.order.type != 5) { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} else if (res.code === 1) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付超时', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 2) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付失败', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 2) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付失败', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 3) { | |||||
} else if (res.code === 3) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付关闭', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 4) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付取消', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 9) { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '订单状态开发者自行获取', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} | |||||
}, | |||||
fail: res => { | |||||
that.setData({ | that.setData({ | ||||
showButton: false | showButton: false | ||||
}) | }) | ||||
tt.hideLoading(); | |||||
tt.showToast({ | |||||
title: '支付关闭', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 4) { | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); | |||||
return; | |||||
}, | |||||
}); | |||||
}).catch(err => { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.showModal({ | |||||
title: "抱歉", | |||||
content: err.message, | |||||
showCancel: false | |||||
}) | |||||
}); | |||||
} else { | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free') // 支付成功 | |||||
if (that.data.order.type == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.order.type != "5") { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
tt.showToast({ | |||||
title: "支付成功", | |||||
duration: 2000, | |||||
image: imgurl.success.url, | |||||
}); | |||||
} | |||||
}else{//支持 支付2.0 js-api | |||||
const outOrderNo = that.data.outOrderNo | |||||
console.log(outOrderNo,"outOrderNo"); | |||||
tt.continueToPay({ | |||||
outOrderNo: outOrderNo, // 外部订单号 2个订单号必填一个 | |||||
success: res => { | |||||
const { orderId, outOrderNo } = res; | |||||
console.log('success res', res); | |||||
console.log('orderId', orderId, 'outOrderNo', outOrderNo); | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.hideLoading(); | |||||
that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that); // 支付成功 | |||||
}, | |||||
fail: res => { | |||||
const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; | |||||
if(errLogId){ | |||||
console.log('查询订单信息失败',errNo, errMsg, errLogId); | |||||
that.setData({ | that.setData({ | ||||
showButton: false | showButton: false | ||||
}) | }) | ||||
tt.hideLoading(); | tt.hideLoading(); | ||||
tt.showToast({ | |||||
title: '支付取消', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} else if (res.code === 9) { | |||||
} | |||||
if( orderId || outOrderNo){ | |||||
console.log('支付失败',errNo, errMsg , orderId, outOrderNo); | |||||
that.payOrderUpdate(outOrderNo, outOrderNo, 2, '', 'fail', that); | |||||
that.setData({ | that.setData({ | ||||
showButton: false | showButton: false | ||||
}) | }) | ||||
tt.hideLoading(); | tt.hideLoading(); | ||||
tt.showToast({ | |||||
title: '订单状态开发者自行获取', // 内容 | |||||
icon: "none" | |||||
}); | |||||
} | |||||
}, | |||||
fail: res => { | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); | |||||
return; | |||||
}, | |||||
}); | |||||
}).catch(err => { | |||||
tt.hideLoading(); | |||||
that.setData({ | |||||
showButton: false | |||||
}) | |||||
tt.showModal({ | |||||
title: "抱歉", | |||||
content: err.message, | |||||
showCancel: false | |||||
}) | |||||
}); | |||||
} else { | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free') // 支付成功 | |||||
if (that.data.order.type == 100) { | |||||
tt.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.order.type != "5") { | |||||
tt.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
tt.showToast({ | |||||
title: "支付成功", | |||||
duration: 2000, | |||||
image: imgurl.success.url, | |||||
} | |||||
}, | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
/** | /** | ||||
* 支付订单更新 | * 支付订单更新 | ||||
@@ -37,7 +37,7 @@ | |||||
<image class="infoArrow" src="{{chevronUrl}}" mode='widthFix'></image> | <image class="infoArrow" src="{{chevronUrl}}" mode='widthFix'></image> | ||||
<view class="goRefund" catchtap="goRefund" data-id="{{order.id}}" tt:if="{{order.couponOrderStatus==0||order.couponOrderStatus==3}}">{{order.couponOrderStatus==0?'申请退款':'退款进度'}}</view> | |||||
<view class="goRefund" catchtap="goRefund" data-id="{{order.id}}" tt:if="{{order.payment!=0&&(order.couponOrderStatus==0||order.couponOrderStatus==3)}}">{{order.couponOrderStatus==0?'申请退款':'退款进度'}}</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -1,49 +1,40 @@ | |||||
{ | { | ||||
"setting": { | |||||
"urlCheck": true, | |||||
"es6": true, | |||||
"newFeature": false, | |||||
"postcss": false, | |||||
"mockUpdate": false, | |||||
"minified": false, | |||||
"autoPush": false, | |||||
"scripts": false, | |||||
"mockLogin": false | |||||
}, | |||||
"appid": "ttde7ca8c141425a2301", | |||||
"projectname": "tt富茂C", | |||||
"condition": { | |||||
"miniprogram": { | |||||
"current": -1, | |||||
"list": [ | |||||
{ | |||||
"id": 1650610427387, | |||||
"name": "华莱士", | |||||
"pathName": "pages/main/index?type=cd&couponChannelId=123467", | |||||
"query": "couponChannelId=676951389111508992", | |||||
"scene": "990001", | |||||
"launchFrom": "scan", | |||||
"location": "qr_code" | |||||
}, | |||||
{ | |||||
"id": 1649905362371, | |||||
"name": "add", | |||||
"pathName": "pages/liveLsit/liveLsit", | |||||
"query": "", | |||||
"scene": "990001", | |||||
"launchFrom": "scan", | |||||
"location": "qr_code" | |||||
}, | |||||
{ | |||||
"id": 1653894805719, | |||||
"name": "pages/main/index", | |||||
"pathName": "pages/main/index", | |||||
"query": "type=dt&orderId=1111", | |||||
"scene": "990001", | |||||
"launchFrom": "scan", | |||||
"location": "qr_code" | |||||
} | |||||
] | |||||
"setting": { | |||||
"urlCheck": true, | |||||
"es6": true, | |||||
"newFeature": false, | |||||
"postcss": false, | |||||
"mockUpdate": false, | |||||
"minified": false, | |||||
"autoPush": false, | |||||
"scripts": false, | |||||
"mockLogin": false | |||||
}, | |||||
"appid": "ttde7ca8c141425a2301", | |||||
"projectname": "tt富茂C", | |||||
"condition": { | |||||
"miniprogram": { | |||||
"current": 1649905362371, | |||||
"list": [ | |||||
{ | |||||
"id": 1650610427387, | |||||
"name": "华莱士", | |||||
"pathName": "pages/main/index?type=cd&couponChannelId=123467", | |||||
"query": "couponChannelId=676951389111508992", | |||||
"scene": "990001", | |||||
"launchFrom": "scan", | |||||
"location": "qr_code" | |||||
}, | |||||
{ | |||||
"id": 1649905362371, | |||||
"name": "add", | |||||
"pathName": "pages/main/index", | |||||
"query": "couponChannelId=697253188828323840&type=orderAffirm", | |||||
"scene": "990001", | |||||
"launchFrom": "scan", | |||||
"location": "qr_code" | |||||
} | } | ||||
] | |||||
} | } | ||||
} | |||||
} | } |