434 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			434 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
| 	<view class="centenr">
 | ||
| 		<view class="Candywrapper">
 | ||
| 			<view class="tab-box">
 | ||
| 				<view class="tab_" :class="{active:index== type }" @click="getindex(index)"
 | ||
| 					v-for="(item,index) in  tabs" :key="index">
 | ||
| 					{{ item.name }}
 | ||
| 				</view>
 | ||
| 			</view>
 | ||
| 			<view v-if="type==0">
 | ||
| 				<view class="card_box c-url">
 | ||
| 
 | ||
| 					<view style="margin: 13px 0px;">可用余额(元)</view>
 | ||
| 					<view class="r-num">{{fleetBalance}}</view>
 | ||
| 				</view>
 | ||
| 				<view class="tab-bs">
 | ||
| 					<view class="w_box" @click="show1 = true">类型筛选 <u-icon name="arrow-down-fill"></u-icon> </view>
 | ||
| 					<view class="w_box" @click="show = true">全部时间 <u-icon name="arrow-down-fill"></u-icon> </view>
 | ||
| 				</view>
 | ||
| 				<view class="bai_box" v-for="item in pointsList">
 | ||
| 					<view class="left-img">
 | ||
| 						<!-- <image src="../../static/icon/hyxf.png" mode=""></image> -->
 | ||
| 						<image src="../../static/icon/jfdh.png" mode=""></image>
 | ||
| 					</view>
 | ||
| 					<view style="width: 85%;">
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="l-text">{{item.fromType}}</view>
 | ||
| 							<view class="r-text">
 | ||
| 								<span v-if="item.change_type == 1">+</span>
 | ||
| 								<span v-else>-</span>
 | ||
| 								{{item.cardPaymentAmount}}
 | ||
| 							</view>
 | ||
| 						</view>
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="">{{item.cardType}}</view>
 | ||
| 							<view class="">余额{{item.afterTheChange}}</view>
 | ||
| 						</view>
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="">{{item.storeName}}</view>
 | ||
| 							<view class="">{{item.paymentTime}}</view>
 | ||
| 						</view>
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 				<u-datetime-picker :show="show" v-model="value1" mode="year-month" @cancel="cancel1"
 | ||
| 					@confirm="confirm1"></u-datetime-picker>
 | ||
| 				<u-picker :show="show1" :columns="columnsBalance" keyName="label" @cancel="cancel"
 | ||
| 					@confirm="confirmBalance"></u-picker>
 | ||
| 			</view>
 | ||
| 			<view v-if="type==1">
 | ||
| 				<view class="tab-bs">
 | ||
| 					<view class="w_box" @click="show1 = true">类型筛选 <u-icon name="arrow-down-fill"></u-icon> </view>
 | ||
| 					<view class="w_box" @click="show = true">全部时间 <u-icon name="arrow-down-fill"></u-icon> </view>
 | ||
| 				</view>
 | ||
| 				<view class="bai_box" v-for=" item in pointsList">
 | ||
| 					<view class="left-img">
 | ||
| 						<image src="../../static/icon/hyxf.png" mode=""></image>
 | ||
| 					</view>
 | ||
| 					<view style="width: 85%;">
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="l-text" v-if="item.adjustType == 0">额度增加</view>
 | ||
| 							<view class="l-text" v-else>额度扣除</view>
 | ||
| 							<view class="r-text">
 | ||
| 								<span v-if="item.adjustType == 0">+</span>
 | ||
| 								<span v-else>-</span>
 | ||
| 								{{item.adjustLimit}}
 | ||
| 							</view>
 | ||
| 						</view>
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="">{{item.userName}}</view>
 | ||
| 							<view class="">当前额度{{item.remainingCreditLimit}}</view>
 | ||
| 						</view>
 | ||
| 						<view class="right-box">
 | ||
| 							<view class="">操作人:{{item.createName}}</view>
 | ||
| 							<view class="">{{item.createTime}}</view>
 | ||
| 						</view>
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 				<!-- <view v-if="!pointsList || pointsList.length==0">
 | ||
| 				<u-empty mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png">
 | ||
| 				</u-empty>
 | ||
| 			</view> -->
 | ||
| 				<u-datetime-picker :show="show" v-model="value1" mode="year-month" @cancel="cancel1"
 | ||
| 					@confirm="confirm1"></u-datetime-picker>
 | ||
| 				<u-picker :show="show1" :columns="columns" keyName="label" @cancel="cancel"
 | ||
| 					@confirm="confirm"></u-picker>
 | ||
| 			</view>
 | ||
| 		</view>
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 	import request from '../../utils/request'
 | ||
| 	export default {
 | ||
| 		data() {
 | ||
| 			return {
 | ||
| 				tabs: [{
 | ||
| 					name: '余额明细',
 | ||
| 				}, {
 | ||
| 					name: '额度明细',
 | ||
| 				}, ],
 | ||
| 				type: 0,
 | ||
| 				query: {
 | ||
| 					chainStoreId: '',
 | ||
| 					couponType: '',
 | ||
| 					useStatus: 0,
 | ||
| 					pageNo: 1,
 | ||
| 					pageSize: 10
 | ||
| 				},
 | ||
| 				cardBalance: {},
 | ||
| 				show: false,
 | ||
| 				show1: false,
 | ||
| 				value1: Number(new Date()),
 | ||
| 				fleetBalance: 0,
 | ||
| 				columns: [
 | ||
| 					[{
 | ||
| 						label: '全部类型',
 | ||
| 						type: null
 | ||
| 					}, {
 | ||
| 						label: '额度增加',
 | ||
| 						type: 0
 | ||
| 					}, {
 | ||
| 						label: '额度扣除',
 | ||
| 						type: 1
 | ||
| 					}]
 | ||
| 				],
 | ||
| 				columnsBalance: [
 | ||
| 					[{
 | ||
| 						label: '全部类型',
 | ||
| 						type: null
 | ||
| 					}, {
 | ||
| 						label: '油品',
 | ||
| 						type: '油品'
 | ||
| 					}, {
 | ||
| 						label: '积分兑换',
 | ||
| 						type: "积分兑换"
 | ||
| 					}, {
 | ||
| 						label: "会员充值",
 | ||
| 						type: '会员充值'
 | ||
| 					}]
 | ||
| 				],
 | ||
| 				queryParams: {
 | ||
| 					pageNo: 1,
 | ||
| 					pageSize: 30,
 | ||
| 					type: "",
 | ||
| 					storeId: uni.getStorageSync("storeId"),
 | ||
| 					changeReason: "",
 | ||
| 					fleetId: "",
 | ||
| 					startTime: ""
 | ||
| 				},
 | ||
| 				pointsList: [],
 | ||
| 				total: 0,
 | ||
| 				fleetId: '',
 | ||
| 				storeId: ''
 | ||
| 			}
 | ||
| 		},
 | ||
| 		onLoad(e) {
 | ||
| 			this.queryParams.fleetId = e.fleetId
 | ||
| 			// console.log('this.fleetId', this.fleetId);
 | ||
| 			this.storeId = uni.getStorageSync("storeId"),
 | ||
| 				this.getFleetBalance()
 | ||
| 		},
 | ||
| 		onShow() {
 | ||
| 			this.query.chainStoreId = uni.getStorageSync('chainStoreId');
 | ||
| 			this.getUserBalance()
 | ||
| 			this.getList()
 | ||
| 		},
 | ||
| 		onPullDownRefresh() {
 | ||
| 			console.log("刷新");
 | ||
| 			this.pointsList = []
 | ||
| 			this.queryParams = {
 | ||
| 				pageNo: 1,
 | ||
| 				pageSize: 30,
 | ||
| 				type: "",
 | ||
| 				storeId: uni.getStorageSync("storeId"),
 | ||
| 				changeReason: "",
 | ||
| 				startTime: "",
 | ||
| 				fromType: null
 | ||
| 			}
 | ||
| 			this.getList()
 | ||
| 		},
 | ||
| 		onReachBottom() {
 | ||
| 			// 触底加载
 | ||
| 			if (this.pointsList.length < this.total) {
 | ||
| 				this.queryParams.pageNo++
 | ||
| 				this.getList()
 | ||
| 			}
 | ||
| 		},
 | ||
| 		methods: {
 | ||
| 			getindex(index) {
 | ||
| 				this.type = index
 | ||
| 				this.queryParams.startTime = null
 | ||
| 				this.value1 = Number(new Date())
 | ||
| 				if (index == 1) {
 | ||
| 					this.getFleetLinesChange()
 | ||
| 				} else if (index == 0) {
 | ||
| 					this.getList()
 | ||
| 				}
 | ||
| 			},
 | ||
| 			// 获取余额信息
 | ||
| 			getUserBalance() {
 | ||
| 				request({
 | ||
| 					url: '/business/userManager/user/getUserBalanceApplet',
 | ||
| 					method: 'get',
 | ||
| 					params: this.query
 | ||
| 				}).then(res => {
 | ||
| 					if (res.code == 200) {
 | ||
| 						this.cardBalance = res.data
 | ||
| 					}
 | ||
| 				})
 | ||
| 			},
 | ||
| 			//获取车队金额
 | ||
| 			getFleetBalance() {
 | ||
| 
 | ||
| 				request({
 | ||
| 					url: '/fleetInfo/' + this.queryParams.fleetId,
 | ||
| 					method: 'get',
 | ||
| 					// params: this.query
 | ||
| 				}).then(res => {
 | ||
| 					if (res.code == 200) {
 | ||
| 						this.fleetBalance = res.data.totalBalance
 | ||
| 					}
 | ||
| 				})
 | ||
| 			},
 | ||
| 			//获取额度
 | ||
| 			getFleetLinesChange() {
 | ||
| 				request({
 | ||
| 					url: '/fleetLinesChange/queryByPageUni',
 | ||
| 					method: 'get',
 | ||
| 					params: this.queryParams
 | ||
| 				}).then(res => {
 | ||
| 					if (res.code == 200) {
 | ||
| 						this.pointsList = res.data.records,
 | ||
| 							this.total = res.data.total
 | ||
| 					}
 | ||
| 				})
 | ||
| 			},
 | ||
| 			getList() {
 | ||
| 				console.log('this.queryParams:', this.queryParams);
 | ||
| 				request({
 | ||
| 					url: '/fleetConsumeRecord/queryByPageUni',
 | ||
| 					method: 'get',
 | ||
| 					params: this.queryParams
 | ||
| 				}).then(res => {
 | ||
| 					if (res.code == 200) {
 | ||
| 						this.pointsList = res.data.records
 | ||
| 						this.total = res.data.total
 | ||
| 					}
 | ||
| 				})
 | ||
| 			},
 | ||
| 			confirm(e) {
 | ||
| 				this.queryParams.pageNo = 1
 | ||
| 				console.log("获取的e:", e);
 | ||
| 				if (e.value[0] == '全部类型') {
 | ||
| 					this.queryParams.adjustType = null
 | ||
| 				} else {
 | ||
| 					this.queryParams.adjustType = e.value[0].type
 | ||
| 				}
 | ||
| 				this.getFleetLinesChange()
 | ||
| 				this.show1 = false
 | ||
| 			},
 | ||
| 
 | ||
| 			confirmBalance(e) {
 | ||
| 				this.queryParams.pageNo = 1
 | ||
| 				console.log("获取的e:", e);
 | ||
| 				if (e.value[0] == '全部类型') {
 | ||
| 					this.queryParams.fromType = null
 | ||
| 				} else {
 | ||
| 					this.queryParams.fromType = e.value[0].type
 | ||
| 				}
 | ||
| 				console.log('this.queryParams:', this.queryParams);
 | ||
| 				this.getList()
 | ||
| 				this.show1 = false
 | ||
| 			},
 | ||
| 			cancel() {
 | ||
| 				this.show1 = false
 | ||
| 			},
 | ||
| 			timestampToString(timestamp) {
 | ||
| 				// 将时间戳转换为Date对象
 | ||
| 				const date = new Date(timestamp);
 | ||
| 				// 使用toLocaleDateString和toLocaleTimeString可以根据本地格式转换日期和时间
 | ||
| 				const dateString = date.toLocaleDateString()
 | ||
| 				const timeString = date.toLocaleTimeString();
 | ||
| 				// 返回日期和时间的组合
 | ||
| 				return date.getFullYear() + '-' + (date.getMonth() + 1);
 | ||
| 			},
 | ||
| 			confirm1(e) {
 | ||
| 				this.queryParams.startTime = this.timestampToString(e.value)
 | ||
| 				this.queryParams.pageNo = 1
 | ||
| 				if (this.type == 1) {
 | ||
| 					this.getFleetLinesChange()
 | ||
| 				} else {
 | ||
| 					this.getList()
 | ||
| 				}
 | ||
| 
 | ||
| 				this.show = false
 | ||
| 			},
 | ||
| 			cancel1() {
 | ||
| 				this.show = false
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| </script>
 | ||
| 
 | ||
| <style scoped lang="scss">
 | ||
| 	.centenr {
 | ||
| 		width: 100%;
 | ||
| 		height: 100vh;
 | ||
| 		background: #F9F9F9;
 | ||
| 	}
 | ||
| 
 | ||
| 	.Candywrapper {
 | ||
| 		background: #F9F9F9;
 | ||
| 		box-sizing: border-box;
 | ||
| 		padding: 10px;
 | ||
| 	}
 | ||
| 
 | ||
| 	.card_box {
 | ||
| 		width: 100%;
 | ||
| 		height: 90px;
 | ||
| 
 | ||
| 
 | ||
| 		box-sizing: border-box;
 | ||
| 		padding: 10px;
 | ||
| 		color: #fff;
 | ||
| 		font-size: 14px;
 | ||
| 	}
 | ||
| 
 | ||
| 	.c-url {
 | ||
| 		background: url('../../static/imgs/jf.png') no-repeat;
 | ||
| 		background-size: 100% 100%;
 | ||
| 	}
 | ||
| 
 | ||
| 	.r-size {
 | ||
| 		width: 100%;
 | ||
| 		display: flex;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: flex-end;
 | ||
| 	}
 | ||
| 
 | ||
| 	.r-num {
 | ||
| 		font-weight: 600;
 | ||
| 		font-size: 20px;
 | ||
| 		color: #FFFFFF;
 | ||
| 	}
 | ||
| 
 | ||
| 	.tab-bs {
 | ||
| 		width: 100%;
 | ||
| 		display: flex;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: space-between;
 | ||
| 		background: #fff;
 | ||
| 		margin: 15px auto;
 | ||
| 	}
 | ||
| 
 | ||
| 	.w_box {
 | ||
| 		width: 50%;
 | ||
| 		display: flex;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: center;
 | ||
| 		box-sizing: border-box;
 | ||
| 		padding: 15px;
 | ||
| 	}
 | ||
| 
 | ||
| 	.bai_box {
 | ||
| 		width: 100%;
 | ||
| 		box-sizing: border-box;
 | ||
| 		padding: 15px 10px;
 | ||
| 		background: #fff;
 | ||
| 		display: flex;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: space-between;
 | ||
| 	}
 | ||
| 
 | ||
| 	.left-img {
 | ||
| 		margin-right: 10px;
 | ||
| 
 | ||
| 		image {
 | ||
| 			width: 40px;
 | ||
| 			height: 40px;
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 	.right-box {
 | ||
| 		width: 100%;
 | ||
| 		display: flex;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: space-between;
 | ||
| 		font-size: 12px;
 | ||
| 		color: #666666;
 | ||
| 	}
 | ||
| 
 | ||
| 	.l-text {
 | ||
| 		font-size: 16px;
 | ||
| 		color: #333333;
 | ||
| 		margin-bottom: 5px;
 | ||
| 		font-weight: bold;
 | ||
| 	}
 | ||
| 
 | ||
| 	.r-text {
 | ||
| 		font-size: 16px;
 | ||
| 		color: #333333;
 | ||
| 		margin-bottom: 5px;
 | ||
| 		font-weight: bold;
 | ||
| 	}
 | ||
| 
 | ||
| 	.tab-box {
 | ||
| 		width: 100%;
 | ||
| 		height: 40px;
 | ||
| 		background: #fff;
 | ||
| 		display: flex;
 | ||
| 		box-sizing: border-box;
 | ||
| 		margin-bottom: 25px;
 | ||
| 		justify-content: center;
 | ||
| 	}
 | ||
| 
 | ||
| 	.tab_ {
 | ||
| 		width: 75px;
 | ||
| 		height: 100%;
 | ||
| 		//border-bottom: 2px solid #FF770F;
 | ||
| 		display: flex;
 | ||
| 		font-weight: 500;
 | ||
| 		font-size: 14px;
 | ||
| 		color: #999999;
 | ||
| 		align-items: center;
 | ||
| 		justify-content: center;
 | ||
| 		margin-left: 50px;
 | ||
| 		cursor: pointer;
 | ||
| 	}
 | ||
| 
 | ||
| 	.active {
 | ||
| 		border-bottom: 2px solid #FF770F !important;
 | ||
| 		color: #FF770F !important;
 | ||
| 	}
 | ||
| </style> | 
