238 lines
7.5 KiB
Vue
238 lines
7.5 KiB
Vue
<template>
|
|
<view>
|
|
<view class="w100 bgff h-200 pl-24 pr-34 rows rowsm rowsb relative">
|
|
<view class="rows rowsm rowsl w100">
|
|
<view class="rows rowsm rowsb">
|
|
<view class="rows rowsm">
|
|
<image class="w-52 h-52 mr-20" src="/static/images/01_13wz.png" mode=""></image>
|
|
<view class="rows rowsl">
|
|
<view class="fw-b fs-30 col333 two_overflow">
|
|
{{infor.address}}
|
|
</view>
|
|
<view class="rows fs-26 col333 mt-12">
|
|
<text class="mr-16">{{infor.name}}</text>
|
|
<text>{{infor.mobile}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<image class="w-20 h-20 ml-60" src="/static/images/yjt.png" mode=""></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="w100 rows rowsc mt-20">
|
|
<view class="w-710 bgff br-20 p-all-20">
|
|
<scroll-view scroll-y="true" style="max-height: 450rpx;">
|
|
<view class="rows mb-10 mt-10" v-for="(item,index) in infor.shop" :key="index">
|
|
<image class="w-176 h-176 br-8 mr-28" :src="$tools.oss(item.image)" mode="aspectFill"></image>
|
|
<view class="rows rowsl rowsb">
|
|
<view class="rows rowsb w-430">
|
|
<text class="fs-28 fw-b col333">{{item.shop_name}}</text>
|
|
</view>
|
|
<view class="rows rowsm">
|
|
<text class="fs-24 col666">x{{item.num}}</text>
|
|
</view>
|
|
<text class="fs-28 fw-b mt-42" style="color: #E61818;">¥{{item.price}}</text>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="w100 rows rowsl mt-20" style="border-top: 1rpx solid #f5f5f5;">
|
|
<view class="w100 rows rowsm rowsb mt-20">
|
|
<text class="fs-26">实付金额</text>
|
|
<text class="fs-26">¥{{infor.total_amount}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- <view class="w100 rows rowsc mt-20">
|
|
<view class="w-710 h-92 bgff br-20 rows rowsm rowsb pl-24 pr-20">
|
|
<text class="fs-28">备注</text>
|
|
<text class="fs-28">{{infor.remark?infor.remark:'无'}}</text>
|
|
</view>
|
|
</view> -->
|
|
<view class="rows rowsl rowsm">
|
|
<!-- <view class="w-710 bgff p-all-20 br-20 rows rowsl mt-20" v-if="infor.exNumber&&infor.exCode">
|
|
<view class="w100 fs-28 fw-b">快递信息</view>
|
|
<view class="w100 rows rowsm rowsb mt-20">
|
|
<text class="fs-28 col666">快递名称</text>
|
|
<text class="fs-28">{{infor.exNumber}}</text>
|
|
</view>
|
|
<view class="w100 rows rowsm rowsb mt-20">
|
|
<text class="fs-28 col666">快递单号</text>
|
|
<text class="fs-28">{{infor.exCode}}</text>
|
|
</view>
|
|
</view> -->
|
|
<view class="w-710 bgff p-all-20 br-20 rows rowsl mt-20">
|
|
<view class="w100 fs-28 fw-b">订单信息</view>
|
|
<view class="w100 rows rowsm rowsb mt-20">
|
|
<text class="fs-28 col666">订单编号</text>
|
|
<text class="fs-28">{{infor.order_number}}</text>
|
|
</view>
|
|
<view class="w100 rows rowsm rowsb mt-20">
|
|
<text class="fs-28 col666">订单时间</text>
|
|
<text class="fs-28">{{infor.createtime}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="w100 h-190"></view>
|
|
<view class="w100 rows rowse rowsm bgff h-170 fixed pl-20 pr-20" style="bottom: 0;">
|
|
<view class="w-212 h-72 br-100 bg rows rowsm rowsc fs-28 fw-b ml-20 colfff" v-if="infor.status==0"
|
|
@click="open">
|
|
去支付
|
|
</view>
|
|
<view class="w-212 h-72 br-100 bg rows rowsm rowsc fs-28 fw-b ml-20 colfff" v-if="infor.status==0"
|
|
@click="cancelOrder(infor.id)">
|
|
取消订单
|
|
</view>
|
|
<view class="w-212 h-72 br-100 bg rows rowsm rowsc fs-28 fw-b ml-20 colfff" v-if="infor.status==2"
|
|
@click="deliveryOrder(infor.id)">
|
|
确认收货
|
|
</view>
|
|
</view>
|
|
<uni-popup ref="popup" type="bottom" :is-mask-click="false" :safe-area="false">
|
|
<view class="w100 p-all-24 bgff">
|
|
<text class="fs-30 fw-b">选择支付方式</text>
|
|
<view class="w100 rows rowsm rowsl">
|
|
<view class="w-710 bgff br-20 p-all-24">
|
|
<view class="rows rowsl">
|
|
<view class="w100 rows rowsm rowsb mt-20" v-for="(item,index) in payList" :key="index" @click="selpay(item)">
|
|
<view class="rows rowsm">
|
|
<image class="w-72 h-72 mr-20" :src="item.icon" mode=""></image>
|
|
<text class="fs-28 col333">{{item.name}}</text>
|
|
</view>
|
|
<image class="w-36 h-36 mr-15" :src="item.status?'/static/images/03_qou.png':'/static/images/03_w.png'" mode=""></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="w100 rows rowsm rowsa">
|
|
<view class="w-300 h-80 rowsm rows rowsc col br-100 fs-28" style="border: 2rpx solid #F8222A;" @click="close">
|
|
取消
|
|
</view>
|
|
<view class="w-300 h-80 bg rowsm rows rowsc colfff br-100 fs-28" @click="create">
|
|
确定
|
|
</view>
|
|
</view>
|
|
<view class="w100 h-30"></view>
|
|
</view>
|
|
</uni-popup>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data(){
|
|
return {
|
|
ids:'',
|
|
infor:{},
|
|
payList:[
|
|
{id:1,name:'微信支付',status:true,icon:'/static/images/icon_7wx.png'},
|
|
{id:2,name:'余额支付',status:false,icon:'/static/images/044vef.png'},
|
|
],
|
|
payId:1
|
|
}
|
|
},
|
|
onShow() {this.orderDetails()},
|
|
onLoad(e) {
|
|
this.ids = e.id
|
|
},
|
|
methods:{
|
|
selpay(item){
|
|
this.payId = item.id
|
|
this.payList.forEach(item => {
|
|
item.status = false
|
|
})
|
|
item.status = true
|
|
},
|
|
orderDetails(){
|
|
this.$tools.axiosFromToken("POST","order/orderDetails",{id:this.ids}).then(res => {
|
|
this.infor = res.data
|
|
})
|
|
},
|
|
// 取消订单
|
|
cancelOrder(id){
|
|
let _this = this
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: '确定要取消订单吗?',
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
_this.$tools.axiosFromToken("POST","order/cancelOrder",{id}).then(res => {
|
|
_this.$tools.showtt(res.msg)
|
|
if(res.code!=1) return
|
|
_this.orderDetails()
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
// 确认收货
|
|
deliveryOrder(id){
|
|
let _this = this
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: '确定要确认收货吗?',
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
_this.$tools.axiosFromToken("POST","order/deliveryOrder",{id}).then(res => {
|
|
_this.$tools.showtt(res.msg)
|
|
if(res.code!=1) return
|
|
_this.orderDetails()
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
open(){
|
|
this.$refs['popup'].open()
|
|
},
|
|
close() {
|
|
this.$refs.popup.close()
|
|
},
|
|
create(){
|
|
this.$refs.popup.close()
|
|
let _this = this
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: '确定要支付吗?',
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
_this.$tools.axiosFromToken("POST","pay/shopPay",{order_number:_this.infor.order_number,pay_type:_this.payId}).then(res => {
|
|
if(res.code==1){
|
|
if(_this.payId==1){
|
|
uni.requestPayment({
|
|
timeStamp: res.data.info.timeStamp,
|
|
nonceStr: res.data.info.nonceStr,
|
|
package: res.data.info.package,
|
|
signType: res.data.info.signType,
|
|
paySign: res.data.info.paySign,
|
|
success(res) {
|
|
_this.$tools.showtt('支付成功')
|
|
_this.orderDetails()
|
|
},
|
|
fail(res) {
|
|
_this.$tools.showtt('支付失败')
|
|
}
|
|
})
|
|
}else {
|
|
_this.$tools.showtt(res.msg)
|
|
if (res.code!=1) return
|
|
_this.orderDetails()
|
|
}
|
|
}else{
|
|
_this.$tools.showtt(res.msg)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
page{
|
|
background-color: #F7F8FA;
|
|
padding-bottom: 50rpx;
|
|
}
|
|
</style> |