| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 | <template>	<ax-body @init="initBody" blank="0">		<view class="body">			<view class="app-flex c-between top">				<view class="tabs">					<view v-for="(item,index) in tabs.data" :key="index" @click="tabs.index=index" 					class="tab" :class="{active:tabs.index==index}">{{item.name}}</view>				</view>				<view><text @click="openFilter()" class="ax-iconline i-setting filter-icon"></text></view>			</view>			<view class="list app-hide-scrollbar">				<view v-for="(item,index) in orders.data" :key="index" class="item">					<view class="title" @click="toOrderDeile(item)">						<view class="name">{{item.params.stationName}}</view>						<view class="state" :class="[getSates(item).color]">{{getSates(item).name}}</view>					</view>					<view class="subinfo" @click="toOrderDeile(item)">						<view>							<view>订单时间: {{item.createTime}}</view>							<view>终端名称:  {{item.params.deviceName}}</view>						</view>					</view>					<view class="bottom" @click="toOrderDeile(item)">						<view class="money-txt">充电费用:</view>						<view class="money">							<text style="color:red;" v-if="item.discountMoney||item.firmPrice">共减 ¥{{(item.discountMoney+item.firmPrice).toFixed(4)}}</text>							<text style="width: 20rpx;display: inline-block;"></text>							<text :style="{color:`${item.discountMoney||item.firmPrice?'':'red'}`}"><text v-if="item.discountMoney||item.firmPrice">实付</text> ¥{{item.realCost.toFixed(4) || ''}}</text>						</view>					</view>					<view class="button-box">						<view @click.stop="customerService()" class="invoice">开发票</view>							<view class="arrears-btn-box" v-if="item.maspStatus===1" @click="$app.url.goto('/pages/coupon-buy/coupon-buy')">								<view class="overflow-mon">超{{(item.maspAmount+item.maspRealAmount).toFixed(2)}}元</view>								<view class="arrears-btn">去补缴</view>							</view>					</view>				</view>				<view v-if="orders.data.length==0" class="empty">					<icon class="ax-iconblock i-meiyou icon"></icon>					<view>暂无数据</view>				</view>				<view v-if="orders.total>orders.data.length" @click="loadData(true)" class="loadmore"><text>点击加载更多</text></view>			</view>			<!-- 筛选查询 -->			<ax-popup ref="filter" position="top" maskType="black" maskEnable maskClose>				<view class="filter-box" :style="{'--filter-padding-top':`${bodyTop+60}px`}">					<view class="divider"></view>					<view class="filter-form">						<view class="cell">							<view class="lable">开始时间</view>							<picker @change="onChange('start',$event)" :value="filter.start" class="content" mode="date">								<text>{{filter.start}}</text>								<text class="ax-iconline i-arrow-right icon"></text>							</picker>						</view>						<view class="cell">							<view class="lable">结束时间</view>							<picker @change="onChange('end',$event)" :value="filter.end" class="content" mode="date">								<text>{{filter.end}}</text>								<text class="ax-iconline i-arrow-right icon"></text>							</picker>						</view>					</view>					<view class="fast">						<view class="cell">							<view class="lable">快速设定</view>						</view>						<view class="shortcut-list">							<view v-for="(item,index) in shortcuts" :key="index" @click="shortcut(item)" class="shortcut">{{item.name}}</view>						</view>					</view>					<view @click="submit()" class="submit">确认查询</view>				</view>			</ax-popup>		</view>	</ax-body></template><script>	export default {		onLoad(options) {			this.shortcut({code:'currentMonth'});			if(options.index){				this.tabs.index=options.index				this.formSubmitPara.type=1			}else{				this.loadData();			}		},		data() {			return {				bodyTop: 0,				tabs:{					index: 0,					data:[{name:'全部订单',type:-1},{name:'进行中',type:1},{name:'已完成',type:2}]				},				shortcuts:[					{name:'近7天',code:'7day'},					{name:'近30天',code:'30day'},					{name:'近三月',code:'3months'},					{name:'本月份',code:'currentMonth'},				],				orders:{					total: 0,					data:[],				},				filter:{					start: '',					end: '',				},				formSubmitPara : {//提交的参数信息					startDate: '',					endDate: '',					pageNum : 1,					pageSize : 10,					type:-1,//全部订单				}			}		},		watch:{			"tabs.index":function(){				this.loadData();			}		},		methods: {			initBody(data){				this.bodyTop = data.top;			},			shortcut(item){				const now = new Date();				const format = this.$app.date.format;				switch (item.code){					case '7day':						now.setDate(now.getDate()-7);						this.filter.start = format('yyyy-MM-dd',now);						this.filter.end = this.$app.date.format('yyyy-MM-dd');					break;					case '30day':						now.setDate(now.getDate()-30);						this.filter.start = format('yyyy-MM-dd',now);						this.filter.end = this.$app.date.format('yyyy-MM-dd');					break;					case '3months':						this.filter.start = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()-3,1));						this.filter.end = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()+1,0));					break;					case 'currentMonth':						this.filter.start = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth(),1));						this.filter.end = format('yyyy-MM-dd',new Date(now.getFullYear(),now.getMonth()+1,0));					break;				}			},			openFilter(){				this.$refs.filter.open();			},			submit(){				console.log(this.filter);				this.formSubmitPara.startDate = this.filter.start;				this.formSubmitPara.endDate = this.filter.end;				this.loadData();				this.$refs.filter.close();			},			onChange(name,e){				this.filter[name] = e.detail.value;			},			loadData(append){				this.formSubmitPara.type = this.tabs.data[this.tabs.index].type;				if(append){					//点击加载更多的调用					this.formSubmitPara.pageNum = this.formSubmitPara.pageNum + 1;				}else{					this.formSubmitPara.pageNum = 0;					this.orders.data =[];					this.orders.total = 0;				}				this.$api.base("post","/chargeApi/queryOrderList",this.formSubmitPara,{}).then(res=>{					console.log("订单列表:",res)					this.orders.data = this.orders.data.concat(res.table.rows);					this.orders.total = res.table.total;				})			},			//映射状态信息			getSates(item){				var obj = {color:"",name:"未知"};				if(item.status == 0){					obj.color = "";					obj.name = "待充电";				}else if(item.status == 1){					obj.color = "green";					obj.name = "充电中";				}else if(item.status == 2){					obj.color = "green";					obj.name = "结算中";				}else if(item.status == 3){					obj.color = "blue";					obj.name = "已完成";				}else if(item.status == 5){					obj.color = "blue";					obj.name = "订单取消";				}				return obj;			},			toOrderDeile(item){				if(item.status == 0 || item.status == 1){					//有充电中的订单,点击时跳转到充电中页面进行查看					this.$app.url.goto('/pages/charging/charging?orderId='+item.id+"&deviceId="+item.deviceId,true);				}else{					this.$app.url.goto('/pages/order-detail/order-detail?orderId='+item.id);				}							},			// 打开客服			customerService(){				const cs = this.$config.customerService;				this.$app.act.customerService(cs.id,cs.url).catch(err=>{					console.log(err);					this.$app.popup.alert('客服中心失联啦,请联系管理员!');				});			},		}	}</script><style scoped>@import url("order.css");</style>
 |