gx
queenwuli
2022-03-31 4bbe241ca5533f6dff000ec6fb8bc73a014cd16d
src/pages/index/account.vue
@@ -5,15 +5,15 @@
            <div class="box-content">
                <div class="row flex align-center justify-between">
                    <span class="name">{{$t("message.TotalOutput")}}</span>
                    <span class="count">{{myAccountInfo.totalMine}} ETH</span>
                    <span class="count">{{myAccountInfo.totalMine || 0}} ETH</span>
                </div>
                <div class="row flex align-center justify-between">
                    <span class="name">{{$t("message.IncomeBalance")}}</span>
                    <span class="count">{{myAccountInfo.availableWallet}} USDT</span>
                    <span class="count">{{myAccountInfo.availableWallet || 0}} USDT</span>
                </div>
                <div class="row flex align-center justify-between">
                    <span class="name">{{$t("message.Exchangeable")}}</span>
                    <span class="count">{{myAccountInfo.availableMine}} ETH</span>
                    <span class="count">{{myAccountInfo.availableMine || 0}} ETH</span>
                </div>
            </div>
        </div>
@@ -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,14 +59,14 @@
                                    <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>
                                    <img src="../../assets/images/icon5.png"/>
                                    <span>USDT</span>
                                </div>
                                <span class="amount">{{myAccountInfo.availableWallet}}</span>
                                <span class="amount">{{myAccountInfo.availableWallet || 0}}</span>
                                <span class="all">{{$t("message.TotalBalance")}}</span>
                            </div>
                        </div>
@@ -78,7 +78,7 @@
                </div>
            </van-tab>
            <van-tab :title='$t("message.Record")'>
                <div class="box">
                <div class="box" style="min-height: 320px">
                    <h3 class="title">{{$t("message.Record")}}</h3>
                    <div class="box-content">
                        <div class="tab-wrap">
@@ -116,7 +116,7 @@
                                    <div class="list-row 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-tabs>
@@ -132,7 +132,11 @@
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([])
@@ -142,12 +146,28 @@
    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)
        }
    }
    function getWalletInfo(){
        proxy.$axios({
          url: '/dapi/member/walletInfo',
@@ -156,77 +176,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) {
@@ -251,6 +200,80 @@
          }
        })
    }
    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)
@@ -259,11 +282,8 @@
        }
    }
    onMounted(() => {
        getWalletInfo()
        proxy.initData()
        getRecordList(1)
        getRecordList(2)
        getRecordList(3)
        proxy.initglobalSetData()
        initData()
    })
    return { 
        activeNames,
@@ -278,12 +298,14 @@
        getWalletInfo,
        allExchange,
        submitExchange,
        allWithdraw,
        submitWithdraw,
        onClickTab
        onClickTab,
        isRequesting
    };
  },
  methods: {
    initData () {
    initglobalSetData () {
        this.$axios({
          url: '/dapi/common/globalSetting',
          method: 'get'
@@ -292,8 +314,7 @@
              this.info = res.data;
          }
        })
    },
    }
  }
})
</script>