<template>
  <view class="page-wrapper">
    <!-- 自定义导航栏 -->
    <nav-bar :title="$t('order.orderDetails')"></nav-bar>

    <!-- 订单信息 -->
    <view class="order-info">
      <view class="order-status">{{ sysStore.orderStatusMap[order.orderStatus] }}</view>
      <!-- 三种订单类型商品信息 -->
      <ProductInfo v-if="order.orderType === 'order'" size="large" :data="productList[0]" :type="order.orderType" />
      <ProductInfo v-if="order.orderType === 'vip'" size="large" :data="order.vipBuyConfigEntity" :type="order.orderType" />
      <ProductInfo v-if="order.orderType === 'abroadVip'" size="large" :data="order.ebookvipBuyConfig" :type="order.orderType" />
      <!-- 三种订单类型商品信息 end -->
      
      <wd-divider class="p-0!" />

      <!-- 付款信息 -->
      <wd-cell-group>
        <wd-cell title="商品总价" :value="`${order.bookBuyConfigEntity?.description || ''} ${order.orderMoney} ${$t('global.coin')}`" />
        <wd-cell v-if="order.districtMoney > 0" title="活动优惠" :value="`- ${order.districtMoney} ${$t('global.coin')}`" />  
        <wd-cell v-if="order.vipDiscountAmount > 0" title="VIP专享立减" :value="`- ${order.vipDiscountAmount} ${$t('global.coin')}`" />
        <wd-cell v-if="order.jfDeduction > 0" title="积分抵扣">
          <text class="text-red-500 text-lg font-bold">{{ `- ${order.jfDeduction}` }}</text>
        </wd-cell>
        <wd-cell title="实付金额">
          <text class="text-red-500 text-lg font-bold">{{ `${order.realMoney}` }}</text> {{ order.orderType === 'point' ? 'NZ$' : $t('global.coin') }}
        </wd-cell>
      </wd-cell-group>

      <wd-divider class="p-0!" />

      <!-- 下单信息 -->
      <wd-cell-group>
        <wd-cell title="订单编号" title-width="4em">
          <text class="text-xs">{{ order.orderSn }}</text>
          <wd-icon name="file-copy" size="14px" color="#65A1FA" class="ml-1!" @click="copyToClipboard(order.orderSn)"></wd-icon>
        </wd-cell>
        <wd-cell title="创建时间" :value="order.createTime" />
        <wd-cell title="付款时间" :value="order.paymentDate" v-if="order.paymentDate"/>
      </wd-cell-group>
    </view>

    <view class="text-center">
      <text @click="toWorkOrder" class="text-[cadetblue] text-sm">订单有问题？去申诉</text>
    </view>
    
    <view class="contact-customer" @click="makePhoneCall(sysStore.customerServicePhone)">
      <wd-icon name="service" size="30px"></wd-icon>
      <view class="text-sm">联系客服</view>
    </view>
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { useSysStore } from '@/stores/sys'
import { orderApi } from '@/api/modules/order'
import type { IOrderDetail, IOrderGoods } from '@/types/order'
import ProductInfo from '@/components/order/ProductInfo.vue'
import { copyToClipboard, makePhoneCall } from '@/utils/index'

const sysStore = useSysStore()
// 订单详情
const order = ref<IOrderDetail>({
  orderMoney: 0,
  districtMoney: 0,
  vipDiscountAmount: 0,
  jfDeduction: 0,
  realMoney: 0,
})
const productList = ref<IOrderGoods[]>([])

onLoad(async (options: { orderId: string }) => {
  const orderId = options.orderId
  if (orderId) {
    const res = await orderApi.getOrderDetail(orderId)
    const orderDetails = res.data.buyOrder
    order.value = orderDetails
    switch (orderDetails.orderType) {
      case 'order':
        productList.value = res.data.productInfo
        break
      case 'vip':
        productList.value = orderDetails.vipBuyConfigEntity
        break
      case 'abroadVip':
        productList.value = orderDetails
        break
      default:
        break
    }
  }
})

const toWorkOrder = () => {
  uni.navigateTo({
    url: '/pages/user/feedback/index?orderSn=' + order.value.orderSn
  })
}
</script>

<style lang="scss" scoped>
body {
  background-color: #F8F9FA;
}
.page-wrapper {
  padding: 20rpx;
}

.order-info {
  padding: 30rpx;
  background-color: #fff;
  border-radius: 10px;
  margin-bottom: 15px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

  .order-status {
    margin-bottom: 20rpx;
    padding: 10rpx 0;
    width: 6em;
    background-color: #34D19D;
    color: #fff;
    border-radius: 0 10px 10px 0;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
  }
}


:deep(.wd-cell-group) {
  padding: 0 !important;

  .wd-cell__wrapper {
    padding: 0 !important;
  }
}

.contact-customer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  margin: 40rpx auto 0;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  line-height: 1;
}
</style>