<template>
    <view class="orderDetails">
        <Navbar :title="$t('pages_order.pay_order.title')" :autoBack="true" :bgColor="bgColor" leftIconSize="18px"
            height="100rpx" :leftIconColor="leftIconColor" :titleStyle="{ color: fontColor }" /><!-- 支付详情 -->
        <view class="content">
            <view class="baseInfo cardBackground_">
                <view class="statusBox">
                    <i></i>
                    <view class="status">{{ $t('pages_order.pay_order.pending_payment') }}</view><!-- 待支付 -->
                </view>
                <view class="info grayBg cardStyle_">
                    <view class="left">
                        <image :src="images" mode="aspectFill" />
                    </view>
                    <view class="right">
                        <view class="detailed">
                            <view class="title">{{ getTitle() }}</view>
                            <view class="date">{{ dataInfo.startTime }}</view>
                            <view class="address">{{ getAddress() }}</view>
                        </view>
                        <view class="price"><text>{{ $t('pages_order.pay_order.price') }}</text>¥{{ dataInfo.payPrice }}
                        </view><!-- 价格 -->
                    </view>
                </view>
            </view>
            <view class="orderInfo">
                <view class="title">{{ $t('pages_order.pay_order.order_info') }}</view><!-- 订单信息 -->
                <view class="details">

                    <uv-cell :border="false" :title="$t('pages_order.pay_order.ticket_quantity')"><!-- 购票数量 -->
                        <template #value>
                            <uv-number-box v-model="num" />
                        </template>
                    </uv-cell>

                    <uv-cell :border="false" :title="$t('pages_order.pay_order.ticket_content')"
                        :value="ticketName" /><!-- 购票内容 -->

                    <uv-cell :border="false" :title="$t('pages_order.pay_order.order_total')"
                        :value="'¥' + (dataInfo.payPrice * num)"></uv-cell><!-- 订单总金额 -->

                    <uv-cell :border="false" :title="$t('pages_order.pay_order.order_status')"
                        :value="orderStatus"></uv-cell><!-- 订单状态 -->

                    <uv-cell :border="false" v-if="dataInfo.type == 0"
                        :title="$t('pages_order.pay_order.invitation_code')"><!-- 邀请码 -->
                        <template #value>
                            <input type="text" style="color: #fff;"
                                :placeholder="$t('pages_order.pay_order.enter_invitation_code')"
                                v-model="code" /><!-- 请输入邀请码 -->
                        </template>
                    </uv-cell>
                </view>

            </view>
            <view class="tips">
                <view class="title">{{ $t('pages_order.pay_order.payment_notice') }}</view><!-- 支付须知 -->
                <view class="details">
                    <uv-parse :content="configList.recharge_instructions"></uv-parse>
                </view>
            </view>
        </view>
        <view style="padding: 65rpx 35rpx;">
            <uv-button :custom-style="customStyle" type="primary" shape="circle" color="#381615" @click="confirmClick"
                :text="$t('pages_order.pay_order.pay_order')"></uv-button><!-- 支付订单 -->
        </view>
    </view>
</template>

<script>
import Navbar from '@/pages/components/Navbar.vue'
import {
    globalMixin
} from '../pages/mixins/globalMixin';

export default {
    mixins: [globalMixin],
    components: {
        Navbar
    },
    data() {
        return {
            orderId: '',
            dataInfo: {},
			detail : {},
            customStyle: {
                color: '#FF5858'
            },
            num: 1,
            code: '',//邀请码
        }
    },
    onLoad(e) {
        this.orderId = e.id
        this.getorderInfo()
    },
    computed: {
        orderStatus() {
            let state = this.dataInfo.state
            const statusKeys = [
                'pages_order.pay_order.status.unpaid',    // 未付款
                'pages_order.pay_order.status.pending',   // 待参加
                'pages_order.pay_order.status.completed', // 已完成
                'pages_order.pay_order.status.cancelled'  // 已取消
            ]
            return this.$t(statusKeys[state] || statusKeys[3])
        },
        ticketName() {
            const typeIndex = this.dataInfo.typePrice || 0
            const typeKeys = [
                'pages_order.pay_order.ticket_types.early_bird',    // 早鸟票
                'pages_order.pay_order.ticket_types.single_ticket', // 单人票
                'pages_order.pay_order.ticket_types.premium_ticket' // 尊享票
            ]
            return this.$t(typeKeys[typeIndex] || typeKeys[0])
        },
        showOrderId() {//0活动 1旅行
            let id = ""
            if (this.dataInfo.type == 0) {
                id = this.dataInfo.activityOrderId
            } else {
                id = this.dataInfo.travelOrderId
            }
            return id
        },
        images() {
            return this.dataInfo.image && this.dataInfo.image.split(',')[0]
        },
    },
    methods: {
        getTitle() {
            if (!this.detail) return ''
            return this.dataInfo.type == 0
                ? this.$ot(this.detail.activity, 'active', 'title')
                : this.$ot(this.detail.travel, 'travel', 'title')
        },
        getAddress() {
            if (!this.detail) return ''
            return this.dataInfo.type == 0
                ? this.$ot(this.detail.activity, 'active', 'address')
                : this.$ot(this.detail.travel, 'travel', 'address')
        },
        getorderInfo() {
            this.$api('orderInfo', { orderId: this.orderId }, res => {
                if (res.code == 200) {
                    this.dataInfo = res.result.orderDetails
                    this.detail = res.result
                }
            })
        },
        confirmClick(typePrice) {
            this.$api('createOrderPay', {
                id: this.orderId,
                num: this.num,
                code: this.code,
            }, res => {
                if (res.code === 200) {
                    uni.requestPaymentWxPay(res)
                        .then(res => {
                            uni.showToast({
                                title: this.$t('pages_order.pay_order.payment_success'), // 支付成功
                                icon: 'none'
                            })

                            setTimeout(uni.switchTab, 800, {
                                url: '/pages/index/cart'
                            })

                        }).catch(n => {
                            setTimeout(uni.navigateBack, 800, -1)
                        })
                }
            })
        }
    }
}
</script>
<style scoped lang="scss">
.orderDetails {
    padding-bottom: 80rpx;
}

.details {
    padding: 50rpx 40rpx;

    /deep/.uv-cell {
        .uv-cell__body {
            padding: 0rpx;
            padding-bottom: 30rpx;
        }

        &:last-child {
            .uv-cell__body {
                padding-bottom: 0rpx;
            }
        }

        .uv-cell__body__content {
            .uv-cell__title-text {
                color: $uni-text-color-grey !important;
                font-size: 28rpx
            }
        }

        .uv-cell__value {
            color: #DCDCDC !important;
            font-size: 28rpx
        }

    }
}

.orderDetails {
    margin-top: 40rpx;

    /deep/.uv-navbar__content__title {
        color: #fff;
    }

    .content {
        padding: 0 35rpx;
        color: #fff;
        padding-top: calc(var(--status-bar-height) + 110rpx);

        .baseInfo {
            .statusBox {
                display: flex;
                align-items: center;
                padding: 33rpx 47rpx 24rpx;

                i {
                    background: url('@/static/image/cart/U-status.png') no-repeat;
                    background-size: 100% 100%;
                    display: block;
                    width: 39rpx;
                    height: 34rpx;
                    margin-right: 15rpx;
                }

                .status {
                    font-size: 32rpx;
                }
            }
        }

        .orderInfo,
        .tips {
            .title {
                font-size: 29rpx;
                padding-bottom: 26rpx;
                margin-top: 36rpx;
            }

            .details {
                background-color: $uni-color-card-background;
                border-radius: 26rpx;
            }
        }

        .tips {
            .details {
                p {
                    color: #CCC;
                    font-size: 25rpx;
                    line-height: 50rpx;
                }
            }
        }
    }
}
</style>