wkw 2 giorni fa
parent
commit
b550f8d185

+ 3 - 1
src/i18n/zhHk/transaction.js

@@ -59,5 +59,7 @@ export default {
     FailedToBuy:"買入失敗",
     EstimationOfGasFailed:"估算 gas 失敗:",
     Cancel: "取消",
-    Sure: "確定", 
+    Sure: "確定",
+    Transaction:"交易中"
+
 };

+ 1 - 1
src/router/system.js

@@ -23,7 +23,7 @@ export const systemRoutes = [
         name: "transaction",
         meta: {
           title: "router.Transaction",
-          keepAlive: true,
+          keepAlive: false,
           navbar: true,
           tabbar: true,
         }, // 交易

+ 3 - 3
src/updater/update.json

@@ -1,7 +1,7 @@
 {
-  "version": "1.0.5",
-  "releaseDate": "2025-08-12 08:25:54",
-  "checksum": "52761e429f466e75b59f1fd218392f37e5d51640965dfa44c66d181e3d18a5b4",
+  "version": "1.0.6",
+  "releaseDate": "2025-08-12 11:02:34",
+  "checksum": "43cbd8ded1da4fad91d33b69ee0588be0ba6daed0e8c9d7669b46033d3780218",
   "minBinaryVersion": "1.0.0",
   "mandatory": false,
   "upDataDescription": "✨修正一些錯誤。。。。!!!"

+ 31 - 1
src/views/transaction/jys/index.vue

@@ -153,7 +153,7 @@ import {
     contractRevoke,subscribeContractPublisher,
     contractTransfer,subscribeContractReceive,contractBuy } from '@/api/path/jys.api'
 import { useWalletStore } from "@/stores/modules/walletStore";
-import { showToast } from 'vant';
+import { showToast,showLoadingToast } from 'vant';
 import wgtsttAbiData from "@/utils/wgtStt.json";
 import { AES_CBC_ENCRYPT } from '@/utils/crypto';
 import Web3 from "web3";
@@ -270,6 +270,11 @@ const confirm = () => {
 }
 // 闪兑
 const getTransfer = async (params) => {
+    showLoadingToast({
+        message: $t('transaction.ExchangeInProgress'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await contractTransfer(params).finally(() => {isConfirm.value = false});
     if(res.ret){
         showToast($t('transaction.SuccessfulPurchase'));
@@ -281,6 +286,11 @@ const getTransfer = async (params) => {
 }
 // 委托卖出
 const getPublisher = async (params) => {
+    showLoadingToast({
+        message: $t('transaction.Transaction'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await entrustContractPublisher(params).finally(() => {isConfirm.value = false});
     if(res.ret){
         showToast($t('transaction.PublishedSuccessfully'));
@@ -296,6 +306,11 @@ const getPublisher = async (params) => {
 }
 // 预约卖出
 const getsubscribePublisher = async (params) => {
+    showLoadingToast({
+        message: $t('transaction.Transaction'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await subscribeContractPublisher(params).finally(() => {isConfirm.value = false});
     if(res.ret){
         showToast($t('transaction.PublishedSuccessfully'));
@@ -322,6 +337,11 @@ const popConfirm = async () => {
         key:ciphertext,
         _s:iv
     }
+    showLoadingToast({
+        message: $t('transaction.Transaction'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await contractRevoke(params).finally(() => {isPopConfirm.value = false});
     if(res.ret){
         showToast($t('transaction.RevocationSuccessful'));
@@ -343,6 +363,11 @@ const collect = async (item) => {
         key:ciphertext,
         _s:iv
     }
+    showLoadingToast({
+        message: $t('transaction.Transaction'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await subscribeContractReceive(params)
     if(res.ret){
         showToast($t('transaction.SuccessfullyClaimed'));
@@ -368,6 +393,11 @@ const purchaseConfirm = async () => {
         key:ciphertext,
         _s:iv
     }
+    showLoadingToast({
+        message: $t('transaction.Transaction'),
+        forbidClick: true,
+        duration: 0,
+    });
     const res = await contractBuy(params).finally(() => {isPurchaseConfirm.value = false});
     if(res.ret){
         showToast($t('transaction.SuccessfulPurchase'));

+ 119 - 113
src/views/wallet/index.vue

@@ -1,133 +1,133 @@
 <template>
   <div class="container">
-  <van-pull-refresh v-model="loading" @refresh="onRefresh" style="height:100%">
     <svg-icon name="wallet-bg" class="bg-img" />
-    <div class="user-info-body">
-      <div class="user-info-lf">
-        <van-image width="28px" height="28px" round :src="walletStore.avatar" />
-        <div class="user-info">
-          <div class="user-info-name" @click="showWallet = true">
-            <div>{{ walletStore.username }}</div>
-            <svg-icon
-              style="width: 16px; height: 16px; margin-left: 3px"
-              name="down"
-            />
+    <van-pull-refresh v-model="loading" @refresh="onRefresh" style="height:100%">
+      <div class="user-info-body">
+        <div class="user-info-lf">
+          <van-image width="28px" height="28px" round :src="walletStore.avatar" />
+          <div class="user-info">
+            <div class="user-info-name" @click="showWallet = true">
+              <div>{{ walletStore.username }}</div>
+              <svg-icon
+                style="width: 16px; height: 16px; margin-left: 3px"
+                name="down"
+              />
+            </div>
+            <div class="user-info-key-body">
+              <span class="user-info-key-body-text">{{
+                formatAddress(walletStore.account)
+              }}</span>
+              <svg-icon
+                class="im-copy-btn"
+                style="width: 16px; height: 16px"
+                name="copy"
+                :data-clipboard-text="walletStore.account"
+              />
+            </div>
           </div>
-          <div class="user-info-key-body">
-            <span class="user-info-key-body-text">{{
-              formatAddress(walletStore.account)
-            }}</span>
+        </div>
+        <div class="network">
+          <van-image
+            width="20px"
+            height="20px"
+            round
+            :src="walletStore.accountIcon"
+          />
+          <div class="network-name">{{ walletStore.accountName }}</div>
+        </div>
+      </div>
+      <div class="amount">
+        <div class="amount-item-box">
+          <div>Total assets</div>
+          <div class="amount-item">
+            <div class="item-text">
+              <svg-icon class="my" style="width: 28px; height: 28px" name="my" />
+              <div>{{ isShow ? totalMoney : "****" }}</div>
+            </div>
             <svg-icon
-              class="im-copy-btn"
               style="width: 16px; height: 16px"
-              name="copy"
-              :data-clipboard-text="walletStore.account"
+              :name="isShow ? 'eyes' : 'seyes'"
+              @click="isShow = !isShow"
             />
           </div>
         </div>
-      </div>
-      <div class="network">
-        <van-image
-          width="20px"
-          height="20px"
-          round
-          :src="walletStore.accountIcon"
+        <svg-icon
+          style="width: 24px; height: 24px; margin-right: 27px"
+          name="right"
+          @click="goToPageDetail"
         />
-        <div class="network-name">{{ walletStore.accountName }}</div>
       </div>
-    </div>
-    <div class="amount">
-      <div class="amount-item-box">
-        <div>Total assets</div>
-        <div class="amount-item">
-          <div class="item-text">
-            <svg-icon class="my" style="width: 28px; height: 28px" name="my" />
-            <div>{{ isShow ? totalMoney : "****" }}</div>
-          </div>
+      <div class="card-box">
+        <div class="box-cont" @click="goToPage('exchange')">
           <svg-icon
-            style="width: 16px; height: 16px"
-            :name="isShow ? 'eyes' : 'seyes'"
-            @click="isShow = !isShow"
+            class="box-cont-icon"
+            style="width: 30px; height: 30px"
+            name="1"
           />
+          <div>{{ $t("wallet.GoldCoinExchange") }}</div>
+        </div>
+        <div class="box-cont" @click="goToPage('proceeds')">
+          <svg-icon
+            class="box-cont-icon"
+            style="width: 30px; height: 30px"
+            name="2"
+          />
+          <div>{{ $t("wallet.Collection") }}</div>
+        </div>
+        <div class="box-cont" @click="goToPage('transferDetail')">
+          <svg-icon
+            class="box-cont-icon"
+            style="width: 30px; height: 30px"
+            name="3"
+          />
+          <div>{{ $t("wallet.Transfer") }}</div>
+        </div>
+        <div class="box-cont" @click="goToDapp(1)">
+          <svg-icon
+            class="box-cont-icon"
+            style="width: 30px; height: 30px"
+            name="4"
+          />
+          <div>{{ $t("wallet.Competition") }}</div>
+        </div>
+        <div class="box-cont" @click="goToDapp(2)">
+          <svg-icon
+            class="box-cont-icon"
+            style="width: 30px; height: 30px"
+            name="5"
+          />
+          <div>{{ $t("wallet.BlockBrowser") }}</div>
         </div>
       </div>
-      <svg-icon
-        style="width: 24px; height: 24px; margin-right: 27px"
-        name="right"
-        @click="goToPageDetail"
-      />
-    </div>
-    <div class="card-box">
-      <div class="box-cont" @click="goToPage('exchange')">
-        <svg-icon
-          class="box-cont-icon"
-          style="width: 30px; height: 30px"
-          name="1"
-        />
-        <div>{{ $t("wallet.GoldCoinExchange") }}</div>
-      </div>
-      <div class="box-cont" @click="goToPage('proceeds')">
-        <svg-icon
-          class="box-cont-icon"
-          style="width: 30px; height: 30px"
-          name="2"
-        />
-        <div>{{ $t("wallet.Collection") }}</div>
-      </div>
-      <div class="box-cont" @click="goToPage('transferDetail')">
-        <svg-icon
-          class="box-cont-icon"
-          style="width: 30px; height: 30px"
-          name="3"
-        />
-        <div>{{ $t("wallet.Transfer") }}</div>
-      </div>
-      <div class="box-cont" @click="goToDapp(1)">
-        <svg-icon
-          class="box-cont-icon"
-          style="width: 30px; height: 30px"
-          name="4"
-        />
-        <div>{{ $t("wallet.Competition") }}</div>
-      </div>
-      <div class="box-cont" @click="goToDapp(2)">
-        <svg-icon
-          class="box-cont-icon"
-          style="width: 30px; height: 30px"
-          name="5"
-        />
-        <div>{{ $t("wallet.BlockBrowser") }}</div>
-      </div>
-    </div>
-    <div class="list-box">
-      <div class="list-title">
-        <div>{{ $t("wallet.Token") }}</div>
-        <svg-icon
-          style="width: 24px; height: 24px"
-          name="add"
-          @click="changePop(1)"
-        />
-      </div>
-      <div class="list-ul">
-        <template v-for="(item, i) in walletStore.tokenList" :key="i">
-          <div
-            class="list-li"
-            v-if="item.name == 'ACC' || !item.show"
-            @click="changePop(2, item)"
-          >
-            <div class="list-li-lf">
-              <van-image width="30px" height="30px" round :src="item.logo" />
-              <div style="margin-left: 8px">{{ item.name }}</div>
-            </div>
-            <div class="list-li-ri">
-              <div>{{ item.balance }}</div>
-              <div class="list-li-ri-num">${{ item.money }}</div>
+      <div class="list-box">
+        <div class="list-title">
+          <div>{{ $t("wallet.Token") }}</div>
+          <svg-icon
+            style="width: 24px; height: 24px"
+            name="add"
+            @click="changePop(1)"
+          />
+        </div>
+        <div class="list-ul">
+          <template v-for="(item, i) in walletStore.tokenList" :key="i">
+            <div
+              class="list-li"
+              v-if="item.name == 'ACC' || !item.show"
+              @click="changePop(2, item)"
+            >
+              <div class="list-li-lf">
+                <van-image width="30px" height="30px" round :src="item.logo" />
+                <div style="margin-left: 8px">{{ item.name }}</div>
+              </div>
+              <div class="list-li-ri">
+                <div>{{ item.balance }}</div>
+                <div class="list-li-ri-num">${{ item.money }}</div>
+              </div>
             </div>
-          </div>
-        </template>
+          </template>
+        </div>
       </div>
-    </div>
-  </van-pull-refresh>
+    </van-pull-refresh>
     <van-popup v-model:show="showWallet" position="bottom" round>
       <div class="pop-content">
         <div class="pop-title">
@@ -494,6 +494,12 @@ onMounted(async () => {
     left: 0;
     z-index: -1;
   }
+  :deep(.van-pull-refresh__text){
+    color: #fff !important;
+  }
+  :deep(.van-loading__text){
+    color: #fff !important;
+  }
   .user-info-body {
     padding: 60px 17px 25px;
     display: flex;

+ 7 - 6
src/views/wallet/proceeds/index.vue

@@ -10,10 +10,10 @@
                 <div class="address">{{walletStore.account}}</div>
             </div>
         </div>
-        <van-button 
+        <div 
             class="footer-btn im-copy-btn" 
-            :data-clipboard-text="walletStore.account" type="primary" size="large" >{{ $t('wallet.Copy') }}
-        </van-button>
+            :data-clipboard-text="walletStore.account">{{ $t('wallet.Copy') }}
+        </div>
     </div>
 </template>
 
@@ -77,9 +77,9 @@ const qrtext = walletStore.account;
         
     }
     .footer-btn{
-        height: 40px !important;
-        line-height: 40px !important;
-        background: linear-gradient( 90deg, @theme-color1 0%, #40A4FB 100%) !important;
+        height: 40px;
+        // line-height: 40px !important;
+        background: linear-gradient( 90deg, @theme-color1 0%, #40A4FB 100%);
         border-radius:51px;
         font-family: PingFang SC, PingFang SC;
         font-weight: 500;
@@ -87,6 +87,7 @@ const qrtext = walletStore.account;
         padding: 9px 0;
         box-sizing: border-box;
         color: #fff;
+        text-align: center;
     }
 }
 </style>

+ 5 - 2
src/views/wallet/walletDetail/index.vue

@@ -55,7 +55,7 @@
         <van-popup v-model:show="showkey" position="bottom" round>
             <div>
                 <div class="pop-title-key">
-                    <svg-icon style="width: 24px; height: 24px" name="left-arrow"/>
+                    <svg-icon style="width: 24px; height: 24px" name="left-arrow" @click="showkey = false"/>
                     <div class="title">{{status == 'zjc'?$t('wallet.CheckTheMnemonicPhrase'):$t('wallet.ViewThePrivateKey')}}</div>
                 </div>
                 <div class="pop-text">{{ qrtext }}</div>
@@ -63,7 +63,8 @@
                     <qrcode-vue :value="qrtext" :size="156" :margin="1" background="transparent"/>
                 </div>
                 <div class="pop-btn-key">
-                    <van-button class="btn-key" type="primary" size="large" color="#4765DD" @click="showkey = false">{{ $t('wallet.Copy') }}</van-button>
+                    <div class="btn-key im-copy-btn" :data-clipboard-text="qrtext">{{ $t('wallet.Copy') }}
+                    </div>
                 </div>
             </div>
         </van-popup>
@@ -305,6 +306,7 @@ const formatAddress = address => {
     .pop-btn-key {
         margin: 17px;
         .btn-key {
+            background-color: @theme-color1;
             height: 40px;
             line-height: 40px;
             border-radius: 50px;
@@ -314,6 +316,7 @@ const formatAddress = address => {
             font-weight: 500;
             font-size: 15px;
             color: #ffffff;
+            text-align: center;
         }
     }
 }