From c3bc7b593bf9067bfdaa8bd7def32dd19844ad75 Mon Sep 17 00:00:00 2001
From: queenwuli <942534046@qq.com>
Date: Mon, 18 Apr 2022 11:37:49 +0800
Subject: [PATCH] gx

---
 src/pages/index/account.vue |  221 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 133 insertions(+), 88 deletions(-)

diff --git a/src/pages/index/account.vue b/src/pages/index/account.vue
index 513fce7..4e4af7e 100644
--- a/src/pages/index/account.vue
+++ b/src/pages/index/account.vue
@@ -40,7 +40,7 @@
                             </div>
                         </div>
                         <span class="all" style="color: #3D8AF2" @click="allExchange">{{$t("message.RedeemAll")}}</span>
-                        <button class="btn" :disabled="!ethAmount" @click="submitExchange">{{$t("message.Exchange")}}</button>
+                        <button class="btn" :disabled="!ethAmount || isRequesting" @click="submitExchange">{{$t("message.Exchange")}}</button>
                         <div class="tips">
                             <p>{{$t("message.Price")}}:1ETH ≈ {{info.newPrice}}USDT</p>
                             <p>{{$t("message.Tip1")}}</p>
@@ -59,7 +59,7 @@
                                     <span>USDT</span>
                                 </div>
                                 <input placeholder="0.000" type="number" v-model.number="usdtAmount"/>
-                                <span class="all">{{$t("message.WithdrawalAmount")}}</span>
+                                <span class="all" style="color: #3D8AF2" @click="allWithdraw">{{$t("message.WithdrawalAll")}}</span>
                             </div>
                             <div class="item flex-1 flex align-end flex-v">
                                 <div>
@@ -108,15 +108,27 @@
                                     </div>
                                 </van-tab>
                                 <van-tab :title='$t("message.Mining")'>
-                                    <div class="list-row flex align-center justify-between">
+                                    <div class="list-row list-row2 flex align-center justify-between">
                                         <span class="name">{{$t("message.Time")}}</span>
                                         <span class="name">{{$t("message.Type")}}</span>
                                         <span class="name">{{$t("message.Output")}}</span>
                                     </div>
-                                    <div class="list-row flex align-center justify-between" v-for="item in miningList">
+                                    <div class="list-row list-row2 flex align-center justify-between" v-for="item in miningList">
                                         <span>{{item.createTime}}</span>
                                         <span>{{$t("message.Mining")}}</span>
-                                        <span>{{item.amount}}</span>
+                                        <span>{{item.amount}} ETH</span>
+                                    </div>
+                                </van-tab>
+                                <van-tab :title='$t("message.Reward")'>
+                                    <div class="list-row list-row2 flex align-center justify-between">
+                                        <span class="name">{{$t("message.Time")}}</span>
+                                        <span class="name">{{$t("message.Type")}}</span>
+                                        <span class="name">{{$t("message.Output")}}</span>
+                                    </div>
+                                    <div class="list-row list-row2 flex align-center justify-between" v-for="item in rewardList">
+                                        <span>{{item.createTime}}</span>
+                                        <span>{{$t("message.Reward")}}</span>
+                                        <span>{{item.amount}} ETH</span>
                                     </div>
                                 </van-tab>
                             </van-tabs>
@@ -132,22 +144,44 @@
 import { ref, reactive, onMounted, getCurrentInstance, defineComponent, computed} from 'vue';
 export default defineComponent({
   name: 'account',
-  setup() {
+  props: [
+    'simulateData'
+  ],
+  setup(props, context) {
+      console.log(props)
     const activeNames = ref(['1'])
     const { proxy } = getCurrentInstance();
     let exchangeList = ref([])
     let withdrawList = ref([])
     let miningList = ref([])
+    let rewardList = ref([]);
     let myAccountInfo = ref({});
     let info = ref({});
     let ethAmount = ref();
     let usdtAmount = ref();
+    let isRequesting = ref(false);
     let ethToUsdtAmount = computed(() => {
         if (!ethAmount.value || isNaN(ethAmount.value)) {
             return '0.0000'
         }
         return (ethAmount.value * proxy.info.newPrice).toFixed(4)
     })
+
+    function initData () {
+        if(props.simulateData) {
+            const {walletInfoVo: myAccountInfo,changes: exchangeList,withdraws: withdrawList,mines: miningList} = props.simulateData || {};
+            proxy.myAccountInfo = myAccountInfo || {};
+            proxy.exchangeList = exchangeList || [];
+            proxy.withdrawList = withdrawList || [];
+            proxy.miningList = miningList || [];
+        } else {
+            getWalletInfo()
+            getRecordList(1)
+            getRecordList(2)
+            getRecordList(3)
+            getRecordList(4)
+        }
+    }
     function getWalletInfo(){
         proxy.$axios({
           url: '/dapi/member/walletInfo',
@@ -156,77 +190,6 @@
           if(res.code == 200) {
             proxy.myAccountInfo = res.data;
           }
-        })
-    }
-    function allExchange () {
-        if(!proxy.myAccountInfo.availableMine) {
-            this.$toast(this.$t('message.NOETH'));
-            return;
-        }
-        ethAmount.value = proxy.myAccountInfo.availableMine
-    }
-    function submitExchange () {
-        if(Number(ethAmount.value) > Number(proxy.myAccountInfo.availableMine)) {
-            this.$toast(this.$t('message.NOETH2'));
-            return;
-        }
-        this.$toast.loading({
-            message: this.$t('message.Submitting'),
-            overlay: true,
-            duration: 0
-        });
-        this.$axios({
-          url: '/dapi/member/change',
-          method: 'post',
-          data: {
-              amount: ethAmount.value
-          }
-        }).then((res) => {
-          if(res.code == 200) {
-              ethAmount.value = '';
-              this.$toast(this.$t('message.ExchangeSuc'));
-              getWalletInfo()
-              getRecordList(1)
-          }else{
-              this.$toast(res.message);
-          }
-          this.$toast.clear(true)
-        }).catch(() => {
-            this.$toast.clear(true)
-        })
-    }
-    function submitWithdraw () {
-        if(Number(usdtAmount.value) < 100) {
-            this.$toast(this.$t('message.MinWithdrawCount') + '100USDT');
-            return;
-        }
-        if(Number(usdtAmount.value) > Number(proxy.myAccountInfo.availableWallet)) {
-            this.$toast(this.$t('message.NOETH2'));
-            return;
-        }
-        this.$toast.loading({
-            message: this.$t('message.Submitting'),
-            overlay: true,
-            duration: 0
-        });
-        this.$axios({
-          url: '/dapi/member/withdraw',
-          method: 'post',
-          data: {
-              amount: usdtAmount.value
-          }
-        }).then((res) => {
-          if(res.code == 200) {
-              usdtAmount.value = '';
-              this.$toast(this.$t('message.Withdrawing2'));
-              getWalletInfo()
-              getRecordList(2)
-          }else{
-              this.$toast(res.message);
-          }
-          this.$toast.clear(true)
-        }).catch(() => {
-            this.$toast.clear(true)
         })
     }
     function getRecordList (type) {
@@ -245,25 +208,99 @@
                 proxy.exchangeList = result;
               } else if (type == 2) {
                 proxy.withdrawList = result;
-              } else {
+              } else if (type == 3) {
                 proxy.miningList = result;
+              } else {
+                proxy.rewardList = result;
               }
           }
         })
     }
+    function allExchange () {
+        if(!proxy.myAccountInfo.availableMine) {
+            this.$toast(this.$t('message.NOETH'));
+            return;
+        }
+        ethAmount.value = proxy.myAccountInfo.availableMine
+    }
+    function submitExchange () {
+        if(Number(ethAmount.value) > Number(proxy.myAccountInfo.availableMine)) {
+            this.$toast(this.$t('message.NOETH2'));
+            return;
+        }
+        proxy.isRequesting = true;
+        this.$axios({
+          url: '/dapi/member/change',
+          method: 'post',
+          data: {
+              amount: ethAmount.value
+          }
+        }).then((res) => {
+            ethAmount.value = '';
+            proxy.isRequesting = false;
+            if (res.code == 200) {
+                this.$toast(this.$t('message.ExchangeSuc'));
+                getWalletInfo()
+                getRecordList(1)
+            } else if(res.code == 401){
+                this.$toast(this.$t('message.ApproveTip'));
+            } else {
+                this.$toast(res.message);
+            }
+        }).catch((err) => {
+            proxy.isRequesting = false;
+        })
+    }
+    function allWithdraw () {
+        if(!proxy.myAccountInfo.availableWallet) {
+            return;
+        }
+        usdtAmount.value = proxy.myAccountInfo.availableWallet
+    }
+    function submitWithdraw () {
+        if(Number(usdtAmount.value) < 100) {
+            this.$toast(this.$t('message.MinWithdrawCount') + '100USDT');
+            return;
+        }
+        if(Number(usdtAmount.value) > Number(proxy.myAccountInfo.availableWallet)) {
+            this.$toast(this.$t('message.NOETH2'));
+            return;
+        }
+        proxy.isRequesting = true;
+        this.$axios({
+          url: '/dapi/member/withdraw',
+          method: 'post',
+          data: {
+              amount: usdtAmount.value
+          }
+        }).then((res) => {
+            usdtAmount.value = '';
+            proxy.isRequesting = false;
+            if(res.code == 200) {
+                this.$toast(this.$t('message.Withdrawing2'));
+                getWalletInfo()
+                getRecordList(2)
+            } else if(res.code == 401){
+                this.$toast(this.$t('message.ApproveTip'));
+            } else {
+                this.$toast(res.message);
+            }
+        }).catch(() => {
+            proxy.isRequesting = false;
+        })
+    }
+    
     function onClickTab (item) {
         if(item.name === 2) {
             getRecordList(1)
             getRecordList(2)
             getRecordList(3)
+            getRecordList(4)
         }
     }
     onMounted(() => {
-        getWalletInfo()
-        proxy.initData()
-        getRecordList(1)
-        getRecordList(2)
-        getRecordList(3)
+        proxy.initglobalSetData()
+        initData()
     })
     return { 
         activeNames,
@@ -271,6 +308,7 @@
         exchangeList,
         withdrawList,
         miningList,
+        rewardList,
         info,
         ethAmount,
         ethToUsdtAmount,
@@ -278,12 +316,14 @@
         getWalletInfo,
         allExchange,
         submitExchange,
+        allWithdraw,
         submitWithdraw,
-        onClickTab
+        onClickTab,
+        isRequesting
     };
   },
   methods: {
-    initData () {
+    initglobalSetData () {
         this.$axios({
           url: '/dapi/common/globalSetting',
           method: 'get'
@@ -292,8 +332,7 @@
               this.info = res.data;
           }
         })
-    },
-    
+    }
   }
 })
 </script>
@@ -422,7 +461,7 @@
         width: 45%
     }
     .list-row span:nth-child(3){
-        text-align: center;
+        text-align: right;
         width: 15%
     }
     .list-row:not(:last-child){
@@ -431,4 +470,10 @@
     .list-row:nth-child(1){
         margin: 30px 0;
     }
+    .list-row2 span:nth-child(2){
+        width: 22%
+    }
+    .list-row2 span:nth-child(3){
+        width: 38%
+    }
 </style>
\ No newline at end of file

--
Gitblit v1.9.1