|
|
<script setup>
|
|
|
/**
|
|
|
* name:
|
|
|
* user:sa0ChunLuyu
|
|
|
* date:2023年4月11日 17:56:51
|
|
|
*/
|
|
|
import {
|
|
|
ref,
|
|
|
onMounted
|
|
|
} from 'vue'
|
|
|
import {
|
|
|
OrderCancelAction,
|
|
|
OrderRefundAction,
|
|
|
OrderPayAction,
|
|
|
OrderListAction,
|
|
|
$image,
|
|
|
$response
|
|
|
} from '@/api'
|
|
|
import {
|
|
|
onShow
|
|
|
} from '@dcloudio/uni-app'
|
|
|
import {
|
|
|
useStore
|
|
|
} from '@/store'
|
|
|
const $store = useStore()
|
|
|
import Countdown from './countdown/countdown.vue'
|
|
|
const tab_active = ref(0)
|
|
|
const tabChange = (type) => {
|
|
|
tab_active.value = type
|
|
|
OrderList()
|
|
|
}
|
|
|
const tab_arr = ['全部', '待支付', '进行中', '已取消', '已完成', '已退款']
|
|
|
onMounted(() => {
|
|
|
$store.buy_info = {
|
|
|
hospital: 0,
|
|
|
combo: 0,
|
|
|
items: [],
|
|
|
group: '',
|
|
|
person: [],
|
|
|
time: {
|
|
|
id: 0,
|
|
|
date: null
|
|
|
}
|
|
|
}
|
|
|
tabChange(0)
|
|
|
})
|
|
|
const order_list = ref([])
|
|
|
const OrderList = async () => {
|
|
|
const response = await OrderListAction({
|
|
|
status: tab_active.value
|
|
|
})
|
|
|
$response(response, () => {
|
|
|
order_list.value = response.data.list.map((item) => {
|
|
|
item.buy_info = JSON.parse(item.buy_info)
|
|
|
return item
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
const changeStatus = (id, status) => {
|
|
|
let index = order_list.value.findIndex(ii => ii.id === id)
|
|
|
if (index !== -1) order_list.value[index].status = status
|
|
|
}
|
|
|
const status_arr = ['', '待支付', '已预约', '已取消', '已完成', '已退款']
|
|
|
const status_color_arr = ['', '#F02E50', '#0BBACF', '#333333', '#FF6201', '#FFA40A']
|
|
|
|
|
|
const orderClick = (info) => {
|
|
|
if (info.status === 1) {
|
|
|
OrderPay(info.id)
|
|
|
} else if (info.status === 2) {
|
|
|
OrderInfo(info.id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const OrderInfo = (id) => {
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/info/info?id=${id}`
|
|
|
})
|
|
|
}
|
|
|
|
|
|
const OrderPay = async (order) => {
|
|
|
const response = await OrderPayAction({
|
|
|
order,
|
|
|
pay_type: 1
|
|
|
})
|
|
|
$response(response, () => {
|
|
|
wx.requestPayment({
|
|
|
timeStamp: response.data.pay.timestamp,
|
|
|
nonceStr: response.data.pay.nonce_str,
|
|
|
package: response.data.pay.package,
|
|
|
signType: 'RSA',
|
|
|
paySign: response.data.pay.pay_sign,
|
|
|
complete: (res) => {
|
|
|
if (res.errMsg === 'requestPayment:ok') {
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/buy/done/done?id=${order}`
|
|
|
})
|
|
|
} else {
|
|
|
console.log(res.errMsg);
|
|
|
OrderList()
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
|
|
|
const mapClick = (info) => {
|
|
|
uni.openLocation({
|
|
|
type: 'wgs84',
|
|
|
latitude: Number(info.latitude),
|
|
|
longitude: Number(info.longitude),
|
|
|
scale: 18,
|
|
|
name: info.hospital_name,
|
|
|
address: info.address
|
|
|
})
|
|
|
}
|
|
|
const order_refund = ref(0)
|
|
|
const OrderRefund = async () => {
|
|
|
uni.showLoading({
|
|
|
title: '正在退款'
|
|
|
})
|
|
|
const response = await OrderRefundAction({
|
|
|
id: order_refund.value
|
|
|
})
|
|
|
uni.hideLoading()
|
|
|
$response(response, () => {
|
|
|
uni.$lu.toast("退款成功");
|
|
|
OrderList()
|
|
|
refundClose()
|
|
|
})
|
|
|
}
|
|
|
const OrderRefundShow = (info) => {
|
|
|
order_refund.value = info.id
|
|
|
refund_show.value = true
|
|
|
}
|
|
|
|
|
|
const refund_show = ref(false)
|
|
|
const refund_popup_ref = ref(null)
|
|
|
const refundPopupRef = (e) => {
|
|
|
refund_popup_ref.value = e
|
|
|
refund_popup_ref.value.open('center')
|
|
|
}
|
|
|
const refundChange = ({
|
|
|
show
|
|
|
}) => {
|
|
|
refund_show.value = show
|
|
|
}
|
|
|
|
|
|
const refundClose = () => {
|
|
|
refund_show.value = false
|
|
|
}
|
|
|
|
|
|
const checkInfo = (info) => {
|
|
|
let check_info = []
|
|
|
if (!!info.buy_info.group.id) {
|
|
|
check_info.push('团检套餐')
|
|
|
} else {
|
|
|
if (!!info.buy_info.combo.id) {
|
|
|
check_info.push(info.buy_info.combo.name)
|
|
|
}
|
|
|
}
|
|
|
if (info.buy_info.items.length) {
|
|
|
check_info.push(`自选项目 * ${info.buy_info.items.length}`)
|
|
|
}
|
|
|
return check_info.join(' + ')
|
|
|
}
|
|
|
|
|
|
const order_cancel = ref(0)
|
|
|
const OrderCancel = async () => {
|
|
|
uni.showLoading({
|
|
|
title: '正在取消'
|
|
|
})
|
|
|
const response = await OrderCancelAction({
|
|
|
id: order_cancel.value
|
|
|
})
|
|
|
uni.hideLoading()
|
|
|
$response(response, () => {
|
|
|
uni.$lu.toast("取消成功");
|
|
|
OrderList()
|
|
|
cancelClose()
|
|
|
})
|
|
|
}
|
|
|
const OrderCancelShow = (info) => {
|
|
|
order_cancel.value = info.id
|
|
|
cancel_show.value = true
|
|
|
}
|
|
|
|
|
|
const cancel_show = ref(false)
|
|
|
const cancel_popup_ref = ref(null)
|
|
|
const cancelPopupRef = (e) => {
|
|
|
cancel_popup_ref.value = e
|
|
|
cancel_popup_ref.value.open('center')
|
|
|
}
|
|
|
const cancelChange = ({
|
|
|
show
|
|
|
}) => {
|
|
|
cancel_show.value = show
|
|
|
}
|
|
|
|
|
|
const cancelClose = () => {
|
|
|
cancel_show.value = false
|
|
|
}
|
|
|
</script>
|
|
|
<template>
|
|
|
<view>
|
|
|
<view v-if="cancel_show">
|
|
|
<uni-popup :ref="cancelPopupRef" type="dialog">
|
|
|
<uni-popup-dialog type="info" cancelText="关闭" confirmText="确定" title="取消确认" content="是否取消预约?"
|
|
|
@confirm="OrderCancel" @close="cancelClose"></uni-popup-dialog>
|
|
|
</uni-popup>
|
|
|
</view>
|
|
|
|
|
|
<view v-if="refund_show">
|
|
|
<uni-popup :ref="refundPopupRef" type="dialog">
|
|
|
<uni-popup-dialog type="info" cancelText="关闭" confirmText="确定" title="取消确认" content="是否确认取消?"
|
|
|
@confirm="OrderRefund" @close="refundClose"></uni-popup-dialog>
|
|
|
</uni-popup>
|
|
|
</view>
|
|
|
|
|
|
<view class="top_line_wrapper"></view>
|
|
|
<view class="tab_wrapper">
|
|
|
<view @click="tabChange(k)" v-for="(i,k) in tab_arr" :key="k" class="tab_item_wrapper" :class="[
|
|
|
tab_active === k ? 'tab_item_text_active_wrapper' : ''
|
|
|
]">
|
|
|
<view class="tab_item_text_wrapper">{{ i }}</view>
|
|
|
<view class="tab_item_line_wrapper"></view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order_break_wrapper"></view>
|
|
|
<view class="order_list_wrapper">
|
|
|
<view class="no_order_wrapper" v-if="!order_list.length">
|
|
|
<view class="no_order_image_wrapper">
|
|
|
<image :src="$image('/storage/assets/mp/order/暂无订单.png')"></image>
|
|
|
</view>
|
|
|
<view class="no_order_text_wrapper">暂无订单</view>
|
|
|
</view>
|
|
|
<view @click.stop="orderClick(i)" class="order_item_wrapper" v-for="(i,k) in order_list" :key="k">
|
|
|
<view class="order_title_wrapper">
|
|
|
<view class="order_left_wrapper">
|
|
|
<view class="order_name_wrapper" :style="{
|
|
|
maxWidth: i.status === 1 ? 'calc(100vw - 440rpx)' : 'calc(100vw - 220rpx)',
|
|
|
}">
|
|
|
<text v-if="!!i.buy_info.group.id">团检套餐</text>
|
|
|
<text v-else>
|
|
|
<text v-if="!!i.buy_info.combo.id">{{ i.buy_info.combo.name }}</text>
|
|
|
<text v-else>自选项目</text>
|
|
|
</text>
|
|
|
</view>
|
|
|
<view v-if="i.status === 1" class="order_need_wrapper">
|
|
|
<view class="order_need_text_wrapper">待付款</view>
|
|
|
<view class="order_need_price_wrapper">¥{{ i.price }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order_status_wrapper" :style="{
|
|
|
color:status_color_arr[i.status]
|
|
|
}">
|
|
|
<view v-if="i.status !== 5">{{ status_arr[i.status] }}</view>
|
|
|
<view v-else>已{{ !!Number(i.price) ? '退款' : '退订' }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order_info_wrapper">
|
|
|
<view class="order_info_line_wrapper">
|
|
|
<view class="order_info_line_title_wrapper">体检人:</view>
|
|
|
<view class="order_info_line_content_wrapper">{{ i.name }}</view>
|
|
|
</view>
|
|
|
<view class="order_info_line_wrapper">
|
|
|
<view class="order_info_line_title_wrapper">预约时间:</view>
|
|
|
<view class="order_info_line_content_wrapper">{{ i.appointment_time }}</view>
|
|
|
</view>
|
|
|
<view class="order_info_line_wrapper">
|
|
|
<view class="order_info_line_title_wrapper">订单号:</view>
|
|
|
<view class="order_info_line_content_wrapper">{{ i.show }}</view>
|
|
|
</view>
|
|
|
<view class="order_info_line_wrapper">
|
|
|
<view class="order_info_line_title_wrapper">类型:</view>
|
|
|
<view class="order_info_line_content_wrapper">{{ i.type === 1 ? '个检' : '团检' }}</view>
|
|
|
</view>
|
|
|
<view class="order_info_line_wrapper">
|
|
|
<view class="order_info_line_title_wrapper">检查项目:</view>
|
|
|
<view class="order_info_line_content_wrapper">{{ checkInfo(i) }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 2" class="hospital_wrapper">
|
|
|
<view class="hospital_info_wrapper">
|
|
|
<view class="hospital_name_wrapper">{{ i.hospital_name }}</view>
|
|
|
<view class="hospital_address_wrapper">
|
|
|
<view class="hospital_address_icon_wrapper">
|
|
|
<image :src="$image('/storage/assets/mp/order/地址.png')"></image>
|
|
|
</view>
|
|
|
<view class="hospital_address_text_wrapper">{{ i.address }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view @click.stop="mapClick(i)" class="hospital_map_wrapper">
|
|
|
<view class="hospital_map_icon_wrapper">
|
|
|
<image :src="$image('/storage/assets/mp/order/导航.png')"></image>
|
|
|
</view>
|
|
|
<view class="hospital_map_text_wrapper">导航到医院</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 2" class="pay_done_wrapper">
|
|
|
<view v-if="(i.refund === 0 && !!i.appointment_number)" @click.stop="OrderRefundShow(i)"
|
|
|
class="refund_wrapper">
|
|
|
{{ !!Number(i.price) ? '退款' : '退订' }}
|
|
|
</view>
|
|
|
<view v-if="false" class="qrcode_wrapper">
|
|
|
<image :src="$image('/storage/assets/mp/order/二维码.png')"></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 1" class="pay_done_wrapper">
|
|
|
<view @click.stop="OrderCancelShow(i)" class="cancel_wrapper">
|
|
|
取消订单
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status !== 3" class="order_line_wrapper"></view>
|
|
|
<view v-if="i.status === 3" class="order_line_break_wrapper"></view>
|
|
|
<view class="order_price_wrapper">
|
|
|
<view v-if="i.status === 1" class="order_price_box_wrapper">
|
|
|
<view class="order_price_box_time_wrapper">
|
|
|
<view class="order_price_box_time_title_wrapper">倒计时:</view>
|
|
|
<view class="order_price_box_time_content_wrapper">
|
|
|
<Countdown @changeStatus="changeStatus" :id="i.id" :time="i.created_at"></Countdown>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="order_price_box_tip_wrapper">订单提交后请在2小时内完成支付,超时作废</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 2" class="order_price_box_wrapper">
|
|
|
<view class="order_pay_time_wrapper">支付时间 {{ i.pay_time }}</view>
|
|
|
<view class="order_pay_price_wrapper">
|
|
|
<view class="order_pay_price_title_wrapper">已付</view>
|
|
|
<view class="order_pay_price_content_wrapper">¥{{ i.price }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 4" class="order_price_box_wrapper">
|
|
|
<view class="order_pay_time_wrapper">到检时间 {{ i.check_time }}</view>
|
|
|
<view class="order_pay_price_wrapper done_info_wrapper">
|
|
|
<view class="order_pay_price_title_wrapper">已付</view>
|
|
|
<view class="order_pay_price_content_wrapper">¥{{ i.price }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view v-if="i.status === 5" class="order_price_box_wrapper">
|
|
|
<view class="order_pay_time_wrapper">{{ !!Number(i.price) ? '退款' : '退订' }}时间 {{ i.refund_time }}</view>
|
|
|
<view v-if="!!Number(i.price)" class="order_pay_price_wrapper refund_info_wrapper">
|
|
|
<view class="order_pay_price_title_wrapper">已退款</view>
|
|
|
<view class="order_pay_price_content_wrapper">¥{{ i.price }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="blank_wrapper"></view>
|
|
|
</view>
|
|
|
</template>
|
|
|
<style>
|
|
|
page {
|
|
|
background: #ffffff;
|
|
|
}
|
|
|
</style>
|
|
|
<style scoped>
|
|
|
.order_pay_price_content_wrapper {
|
|
|
font-size: 24rpx;
|
|
|
font-weight: 500;
|
|
|
color: #0BBACF;
|
|
|
}
|
|
|
|
|
|
.order_pay_price_title_wrapper {
|
|
|
font-size: 18rpx;
|
|
|
font-weight: 500;
|
|
|
color: #0BBACF;
|
|
|
}
|
|
|
|
|
|
.order_pay_price_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
padding: 0 12rpx;
|
|
|
height: 34rpx;
|
|
|
background: #e3f5f7;
|
|
|
border-radius: 5rpx;
|
|
|
line-height: 34rpx;
|
|
|
}
|
|
|
|
|
|
.order_pay_time_wrapper {
|
|
|
font-size: 20rpx;
|
|
|
font-weight: 500;
|
|
|
color: #999A9A;
|
|
|
line-height: 1;
|
|
|
}
|
|
|
|
|
|
.qrcode_wrapper image {
|
|
|
width: 61rpx;
|
|
|
height: 61rpx;
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.qrcode_wrapper {
|
|
|
width: 61rpx;
|
|
|
height: 61rpx;
|
|
|
margin-right: 25rpx;
|
|
|
margin-left: 22rpx;
|
|
|
}
|
|
|
|
|
|
.refund_wrapper {
|
|
|
width: 180rpx;
|
|
|
height: 60rpx;
|
|
|
background: rgba(230, 229, 229, 0);
|
|
|
border: 2px solid #0BBACF;
|
|
|
border-radius: 30rpx;
|
|
|
font-size: 26rpx;
|
|
|
font-weight: 500;
|
|
|
color: #0BBACF;
|
|
|
line-height: 60rpx;
|
|
|
text-align: center;
|
|
|
margin-right: 22rpx;
|
|
|
}
|
|
|
|
|
|
.cancel_wrapper {
|
|
|
width: 180rpx;
|
|
|
height: 60rpx;
|
|
|
background: rgba(230, 229, 229, 0);
|
|
|
border: 2px solid #F02E50;
|
|
|
border-radius: 30rpx;
|
|
|
font-size: 26rpx;
|
|
|
font-weight: 500;
|
|
|
color: #F02E50;
|
|
|
line-height: 60rpx;
|
|
|
text-align: center;
|
|
|
margin-right: 22rpx;
|
|
|
}
|
|
|
|
|
|
.pay_done_wrapper {
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
align-items: center;
|
|
|
margin-top: 14rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_info_wrapper {
|
|
|
margin-left: 23rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_map_text_wrapper {
|
|
|
font-size: 22rpx;
|
|
|
font-weight: 500;
|
|
|
color: #FFFFFF;
|
|
|
margin-left: 8rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_map_icon_wrapper image {
|
|
|
width: 32rpx;
|
|
|
height: 32rpx;
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.hospital_map_icon_wrapper {
|
|
|
width: 32rpx;
|
|
|
height: 32rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_map_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
width: 182rpx;
|
|
|
height: 48rpx;
|
|
|
background: linear-gradient(90deg, #23D3AF, #0DC5CF);
|
|
|
border: 2px solid #D0EEEF;
|
|
|
border-radius: 24rpx;
|
|
|
margin-right: 5rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_address_text_wrapper {
|
|
|
font-size: 20rpx;
|
|
|
font-weight: 400;
|
|
|
color: #757676;
|
|
|
line-height: 1;
|
|
|
margin-left: 11rpx;
|
|
|
overflow: hidden;
|
|
|
white-space: nowrap;
|
|
|
text-overflow: ellipsis;
|
|
|
width: 350rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_address_icon_wrapper image {
|
|
|
width: 20rpx;
|
|
|
height: 24rpx;
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.hospital_address_icon_wrapper {
|
|
|
width: 20rpx;
|
|
|
height: 24rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_address_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
margin-top: 17rpx;
|
|
|
}
|
|
|
|
|
|
.hospital_name_wrapper {
|
|
|
font-size: 24rpx;
|
|
|
font-weight: 500;
|
|
|
color: #333333;
|
|
|
line-height: 1;
|
|
|
}
|
|
|
|
|
|
.hospital_wrapper {
|
|
|
width: 648rpx;
|
|
|
height: 110rpx;
|
|
|
background: #effafb;
|
|
|
margin: 26rpx auto 0;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
|
|
|
.order_list_wrapper {
|
|
|
position: fixed;
|
|
|
bottom: 0;
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
top: 120rpx;
|
|
|
overflow-y: auto;
|
|
|
padding-bottom: 50rpx;
|
|
|
}
|
|
|
|
|
|
.no_order_text_wrapper {
|
|
|
font-size: 28rpx;
|
|
|
font-weight: 500;
|
|
|
color: #CDCDCD;
|
|
|
line-height: 1;
|
|
|
margin-top: 20rpx;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.no_order_image_wrapper image {
|
|
|
width: 381rpx;
|
|
|
height: 251rpx;
|
|
|
display: block;
|
|
|
}
|
|
|
|
|
|
.no_order_image_wrapper {
|
|
|
width: 381rpx;
|
|
|
height: 251rpx;
|
|
|
margin: 140rpx auto 0;
|
|
|
}
|
|
|
|
|
|
.order_price_box_tip_wrapper {
|
|
|
height: 34rpx;
|
|
|
background: rgba(255, 98, 1, 0.1);
|
|
|
border: 1px solid rgba(255, 98, 1, 0.3);
|
|
|
border-radius: 5rpx;
|
|
|
font-size: 18rpx;
|
|
|
font-weight: 500;
|
|
|
color: #FF6201;
|
|
|
line-height: 34rpx;
|
|
|
padding: 0 10rpx;
|
|
|
}
|
|
|
|
|
|
.order_price_box_time_content_wrapper {
|
|
|
font-size: 20rpx;
|
|
|
font-weight: 500;
|
|
|
color: #F02E50;
|
|
|
}
|
|
|
|
|
|
.order_price_box_time_title_wrapper {
|
|
|
font-size: 20rpx;
|
|
|
font-weight: 500;
|
|
|
color: #999A9A;
|
|
|
}
|
|
|
|
|
|
.order_price_box_time_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
.order_price_box_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
padding: 20rpx;
|
|
|
}
|
|
|
|
|
|
.refund_info_wrapper.order_pay_price_wrapper {
|
|
|
background: #E8F2F4;
|
|
|
}
|
|
|
|
|
|
.refund_info_wrapper>.order_pay_price_title_wrapper {
|
|
|
color: #668EA7;
|
|
|
}
|
|
|
|
|
|
.refund_info_wrapper>.order_pay_price_content_wrapper {
|
|
|
color: #668EA7;
|
|
|
}
|
|
|
|
|
|
.done_info_wrapper.order_pay_price_wrapper {
|
|
|
background: #EDF1F1;
|
|
|
}
|
|
|
|
|
|
.done_info_wrapper>.order_pay_price_title_wrapper {
|
|
|
color: #181818;
|
|
|
}
|
|
|
|
|
|
.done_info_wrapper>.order_pay_price_content_wrapper {
|
|
|
color: #181818;
|
|
|
}
|
|
|
|
|
|
.order_line_wrapper {
|
|
|
width: 648rpx;
|
|
|
height: 1rpx;
|
|
|
background: #323232;
|
|
|
opacity: 0.07;
|
|
|
margin: 25rpx auto 0;
|
|
|
}
|
|
|
|
|
|
.order_line_break_wrapper {
|
|
|
width: 648rpx;
|
|
|
height: 1rpx;
|
|
|
margin: 25rpx auto 0;
|
|
|
}
|
|
|
|
|
|
.order_info_wrapper {
|
|
|
margin-left: 20rpx;
|
|
|
margin-top: 36rpx;
|
|
|
}
|
|
|
|
|
|
.order_info_line_content_wrapper {
|
|
|
font-size: 26rpx;
|
|
|
font-weight: 500;
|
|
|
color: #444444;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
|
|
|
.order_info_line_wrapper {
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
.order_info_line_title_wrapper {
|
|
|
width: 150rpx;
|
|
|
font-size: 26rpx;
|
|
|
font-weight: 500;
|
|
|
color: #999A9A;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
|
|
|
.order_status_wrapper {
|
|
|
font-size: 30rpx;
|
|
|
font-weight: 500;
|
|
|
margin-right: 13rpx;
|
|
|
}
|
|
|
|
|
|
.order_need_text_wrapper {
|
|
|
font-size: 18rpx;
|
|
|
font-weight: 500;
|
|
|
color: #F02E50;
|
|
|
}
|
|
|
|
|
|
.order_need_price_wrapper {
|
|
|
font-size: 26rpx;
|
|
|
font-weight: 500;
|
|
|
color: #F02E50;
|
|
|
}
|
|
|
|
|
|
.order_need_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
text-align: center;
|
|
|
justify-content: center;
|
|
|
line-height: 34rpx;
|
|
|
height: 34rpx;
|
|
|
padding: 0 12rpx;
|
|
|
background: #f8eaed;
|
|
|
border-radius: 5rpx;
|
|
|
margin-left: 15rpx;
|
|
|
}
|
|
|
|
|
|
.order_name_wrapper {
|
|
|
font-size: 32rpx;
|
|
|
font-weight: 500;
|
|
|
color: #222222;
|
|
|
line-height: 1;
|
|
|
overflow: hidden;
|
|
|
white-space: nowrap;
|
|
|
text-overflow: ellipsis;
|
|
|
display: inline-block;
|
|
|
}
|
|
|
|
|
|
.order_left_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
.order_title_wrapper {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
margin-top: 27rpx;
|
|
|
margin-left: 21rpx;
|
|
|
}
|
|
|
|
|
|
.order_break_wrapper {
|
|
|
background: #f3f3f3;
|
|
|
width: 750rpx;
|
|
|
height: 15rpx;
|
|
|
}
|
|
|
|
|
|
.order_item_wrapper {
|
|
|
overflow: hidden;
|
|
|
width: 690rpx;
|
|
|
margin: 20rpx auto 0;
|
|
|
background: linear-gradient(0deg, rgba(235, 250, 251, 0.4), rgba(249, 254, 254, 0.4));
|
|
|
box-shadow: 0rpx 3rpx 6rpx 4rpx rgba(2, 95, 78, 0.14);
|
|
|
border-radius: 10rpx;
|
|
|
}
|
|
|
|
|
|
.tab_item_line_wrapper {
|
|
|
width: 43rpx;
|
|
|
height: 6rpx;
|
|
|
background: #0BBACF;
|
|
|
border-radius: 3rpx;
|
|
|
margin: 0 auto;
|
|
|
opacity: 0;
|
|
|
}
|
|
|
|
|
|
.tab_item_wrapper {
|
|
|
height: 88rpx;
|
|
|
width: 200rpx;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.tab_item_text_wrapper {
|
|
|
font-size: 28rpx;
|
|
|
font-weight: 500;
|
|
|
color: #3F3F3F;
|
|
|
line-height: 83rpx;
|
|
|
}
|
|
|
|
|
|
.tab_wrapper {
|
|
|
width: 750rpx;
|
|
|
height: 88rpx;
|
|
|
background: #FFFFFF;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-around;
|
|
|
padding-top: 12rpx;
|
|
|
}
|
|
|
|
|
|
.tab_item_text_active_wrapper>.tab_item_text_wrapper {
|
|
|
color: #0BBACF;
|
|
|
}
|
|
|
|
|
|
.tab_item_text_active_wrapper>.tab_item_line_wrapper {
|
|
|
opacity: 1;
|
|
|
}
|
|
|
</style> |