瀏覽代碼

Merge branch 'test' into feature_220509_new

# Conflicts:
#	src/assets/svg/icon-discord.svg
wenliming 2 年之前
父節點
當前提交
765b8a40f0

文件差異過大導致無法顯示
+ 1 - 2
src/assets/svg/icon-discord.svg


+ 3 - 0
src/assets/svg/icon-home-bill.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4.73563 3H19.2644C19.4595 3 19.6466 3.0775 19.7845 3.21546C19.9225 3.35342 20 3.54053 20 3.73563V20.4713C20 20.6664 19.9225 20.8535 19.7845 20.9914C19.6466 21.1294 19.4595 21.2069 19.2644 21.2069H4.73563C4.54053 21.2069 4.35342 21.1294 4.21546 20.9914C4.0775 20.8535 4 20.6664 4 20.4713V3.73563C4 3.54053 4.0775 3.35342 4.21546 3.21546C4.35342 3.0775 4.54053 3 4.73563 3ZM5.28736 4.28736V19.9195H18.7126V4.28736H5.28736ZM6.75891 6.67917H17.2417C17.2904 6.67917 17.3372 6.69854 17.3717 6.73303C17.4062 6.76752 17.4256 6.8143 17.4256 6.86307V7.78261C17.4256 7.83139 17.4062 7.87817 17.3717 7.91266C17.3372 7.94715 17.2904 7.96652 17.2417 7.96652H6.75891C6.71013 7.96652 6.66335 7.94715 6.62887 7.91266C6.59438 7.87817 6.575 7.83139 6.575 7.78261V6.86307C6.575 6.8143 6.59438 6.76752 6.62887 6.73303C6.66335 6.69854 6.71013 6.67917 6.75891 6.67917ZM6.75891 10.1734H17.2417C17.2904 10.1734 17.3372 10.1928 17.3717 10.2273C17.4062 10.2618 17.4256 10.3086 17.4256 10.3573V11.2769C17.4256 11.3256 17.4062 11.3724 17.3717 11.4069C17.3372 11.4414 17.2904 11.4608 17.2417 11.4608H6.75891C6.71013 11.4608 6.66335 11.4414 6.62887 11.4069C6.59438 11.3724 6.575 11.3256 6.575 11.2769V10.3573C6.575 10.3086 6.59438 10.2618 6.62887 10.2273C6.66335 10.1928 6.71013 10.1734 6.75891 10.1734ZM6.75891 13.8516H13.1957C13.2445 13.8516 13.2912 13.871 13.3257 13.9054C13.3602 13.9399 13.3796 13.9867 13.3796 14.0355V14.955C13.3796 15.0038 13.3602 15.0506 13.3257 15.0851C13.2912 15.1196 13.2445 15.1389 13.1957 15.1389H6.75891C6.71013 15.1389 6.66335 15.1196 6.62887 15.0851C6.59438 15.0506 6.575 15.0038 6.575 14.955V14.0355C6.575 13.9867 6.59438 13.9399 6.62887 13.9054C6.66335 13.871 6.71013 13.8516 6.75891 13.8516Z" fill="#8EA3B9"/>
+</svg>

+ 3 - 0
src/assets/svg/icon-home-wallet.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4.72555 3H19.2767C20.777 3 22 4.22303 22 5.72554V8.21632H15.0106C13.289 8.21632 11.8804 9.62493 11.8804 11.3466V12.147C11.8804 13.8686 13.289 15.2772 15.0106 15.2772H22V17.768C22 19.2728 20.777 20.4936 19.2745 20.4936H4.72555C3.22079 20.4936 2 19.2705 2 17.768V5.72554C2 4.22079 3.22303 3 4.72555 3ZM12.9961 11.3463C12.9961 10.8119 13.2063 10.3088 13.5886 9.92649C13.9687 9.54416 14.474 9.33398 15.0084 9.33398H21.9978V14.159H15.0084C14.474 14.159 13.9709 13.9489 13.5886 13.5665C13.2063 13.1842 12.9961 12.6811 12.9961 12.1467V11.3463ZM16.7256 11.7465C16.7256 11.2524 16.3253 10.8521 15.8312 10.8521C15.3371 10.8521 14.9368 11.2524 14.9368 11.7465C14.9368 12.2406 15.3371 12.6409 15.8312 12.6409C16.3253 12.6409 16.7256 12.2406 16.7256 11.7465Z" fill="#1D9BF0"/>
+</svg>

+ 3 - 0
src/assets/svg/icon-telegram.svg

@@ -0,0 +1,3 @@
+<svg width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M32.2165 13.8207L28.5516 30.7927C28.2752 31.9905 27.5541 32.2887 26.5295 31.7244L20.9454 27.6837L18.251 30.2284C17.9528 30.5212 17.7034 30.7661 17.1288 30.7661L17.5299 25.1815L27.8794 15.9981C28.3294 15.6042 27.7818 15.3859 27.18 15.7799L14.3855 23.6909L8.87738 21.998C7.67925 21.6306 7.65757 20.8214 9.12677 20.2571L30.6714 12.1065C31.669 11.7392 32.5418 12.3248 32.2165 13.8207V13.8207Z" fill="#259EDA"/>
+</svg>

+ 4 - 0
src/assets/svg/icon-withdraw-help.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="12" cy="12" r="12" fill="#A2BCCE"/>
+<path d="M12.4852 5.5C11.1784 5.5 10.1541 5.87086 9.41239 6.63024C8.67067 7.37196 8.2998 8.37859 8.2998 9.66777H10.1541C10.1541 8.89073 10.3131 8.29029 10.6309 7.86645C10.9841 7.3543 11.5669 7.10706 12.3616 7.10706C12.9974 7.10706 13.5095 7.28366 13.8627 7.63686C14.1983 7.99007 14.3749 8.46689 14.3749 9.08499C14.3749 9.54415 14.1983 9.96799 13.8804 10.3742L13.5802 10.7097C12.4852 11.681 11.8142 12.4051 11.5846 12.8996C11.3373 13.3587 11.2314 13.9238 11.2314 14.5773V14.8775H13.121V14.5773C13.121 14.1534 13.2093 13.7649 13.4036 13.4117C13.5625 13.0938 13.8097 12.7759 14.1453 12.4934C14.9753 11.7693 15.4698 11.3102 15.6287 11.1159C16.0702 10.5508 16.2998 9.82671 16.2998 8.96137C16.2998 7.90177 15.9466 7.05408 15.2402 6.43598C14.5338 5.80022 13.6155 5.5 12.4852 5.5ZM12.1674 16.096C11.8142 16.096 11.4963 16.202 11.249 16.4492C11.0018 16.6788 10.8782 16.979 10.8782 17.3499C10.8782 17.7031 11.0018 18.0033 11.249 18.2506C11.4963 18.4978 11.8142 18.6214 12.1674 18.6214C12.5206 18.6214 12.8384 18.4978 13.0857 18.2682C13.3329 18.021 13.4742 17.7208 13.4742 17.3499C13.4742 16.979 13.3506 16.6788 13.1033 16.4492C12.8561 16.202 12.5382 16.096 12.1674 16.096Z" fill="white"/>
+</svg>

+ 9 - 1
src/http/discordApi.js

@@ -14,4 +14,12 @@ export function getInviteGuildInfo(params) {
         method: "post",
         data: params,
     });
-}
+}
+
+export function checkGuildJoined(params) {
+    return service({
+        url: `/openapi/discord/checkGuildJoined`,
+        method: "post",
+        data: params,
+    });
+}

+ 44 - 13
src/view/iframe/publish/give-dialog.vue

@@ -206,6 +206,7 @@
                                     <el-switch
                                         v-if="item.type == 2 || item.type == 7"
                                         v-model="item.checked"
+                                        @change="formSwitchChange($event, item)"
                                     />
                                     <img
                                         v-if="item.type == 3"
@@ -318,7 +319,7 @@ import { getInviteGuildInfo } from "@/http/discordApi";
 import { payCalcFee, getPayConfig } from "@/http/pay";
 import { getFrontConfig } from "@/http/account";
 import {setChromeStorage, getChromeStorage} from "@/uilts/chromeExtension"
-import { throttle } from "@/uilts/help"
+import { debounce } from "@/uilts/help"
 import Report from "@/log-center/log"
 import { ElMessage, ElLoading } from "element-plus";
 import "element-plus/es/components/message/style/css";
@@ -467,7 +468,7 @@ let formList = reactive([
     },
     {
         label: "Join Discord",
-        icon: require("@/assets/svg/icon-discord.svg"),
+        icon: require("@/assets/svg/icon-discord-mini.svg"),
         nodeType: "input",
         text: '',
         type: 7,
@@ -747,9 +748,12 @@ const submitRequest = async () => {
             let relatedUsers = formList[i]["text"];
             item.relatedUsers = relatedUsers;
             finishConditions.push(item);
-        } else  if (formList[i]["checked"] && formList[i]["text"] && formList[i]["type"] == 7) {
-            item.bizData = JSON.stringify({inviteUrl: formList[i]["text"]});
-            finishConditions.push(item);
+        } else  if (formList[i]["type"] == 7) {
+            // join discord
+            if(formList[i]["checked"] && formList[i]["text"]) {
+                item.bizData = JSON.stringify({inviteUrl: formList[i]["text"]});
+                finishConditions.push(item);
+            }
         } else  if (formList[i]["checked"]) {
             finishConditions.push(item);
         }
@@ -1004,39 +1008,66 @@ const onIptSetErrorTxt = () => {
     } 
 }
 
+const formSwitchChange = (val, params) => {
+    if(!val) {
+        if(params.type == 7) {
+            // 清空discord错误校验
+        }
+    }
+}
+
 const onIptDiscordAddress = (e, index) => {
     let val = formList[index].text;
 
+    onIptDiscordDebounce({value: val, checked: formList[index].checked})
 }
 
 const onBlurDiscordAddress = (e, index) => {
     let val = formList[index].text;
 
-    getDiscordInviteInfo(val);
 }
 
+const onIptDiscordDebounce = debounce(function({value, checked}) {
+    if(value && checked) {
+        let validata = checkInviteUrl(value);
+        if(validata) {
+            getDiscordInviteInfo(value, (res) => {
+                if(res.code != 0) {
+                    // 错误提示
+                } else {
+                    // 预览 服务器 showDiscordInvitePop
+                }
+            });
+        } else {
+            // 错误提示
+
+        }
+    }
+}, 800) 
+
 const checkInviteUrl = (inviteUrl) => {
     let flag = true;
     const INVITE_URL_PREFIX = 'https://discord.gg/';
     const INVITE_URL_PREFIX_OLD = 'https://discord.com/invite/';
 
-    if(inviteUrl == INVITE_URL_PREFIX || inviteUrl == INVITE_URL_PREFIX_OLD || 
-        (!inviteUrl.startsWith(INVITE_URL_PREFIX) && !inviteUrl.startsWith(INVITE_URL_PREFIX_OLD))) {
-        flag = false;
+    if(inviteUrl) {
+        if(inviteUrl == INVITE_URL_PREFIX || inviteUrl == INVITE_URL_PREFIX_OLD || 
+            (!inviteUrl.startsWith(INVITE_URL_PREFIX) && !inviteUrl.startsWith(INVITE_URL_PREFIX_OLD))) {
+            flag = false;
+        }
     }
 
     return flag;
 }
 
-const getDiscordInviteInfo = (inviteUrl) => {
-    let validata = checkInviteUrl(inviteUrl);
-    console.log(validata, 'validata')
-    if(!validata) return;
+const getDiscordInviteInfo = (inviteUrl, cb) => {
+    if(!inviteUrl) return;
     getInviteGuildInfo({
         params: {
             inviteUrl
         }
     }).then(res => {
+        cb && cb(res)
         if(res.code == 0) {
             discordInviteInfo.value = res.data;
         }

+ 53 - 23
src/view/iframe/red-packet/red-packet.vue

@@ -60,13 +60,14 @@
             <div v-else class="btn" @click="clickRetweetBtn">Retweet</div>
           </template>
           <template v-if="item.type == 7">
-            <img :src="require('@/assets/svg/icon-discord.svg')" alt />
+            <img :src="require('@/assets/svg/icon-discord-mini.svg')" alt />
             <div class="item-content">
               <div class="item-title">Join Discord</div>
             </div>
             <img :src="require('@/assets/gif/red-right.gif')" alt class="red-right"
               v-show="!data.done.join_discord && data.done.join_discord_red" />
-            <div  class="btn" @click="joinDiscord">
+            <img v-if="data.done.join_discord" :src="require('@/assets/svg/icon-true.svg')" alt />
+            <div v-else class="btn" @click="joinDiscord">
               Join
             </div>
           </template>
@@ -259,7 +260,7 @@ import FontAmount from '@/view/components/font-amount.vue'
 import { getChromeStorage } from '@/uilts/chromeExtension.js'
 import Report from "@/log-center/log"
 import { srcPublishSuccess } from '@/http/publishApi'
-import { discordAuthUrl } from '@/http/discordApi'
+import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
 import { discordAuthRedirectUri } from '@/http/configAPI'
 
 var moment = require('moment');
@@ -969,11 +970,7 @@ function onPageVisbile() {
       let isHidden = document.hidden;
       console.log('joinDiscordActionState', joinDiscordActionState);
       if (!isHidden) {
-        // 如果上次的状态是 joinIng 检查他是否真正join
-        if(joinDiscordActionState == 'joinIng') {
-          // 请求接口 加入之后设置
-          joinDiscordActionState = 'default';
-        }
+        checkJoinDiscord();
       } 
   });
 }
@@ -989,10 +986,35 @@ function onRuntimeMsg() {
   })
 }
 
+function checkJoinDiscord() {
+  // 如果上次的状态是 joinIng 检查是否真正join
+  if(joinDiscordActionState == 'joinIng') {
+    let url = getInviteUrl();
+    if(url) {
+      checkGuildJoined({
+        params: {
+          inviteUrl: url
+        }
+      }).then(res => {
+        if(res.code == 0) {
+          let { joined } = res.data || {};
+          if(joined) {
+            data.done.join_discord = true;
+            joinDiscordActionState = 'default';
+          }
+        }
+      })
+    }
+  }
+}
+
 function joinDiscord() {
-  // 1、判断之前有没有授权
-  //没有授权
-  discordAuth('authAndJoinIng');
+  //判断是否需要授权
+  if(discordAuthorizeRequired) {
+    discordAuth('authAndJoinIng');
+  } else {
+    openInviteUrl();
+  }
 }
 
 function discordAuth(actionState) {
@@ -1013,24 +1035,32 @@ function discordAuth(actionState) {
     })
 }
 
-
 function discordLoginSuccess() {
   console.log('discordloginSuccess');
-  // 如果是join 并授权 回来后默认打开 邀请链接
+  // 如果是join并授权 回来后默认打开 邀请链接
   if(joinDiscordActionState == 'authAndJoinIng') {
-    joinDiscordActionState = 'joinIng';
-    let inviteData = data.detail.taskCondition.find(item => {
-      return item.type == 7;
-    });
-    if(inviteData && inviteData.bizData) {
-      let url = JSON.parse(inviteData.bizData).inviteUrl;
-      if(url) {
-        window.open(url);
-      }
-    }
+    openInviteUrl();
   } 
 }
 
+function getInviteUrl () {
+  let inviteData = data.detail.taskCondition.find(item => {
+    return item.type == 7;
+  });
+  let url;
+  if(inviteData && inviteData.bizData) {
+    url = JSON.parse(inviteData.bizData).inviteUrl;
+  }
+  return url;
+}
+
+function openInviteUrl() {
+  joinDiscordActionState = 'joinIng';
+  let url = getInviteUrl();
+  if(url) {
+    window.open(url);
+  }
+}
 
 
 </script>

+ 52 - 23
src/view/popup/components/head.vue

@@ -1,9 +1,12 @@
 <template>
-    <div class="head" :class="{ 'border': show_state != 'home' }">
+    <div class="head" :class="{ 'border': show_state != 'home', 'home': show_state == 'home' }">
         <template v-if="show_state == 'home'">
+            <div class="desc">
+                <img class="img" :src="user_info.avatarUrl" />
+                <font class="name">{{user_info.nickName}}</font>
+            </div>
             <div class="logo">
                 <img :src="require('@/assets/svg/icon-denet-logo.svg')" />
-                <span>DeNet</span>
             </div>
         </template>
         <template v-else>
@@ -11,23 +14,26 @@
             <div class="title">{{ props.title }}</div>
             <img :src="require('@/assets/svg/icon-refresh.svg')" alt="" class="refresh" v-if="show_refresh"
                 @click="clickRefresh" :class="{ transform_rotate: state.rotate }">
-
-        </template>
-        <img :src="require('@/assets/svg/icon-more-l.svg')" alt="" class="more" v-if="props.show_more"
-            @click="state.show_option = true">
-        <div class="area-option" v-if="state.show_option" @click="state.show_option = false">
-            <div class="option">
-                <div class="item" @click="clickItem('/transactions')">
-                    <img :src="require('@/assets/svg/icon-menu.svg')" alt="">
-                    <span>Transactions History</span>
+            <img :src="require('@/assets/svg/icon-withdraw-help.svg')" alt="" class="help" v-if="props.show_help"
+                @click="clickHelp">
+            <img :src="require('@/assets/svg/icon-more-l.svg')" alt="" class="more" v-if="props.show_more"
+                @click="state.show_option = true">
+            <div class="area-option" v-if="state.show_option" @click="state.show_option = false">
+                <div class="option">
+                    <div class="item" @click="clickItem('/transactions')">
+                        <img :src="require('@/assets/svg/icon-menu.svg')" alt="">
+                        <span>Transactions History</span>
+                    </div>
                 </div>
             </div>
-        </div>
+        </template>
     </div>
 </template>
 <script setup>
-import { defineProps, defineEmits, reactive, ref } from "vue";
+import { getChromeStorage } from "@/uilts/chromeExtension";
+import { defineProps, defineEmits, reactive, ref, onMounted } from "vue";
 import router from "@/router/popup.js";
+import { boolean } from "mathjs";
 
 let props = defineProps({
     title: String,
@@ -35,7 +41,9 @@ let props = defineProps({
     show_refresh: Boolean,
     show_option: Boolean,
     show_more: Boolean,
-    back_url: String
+    show_help: Boolean,
+    back_url: String,
+    user_info: Object
 })
 
 let state = reactive({
@@ -69,6 +77,10 @@ function clickItem(path) {
     router.push(path)
 }
 
+function clickHelp() {
+    window.open(`https://aboard-cattle-610.notion.site/How-to-withdraw-assets-from-DeNet-to-MetaMask-01c679bb9ff441429e31e8f7c1f67411`)
+}
+
 </script>
 <style lang="scss" scoped>
 .border {
@@ -83,20 +95,33 @@ function clickItem(path) {
     align-items: center;
     padding: 0 12px;
 
+    &.home {
+        height: 64px;
+    }
+
     .logo {
         display: flex;
         align-items: center;
-
-        span {
-            font-size: 13px;
-            margin-left: 5px;
-            font-weight: 500;
-
+        img {
+            width: 26px;
+            height: 26px;
         }
+    }
 
-        img {
-            width: 16px;
-            height: 16px;
+    .desc {
+        .img {
+            width: 34px;
+            height: 34px;
+            overflow: hidden;
+            border-radius: 50%;
+            margin-right: 10px;
+        }
+        .name {
+            display: inline-block;
+            width: 200px;
+            color: #000000;
+            font-size: 16px;
+            font-weight: bold;
         }
     }
 
@@ -164,6 +189,10 @@ function clickItem(path) {
         margin-right: 20px;
     }
 
+    .help {
+        margin-right: 12px;
+    }
+
     .title {
         padding-left: 16px;
         flex: 1;

+ 69 - 30
src/view/popup/popup.vue

@@ -1,21 +1,18 @@
 <template>
     <div class="page-wrapper" ref="pageWrapperDom" @scroll="pageScroll">
         <template v-if="isLogin && homeVisibility">
-            <!-- <div class="nav-bar">
-                <div class="item left">
-                    <img :src="require('@/assets/svg/icon-denet-logo.svg')" />
-                    DeNet
-                </div>
-                <div class="item right" @click="showTransactions">
-                    <img :src="require('@/assets/svg/icon-option-list.svg')" />
-                    Transactions
-                </div>
-            </div> -->
-            <v-head :show_more="true" :show_state="'home'"></v-head>
+            <v-head :show_more="true" :show_state="'home'" :user_info="userInfo"></v-head>
             <div class="content">
-                <img :src="require('@/assets/svg/icon-money.svg')" class="icon-money" />
-                <div class="msg" v-show="walletWithdrawConfig.withdrawUSDPaypalFeeDesc">
-                    ({{ walletWithdrawConfig.withdrawUSDPaypalFeeDesc }})</div>
+                <div class="balance">
+                    <div class="wallet">
+                        <img :src="require('@/assets/svg/icon-home-wallet.svg')" />
+                        <font>Balance Valuation</font>
+                    </div>
+                    <div class="bill" @click="showTransactions">
+                        <red-dot class="red-dot" v-if="unReadCountWallet > 0"></red-dot>
+                        <img :src="require('@/assets/svg/icon-home-bill.svg')" />
+                    </div>
+                </div>
                 <div class="amount">${{ canWithdrawBalance }}</div>
                 <div class="area-btn">
                     <div class="withdraw-btn" @click="clickWithdraw">Withdraw</div>
@@ -272,9 +269,18 @@ withdraw_info.paypal.wallet_withdraw_config = walletWithdrawConfig
 let moreTabList = ref([
     {
         icon: require("@/assets/svg/icon-twitter.svg"),
-        label: "Twitter contact",
+        label: "Twitter",
         href: 'https://twitter.com/denet2022'
     }
+    // , {
+    //     icon: require("@/assets/svg/icon-discord.svg"),
+    //     label: "Discord",
+    //     href: 'https://discord.gg/wZSz9p8ddG'
+    // }, {
+    //     icon: require("@/assets/svg/icon-telegram.svg"),
+    //     label: "Telegram",
+    //     href: 'https://t.me/denetpro'
+    // }
 ]);
 
 let tabList = ref([
@@ -307,7 +313,9 @@ onMounted(() => {
             });
         }
     });
-    setMessageCount();
+    setTimeout(() => {
+        setMessageCount();
+    }, 2000)
 });
 
 onBeforeUnmount(() => {
@@ -471,11 +479,11 @@ const withdrawBack = () => {
 };
 
 
-// const showTransactions = () => {
+const showTransactions = () => {
 //     // homeVisibility.value = false;
 //     // transactionsVisibility.value = true;
-//     router.push('/transactions')
-// };
+    router.push('/transactions')
+};
 
 // const clickWithdraw = () => {
 //     if (isRequestWithdrawBalance.value) {
@@ -622,24 +630,56 @@ body {
     }
 
     .content {
-        margin-top: 30px;
-        text-align: center;
+        padding: 20px;
+        background-color: #F0F8FE;
 
         .icon-money {
             width: 70px;
             height: 70px;
         }
 
+        .balance {
+            display: flex;
+            justify-content: space-between;
+            .wallet {
+                img {
+                    width: 24px;
+                    height: 24px;
+                    margin-right: 6px;
+                    vertical-align: middle;
+                }
+                font {
+                    color: #000;
+                    font-size: 14px;
+                    font-weight: bold;
+                }
+            }
+            .bill {
+                position: relative;
+                img {
+                    width: 24px;
+                    height: 24px;
+                    cursor: pointer;
+                }
+                .red-dot {
+                    position: absolute;
+                    right: 0px;
+                    top: -1px;
+                }
+            }
+        }
+
         .amount {
-            margin-top: 16px;
+            margin-top: 20px;
             margin-bottom: 20px;
             font-weight: 700;
-            font-size: 42px;
+            font-size: 36px;
+            line-height: 43px;
         }
 
         .area-btn {
             display: flex;
-            justify-content: center;
+            justify-content: space-between;
             font-weight: 600;
             font-size: 15px;
 
@@ -649,18 +689,18 @@ body {
                 color: #fff;
                 background: #1D9BF0;
                 border-radius: 100px;
-                width: 110px;
+                width: 165px;
                 height: 38px;
+                text-align: center;
                 margin-left: 8px;
                 line-height: 36px;
-
             }
 
             .withdraw-btn {
                 background: rgba(56, 154, 255, 0.01);
                 border: 1px solid #1D9BF0;
                 box-sizing: border-box;
-                width: 110px;
+                width: 165px;
                 font-size: 15px;
                 height: 38px;
                 text-align: center;
@@ -682,7 +722,6 @@ body {
     .tab-bar {
         display: flex;
         align-items: center;
-        margin-top: 25px;
         position: sticky;
         position: -webkit-sticky;
         top: 0px;
@@ -696,7 +735,7 @@ body {
             justify-content: center;
             padding: 17px 0;
             box-sizing: border-box;
-            border-bottom: 1px solid #d1d1d1;
+            border-bottom: 1px solid #ECECEC;
             cursor: pointer;
 
             .icon {
@@ -892,7 +931,7 @@ body {
                     display: flex;
                     justify-content: space-between;
                     align-items: center;
-                    border-bottom: 1px solid #d1d1d1;
+                    border-bottom: 1px solid #ECECEC;
                     box-sizing: border-box;
                     padding-right: 16px;
 

+ 1 - 1
src/view/popup/top-up/home.vue

@@ -1,7 +1,7 @@
 <template>
     <!-- 公共组件 -->
     <div class="info">
-        <v-head :title="'TopUp'" :show_more="true" :back_url="'/'"></v-head>
+        <v-head :title="'TopUp'" :show_more="true" :show_help="true" :back_url="'/'"></v-head>
         <currency-list style="height: calc(100% - 48px);" @selectCurrency="selectCurrency" :page="'top-up'"></currency-list>
     </div>
 

+ 1 - 1
src/view/popup/withdraw/home.vue

@@ -1,7 +1,7 @@
 <template>
     <!-- 公共组件 -->
     <div class="info">
-        <v-head :title="'Withdraw'" :show_more="true" :back_url="'/'"></v-head>
+        <v-head :title="'Withdraw'" :show_more="true" :show_help="false" :back_url="'/'"></v-head>
         <currency-list style="height: calc(100% - 48px);" :filterEmptyBalance="true" @selectCurrency="selectCurrency" ></currency-list>
     </div>
 

部分文件因文件數量過多而無法顯示