This commit is contained in:
xk_guohonglei
2021-06-04 09:20:09 +08:00
parent 422843e0ac
commit 1335809f58
14 changed files with 1504 additions and 241 deletions

View File

@@ -3,9 +3,12 @@
<template>
<view class="cu-item radius shadow margin-bottom ">
<!-- <image class="pay-status" :src="baseURL+'static/img/oil-unfinished.png'" alt /> -->
<view class="cu-avatar text-sl" v-if="item.sourceType==='3'" :style="'background-image:url('+baseURL+'static/img/order-wjy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.sourceType==='4'||item.sourceType==='6'" :style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.sourceType==='5'" :style="'background-image:url('+baseURL+'static/img/order-lv.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.sourceType==='3'"
:style="'background-image:url('+baseURL+'static/img/order-wjy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.sourceType==='4'||item.sourceType==='6'"
:style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
<view class="cu-avatar text-sl" v-if="item.sourceType==='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.orderID)">
@@ -23,7 +26,8 @@
<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-xs" v-if="item.vol"> {{item.vol|numberFilter}}</text>
<text class="padding-left-xs padding-right-xs" v-if="item.vol">
{{item.vol|numberFilter}}</text>
<text>
{{item.oilName}}
</text>
@@ -49,29 +53,30 @@
</view>
<view class="margin-top-sm flex justify-between" @tap="toDetails(item.orderID)">
<view class="text-gray text-df">
{{item.createDatetime.substring(0,19)}}</view>
{{item.createDatetime.substring(0,19)}}
</view>
<view>
<text class="color-000 text-lg total-money">{{item.realamount|numberFilter}}</text>
<view class="round pay-state light bg-olive bg-transparent text-center state-0" v-if="item.istate==0">
<text class="inner-istate round">{{item.istate|formatStr}}</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="item.istate==1">
<text class="inner-istate round">{{item.istate|formatStr}}</text>
<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="item.istate==-1">
<text class="inner-istate round">{{item.istate|formatStr}}</text>
<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="item.istate==-2">
<text class="inner-istate round">{{item.istate|formatStr}}</text>
<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>
@@ -88,16 +93,39 @@
</template>
<script>
export default {
name: 'oilOrders',
props: {
item: {
type: Object,
default () {}
}
},
computed: {
istate() {
let orderType = uni.getStorageSync('orderType')
if (orderType == 1) {
console.log(this.item.istate)
switch (parseInt(this.item.istate)) {
// 网页版 0待支付 1已支付 -1支付失败 -2退款
//小程序 0待支付 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.istate
}
}
},
data() {
return {
baseURL: this.global.baseURL
@@ -116,8 +144,9 @@
})
},
toDetails(id) {
let orderType = uni.getStorageSync('orderType')
uni.setStorageSync('orderSource', orderType == 1 ? 'mpxoil' : null)
uni.setStorageSync('orderId', id)
console.log('id', id)
uni.navigateTo({
url: '/packageOrders/pages/orderList/OrderDetail/OrderDetail'
})
@@ -140,7 +169,9 @@
return value.toFixed(2)
},
formatStr(value) {
let orderType = uni.getStorageSync('orderType')
switch (parseInt(value)) {
// 0待支付 1已支付 -1支付失败 -2退款
case 1:
return '已支付'
case -1:
@@ -149,9 +180,10 @@
return '退款'
case 0:
return '待支付'
default:
return '待支付'
case 2:
return '已取消'
}
}
}
}

View File

@@ -8,9 +8,14 @@
</view>
<view class="text-center margin-top icon-container">
<view class="cu-avatar xl round text-sl" v-if="orderItem.sourceType===3" :style="'background-image:url('+baseURL+'static/img/order-wjy.png)'"></view>
<view class="cu-avatar xl round text-sl" v-if="orderItem.sourceType===4||orderItem.sourceType===6" :style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
<view class="cu-avatar xl round text-sl" v-if="orderItem.sourceType===5" :style="'background-image:url('+baseURL+'static/img/order-lv.png)'"></view>
<view class="cu-avatar xl round text-sl" v-if="orderItem.sourceType===3"
:style="'background-image:url('+baseURL+'static/img/order-wjy.png)'"></view>
<view class="cu-avatar xl round text-sl" v-else-if="orderItem.sourceType===4||orderItem.sourceType===6"
:style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
<view class="cu-avatar xl round text-sl" v-else-if="orderItem.sourceType===5"
:style="'background-image:url('+baseURL+'static/img/order-lv.png)'"></view>
<view class="cu-avatar xl round text-sl" v-else
:style="'background-image:url('+baseURL+'static/img/order-xy.png)'"></view>
</view>
<view class="radius margin margin-top bg-white padding-top padding">
<!-- sourceType 万金油3 老吕5 星油4/6 -->
@@ -18,36 +23,46 @@
<image size="20" v-else-if="orderItem.sourceType===3" :src="baseURL+'static/img/order-wjy.png'"></image>
<image size="20" v-else-if="orderItem.sourceType===5" :src="baseURL+'static/img/order-lv.png'"></image> -->
<view class="margin padding">
<view class="text-lg text-center">{{orderItem.istate|formatStr}}</view>
<view class="number text-xl text-center oil-main-color">{{orderItem.realamount|numberFormat}}</view>
<view class="text-lg text-center" v-if="orderSource=='zy'">{{orderItem.istate|formatZyStr}}</view>
<view class="text-lg text-center" v-else>{{istate|formatStr}}</view>
<view class="number text-xl text-center oil-main-color">{{orderItem.realamount|numberFormat}}
</view>
</view>
<view class="margin-bottom-sm" @tap="copyId(orderItem.userName,'加油司机')">
加油司机
<text class="fr">{{orderItem.userName}}<text class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
<text class="fr">{{orderItem.userName}}<text
class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
</text></text>
</view>
<view class="margin-bottom-sm" @tap="copyId(orderItem.carNo,'司机车牌')">
司机车牌
<text class="fr">{{orderItem.carNo}}<text class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
<text class="fr">{{orderItem.carNo}}<text
class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
</text></text>
</view>
<view class="margin-bottom-sm">
油枪油号
<text class="fr">{{orderItem.bar}}号枪{{orderItem.oilName}}</text>
<text class="fr">{{orderItem.bar}}号枪{{orderItem.oilName||orderItem.oilCode}}</text>
</view>
<view class="margin-bottom-sm">
加油总金额
<text class="fr">¥ {{orderItem.amount|numberFormat}}</text>
<text
class="fr">¥{{orderItem.amount?orderItem.amount:(orderItem.xoilDiscountAmount+orderItem.realamount)|numberFormat}}</text>
</view>
<view class="margin-bottom-sm">
加油升数
<text class="fr">{{orderItem.vol|numberFormat}} </text>
</view>
<view class="margin-bottom-sm">
<view class="margin-bottom-sm" v-if="orderItem.xoilDiscountAmount">
星卡优惠
<text class="fr">¥ {{orderItem.amount-orderItem.realamount|numberFormat}}</text>
<text class="fr">¥ {{(orderItem.xoilDiscountAmount)|numberFormat}}</text>
</view>
<view class="margin-bottom-sm" v-else>
星卡优惠
<text class="fr">¥ {{(orderItem.amount-orderItem.realamount)|numberFormat}}</text>
</view>
<view class="margin-bottom-sm">
优惠券
@@ -78,7 +93,8 @@
<view class="radius bg-white margin margin-bottom-0 padding">
<view class="margin-bottom-sm" @tap="copyId(orderItem.orderID,'订单号')">
订单号
<text class=" fr">{{orderItem.orderID}}<text class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
<text class=" fr">{{orderItem.orderID}}<text
class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
</text></text>
</view>
@@ -123,35 +139,89 @@
orderId: uni.getStorageSync('orderId'),
formQr: uni.getStorageSync('formQr') ? true : false,
tempOrderInfo: uni.getStorageSync('tempOrderInfo'),
orderSource: uni.getStorageSync('orderSource'),
orderType: uni.getStorageSync('orderType'),
orderItem: {},
baseURL: this.global.baseURL
}
},
created() {
if (this.formQr && !this.tempOrderInfo.payOrderId) {
this.orderItem = {
...this.tempOrderInfo,
orderID: this.tempOrderInfo.payOrderId,
amount: this.tempOrderInfo.standardAmount,
realamount: this.tempOrderInfo.oilAmount,
userName: this.tempOrderInfo.driverId,
carNo: this.tempOrderInfo.plateNumber,
createDatetime: this.tempOrderInfo.createTime,
paydatetime: this.tempOrderInfo.payTime,
bar: this.tempOrderInfo.oilGun,
vol: this.tempOrderInfo.volume,
onUnload() {
uni.setStorageSync('orderSource', null)
this.clearStatus()
},
computed: {
istate() {
let orderType = uni.getStorageSync('orderType')
if (orderType == 1) {
console.log(this.orderItem.istate)
switch (parseInt(this.orderItem.istate)) {
// 网页版 0待支付 1已支付 -1支付失败 -2退款
//小程序 0待支付 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.orderItem.istate
}
}
},
created() {
// if (this.orderType == 1) {
// // 小程序订单
// this.getMPorder()
// return false
// }
if (this.orderSource === 'zy') {
// 则一
this.orderItem = this.tempOrderInfo
} else if (this.orderSource === 'mpxoil') {
// 则一
this.getMPorder()
} else if (this.formQr && !this.tempOrderInfo.payOrderId) {
if (this.orderType == 0) {
// 一般订单的网页订单
this.orderItem = {
...this.tempOrderInfo,
orderID: this.tempOrderInfo.payOrderId,
amount: this.tempOrderInfo.standardAmount,
realamount: this.tempOrderInfo.oilAmount,
userName: this.tempOrderInfo.driverId,
carNo: this.tempOrderInfo.plateNumber,
createDatetime: this.tempOrderInfo.createTime,
paydatetime: this.tempOrderInfo.payTime,
bar: this.tempOrderInfo.oilGun,
vol: this.tempOrderInfo.volume,
}
}
} else {
// G7
this.getOrderDetail()
}
},
onHide() {
this.clearStatus()
},
onUnload() {
this.clearStatus()
},
methods: {
getMPorder() {
cloudSiteApi.getNewItemSiteOrderInfo({
id: this.orderId
}).then(res => {
// 小程序点动感详情
if (res.code === 20000) {
this.orderItem = res.data
}
})
},
clearStatus() {
uni.removeStorageSync('formQr')
},
@@ -160,10 +230,10 @@
uni.navigateTo({
url: scanUrl,
fail: (err) => {
console.log(err)
// console.log(err)
},
success: (res) => {
console.log('chengg', res)
// console.log('chengg', res)
}
})
},
@@ -185,6 +255,7 @@
},
getOrderDetail() {
cloudSiteApi.getSiteOrderById(this.orderId).then(res => {
// G7
if (res.code === 20000) {
this.orderItem = res.data
}
@@ -192,20 +263,35 @@
}
},
filters: {
formatZyStr(value) {
switch (parseInt(value)) {
case 1:
return '订单已支付'
case -1:
return '订单支付失败'
case 2:
return '订单已取消'
case 3:
return '订单已退款'
default:
return '订单待支付'
}
},
formatStr(value) {
switch (parseInt(value)) {
case 1:
return '订单已支付'
case -1:
return '订单支付失败'
case 3:
return '订单已支付'
case -2:
return '订单已退款'
case 4:
return '订单支付失败'
case 0:
return '订单待支付'
default:
return '订单待支付'
case 2:
return '订单已取消'
}
},
couponFormat(value) {
@@ -218,6 +304,8 @@
numberFormat(value) {
if (value) {
return value.toFixed(2)
} else {
return '0.00'
}
},
invoiceStateFormat(value) {

View File

@@ -4,12 +4,50 @@
<block slot="backText">返回</block>
<block slot="content">加油记录</block>
</cu-custom>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''" v-for="(item,index) in tabList" :key="index"
@tap="tabSelect" :data-id="index">{{item}}</view>
<view class="fixed-t">
<view class="flex bg-main-oil padding solid-bottom">
<view class="flex-sub">
订单来源
</view>
<view class="flex-treble text-right">
<picker @change="pickSource" mode="selector" :value="indexSource" :range="sources">
<view class="picker">
{{activeSource}}
<text class="cuIcon-right"></text>
</view>
</picker>
</view>
</view>
</scroll-view>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''"
v-for="(item,index) in tabList" :key="index" @tap="tabSelect" :data-id="index">{{item}}</view>
</view>
</scroll-view>
</view>
<view class="placeholder-hidden">
<view class="flex bg-main-oil padding solid-bottom">
<view class="flex-sub">
订单来源
</view>
<view class="flex-treble text-right">
<picker @change="pickSource" mode="selector" :value="indexSource" :range="sources">
<view class="picker">
{{sources[indexSource]}}
<text class="cuIcon-right"></text>
</view>
</picker>
</view>
</view>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''"
v-for="(item,index) in tabList" :key="index" @tap="tabSelect" :data-id="index">{{item}}</view>
</view>
</scroll-view>
</view>
<view class="padding  padding-bottom-0">
<view v-show="TabCur==0" class="order-list">
<view  v-for="item in allOrder" v-if="allOrder.length" :key="item.orderID">
@@ -72,6 +110,9 @@
},
data() {
return {
// activeSource: '网页版',
indexSource: uni.getStorageSync('orderType') != null ? uni.getStorageSync('orderType') : 0,
sources: ['网页版', '小程序'],
tabList: [
'全部', '待支付', '已支付', '退款'
],
@@ -113,43 +154,79 @@
}
}
},
created() {
this.loadList(-3, this.pageNumber1)
this.loadList(0, this.pageNumber2)
this.loadList(1, this.pageNumber3)
this.loadList(-2, this.pageNumber4)
},
onReachBottom() { //上拉触底函数
if (this.TabCur === 0) {
if (!this.load.isLoadMore1) { //此处判断,上锁,防止重复请求
this.load.isLoadMore1 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 1) {
if (!this.load.isLoadMore2) { //此处判断,上锁,防止重复请求
this.load.isLoadMore2 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 2) {
if (!this.load.isLoadMore3) { //此处判断,上锁,防止重复请求
this.load.isLoadMore3 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 3) {
if (!this.load.isLoadMore4) { //此处判断,上锁,防止重复请求
this.load.isLoadMore4 = true
this.calcIstate(this.TabCur)
}
computed: {
createTime() {
let today = new Date()
let time = today.toISOString().slice(0, 10) + ' 00:00:00'
return time
},
activeSource() {
console.log(this.indexSource)
return this.sources[this.indexSource]
}
},
onReachBottom() { //上拉触底函数
this.loadMoreOrder('onReachBottom')
},
methods: {
loadMoreOrder() {
if (this.TabCur === 0) {
if (this.load.loadStatus1 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore1 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 1) {
if (this.load.loadStatus2 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore2 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 2) {
if (this.load.loadStatus3 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore3 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 3) {
if (this.load.loadStatus4 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore4 = true
this.calcIstate(this.TabCur)
}
}
},
pickSource(e) {
this.indexSource = e.detail.value
this.activeSource = this.sources[this.indexSource]
uni.setStorageSync('orderType', this.indexSource)
this.pageNumber1 = 1
this.pageNumber2 = 1
this.pageNumber3 = 1
this.pageNumber4 = 1
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.allOrder = []
this.refundOrder = []
this.finishedOrder = []
this.payingOrder = []
this.calcIstate(this.TabCur)
},
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
this.loadMoreOrder()
},
calcIstate(id) {
@@ -173,58 +250,121 @@
}
},
loadList(istate, pageNumber) {
uni.setStorageSync('orderType', this.indexSource)
const data2 = {
istate: istate, //类型Number 必有字段 备注:订单状态 0待支付 1支付成功 -3 查所有
pageIndex: pageNumber //类型Number 必有字段 备注:查询第几页,默认一页10条
}
cloudSiteApi.getSiteOrder(data2).then(res => {
console.log(data2.istate, data2.pageIndex)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
if (this.indexSource == 0) {
// 网页版
cloudSiteApi.getSiteOrder(data2).then(res => {
console.log(data2.istate, data2.pageIndex)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
}
}
})
} else if (this.indexSource == 1) {
// 0待支付 1支付成功 -3 查所有
// 0待支付 1已支付 -1支付失败 2已取消3已退款
// 小程序
if (data2.istate == -3) {
data2.istate = ''
} else if (data2.istate == -2) {
data2.istate = 2
}
})
data2.create_time = this.createTime
cloudSiteApi.getNewItemSiteOrder(data2).then(res => {
console.log(data2.istate, data2.pageIndex)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
}
}
})
}
}
}
}
@@ -238,4 +378,14 @@
.order-list .order-item:last-of-type {
margin-bottom: 0;
}
.placeholder-hidden {
opacity: 0;
}
.fixed-t {
position: fixed;
width: 750upx;
z-index: 3;
}
</style>

View File

@@ -4,16 +4,58 @@
<block slot="backText">返回</block>
<block slot="content">加油记录</block>
</cu-custom>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''" v-for="(item,index) in tabList" :key="index"
@tap="tabSelect" :data-id="index">{{item}}</view>
<view class="fixed-t">
<view class="flex bg-main-oil padding solid-bottom">
<view class="flex-sub">
订单来源
</view>
<view class="flex-treble text-right">
<picker @change="pickSource" mode="selector" :value="indexSource" :range="sources">
<view class="picker">
{{activeSource}}
<text class="cuIcon-right"></text>
</view>
</picker>
</view>
</view>
</scroll-view>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''"
v-for="(item,index) in tabList" :key="index" @tap="tabSelect" :data-id="index">{{item}}</view>
</view>
</scroll-view>
</view>
<view class="placeholder-hidden">
<view class="flex bg-main-oil padding solid-bottom">
<view class="flex-sub">
订单来源
</view>
<view class="flex-treble text-right">
<picker @change="pickSource" mode="selector" :value="indexSource" :range="sources">
<view class="picker">
{{sources[indexSource]}}
<text class="cuIcon-right"></text>
</view>
</picker>
</view>
</view>
<scroll-view scroll-x class="bg-white nav">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''"
v-for="(item,index) in tabList" :key="index" @tap="" :data-id="index">{{item}}</view>
</view>
</scroll-view>
</view>
<view class="padding  padding-bottom-0">
<view v-show="TabCur==0" class="order-list">
<view  v-for="item in allOrder" v-if="allOrder.length" :key="item.orderID">
<OrderItem class="cu-list order-item menu-avatar comment" :item="item" />
<OrderItem :indexSource="indexSource" class="cu-list order-item menu-avatar comment" :item="item" />
</view>
<view v-if="allOrder.length<1">
<Empty />
@@ -24,7 +66,7 @@
</view>
<view v-show="TabCur==1" class="order-list">
<view v-for="item in payingOrder" v-if="payingOrder.length" :key="item.orderID">
<OrderItem class="cu-list order-item menu-avatar comment" :item="item" />
<OrderItem :indexSource="indexSource" class="cu-list order-item menu-avatar comment" :item="item" />
</view>
<view v-if="payingOrder.length<1">
<Empty />
@@ -35,7 +77,7 @@
</view>
<view v-show="TabCur==2" class="order-list">
<view   v-for="item in finishedOrder" v-if="finishedOrder.length" :key="item.orderID">
<OrderItem class="cu-list order-item menu-avatar comment" :item="item" />
<OrderItem :indexSource="indexSource" class="cu-list order-item menu-avatar comment" :item="item" />
</view>
<view v-if="finishedOrder.length<1">
<Empty />
@@ -46,7 +88,7 @@
</view>
<view v-show="TabCur==3" class="order-list">
<view   v-for="item in refundOrder" v-if="refundOrder.length" :key="item.orderID">
<OrderItem class="cu-list order-item menu-avatar comment" :item="item" />
<OrderItem :indexSource="indexSource" class="cu-list order-item menu-avatar comment" :item="item" />
</view>
<view v-if="refundOrder.length<1">
<Empty />
@@ -72,6 +114,9 @@
},
data() {
return {
activeSource: '网页版',
indexSource: 0,
sources: ['网页版', '小程序'],
tabList: [
'全部', '待支付', '已支付', '退款'
],
@@ -113,117 +158,204 @@
}
}
},
created() {
this.loadList(-3, this.pageNumber1)
this.loadList(0, this.pageNumber2)
this.loadList(1, this.pageNumber3)
this.loadList(-2, this.pageNumber4)
this.loadList(-3, this.pageNumber1, 'created')
this.loadList(0, this.pageNumber2, 'created')
this.loadList(1, this.pageNumber3, 'created')
this.loadList(-2, this.pageNumber4, 'created')
},
onReachBottom() { //上拉触底函数
if (this.TabCur === 0) {
if (!this.load.isLoadMore1) { //此处判断,上锁,防止重复请求
this.load.isLoadMore1 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 1) {
if (!this.load.isLoadMore2) { //此处判断,上锁,防止重复请求
this.load.isLoadMore2 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 2) {
if (!this.load.isLoadMore3) { //此处判断,上锁,防止重复请求
this.load.isLoadMore3 = true
this.calcIstate(this.TabCur)
}
}
if (this.TabCur === 3) {
if (!this.load.isLoadMore4) { //此处判断,上锁,防止重复请求
this.load.isLoadMore4 = true
this.calcIstate(this.TabCur)
}
}
// console.log('触底函数')
this.loadMoreOrder('onReachBottom')
},
methods: {
loadMoreOrder(from) {
// console.log(from,'loadMoreOrder时间')
if (this.TabCur === 0) {
if (this.load.loadStatus1 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore1 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 1) {
if (this.load.loadStatus2 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore2 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 2) {
if (this.load.loadStatus3 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore3 = true
this.calcIstate(this.TabCur)
}
} else if (this.TabCur === 3) {
if (this.load.loadStatus4 != 'nomore') { //此处判断,上锁,防止重复请求
this.load.isLoadMore4 = true
this.calcIstate(this.TabCur)
}
}
},
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
// console.log('tabSelect时间')
this.loadMoreOrder('tabSelect')
},
pickSource(e) {
this.indexSource = e.detail.value
this.activeSource = this.sources[this.indexSource]
uni.setStorageSync('orderType', this.indexSource)
this.pageNumber1 = 1
this.pageNumber2 = 1
this.pageNumber3 = 1
this.pageNumber4 = 1
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.load.isLoadMore1 = false
this.load.loadStatus1 = 'load'
this.allOrder = []
this.refundOrder = []
this.finishedOrder = []
this.payingOrder = []
this.calcIstate(this.TabCur)
},
calcIstate(id) {
switch (id) {
case 0:
this.istate = -3
this.loadList(this.istate, this.pageNumber1)
this.loadList(this.istate, this.pageNumber1, 'calcIstate全部')
break
case 1:
this.istate = 0
this.loadList(this.istate, this.pageNumber2)
this.loadList(this.istate, this.pageNumber2, 'calcIstate待支付')
break
case 2:
this.istate = 1
this.loadList(this.istate, this.pageNumber3)
this.loadList(this.istate, this.pageNumber3, 'calcIstate已支付')
break
case 3:
this.istate = 1
this.loadList(this.istate, this.pageNumber4)
this.istate = -2
this.loadList(this.istate, this.pageNumber4, 'calcIstate退款')
break
}
},
loadList(istate, pageNumber) {
loadList(istate, pageNumber, from) {
const data2 = {
istate: istate, //类型Number 必有字段 备注:订单状态 0待支付 1支付成功 -3 查所有
pageIndex: pageNumber //类型Number 必有字段 备注:查询第几页,默认一页10条
}
cloudSiteApi.getAllSiteOrder(data2).then(res => {
console.log(data2.istate, data2.pageIndex)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
if (this.indexSource == 0) {
// 网页版
cloudSiteApi.getAllSiteOrder(data2).then(res => {
// console.log('参数', data2.istate, '页码', data2.pageIndex, '来源', from)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else if (res.data.length == 10) {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
}
}
})
} else if (this.indexSource == 1) {
// 0待支付 1已支付 -1支付失败 2已取消3已退款
// 小程序
if (data2.istate == -3) {
data2.istate = ''
} else if (data2.istate == -2) {
data2.istate = 2
}
})
cloudSiteApi.getNewItemSiteOrder(data2).then(res => {
// console.log(data2.istate, data2.pageIndex)
if (res.code === 20000) {
switch (istate) {
case -3:
this.allOrder = this.allOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore1 = true
this.load.loadStatus1 = 'nomore'
} else {
this.pageNumber1++
this.load.isLoadMore1 = false
}
break
case -2:
this.refundOrder = this.refundOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore4 = true
this.load.loadStatus4 = 'nomore'
} else {
this.pageNumber4++
this.load.isLoadMore4 = false
}
break
case 0:
this.payingOrder = this.payingOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore2 = true
this.load.loadStatus2 = 'nomore'
} else {
this.pageNumber2++
this.load.isLoadMore2 = false
}
break
case 1:
this.finishedOrder = this.finishedOrder.concat(res.data)
if (res.data.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
this.load.isLoadMore3 = true
this.load.loadStatus3 = 'nomore'
} else {
this.pageNumber3++
this.load.isLoadMore3 = false
}
break
}
}
})
}
}
}
}
@@ -237,4 +369,14 @@
.order-list .order-item:last-of-type {
margin-bottom: 0;
}
.placeholder-hidden {
opacity: 0;
}
.fixed-t {
position: fixed;
width: 750upx;
z-index: 3;
}
</style>