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>
 |