338 lines
8.4 KiB
Vue
338 lines
8.4 KiB
Vue
<template>
|
||
<view class="content" v-if="order_no != ''">
|
||
<view class="order-header"></view>
|
||
<!-- 订单主要信息 -->
|
||
<view class="order-back order-flex order-info">
|
||
<view class="order-state">{{statusText.text}}</view>
|
||
<view class="order-item">
|
||
<label>服务类型</label>
|
||
<view class="order-value nowrap">
|
||
<text class="order-type" v-for="(item, index) in item_type" :key="index" v-if="item.number > 0">{{item.title}}×{{item.number}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="order-items">
|
||
<view class="order-items-flex" v-for="(item, index) in items" :key="index" @click="$Router.push({ name: 'OrderSchemes', params: { id: item.business_order_item_id }})">
|
||
<label class="nowrap">{{item.institution.title}}({{item.business_type.title}})</label>
|
||
<view class="order-items-type nowrap">¥{{item.price}}<uni-icons type="right" color="gray" size="14px"></uni-icons></view>
|
||
</view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>欠款总金额</label>
|
||
<view class="order-value order-value-price nowrap">¥{{serviceTotal}}</view>
|
||
</view>
|
||
</view>
|
||
<!-- 订单服务包信息 -->
|
||
<view class="order-back order-flex" v-if="services.length > 0">
|
||
<view class="order-title">服务包</view>
|
||
<view class="order-serve">
|
||
<block v-for="(item, index) in services" :key="index">
|
||
<view class="serve-header">
|
||
{{item.title}}<text>¥{{item.price}}</text>
|
||
</view>
|
||
<view class="serve-item" v-for="(citem, cindex) in item.items" :key="cindex">
|
||
<view class="services-flex">
|
||
<label class="services-flex-label nowrap">服务类型</label>
|
||
<view class="services-flex-val nowrap">{{citem.business}}({{citem.type}})</view>
|
||
</view>
|
||
<view class="services-flex">
|
||
<label class="services-flex-title nowrap">{{citem.title}}</label>
|
||
<view class="services-flex-price nowrap"><text>¥</text>{{citem.price}}</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<!-- 客户信息 -->
|
||
<view class="order-back order-flex">
|
||
<view class="order-title">客户信息</view>
|
||
<view class="order-item">
|
||
<label>客户姓名</label>
|
||
<view class="order-value nowrap">{{user.nickname || '-'}}</view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>客户性别</label>
|
||
<view class="order-value nowrap">{{user.sex || '-'}}</view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>客户电话</label>
|
||
<view class="order-value nowrap">{{user.username || '-'}}</view>
|
||
</view>
|
||
<view class="order-btn" @click="onCallPhone(user.username)">联系客户</view>
|
||
</view>
|
||
<!-- 老师与助理 -->
|
||
<view class="order-back order-flex" v-if="statusText.value > 5">
|
||
<view class="order-title">法务老师与助理</view>
|
||
<view class="order-item">
|
||
<label>法务老师</label>
|
||
<view class="order-value nowrap">{{teachers || '-'}}</view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>法务助理</label>
|
||
<view class="order-value nowrap">{{tutor || '-'}}</view>
|
||
</view>
|
||
</view>
|
||
<!-- 订单其他信息 -->
|
||
<view class="order-back order-flex">
|
||
<view class="order-title">订单信息</view>
|
||
<view class="order-item" @click="copyNo(order_no)">
|
||
<label>订单编号</label>
|
||
<view class="order-value nowrap">{{order_no || '-'}}<u-icon class="order-value-icon" name="file-text" color="gray" size="18"></u-icon></view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>创建时间</label>
|
||
<view class="order-value nowrap">{{created_at || '-'}}</view>
|
||
</view>
|
||
<view class="order-item">
|
||
<label>订单金额</label>
|
||
<view class="order-value nowrap">{{total || '-'}}</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { info } from '@/apis/interfaces/order.js'
|
||
export default {
|
||
data() {
|
||
return {
|
||
orderId : '',
|
||
total : '0.00',
|
||
order_no : '',
|
||
statusText : '',
|
||
created_at : '',
|
||
user : {
|
||
nickname : '',
|
||
sex : '',
|
||
username : ''
|
||
},
|
||
item_type : [],
|
||
items : [],
|
||
services : [],
|
||
serviceTotal: '',
|
||
tutor : '',
|
||
teachers : ''
|
||
};
|
||
},
|
||
onShow() {
|
||
this.orderId = this.$Route.query.orderId
|
||
this.getInfo()
|
||
},
|
||
methods: {
|
||
// 订单详情
|
||
getInfo(){
|
||
info(this.orderId).then(res => {
|
||
let { status, created_at, total, order_no, user, item_type, items, services, service_prices, tutor, teachers } = res
|
||
this.statusText = status
|
||
this.created_at = created_at
|
||
this.total = total
|
||
this.order_no = order_no
|
||
this.user = user
|
||
this.item_type = item_type
|
||
this.items = items
|
||
this.services = services
|
||
this.serviceTotal = service_prices
|
||
this.tutor = tutor
|
||
this.teachers = teachers
|
||
}).catch(err => {
|
||
uni.showToast({
|
||
title: err.message,
|
||
icon : 'none'
|
||
})
|
||
})
|
||
},
|
||
// 刷新列表订单
|
||
onRefreshOrder(){
|
||
this.$store.commit('setOrderId', this.$Route.query.orderId)
|
||
},
|
||
// 拨打电话
|
||
onCallPhone(phone){
|
||
uni.makePhoneCall({
|
||
phoneNumber: phone,
|
||
fail: err => {
|
||
uni.showToast({
|
||
title: '拨打电话失败,请检查您的应用权限[电话]保持允许状态',
|
||
icon : 'none'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
// 复制订单号码
|
||
copyNo(no){
|
||
uni.setClipboardData({
|
||
data : no,
|
||
success : res => {
|
||
uni.showToast({
|
||
title: '订单号已复制',
|
||
icon : 'none'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
// header
|
||
.order-header{
|
||
background: #446EFE;
|
||
height: 150rpx;
|
||
}
|
||
// 订单块
|
||
.order-back{
|
||
background: white;
|
||
border-radius: 20rpx;
|
||
margin: 0 30rpx 30rpx;
|
||
}
|
||
// 订单信息
|
||
.order-info{
|
||
margin: -100rpx 30rpx 30rpx;
|
||
.order-state{
|
||
font-weight: bold;
|
||
font-size: 30rpx;
|
||
margin: 0 -30rpx;
|
||
padding: 0 30rpx;
|
||
border-bottom: solid 1rpx #f6f6f6;
|
||
padding-bottom: 20rpx;
|
||
line-height: 80rpx;
|
||
font-size: 48rpx;
|
||
}
|
||
}
|
||
// 订单列表
|
||
.order-flex{
|
||
padding: 20rpx 30rpx;
|
||
.order-title{
|
||
font-weight: bold;
|
||
font-size: 36rpx;
|
||
line-height: 60rpx;
|
||
}
|
||
// 订单信息
|
||
.order-item{
|
||
display: flex;
|
||
justify-content: space-between;
|
||
line-height: 80rpx;
|
||
font-size: 30rpx;
|
||
label{
|
||
width: 200rpx;
|
||
}
|
||
.order-value{
|
||
color: gray;
|
||
width: calc(100% - 200rpx);
|
||
text-align: right;
|
||
.order-type{
|
||
margin-right: 30rpx;
|
||
position: relative;
|
||
display: inline-block;
|
||
&::after{
|
||
position: absolute;
|
||
content: "/";
|
||
width: 30rpx;
|
||
text-align: center;
|
||
font-size: 30rpx;
|
||
top: 0;
|
||
right: -30rpx;
|
||
}
|
||
&:last-child{
|
||
margin-right: 0;
|
||
&::after{
|
||
display: none;
|
||
}
|
||
}
|
||
}
|
||
.order-value-icon{
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
&.order-value-price{
|
||
color: red;
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
}
|
||
// 服务包信息
|
||
.order-serve{
|
||
background-color: rgba(68, 110, 254, .03);
|
||
border-radius: 10rpx;
|
||
margin: 15rpx 0;
|
||
padding: 0 25rpx;
|
||
.serve-header{
|
||
display: flex;
|
||
padding-top: 20rpx;
|
||
padding-bottom: 20rpx;
|
||
justify-content: space-between;
|
||
font-weight: bold;
|
||
border-bottom: solid 1rpx #f6f6f6;
|
||
text{
|
||
color: red;
|
||
}
|
||
}
|
||
.serve-item{
|
||
border-bottom: solid 1rpx #f6f6f6;
|
||
padding: 20rpx 0;
|
||
&:last-child{
|
||
border: none;
|
||
}
|
||
}
|
||
.services-flex{
|
||
display: flex;
|
||
font-size: 30rpx;
|
||
line-height: 55rpx;
|
||
.services-flex-label{
|
||
width: 150rpx;
|
||
color: #111111;
|
||
}
|
||
.services-flex-val{
|
||
width: calc(100% - 150rpx);
|
||
text-align: right;
|
||
color: gray;
|
||
}
|
||
.services-flex-title{
|
||
width: 50%;
|
||
color: #111111;
|
||
font-size: 30rpx;
|
||
}
|
||
.services-flex-price{
|
||
font-size: 30rpx;
|
||
width: 50%;
|
||
text-align: right;
|
||
font-weight: bold;
|
||
color: #111111;
|
||
}
|
||
}
|
||
}
|
||
// 订单服务项目
|
||
.order-items{
|
||
background-color: rgba(68, 110, 254, .03);
|
||
border-radius: 10rpx;
|
||
margin-bottom: 10rpx;
|
||
padding: 20rpx 30rpx;
|
||
.order-items-flex{
|
||
display: flex;
|
||
justify-content: space-between;
|
||
flex-wrap: wrap;
|
||
line-height: 60rpx;
|
||
font-size: 28rpx;
|
||
label{
|
||
width: 340rpx;
|
||
}
|
||
.order-items-type{
|
||
width: calc(100% - 340rpx);
|
||
text-align: right;
|
||
color: gray;
|
||
}
|
||
}
|
||
}
|
||
// 订单按钮
|
||
.order-btn{
|
||
margin: 0 -30rpx;
|
||
padding: 20rpx 30rpx 0;
|
||
border-top: solid 1rpx #f6f6f6;
|
||
text-align: center;
|
||
line-height: 60rpx;
|
||
color: $main-color;
|
||
font-size: 32rpx;
|
||
}
|
||
}
|
||
</style>
|