|                                                                                                              |  | <template>  <view class="page__view">		<navbar title="订单详情" leftClick @leftClick="$utils.navigateBack" />
    <view class="main">
      <productCard :data="productCardData"></productCard>
      <orderInfoView :data="detail"></orderInfoView>
      <view class="notice">        <view class="notice-header">下单须知</view>        <view class="notice-content">				  <uv-parse :content="configList['order_instructions']"></uv-parse>        </view>      </view>
    </view>  		<view class="bottom">      <view class="flex bar">        <button plain class="flex flex-column btn btn-simple" open-type="contact">          <image class="icon" src="@/pages_order/static/product/icon-service.png" mode="widthFix"></image>          <view>联系客服</view>        </button>        <!-- 已支付 -->        <template v-if="detail.status == 1">          <button class="col btn" @click="onContactMentor">联系导师</button>          <button class="col btn" @click.stop="onFinish">已完成</button>        </template>        <!-- 待评价 -->        <template v-else-if="data.status == 2">          <button class="col btn" @click="onComment">立即评价</button>          <button class="col btn" @click="onApplyService">申请售后</button>        </template>        <view class="col" v-else></view>      </view>    </view>
    <contactMentorPopup ref="contactMentorPopup"></contactMentorPopup>		    <commentPopup ref="commentPopup" @submitted="getData"></commentPopup>        <servicePopup ref="servicePopup"></servicePopup>
  </view></template>
<script>	import { mapState } from 'vuex'
  import productCard from '@/pages_order/order/components/productCard.vue'  import orderInfoView from '@/pages_order/order/components/orderInfoView.vue'  import contactMentorPopup from '@/pages_order/order/components/contactMentorPopup.vue'  import commentPopup from '@/pages_order/comment/commentPopup.vue'	import servicePopup from '@/components/base/servicePopup.vue'
  export default {    components: {      productCard,      orderInfoView,      contactMentorPopup,      commentPopup,      servicePopup,    },    data() {      return {        id: null,        detail: {},      }    },    computed: {			...mapState(['configList', 'userInfo', 'orderInfo']),      productCardData() {        const {           activityId,          activityTitle,            activityBrief,          activityTag,          startDate,          endDate,        } = this.detail
        return {          time: 'time',          product: {            id: activityId,            title: activityTitle,            brief: activityBrief,            tagDetails: activityTag,            dateList: [              {                id: 'time',                startDate,                endDate,              }            ]          }        }      },    },    onLoad(arg) {      const { id } = arg      this.id = id
      this.getData()    },    async onPullDownRefresh() {      await this.getData()      uni.stopPullDownRefresh()    },    methods: {      async getData() {          try {
            this.detail = await this.$fetch('queryOrderById', { orderId: this.id })
          } catch (err) {
          }
          uni.stopPullDownRefresh()      },      onComment() {        this.$refs.commentPopup.open(this.id, this.detail)      },      onApplyService() {        this.$refs.servicePopup.open()      },      onContactMentor() {        this.$refs.contactMentorPopup.open(this.detail.teacherPhone)      },      async onFinish() {        try {          await this.$fetch('updateOrder', { id: this.id, status: '2' }) // 订单状态 0待支付 1已支付 2已完成
          this.getData()        } catch (err) {
        }      },    },  }</script>
<style scoped lang="scss">
  @import '../styles/style.scss';
  .bottom {    .bar {      .price {        justify-content: flex-start;        column-gap: 8rpx;                &-label {          font-size: 24rpx;          color: #626262;        }
        &-unit,        &-value {          font-weight: 500;          color: #FF4800;        }
        &-unit {          font-size: 24rpx;        }
        &-value {          font-size: 40rpx;        }      }
      .btn-simple {        flex: none;        width: auto;        font-family: PingFang SC;        font-weight: 400;        font-size: 22rpx;        line-height: 1.1;        color: #999999;        border: none;        border-radius: unset;
        .icon {          width: 52rpx;          height: auto;          margin-bottom: 4rpx;        }      }    }  }  </style>
 |