Files
LSM_OIL_SITE_zhongping/packageOrders/components/order-item.vue
2023-04-26 14:03:20 +08:00

322 lines
7.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 可供选择的订单
// 开票列表
<template>
<view class="cu-item showboxisngs radius shadow margin-bottom ">
<view class="cu-avatar text-sl" :style="'background-image:url('+baseURL+'static/img/qr-icon.png)'"></view>
<!-- <image class="pay-status" :src="baseURL+'static/img/oil-unfinished.png'" alt /> -->
<!-- <view class="cu-avatar text-sl" v-if="item.createSource==='3'" :style="'background-image:url('+baseURL+'static/img/order-wjy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.createSource==='4'||item.createSource==='6'" :style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.createSource==='5'" :style="'background-image:url('+baseURL+'static/img/order-lv.png)'"></view> -->
<view class="content">
<view class=" solid-bottom padding-bottom-sm">
<view class="flex-treble" @tap="copyId(item.orderSerialNumber)">
{{item.orderSerialNumber}}<text class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
</text>
</view>
<view class="flex-sub text-right cuIcon-right" @tap="toDetails(item.id)">
</view>
</view>
<view class=" text-content text-df">
<text class="lin-h-2">
{{item.siteName}}
</text>
</view>
<view class="text-sm " @tap="toDetails(item.id)">
<view class="flex">
<view class="details">
<view class="top1 text-left">
<image class="icon icon-desc " :src="baseURL+'static/img/oil-lf.png'" alt />
<text class="padding-left-xs padding-right-sm">
{{item.oilsCode}}
</text>
<text class=" text-lg text-bold text-red " v-if="item.volume">
{{item.volume|numberFilter}} {{item.oilProductType=='GAS'?'L':'L'}}</text>
</view>
<view class="bottom text-left">
<image class="icon icon-desc " :src="baseURL+'static/img/oil-time.png'" alt />
<text class="padding-left-xs">
{{item.createTime}}
</text>
</view>
<view class="bottom text-left">
<image class="icon icon-desc " :src="baseURL+'static/img/mini-car.png'" alt />
<text class="padding-left-xs">
加油车牌 {{item.plateNumber|plateFilter}}
</text>
</view>
</view>
</view>
</view>
<view class="margin-top-sm flex justify-between" @tap="toDetails(item.id)">
<view class="text-gray text-df">
{{item.orderTime||`&nbsp;${item.createTime}`}}
</view>
<view>
<text class="text-red text-lg text-bold total-money">{{amount|numberFilter}}</text>
<view class="round pay-state light bg-olive bg-transparent text-center state-0" v-if="istate==0">
<text class="inner-istate round">{{istate|formatStr}}</text>
<view class="inner-border">
</view>
</view>
<view class="round pay-state light bg-orange bg-transparent text-center state-1" v-if="istate==1">
<text class="inner-istate round">{{istate|formatStr}}</text>
<view class="inner-border">
</view>
</view>
<view class="round pay-state light bg-oilve bg-transparent text-center state--1" v-if="istate==-1">
<text class="inner-istate round">{{istate|formatStr}}</text>
<view class="inner-border">
</view>
</view>
<view class="round pay-state light bg-gray bg-transparent text-center state--2" v-if="istate==-2||istate==2">
<text class="inner-istate round">{{istate|formatStr}}</text>
<view class="inner-border">
</view>
</view>
<!-- <text v-show="item.orderType!='9'&&item.orderType!='0'" class="text-sm text-orange">(分单)</text> -->
</view>
</view>
</view>
</view>
<!-- <xkempty v-else></xkempty> -->
<!-- <Empty /> -->
<!-- 评价的弹出层 -->
</template>
<script>
export default {
name: 'oilOrders',
props: {
item: {
type: Object,
default () {}
}
},
computed: {
istate() {
// console.log()
// console.log(this.item)
let orderType = uni.getStorageSync('orderType')
if (orderType == 1) {
// console.log(this.item.orderStatus)
switch (parseInt(this.item.orderStatus)) {
// 网页版 0待支付 1已支付 -1支付失败 -2退款
//小程序 1待支付 1已支付 -1支付失败 2已取消3已退款
case 1:
return 1
case -1:
return -1
case 2:
return 2
case 0:
return 0
case 3:
return -2
}
} else {
return this.item.orderStatus
}
},
amount(){
let orderType = uni.getStorageSync('orderType')
if (orderType == 1) {
let pyMoney = this.item.sitePriceAmount,
realMoney = (Math.round(pyMoney * 100) / 100).toFixed(2)
return realMoney
}else{
return this.item.sitePriceAmount
}
}
},
data() {
return {
baseURL: this.global.baseURL
}
},
methods: {
copyId(id) {
uni.setClipboardData({
data: id,
success: () => {
uni.showToast({
title: '订单号已复制',
icon: 'none'
})
}
})
},
toDetails(id) {
let orderType = uni.getStorageSync('orderType')
uni.setStorageSync('orderSource', orderType == 1 ? 'mpxoil' : null)
uni.setStorageSync('orderId', id)
uni.navigateTo({
url: '/packageOrders/pages/orderList/OrderDetail/OrderDetail'
})
}
},
filters: {
plateFilter(value) {
if (value) {
const numBegin = value.substring(0, 2);
const numEnd = value.substring(5);
return numBegin + '***' + numEnd;
} else {
return '暂无'
}
},
toT(value) {
if (value) {
return value / 1000
}
},
dateFormat(value) {
if (value) {
return value.substring(5, 16)
}
},
numberFilter(value) {
// let number = (Math.round(value * 100) / 100).toFixed(2)
if(value){
let number = (Math.round(value * 100) / 100).toFixed(2)
return number
}
},
formatStr(value) {
let orderType = uni.getStorageSync('orderType')
console.log(value)
switch (parseInt(value)) {
// 0待支付 1已支付 -1支付失败 -2退款
case 1:
return '已支付'
case -1:
return '支付失败'
case -2:
return '退款'
case 0:
return '待支付'
case 2:
return '已取消'
}
}
}
}
</script>
<style scoped>
.showboxisngs{
padding-left: 30rpx !important;
}
.lin-h-2 {
line-height: 2.6rem;
}
.cu-avatar {
background-color: rgba(255, 255, 255, 0);
}
.icon-car {
height: 41px;
background-size: contain;
float: left;
margin-top: -8px;
margin-left: -6px;
}
.car-position {
text-align: left;
}
.bottom {
color: #333;
}
.icon-desc {
display: inline-block;
width: 12px;
height: 12px;
position: relative;
top: 1px;
line-height: 25px;
}
.details {
position: relative;
}
.cu-item {
position: relative;
}
.pay-status {
position: absolute;
z-index: 1;
right: 100upx;
top: 50rpx;
width: 120rpx;
height: 120rpx;
}
.pay-state {
position: absolute;
right: 2rem;
bottom: 1rem;
width: 172upx;
height: 172upx;
line-height: 172upx;
transform: rotate(-30deg);
}
.inner-border {
position: absolute;
width: 142upx;
height: 142upx;
left: 14upx;
border-radius: 800upx;
top: 14upx;
}
.state-0 {
border: 1px solid #8dc63f;
}
.state-1 {
border: 1px solid #f37b1d;
}
.state--1 {
border: 1px solid #f37b1d;
}
.state--2 {
border: 1px solid #666;
}
.state-0 .inner-border {
border: 1px dashed #8dc63f;
}
.state-1 .inner-border {
border: 1px dashed #f37b1d;
}
.state--1 .inner-border {
border: 1px dashed #f37b1d;
}
.state--2 .inner-border {
border: 1px dashed #666;
}
</style>