306 lines
7.1 KiB
Vue
306 lines
7.1 KiB
Vue
<template>
|
|
<view :class="{ popupShow: showPop }">
|
|
<u-navbar
|
|
placeholder
|
|
:title="$t('fn_297')"
|
|
:bgColor="'#ffffff'"
|
|
leftIcon="arrow-left"
|
|
@leftClick="goBack"
|
|
>
|
|
<button class="nav-right-btn" slot="right" @click="openPop()">
|
|
{{ $t("MY_ORD_50") }}
|
|
</button>
|
|
</u-navbar>
|
|
<view class="listdata-list">
|
|
<view
|
|
class="listdata-item"
|
|
v-for="(item, index) in listData"
|
|
:key="index"
|
|
>
|
|
<view class="d-b-s listdata-label">
|
|
<view class="item-name">{{ $t("w_0296") }}</view>
|
|
<view class="item-form flex-1">{{ item.tradeCode }}</view>
|
|
</view>
|
|
<view class="d-b-s listdata-label">
|
|
<view class="item-name">{{ $t("w_0294") }}</view>
|
|
<view class="item-form flex-1">{{ item.pkAccountVal }}</view>
|
|
</view>
|
|
<view class="d-b-s listdata-label">
|
|
<view class="item-name">{{ $t("N_I_163") }}</view>
|
|
<view class="item-form flex-1">{{ item.tradeTypeVal }}</view>
|
|
</view>
|
|
<view class="d-b-s listdata-label">
|
|
<view class="item-name">{{ $t("w_0297") }}</view>
|
|
<view class="item-form flex-1">{{
|
|
formatNum(item.tradeAmount)
|
|
}}</view>
|
|
</view>
|
|
<view class="d-b-s listdata-label">
|
|
<view class="item-name">{{ $t("N_I_160") }}</view>
|
|
<view class="item-form flex-1">{{ item.creationTime }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="d-c-c p30" v-if="listData.length == 0 && !loading">
|
|
<text class="iconfont icon-wushuju"></text>
|
|
<text class="cont">{{ $t("w_0405") }}</text>
|
|
</view>
|
|
<uni-load-more v-else :loadingType="loadingType"></uni-load-more>
|
|
<!-- 筛选 -->
|
|
<u-popup :show="showPop" mode="right" @close="closePop" @open="openPop">
|
|
<view class="pop-content rightpop">
|
|
<view class="pop-title d-b-c">
|
|
<view class="f28 gray3">{{ $t("MY_ORD_50") }}</view>
|
|
<view class="f28 domation" @click="closePop">{{
|
|
$t("N_I_241")
|
|
}}</view>
|
|
</view>
|
|
|
|
<view class="right-item-title">{{ $t("N_I_160") }}</view>
|
|
<view class="d-c-c">
|
|
<picker
|
|
mode="date"
|
|
:value="form.startDate"
|
|
:start="startDate"
|
|
:end="endDate"
|
|
@change="bindDateChange1"
|
|
>
|
|
<view class="data-input">{{
|
|
form.startDate || $t("CK_KS_3")
|
|
}}</view>
|
|
</picker>
|
|
<view
|
|
style="
|
|
width: 30rpx;
|
|
height: 1rpx;
|
|
background-color: #333;
|
|
margin: 0 24rpx;
|
|
"
|
|
></view>
|
|
<picker
|
|
mode="date"
|
|
:value="form.endDate"
|
|
:start="startDate"
|
|
:end="endDate"
|
|
@change="bindDateChange2"
|
|
>
|
|
<view class="data-input">{{ form.endDate || $t("CK_KS_9") }}</view>
|
|
</picker>
|
|
</view>
|
|
<view class="pop-btns">
|
|
<view class="pop-left-btn" @click="resetSubmit()">{{
|
|
$t("w_0257")
|
|
}}</view>
|
|
<view class="pop-right-btn" @click="searchSubmit()">{{
|
|
$t("w_0035")
|
|
}}</view>
|
|
</view>
|
|
</view>
|
|
</u-popup>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import uniLoadMore from "@/components/uni-load-more.vue";
|
|
export default {
|
|
components: {
|
|
uniLoadMore,
|
|
},
|
|
data() {
|
|
const currentDate = this.getDate({
|
|
format: true,
|
|
});
|
|
return {
|
|
/*最后一页码数*/
|
|
last_page: 0,
|
|
/*当前页面*/
|
|
page: 1,
|
|
/*每页条数*/
|
|
list_rows: 10,
|
|
/*有没有等多*/
|
|
no_more: false,
|
|
total: 0,
|
|
/*是否正在加载*/
|
|
loading: true,
|
|
listData: [],
|
|
showPop: false,
|
|
date1: "",
|
|
date2: "",
|
|
form: {
|
|
startDate: "",
|
|
endDate: "",
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
},
|
|
// tradeList: [],
|
|
// accountList: [],
|
|
};
|
|
},
|
|
onLoad(e) {
|
|
this.form.pkAccount = e.pkAccount;
|
|
},
|
|
onShow() {
|
|
/*获取数据*/
|
|
this.listData = [];
|
|
this.page = 1;
|
|
this.getData();
|
|
},
|
|
computed: {
|
|
/*加载中状态*/
|
|
loadingType() {
|
|
if (this.loading) {
|
|
return 1;
|
|
} else {
|
|
if (this.listData.length != 0 && this.no_more) {
|
|
return 2;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
},
|
|
startDate() {
|
|
return this.getDate("start");
|
|
},
|
|
endDate() {
|
|
return this.getDate("end");
|
|
},
|
|
},
|
|
methods: {
|
|
onReachBottom() {
|
|
let self = this;
|
|
if (self.form.pageNum * self.form.pageSize < self.total) {
|
|
self.form.pageNum++;
|
|
self.getData();
|
|
}
|
|
self.no_more = true;
|
|
},
|
|
goBack() {
|
|
uni.navigateBack();
|
|
},
|
|
getDate(type) {
|
|
const date = new Date();
|
|
let year = date.getFullYear();
|
|
let month = date.getMonth() + 1;
|
|
let day = date.getDate();
|
|
|
|
if (type === "start") {
|
|
year = year - 60;
|
|
} else if (type === "end") {
|
|
year = year + 2;
|
|
}
|
|
month = month > 9 ? month : "0" + month;
|
|
day = day > 9 ? day : "0" + day;
|
|
return `${year}-${month}-${day}`;
|
|
},
|
|
bindDateChange1: function (e) {
|
|
this.form.startDate = e.detail.value;
|
|
},
|
|
bindDateChange2: function (e) {
|
|
this.form.endDate = e.detail.value;
|
|
},
|
|
getData() {
|
|
// return;
|
|
let self = this;
|
|
self.loading = true;
|
|
var formdata = self.form;
|
|
self._post(
|
|
"member/api/wallet/recoil-details?" +
|
|
"pageNum=" +
|
|
formdata.pageNum +
|
|
"&pageSize=" +
|
|
formdata.pageSize,
|
|
formdata,
|
|
function (res) {
|
|
self.loading = false;
|
|
self.listData = self.listData.concat(res.rows);
|
|
|
|
self.total = res.total;
|
|
if (self.total < self.form.pageNum * self.form.pageSize) {
|
|
self.no_more = true;
|
|
}
|
|
}
|
|
);
|
|
},
|
|
openPop() {
|
|
// console.log('open');
|
|
this.showPop = true;
|
|
},
|
|
closePop() {
|
|
this.showPop = false;
|
|
// console.log('close');
|
|
},
|
|
resetSubmit() {
|
|
this.form.startDate = "";
|
|
this.form.endDate = "";
|
|
this.searchSubmit();
|
|
},
|
|
searchSubmit: function () {
|
|
this.showPop = false;
|
|
/*获取数据*/
|
|
this.listData = [];
|
|
this.form.pageNum = 1;
|
|
this.getData();
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.top-bg {
|
|
width: 750rpx;
|
|
height: 102rpx;
|
|
background: #ffffff;
|
|
position: sticky;
|
|
left: 0;
|
|
top: 0;
|
|
z-index: 10;
|
|
margin-bottom: 22rpx;
|
|
}
|
|
|
|
.listdata-list {
|
|
padding-top: 8rpx;
|
|
}
|
|
|
|
.listdata-item {
|
|
width: 750rpx;
|
|
background: #ffffff;
|
|
margin-bottom: 20rpx;
|
|
padding: 0 26rpx 40rpx 23rpx;
|
|
box-sizing: border-box;
|
|
font-size: 26rpx;
|
|
}
|
|
|
|
.listdata-label {
|
|
padding-top: 29rpx;
|
|
}
|
|
|
|
.item-name {
|
|
width: 150rpx;
|
|
color: #999;
|
|
word-break: break-all;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.item-form {
|
|
word-break: break-all;
|
|
}
|
|
|
|
.status_1 {
|
|
color: #ff9008;
|
|
}
|
|
|
|
.status_2 {
|
|
color: #45c242;
|
|
}
|
|
|
|
.status_3 {
|
|
color: #fb3024;
|
|
}
|
|
|
|
.nav-right-btn {
|
|
background: none;
|
|
color: #999;
|
|
font-size: 26rpx;
|
|
}
|
|
</style>
|