You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
6.8 KiB
249 lines
6.8 KiB
<template>
|
|
<view class="page">
|
|
<!-- 订单状态 -->
|
|
<view class="order-status">
|
|
<view class="status">
|
|
<text class="iconfont icon-zhuyi"></text>
|
|
<text>{{orderDetails.status==0?'待支付':orderDetails.status==1?'待确认':orderDetails.status==2?'待委托':orderDetails.status==3?'已投诉':orderDetails.status==4?'待发货':orderDetails.status==5?'待收货':orderDetails.status==-1?'已取消':''}}</text>
|
|
<!-- <view class="time" v-if="orderDetails.status==0">
|
|
剩余<text>19小时59分钟24秒</text>,请您尽快完成支付
|
|
</view> -->
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<!-- 订单商品 -->
|
|
<view class="order-goods">
|
|
<view class="goods-list">
|
|
<view class="list" v-for="(item,index) in orderInfo" :key="index">
|
|
<view class="sellerInfo">
|
|
<view class="title">{{tool!='buy'?(orderDetails.buyer?orderDetails.buyer.nickname:'-'):(orderDetails.seller?orderDetails.seller.nickname:'-')}}</view>
|
|
<view class="content" style="margin-left:20rpx;">
|
|
<text>{{tool!='buy'?(orderDetails.buyer?orderDetails.buyer.mobile:'-'):(orderDetails.seller?orderDetails.seller.mobile:'-')}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="orderNum">
|
|
<view class="title">订单号:</view>
|
|
<view class="content">
|
|
<text>{{orderDetails.order_sn}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="orderInfo">
|
|
<view class="thumb">
|
|
<image :src="item.goods_image" mode="aspectFill"></image>
|
|
</view>
|
|
<view class="item">
|
|
<view class="title">
|
|
<text class="one-omit">{{item.goods_name}}</text>
|
|
</view>
|
|
<!-- <view class="num-size">
|
|
<text>数量:{{item.num}}</text>
|
|
</view> -->
|
|
<view class="price">
|
|
<text>¥{{item.goods_price}}</text>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
<!-- 订单信息 -->
|
|
<view class="order-info">
|
|
<view class="info-list">
|
|
<view class="list">
|
|
<view class="title">订单提交时间:</view>
|
|
<view class="content">
|
|
<text>{{getTime(orderDetails.createtime)}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="list">
|
|
<view class="title">付款确认时间:</view>
|
|
<view class="content">
|
|
<text>{{orderDetails.pay_time_text}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
</view>
|
|
</view>
|
|
<!-- 订单明细 -->
|
|
<view class="order-details">
|
|
<view class="details-list">
|
|
<view class="list">
|
|
<view class="title">
|
|
<text>商品总额</text>
|
|
</view>
|
|
<view class="price">
|
|
<text>¥{{orderDetails.order_amount}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="list">
|
|
<view class="title">
|
|
<text>实付款</text>
|
|
</view>
|
|
<view class="price">
|
|
<text>¥{{orderDetails.pay_amount}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
<view class="pic">
|
|
<view class="title">
|
|
付款凭证
|
|
</view>
|
|
<image :src="orderDetails.pay_voucher" v-if="orderDetails.pay_voucher" @click="lookPic([orderDetails.pay_voucher])" mode="aspectFit"></image>
|
|
<text v-else>暂无付款凭证</text>
|
|
</view>
|
|
<!-- <view class="btnContainer" v-if="orderDetails.status==0">
|
|
<view class="btnItem" @click="uploadPay">上传凭证</view>
|
|
<view class="btnItem" @click="goPayHandle">去支付</view>
|
|
<view class="btnItem" @click="confirmPay">支付确认</view>
|
|
</view> -->
|
|
<u-upload
|
|
:previewFullImage="false"
|
|
@afterRead="afterRead"
|
|
width="176" height="176"
|
|
style="display: none;"
|
|
ref="uploadPay"
|
|
name="1"
|
|
></u-upload>
|
|
<u-toast ref="uToast"></u-toast>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {getToken} from '@/common/auth.js'
|
|
import {orderDetail,orderPay} from '@/common/api.js'
|
|
export default {
|
|
data() {
|
|
return {
|
|
orderInfo:[],
|
|
warehouse:[],
|
|
tool:'',
|
|
orderDetails:{}
|
|
};
|
|
},
|
|
methods:{
|
|
lookPic(imgArr){
|
|
uni.previewImage({
|
|
// current: imgArr[indez],
|
|
urls: imgArr,
|
|
success: (res) => {
|
|
|
|
}
|
|
});
|
|
},
|
|
|
|
// 新增图片
|
|
async afterRead(event) {
|
|
console.log(event)
|
|
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
|
let lists = [].concat(event.file)
|
|
|
|
for (let i = 0; i < lists.length; i++) {
|
|
const result = await this.uploadFilePromise(lists[i].url)
|
|
this.$refs.uToast.show({
|
|
message:'上传成功'
|
|
})
|
|
if(event.name==1){
|
|
this.getOrderDetails()
|
|
// this.tableData[this.selectedIndex].pay_voucher = JSON.parse(result).data.url;
|
|
}
|
|
}
|
|
|
|
},
|
|
//上传照片
|
|
uploadFilePromise(url) {
|
|
return new Promise((resolve, reject) => {
|
|
let a = uni.uploadFile({
|
|
url: this.baseUrl+'api/common/upload',
|
|
filePath: url,
|
|
name: 'file',
|
|
header:{
|
|
token:getToken()
|
|
},
|
|
formData: {
|
|
},
|
|
success: (res) => {
|
|
|
|
if(JSON.parse(res.data).code==1){
|
|
setTimeout(() => {
|
|
resolve(res.data)
|
|
}, 1000)
|
|
}else{
|
|
uni.$u.toast(JSON.parse(res.data).msg)
|
|
|
|
resolve(res.data)
|
|
}
|
|
},
|
|
fail: (res) => {
|
|
console.log(res,"rrr")
|
|
}
|
|
});
|
|
})
|
|
},
|
|
uploadPay(item,index){
|
|
this.$refs.uploadPay.chooseFile();
|
|
|
|
},
|
|
confirmPay(item){
|
|
if(!this.orderDetails.pay_voucher){
|
|
this.$refs.uToast.show({
|
|
message:'请上传支付凭证'
|
|
})
|
|
return;
|
|
}
|
|
let params={
|
|
pay_voucher:this.orderDetails.pay_voucher,
|
|
id:this.orderDetails.id,
|
|
status:1
|
|
}
|
|
orderPay(params).then(res=>{
|
|
this.getOrderDetails()
|
|
})
|
|
},
|
|
goPayHandle(){
|
|
console.log("999")
|
|
uni.navigateTo({
|
|
url:"/pages/warehouse/pay?num="+this.orderDetails.order_amount+'&id='+this.orderDetails.id
|
|
})
|
|
},
|
|
getOrderDetails(){
|
|
orderDetail({id:this.id,custom: { auth: true }}).then(res=>{
|
|
|
|
this.orderDetails = Object.assign({},this.orderDetails,res.data);
|
|
this.orderInfo = res.data.order_goods
|
|
this.warehouse = res.data.warehouse
|
|
})
|
|
},
|
|
getTime(time){
|
|
// 时间戳
|
|
let timestamp = time
|
|
// 此处时间戳以毫秒为单位
|
|
let date = new Date(parseInt(timestamp) * 1000);
|
|
let Year = date.getFullYear();
|
|
let Moth = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
|
let Day = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
|
|
let Hour = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours());
|
|
let Minute = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
|
|
let Sechond = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
|
|
let GMT = Year + '-' + Moth + '-' + Day + ' '+ Hour +':'+ Minute + ':' + Sechond;
|
|
return GMT
|
|
// console.log(GMT) // 2022-09-07 15:56:07
|
|
}
|
|
},
|
|
onLoad(option) {
|
|
this.tool=option.tool
|
|
this.id = option.id;
|
|
this.getOrderDetails()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import 'OrderDetails.scss';
|
|
</style>
|
|
|