<template>
    <view class="bg">
        <view class="address" >
            <view>
                <u--image width="40rpx" height="40rpx" src="/static/market/icomm_dizhi.png" ></u--image>
            </view>
            <view class="address_text">
                <view class="flex_start">
                    <view v-if="orderDetailData.defaultAddress=='1'" class="mr">默认</view>
                    <!-- <view class="mr1">{{orderDetailData.deliveryAddress}}</view> -->
                </view>
                <view class="address_conter">
                    {{orderDetailData.deliveryAddress}}
                </view>
                <view class="flex_start address_bottom" >
                    <view>{{orderDetailData.consignee}}</view>
                    <view style="margin-left:8rpx">{{orderDetailData.contact}}</view>
                </view>
            </view>
             <view @click="openaddress">
                <u--image width="40rpx" height="40rpx" src="/static/myinfo/btn_right.png" ></u--image>
            </view>
        </view>

        <view class="commodity">
            <view class="commodity_title">厦门海嘉成商城</view>
            <view class="mc_item" v-for="(item,index) in orderDetailData.detailVoList" :key="index">
                <view class="item_swipe">
					<view class="box_img">
						<u--image radius='16rpx' width="180rpx" height="180rpx" :src="item.fileList[0].fileUrl" ></u--image>
					</view>
					<view class="box_text">
						<view class="box_title">
							{{ item.productTitle }}
						</view>
						<view class="box_type">
							已选择 {{item.specsName}}
						</view>
						<view class="box_num">
							<view class="bn_left">
								￥{{item.price}}
							</view>
							<view class="bn_right">
                                {{ 'x' + item.num }}
							</view>
						</view>
					</view>
				</view>
            </view>
            <view style="margin-left: 12px;margin-bottom: 12px;" class="PriceInfo_item">
                <view>备注</view>
                <view @click="openPopup()" style="color: #999999;display: flex;">
                    <view class="beizhu">{{ remark == ''?'备注留言信息':remark }}</view>
                    <u--image width="40rpx" height="40rpx" src="/static/myinfo/btn_right.png" ></u--image>
                </view>
            </view>
        </view>

        

        <view class="PriceInfo">
            <view class="PriceInfo_title">费用明细</view>
            <view class="PriceInfo_item">
                <view>商品总额</view>
                <view>¥ {{orderDetailData.productPrice}}</view>
            </view>
            <view class="PriceInfo_item">
                <view>加工费用</view>
                <view>¥ {{orderDetailData.processPrice}}</view>
            </view>
            <view class="PriceInfo_item">
                <view>包装袋费</view>
                <view>¥ {{orderDetailData.packagePrice}}</view>
            </view>
            <!-- <view class="PriceInfo_item">
                <view>优惠券</view>
                <view>¥ {{item.price}}</view>
            </view> -->
            <view class="PriceInfo_item">
                <view>总价</view>
                <view style="color: #F6514F;font-weight: bold;font-size: 28rpx;">¥ {{orderDetailData.totalPrice}}</view>
            </view>
        </view>
        <u-popup mode="center"  :round="10" :show="popupShow" @close="close" @open="open">
            <view style="width: 700rpx;height: 300rpx;padding: 20rpx;">
                <view>
                    <u-form-item  :labelWidth="labelWidth" label="备注信息"  borderBottom >
                        <u--textarea  v-model="beizhu" placeholder="请输入备注信息" 
                        count  maxlength="200" ></u--textarea>
                    </u-form-item>
                </view>
                <view style="display: flex;
                    justify-content: center;
                    margin-top: 10rpx;">
                    <view @click="submitbeizhu" class="bm_btn2">
                        保存
                    </view>
                </view>
            </view>
		</u-popup>
        <view style="height: 200rpx;">

        </view>

        <view class="btnBox" >
            <view class="bm_btn">
                <view @click="cancelOrder" class="bm_btn1">取消订单</view>
                <view @click="submitOrder" class="bm_btn2">提交订单</view>
            </view>
        </view>
    </view>
</template>
<script>
import {orderDetail,cancelOrderByConfirm,
    confirmOrder,deliveryAddressList,prePayOrder,
    payPaying} from '@/http/api/common.js'
import * as util from '@/pages/util/util.js'
export default {
components: {
},
data() {
    return {
        orderDetailData:{
            deliveryAddress:'',
            deliveryAddressId:'',
            defaultAddress:'',
            consignee:'',
            contact:'',
            detailVoList:[],//订单列表
        },
        beizhu:'',
        remark:'',
        labelWidth:100,
        popupShow:false,
        AddressData:{}
    }
},
async onLoad(e) {
    if (e?.orderId) {
        await this.getOrderDetail(e?.orderId)
    }
},
onShow(){
    let selectAddress = uni.getStorageSync('selectAddress');
    if (selectAddress) {
        selectAddress = JSON.parse(selectAddress)

        this.orderDetailData.deliveryAddress = selectAddress.address
        this.orderDetailData.defaultAddress = selectAddress.defaultAddress
        this.orderDetailData.deliveryAddressId = selectAddress.id
    }
},
methods: {
    async getdeliveryAddressList(){
        let res = await deliveryAddressList()

        if (res.data.code == 200) {
			if (res.data.data) {
				this.AddressData = res.data.data.find(v=>v.defaultAddress == '1')
			}
        }
        
    },
    openPopup() {
        this.popupShow = true
    },
    open() {
        
    },
    submitbeizhu(){
        this.close()
        this.remark = this.beizhu
    },
    close() {
        this.popupShow = false
        // console.log('close');
    },
    async getOrderDetail(id){
        let res = await orderDetail(id)
        if (res.data.code ==200) {
            this.orderDetailData = res.data.data
            
        }
    },
    async cancelOrder(){
        //取消订单
        let res = await cancelOrderByConfirm(this.orderDetailData.id)

        util.toastFunc('取消成功',()=>{
            uni.switchTab({
                url: '/pages/market/market',
            });
        })
    },
    async submitOrder(){
        //提交订单
        let res = await confirmOrder({
            remark:this.remark,
            deliveryAddressId:this.orderDetailData.deliveryAddressId,
        },this.orderDetailData.id)
        if (res.data.code == 200) {
            
            let Payres = await prePayOrder(this.orderDetailData.id)
            let PaymentData = Payres.data.data

            console.log('PaymentData',PaymentData);
            const that = this;
            // 调用微信支付
            uni.requestPayment({
                provider: 'wxpay',
                timeStamp: PaymentData.timeStamp,
                nonceStr: PaymentData.nonceStr,
                package: PaymentData.packageVal,
                signType: PaymentData.signType,
                paySign: PaymentData.paySign,
                appId: PaymentData.appId,
                success(res) {
                    uni.showLoading({
                        title: '确认支付状态中...'
                    });
                    that.ConfirmPaymentStatus()
                    
                },
                fail(err) {
                    console.log('支付失败', err)
                    uni.showToast({
                        icon: 'none',
                        title: '支付失败',
                    })
                }
            })

            
        }
        
    },
    async ConfirmPaymentStatus(){
        //确认支付状态
        let res = await payPaying(this.orderDetailData.id)
        uni.hideLoading()
        if (res.data.code == 200) {
            util.toastFunc('支付成功',()=>{
                uni.switchTab({
                    url: '/pages/market/market',
                });
            })
        }else{
            util.toastFunc(res.data.msg)
        }
        
    },
    openaddress(){
        uni.navigateTo({
             url: '/pages/myinfo/address?selectAddress=1'
        });
    },
    createUuid() {
        function S4() {
            return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
        }
        return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());
    },
}
}
</script>

<style>
.bg{
    width: 750rpx;
    height: 100vh;
    min-height: 1160rpx;
    background: #F1F1F1;
    border-radius: 0rpx 0rpx 0rpx 0rpx;

    display: flex;
    flex-direction: column;
    align-items: center;
}
.address{
    width: 702rpx;
    height: 200rpx;
    background: #FFFFFF;
    border-radius: 16rpx 16rpx 16rpx 16rpx;
    opacity: 1;

    margin-top: 24rpx;

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-evenly;
}
.commodity{
    width: 702rpx;
    height: auto;
    background: #FFFFFF;
    border-radius: 16rpx 16rpx 16rpx 16rpx;
    opacity: 1;
    margin-top: 24rpx;
}
.PriceInfo{
    width: 702rpx;
    height: 400rpx;
    background: #FFFFFF;
    border-radius: 16rpx 16rpx 16rpx 16rpx;
    opacity: 1;
    margin-top: 24rpx;

    display: flex;
	align-items: center;
    justify-content: space-evenly;
    flex-direction: column;
}

.PriceInfo_item{
	display: flex;
	justify-content: space-between;

	width: 654rpx;
	height: 40rpx;
	font-size: 28rpx;
	font-weight: 500;
	color: #666666;
	line-height: 36rpx;
}
.PriceInfo_title{
	display: flex;

	width: 654rpx;
	height: 40rpx;
	font-size: 32rpx;
    font-weight: bold;
    color: #333333;
    line-height: 36rpx;
    margin: 20rpx 0;
}
.btnBox{
    width: 750rpx;
    height: 100rpx;
    background: #FFFFFF;
    border-radius: 0rpx 0rpx 0rpx 0rpx;
    opacity: 1;

    position: fixed;
    z-index: 10088;
    bottom: 0;

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
}

.bm_btn{
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 450rpx;
    height: 72rpx;
    justify-content: space-evenly;
}
.bm_btn1{
    width: 200rpx;
    height: 72rpx;
    background: #EEEEEE;
    border-radius: 60rpx 60rpx 60rpx 60rpx;
    opacity: 1;

    font-size: 28rpx;
    font-weight: 500;
    color: #666;
    line-height: 72rpx;
    text-align: center;
}
.bm_btn2{
    width: 200rpx;
    height: 72rpx;
    background: #46A6FF;
    border-radius: 60rpx 60rpx 60rpx 60rpx;
    opacity: 1;

    font-size: 28rpx;
    font-weight: 500;
    color: #FFFFFF;
    line-height: 72rpx;
    text-align: center;
}


.flex_start{
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.mr{
    width: 64rpx;
    height: 32rpx;
    background: #FF8C33;
    border-radius: 8rpx 8rpx 8rpx 8rpx;
    opacity: 1;

    font-size: 24rpx;
    font-weight: 500;
    color: #FFFFFF;
    text-align: center;
}
.mr1{
    width: 440rpx;
    margin-left: 8rpx;
    font-size: 28rpx;
    font-weight: 500;
    color: #333333;
}
.commodity_title{
    width: 196rpx;
    height: 40rpx;
    font-size: 28rpx;
    font-weight: bold;
    color: #333333;
    line-height: 40rpx;
    padding: 24rpx 0 0 24rpx;
}
.address_text{
    width: 550rpx;
    height: 200rpx;

    display: flex;
    flex-direction: column;
    justify-content: center;

}
.address_conter{
    width: 550rpx;
    height: 45rpx;
    font-size: 32rpx;
    font-weight: bold;
    color: #333333;
    line-height: 45rpx;

    margin-top: 8rpx;

    display: -webkit-box;
    word-break: break-all;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp:1;
}
.address_bottom{
    width: 550rpx;
    height: 40rpx;
    font-size: 28rpx;
    font-weight: bold;
    color: #999999;
    margin-top: 8rpx;
}



.mc_item{
	width: 702rpx;
	height: 244rpx;
	background: #FFFFFF;
	border-radius: 16rpx 16rpx 16rpx 16rpx;
	opacity: 1;
	margin-top: 24rpx;
}
.item_swipe{
	width: 678rpx;
	height: 244rpx;
	background: #FFFFFF;
	border-radius: 16rpx 16rpx 16rpx 16rpx;
	opacity: 1;
	display: flex;
    align-items: center;
    flex-direction: row;
	padding-left: 24rpx;
}

.box_img{
    width: 180rpx;
    height: 180rpx;
    background-color: #999999;
    border-radius: 16rpx;
}
.box_text{
	width: 392rpx;
	height: 200rpx;
	margin-left: 20rpx;

	display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.box_title{
	width: 392rpx;
	height: 40rpx;
	font-size: 28rpx;
	font-weight: bold;
	color: #333333;
	line-height: 40rpx;

	display: -webkit-box;
    word-break: break-all;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp:1;
}
.box_type{
	width: 410rpx;
	height: 48rpx;
	background: #EEEEEE;
	border-radius: 8rpx 8rpx 8rpx 8rpx;
	opacity: 1;

	font-size: 28rpx;
	font-weight: 500;
	color: #999999;
    padding-left: 24rpx;
    line-height: 48rpx;

	display: -webkit-box;
    word-break: break-all;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp:1;
}
.box_num{
	width: 410rpx;
	display: flex;
	justify-content: space-between;
    align-items: center;
}
.bn_left{
	width: 106rpx;
	height: 38rpx;
	font-size: 28rpx;
	font-weight: bold;
	color: #333333;
	line-height: 36rpx;
}
.beizhu{
    max-width: 500rpx;
    display: -webkit-box;
    word-break: break-all;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp:1;
}
</style>
    