oil-station/gasStation-uni/pagesMy/fleetInfo/fund.vue
2024-09-30 15:05:34 +08:00

434 lines
9.8 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="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>