1
jhzh
2025-08-18 401c2caeedb8952ca5f792381fff9fc9b83f663d
1
20 files modified
934 ■■■■ changed files
src/components/Transform/perpetual-position-list/index.vue 2 ●●● patch | view | raw | blame | history
src/i18n/Deutsch.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Italy.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Japanese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Portuguese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Spanish.js 1 ●●●● patch | view | raw | blame | history
src/i18n/cn.js 1 ●●●● patch | view | raw | blame | history
src/i18n/en.js 1 ●●●● patch | view | raw | blame | history
src/i18n/fa.js 1 ●●●● patch | view | raw | blame | history
src/i18n/korean.js 1 ●●●● patch | view | raw | blame | history
src/i18n/th.js 1 ●●●● patch | view | raw | blame | history
src/i18n/vi.js 1 ●●●● patch | view | raw | blame | history
src/i18n/zhcn.js 1 ●●●● patch | view | raw | blame | history
src/router/index.js 3 ●●●● patch | view | raw | blame | history
src/service/user.api.js 2 ●●● patch | view | raw | blame | history
src/views/cryptos/PerpetualContract/orderDetail.vue 4 ●●●● patch | view | raw | blame | history
src/views/cryptos/Withdraw/withdrawPage.vue 844 ●●●● patch | view | raw | blame | history
src/views/my/index.vue 56 ●●●● patch | view | raw | blame | history
src/views/safety/index.vue 6 ●●●● patch | view | raw | blame | history
src/views/trade/index.vue 5 ●●●●● patch | view | raw | blame | history
src/components/Transform/perpetual-position-list/index.vue
@@ -54,7 +54,7 @@
            item.lever_rate ? item.lever_rate : 1 }}x</div>
        </div>
        <div class="flex-1 text-center  font-28">
          <div class="text-grey">{{ $t('保证金') }} ( {{ routeType == 'cryptos' ? 'USDT' : 'USD' }})</div>
          <div class="text-grey">{{ $t('交易金额') }} ( {{ routeType == 'cryptos' ? 'USDT' : 'USD' }})</div>
          <div class="mt-20 textColor">{{ item.deposit }}</div>
        </div>
        <div class="flex-1 flex flex-col items-end  font-28">
src/i18n/Deutsch.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Transaktionsbetrag",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Bitte wählen Sie das richtige Netzwerk. Wenn Sie an das falsche Netzwerk senden, können Ihre Vermögenswerte verloren gehen.",
    "信用分":"Kreditwürdigkeit",
    entrustOrder: "Betrauungsauftrag",
src/i18n/Italy.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Importo della transazione",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Seleziona la rete corretta. Se invii alla rete sbagliata, i tuoi dati potrebbero andare persi.",
    "信用分":"punteggio di credito",
    entrustOrder: "Ordine di Affidamento",
src/i18n/Japanese.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"取引金額",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"正しいネットワークを選択してください。間違ったネットワークに送信すると、資産が失われる可能性があります。",
    "信用分":"クレジットスコア",
    entrustOrder: "委託注文",
src/i18n/Portuguese.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Valor da transação",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Selecione a rede correta. Se você enviar para a rede errada, seus ativos poderão ser perdidos.",
    "信用分":"pontuação de crédito",
    entrustOrder: "Ordem de Confiança",
src/i18n/Spanish.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Valor da transação",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Selecione a rede correta. Se você enviar para a rede errada, seus ativos poderão ser perdidos.",
    "信用分":"pontuação de crédito",
    entrustOrder: "Ordem de Confiança",
src/i18n/cn.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"交易金額",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"請選擇正確的網路。若發送至錯誤的網絡,您的資產可能會遺失。",
    "信用分":"信用分",
    entrustOrder: "委託訂單",
src/i18n/en.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Transaction amount",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Please select the correct network. If you send to the wrong network, your assets may be lost.",
    "信用分":"credit score",
    entrustOrder: "Entrust Order",
src/i18n/fa.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Montant de la transaction",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Veuillez sélectionner le bon réseau. Si vous envoyez vers le mauvais réseau, vos ressources risquent d'être perdues..",
    "信用分":"pointage de crédit",
    entrustOrder: "Ordonnance de mandat",
src/i18n/korean.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"거래금액",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"올바른 네트워크를 선택해 주세요. 잘못된 네트워크로 보내시면 자산이 손실될 수 있습니다..",
    "信用分":"신용 점수",
    entrustOrder: "위탁 주문",
src/i18n/th.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"จำนวนธุรกรรม",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"กรุณาเลือกเครือข่ายที่ถูกต้อง หากส่งไปยังเครือข่ายที่ไม่ถูกต้อง ทรัพย์สินของคุณอาจสูญหาย",
    "信用分":"คะแนนเครดิต",
    entrustOrder: "คำสั่งซื้อ",
src/i18n/vi.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"Số tiền giao dịch",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"Vui lòng chọn đúng mạng. Nếu bạn gửi đến sai mạng, tài sản của bạn có thể bị mất.。",
    "信用分":"Phần tín dụng",
    entrustOrder: "Lệnh ủy thác",
src/i18n/zhcn.js
@@ -1,4 +1,5 @@
export default {
    "交易金额":"交易金额",
    "请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。":"请选择正确的网络。若发送至错误的网络,您的资产可能会丢失。",
    "信用分":"信用分",
    entrustOrder: "委托订单",
src/router/index.js
@@ -6,6 +6,7 @@
import {
    useUserStore
} from "@/store/user.js";
import store from '@/store/store'
import {
    onMounted
} from 'vue';
@@ -1179,7 +1180,7 @@
                {
                    path: 'transfer',
                    meta: {
                        tarbar: true,
                        tarbar: false,
                    },
                    component: () =>
                        import( /* webpackChunkName: "transfer" */ /* webpackPrefetch: true */
src/service/user.api.js
@@ -322,7 +322,7 @@
export const _customer = () => {
    return request({
        url: "api/syspara!getSyspara.action",
        url: "api/syspara/getSyspara.action",
        method: "GET",
        params: {
            code: "customer_service_url"
src/views/cryptos/PerpetualContract/orderDetail.vue
@@ -21,11 +21,11 @@
        </div>
        <div class="flex justify-between cell-item">
          <div class="text-grey">{{ $t('开仓金额') }}</div>
          <div class="textColor">{{ detail.amount_open }}</div>
          <div class="textColor">{{ detail.deposit_open }}</div>
        </div>
        <div class="flex justify-between cell-item">
          <div class="text-grey">{{ $t('可平金额') }}</div>
          <div class="textColor">{{ detail.amount }}</div>
          <div class="textColor">{{ detail.deposit }}</div>
        </div>
        <!-- <div class="flex justify-between cell-item">
          <div class="text-grey">{{ $t('保证金') }}</div>
src/views/cryptos/Withdraw/withdrawPage.vue
@@ -1,421 +1,467 @@
<template>
  <div id="cryptos">
    <div class="withdrawl-page font-28">
      <assets-head title="">
        <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
          @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
      </assets-head>
      <div class="px-32 pb-48">
        <!--<h1 class="font-52 pt-40 textColor">{{ $t('提币') }} USDT</h1>-->
        <h1 class="font-52 pt-40 textColor">{{ $t('提币 ') + value }} </h1>
        <!--<p class="text-grey font-30 mt-26">{{ $t('提币 USDT 到数字币地址') }}</p>-->
        <p class="text-grey font-30 mt-26">{{ $t('提币 ') + value + $t(' 到数字币地址') }}</p>
        <div @click="showSymbol = true"
          class="flex border-grey items-center items-center justify-between rounded-lg mt-42 inputBackground textColor">
          <input disabled v-model="value" class="flex-1 h-100 border-none px-16 inputBackground textColor" />
          <p class="flex items-center">
            <span>{{ $t('选择币种') }}</span>
            <img src="@/assets/image/icon-left_arrow.png" alt="logo" class="w-20 h-33 ml-30 mr-40"
              style="transform: rotate(-90deg)" />
          </p>
        </div>
        <p class="font-35 mt-44 textColor">{{ $t('区块链网络') }}</p>
        <ul class="flex mt-22  flex-wrap">
          <li
            class="w-210 h-96 mb-20 mr-40 rounded rounded-lg border border-solid flex justify-center items-center textColor"
            :class="blockchainIndex == index ? 'active' : ''" v-for="(item, index) in blockList" :key="item.id"
            @click="changeBlockchain(item, index)">{{ item.blockchain_name }}</li>
        </ul>
        <p class="font-35 mt-22 textColor">{{ $t('地址') }}</p>
        <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
          <input :placeholder="$t('长按粘贴')" class="h-full flex-1 border-none bg-none px-16 textColor" v-model="address" />
          <div class="flex items-center">
            <span class="colorMain" @click="pastCont">{{ $t('粘贴') }}</span>
            <div>
              <img @click="clickCode()" src="@/assets/image/public/scan.png" alt="logo" class="w-65 h-65 ml-20 mr-30" />
            </div>
          </div>
        </div>
        <p class="font-35 mt-44 textColor">{{ $t('数量') }}</p>
        <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
          <input :placeholder="$t('请输入提币数量')" maxlength="10"
            class="h-full flex-1 border-none bg-none px-16 font-22 textColor" type="number" v-model="amount"
            @input="changeInput" />
          <p class="flex items-center">
            <!--<span class="text-grey">USDT</span>-->
            <span class="text-grey">{{ value }}</span>
            <span class="colorMain ml-20 mr-30" @click="allBtn">{{ $t('全部') }}</span>
          </p>
        </div>
        <p class="flex justify-between text-grey mt-22 font-28">
          <span>{{ $t('可用') }}</span>
          <!--<span>{{ usdtBalance }} USDT</span>-->
          <span>{{ getwei(usdtBalance * 1, numLenth) }} {{ value }}</span>
        </p>
        <p class="text-grey mt-64 font-28">{{ $t('可到账数量') }}</p>
        <div class="font-40 mt-20 fon-bold ">
          <span class="font-40 font-700 textColor"> {{ volume_last || '0.00' }}</span>
          <!--<span class="font-32 ml-5 text-grey">USDT</span>-->
          <span class="font-32 ml-5 text-grey">{{ value }}</span>
        </div>
        <p class="text-grey mt-22 font-28">{{ $t('提现费用') }}:{{ fee || '0.00' }} {{ value }}</p>
        <p class="text-white mt-46 textColor font-28">{{ $t('提币说明') }}:
        </p>
        <div class="text-grey mt-10 font-28" v-html="tip"></div>
        <van-button class="w-768 h-100 rounded flex justify-center items-center mt-56  text-white btnMain border-none"
          @click="showDetail">
          {{ $t('提现') }}</van-button>
    <div id="cryptos">
        <div class="withdrawl-page font-28">
            <assets-head title="">
                <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
                    @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
            </assets-head>
            <div class="px-32 pb-48">
                <!--<h1 class="font-52 pt-40 textColor">{{ $t('提币') }} USDT</h1>-->
                <h1 class="font-52 pt-40 textColor">{{ $t('提币 ') + value }} </h1>
                <!--<p class="text-grey font-30 mt-26">{{ $t('提币 USDT 到数字币地址') }}</p>-->
                <p class="text-grey font-30 mt-26">{{ $t('提币 ') + value + $t(' 到数字币地址') }}</p>
                <div @click="showSymbol = true"
                    class="flex border-grey items-center items-center justify-between rounded-lg mt-42 inputBackground textColor">
                    <input disabled v-model="value" class="flex-1 h-100 border-none px-16 inputBackground textColor" />
                    <p class="flex items-center">
                        <span>{{ $t('选择币种') }}</span>
                        <img src="@/assets/image/icon-left_arrow.png" alt="logo" class="w-20 h-33 ml-30 mr-40"
                            style="transform: rotate(-90deg)" />
                    </p>
                </div>
                <p class="font-35 mt-44 textColor">{{ $t('区块链网络') }}</p>
                <ul class="flex mt-22  flex-wrap">
                    <li class="w-210 h-96 mb-20 mr-40 rounded rounded-lg border border-solid flex justify-center items-center textColor"
                        :class="blockchainIndex == index ? 'active' : ''" v-for="(item, index) in blockList"
                        :key="item.id" @click="changeBlockchain(item, index)">{{ item.blockchain_name }}</li>
                </ul>
                <p class="font-35 mt-22 textColor">{{ $t('地址') }}</p>
                <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
                    <input :placeholder="$t('长按粘贴')" class="h-full flex-1 border-none bg-none px-16 textColor"
                        v-model="address" />
                    <div class="flex items-center">
                        <span class="colorMain" @click="pastCont">{{ $t('粘贴') }}</span>
                        <div>
                            <img @click="clickCode()" src="@/assets/image/public/scan.png" alt="logo"
                                class="w-65 h-65 ml-20 mr-30" />
                        </div>
                    </div>
                </div>
                <p class="font-35 mt-44 textColor">{{ $t('数量') }}</p>
                <div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
                    <input :placeholder="$t('请输入提币数量')" maxlength="10"
                        class="h-full flex-1 border-none bg-none px-16 font-22 textColor" type="number" v-model="amount"
                        @input="changeInput" />
                    <p class="flex items-center">
                        <!--<span class="text-grey">USDT</span>-->
                        <span class="text-grey">{{ value }}</span>
                        <span class="colorMain ml-20 mr-30" @click="allBtn">{{ $t('全部') }}</span>
                    </p>
                </div>
                <p class="flex justify-between text-grey mt-22 font-28">
                    <span>{{ $t('可用') }}</span>
                    <!--<span>{{ usdtBalance }} USDT</span>-->
                    <span>{{ getwei(usdtBalance * 1, numLenth) }} {{ value }}</span>
                </p>
                <p class="text-grey mt-64 font-28">{{ $t('可到账数量') }}</p>
                <div class="font-40 mt-20 fon-bold ">
                    <span class="font-40 font-700 textColor"> {{ volume_last || '0.00' }}</span>
                    <!--<span class="font-32 ml-5 text-grey">USDT</span>-->
                    <span class="font-32 ml-5 text-grey">{{ value }}</span>
                </div>
                <p class="text-grey mt-22 font-28">{{ $t('提现费用') }}:{{ fee || '0.00' }} {{ value }}</p>
                <p class="text-white mt-46 textColor font-28">{{ $t('提币说明') }}:
                </p>
                <div class="text-grey mt-10 font-28" v-html="tip"></div>
                <van-button
                    class="w-768 h-100 rounded flex justify-center items-center mt-56  text-white btnMain border-none"
                    @click="showDetail">
                    {{ $t('提现') }}</van-button>
      </div>
      <van-popup v-model:show="show" position="bottom">
        <div class="pop-box relative font-28">
          <img src="@/assets/image/icon-close.png" class="w-38 h-38 absolute right-20 top-20" @click="show = false" />
          <p class="font-38 text-center pt-60 textColor">{{ $t('确认订单') }}</p>
          <p class="font-35 mt-49 text-grey text-center">{{ $t('实际到账') }}</p>
          <p class="font-50 mt-23 text-center textColor">{{ volume_last }} <span class="text-grey font-35">
              {{ value }}</span></p>
          <ul class="border-b-color px-32 pb-34">
            <li class="flex justify-between font-32 mt-25 items-center">
              <span class="textColor">{{ $t('提币地址') }}</span>
              <span class="text-grey font-26">{{ address }}</span>
            </li>
            <li class="flex justify-between font-32 mt-25">
              <span class="textColor">{{ $t('主网络') }}</span>
              <span class="text-grey">{{ blockName }}</span>
            </li>
            <li class="flex justify-between font-32 mt-25">
              <span class="textColor">{{ $t('提现来源账户') }}</span>
              <span class="text-grey">{{ $t('钱包账户') }}</span>
            </li>
          </ul>
          <ul class="px-32 mt-32">
            <li class="flex justify-between font-32 mt-25">
              <span class="textColor">{{ $t('币种') }}</span>
              <span class="text-grey">{{ value }}</span>
            </li>
            <li class="flex justify-between font-32 mt-25">
              <span class="textColor">{{ $t('金额') }}</span>
              <span class="text-grey">{{ amount }}&nbsp;{{ value }}</span>
            </li>
            <li class="flex justify-between font-32 mt-25">
              <span class="textColor">{{ $t('网络手续费') }}</span>
              <span class="text-grey">{{ fee }}&nbsp;{{ value }}</span>
            </li>
          </ul>
          <p class="px-32 mt-49 font-30 textColor">
            1. {{ $t('请确保您输入了正确的提币地址并且您选择的转账网络与地址相匹配') }}
          </p>
          <p class="px-32 mt-40 font-30 textColor">2. {{ $t('提币订单创建后不可取消。') }}</p>
          <p class="w-768 h-100 rounded flex justify-center items-center mt-56 mb-48 btnMain text-white ml-32"
            @click="onConfirm">
            {{ $t('确定') }}</p>
        </div>
      </van-popup>
      <!-- 币种 -->
      <van-action-sheet v-model:show="showSymbol" :actions="actions.filter(item => item.name !== value)"
        @select="onSelect" />
      <bar-scan v-if="scancode" @ok="getResult"></bar-scan>
    </div>
  </div>
            </div>
            <van-popup v-model:show="show" position="bottom">
                <div class="pop-box relative font-28">
                    <img src="@/assets/image/icon-close.png" class="w-38 h-38 absolute right-20 top-20"
                        @click="show = false" />
                    <p class="font-38 text-center pt-60 textColor">{{ $t('确认订单') }}</p>
                    <p class="font-35 mt-49 text-grey text-center">{{ $t('实际到账') }}</p>
                    <p class="font-50 mt-23 text-center textColor">{{ volume_last }} <span class="text-grey font-35">
                            {{ value }}</span></p>
                    <ul class="border-b-color px-32 pb-34">
                        <li class="flex justify-between font-32 mt-25 items-center">
                            <span class="textColor">{{ $t('提币地址') }}</span>
                            <span class="text-grey font-26">{{ address }}</span>
                        </li>
                        <li class="flex justify-between font-32 mt-25">
                            <span class="textColor">{{ $t('主网络') }}</span>
                            <span class="text-grey">{{ blockName }}</span>
                        </li>
                        <li class="flex justify-between font-32 mt-25">
                            <span class="textColor">{{ $t('提现来源账户') }}</span>
                            <span class="text-grey">{{ $t('钱包账户') }}</span>
                        </li>
                    </ul>
                    <ul class="px-32 mt-32">
                        <li class="flex justify-between font-32 mt-25">
                            <span class="textColor">{{ $t('币种') }}</span>
                            <span class="text-grey">{{ value }}</span>
                        </li>
                        <li class="flex justify-between font-32 mt-25">
                            <span class="textColor">{{ $t('金额') }}</span>
                            <span class="text-grey">{{ amount }}&nbsp;{{ value }}</span>
                        </li>
                        <li class="flex justify-between font-32 mt-25">
                            <span class="textColor">{{ $t('网络手续费') }}</span>
                            <span class="text-grey">{{ fee }}&nbsp;{{ value }}</span>
                        </li>
                    </ul>
                    <p class="px-32 mt-49 font-30 textColor">
                        1. {{ $t('请确保您输入了正确的提币地址并且您选择的转账网络与地址相匹配') }}
                    </p>
                    <p class="px-32 mt-40 font-30 textColor">2. {{ $t('提币订单创建后不可取消。') }}</p>
                    <p class="w-768 h-100 rounded flex justify-center items-center mt-56 mb-48 btnMain text-white ml-32"
                        @click="onConfirm">
                        {{ $t('确定') }}
                    </p>
                </div>
            </van-popup>
            <!-- 币种 -->
            <van-action-sheet v-model:show="showSymbol" :actions="actions.filter(item => item.name !== value)"
                @select="onSelect" />
            <bar-scan v-if="scancode" @ok="getResult"></bar-scan>
        </div>
    </div>
</template>
<script>
import { Popup, ActionSheet, showToast } from "vant"
import Axios from "@/service/recharge.js"
import { _withdrawFee,_withdrawApply } from "@/service/withdraw.api.js"
import assetsHead from "@/components/Transform/assets-head/index.vue";
import BarScan from '@/components/Transform/scan/scan.vue';
import { _getAllWallet } from "@/service/fund.api";
export default {
  name: "withdrawPage",
  components: {
    assetsHead,
    [Popup.name]: Popup,
    [ActionSheet.name]: ActionSheet,
    BarScan
  },
  data() {
    return {
      tip: '',
      value: 'USDT', //选中的币种
      show: false,
      showSymbol: false,
      actions: [{ name: 'USDT' }, { name: 'BTC' }, { name: 'ETH' }, { name: 'USDC' }],
      blockList: [],
      blockchainIndex: "",
      usdtBalance: "", //余额
      amount: "",//提现金额
      fee: "", //手续费
      volume_last: "",//到账金额
      blockName: "",//当前链名称
      address: "",// 二维码扫描结果
      scancode: false,//控制是否使用扫一扫功能
      withdraw_fee_type: '',
      percent: 0,
      numLenth: 3
    }
  },
  created() {
    this.getBlock(this.value);
    this.getAvailable(this.actions[0].name);
    import {
        Popup,
        ActionSheet,
        showToast
    } from "vant"
    import Axios from "@/service/recharge.js"
    import {
        _withdrawFee,
        _withdrawApply
    } from "@/service/withdraw.api.js"
    import assetsHead from "@/components/Transform/assets-head/index.vue";
    import BarScan from '@/components/Transform/scan/scan.vue';
    import {
        _getAllWallet
    } from "@/service/fund.api";
    export default {
        name: "withdrawPage",
        components: {
            assetsHead,
            [Popup.name]: Popup,
            [ActionSheet.name]: ActionSheet,
            BarScan
        },
        data() {
            return {
                tip: '',
                value: 'USDT', //选中的币种
                show: false,
                showSymbol: false,
                actions: [{
                    name: 'USDT'
                }, {
                    name: 'BTC'
                }, {
                    name: 'ETH'
                }, {
                    name: 'USDC'
                }],
                blockList: [],
                blockchainIndex: "",
                usdtBalance: "", //余额
                amount: "", //提现金额
                fee: "", //手续费
                volume_last: "", //到账金额
                blockName: "", //当前链名称
                address: "", // 二维码扫描结果
                scancode: false, //控制是否使用扫一扫功能
                withdraw_fee_type: '',
                percent: 0,
                numLenth: 3
            }
        },
        created() {
            this.getBlock(this.value);
            this.getAvailable(this.actions[0].name);
    Axios.getRechargeTips({
      language: this.$i18n.locale,
      token: this.$store.state.user.userInfo.token,
      content_code: '003',
    }).then(res => {
      this.tip = res.content
    }).catch(err => {
      if (err.code === 'ECONNABORTED') { showToast(this.$t('网络超时!')); }
      else if (err.msg !== undefined) { showToast(this.$t(err.msg)); }
    })
    _withdrawFee({
      amount: 1,
      channel: this.value + '_' + this.blockName
    }).then((res) => {
      this.withdraw_fee_type = res.withdraw_fee_type
      if (this.withdraw_fee_type == 'rate') {
        this.percent = res.fee
      } else {
        this.fee = res.fee;
      }
    });
  },
  methods: {
    getwei(value, numLenth) {
      console.log(numLenth)
      let str = value.toString();
      let strIndex = str.indexOf('.');
      if (strIndex === -1) return str;
      str = str.substring(0, strIndex + numLenth);
      console.log(str, numLenth)
      return str;
    },
    // 打开相机
    clickCode() {
      this.scancode = true;
    },
    //返回扫描结果并关闭摄像头
    getResult(result) {
      this.address = result;
      if (result !== "") {
        this.scancode = false;
      }
    },
    showDetail() {
      if (this.address.length > 63 || this.address.length == 0) {
        showToast(this.$t('提现地址格式错误'))
        return
      }
      if (!this.amount) {
        showToast(this.$t('请输入正确数量'))
        return
      }
      if (this.amount / 1 > this.usdtBalance / 1) {
        showToast(this.$t('金额不足'))
        return
      }
      this.show = true;
    },
    goRouter(params) {
      this.$router.push({
        path: params,
        query: {
          type: '2',
          back: "1"
        }
      });
    },
    // onConfirm() {
    //     this.$router.push('/withdraw/withdrawSumbit')
    // },
    //选中币种
    onSelect(item) {
      this.amount = ''
      this.volume_last = ''
      this.fee = ''
      this.showSymbol = false;
      this.value = item.name;
      this.withdraw_fee_type = ''
      this.getBlock(item.name);
      this.getAvailable(item.name)
      if (item.name == 'BTC' || item.name == 'ETH') {
        this.numLenth = 7
        _withdrawFee({
          amount: 1,
          channel: this.value + '_' + this.blockName
        }).then((res) => {
          this.withdraw_fee_type = res.withdraw_fee_type
          if (this.withdraw_fee_type == 'fixed') {
            this.fee = res.fee;
          } else {
            this.percent = res.fee
          }
        });
      } else {
        this.numLenth = 3
      }
    },
    //根据币种获取链地址
    getBlock(symbol) {
      Axios.getBlock({
        coin: symbol
      }).then((res) => {
        this.blockList = res;
        this.blockName = res[0].blockchain_name;
      });
    },
    //选中链名称
    changeBlockchain(item, index) {
      this.blockchainIndex = index;
      this.blockName = item.blockchain_name;
    },
    //获取钱包余额
    getAvailable(symbol) {
      _getAllWallet().then((res) => {
        let walletList = res.extends;
        let initObj = walletList.find(item => {
          return item.symbol_data.toLowerCase() == symbol.toLowerCase()
        })
        this.usdtBalance = initObj.volume
      });
    },
    //点全部
    allBtn() {
      this.amount = this.getwei(this.usdtBalance, this.numLenth);
      this.changeInput()
    },
    //输入改变
    changeInput() {
      if (this.amount === '') {
        this.volume_last = '0.00'
        return
      }
      if (this.amount.length > 11) {
        this.amount = this.amount.slice(0, 11)
      }
            Axios.getRechargeTips({
                language: this.$i18n.locale,
                token: this.$store.state.user.userInfo.token,
                content_code: '003',
            }).then(res => {
                this.tip = res.content
            }).catch(err => {
                if (err.code === 'ECONNABORTED') {
                    showToast(this.$t('网络超时!'));
                } else if (err.msg !== undefined) {
                    showToast(this.$t(err.msg));
                }
            })
            _withdrawFee({
                amount: 1,
                channel: this.value + '_' + this.blockName
            }).then((res) => {
                this.withdraw_fee_type = res.withdraw_fee_type
                if (this.withdraw_fee_type == 'rate') {
                    this.percent = res.fee
                } else {
                    this.fee = res.fee;
                }
            });
        },
        methods: {
            getwei(value, numLenth) {
                console.log(numLenth)
                let str = value.toString();
                let strIndex = str.indexOf('.');
                if (strIndex === -1) return str;
                str = str.substring(0, strIndex + numLenth);
                console.log(str, numLenth)
                return str;
            },
            // 打开相机
            clickCode() {
                this.scancode = true;
            },
            //返回扫描结果并关闭摄像头
            getResult(result) {
                this.address = result;
                if (result !== "") {
                    this.scancode = false;
                }
            },
            showDetail() {
                if (this.address.length > 63 || this.address.length == 0) {
                    showToast(this.$t('提现地址格式错误'))
                    return
                }
                if (!this.amount) {
                    showToast(this.$t('请输入正确数量'))
                    return
                }
                if (this.amount / 1 > this.usdtBalance / 1) {
                    showToast(this.$t('金额不足'))
                    return
                }
                this.show = true;
            },
            goRouter(params) {
                this.$router.push({
                    path: params,
                    query: {
                        type: '2',
                        back: "1"
                    }
                });
            },
            // onConfirm() {
            //     this.$router.push('/withdraw/withdrawSumbit')
            // },
            //选中币种
            onSelect(item) {
                this.amount = ''
                this.volume_last = ''
                this.fee = ''
                this.showSymbol = false;
                this.value = item.name;
                this.withdraw_fee_type = ''
                this.getBlock(item.name);
                this.getAvailable(item.name)
                if (item.name == 'BTC' || item.name == 'ETH') {
                    this.numLenth = 7
                    _withdrawFee({
                        amount: 1,
                        channel: this.value + '_' + this.blockName
                    }).then((res) => {
                        this.withdraw_fee_type = res.withdraw_fee_type
                        if (this.withdraw_fee_type == 'fixed') {
                            this.fee = res.fee;
                        } else {
                            this.percent = res.fee
                        }
                    });
                } else {
                    this.numLenth = 3
                }
            },
            //根据币种获取链地址
            getBlock(symbol) {
                Axios.getBlock({
                    coin: symbol
                }).then((res) => {
                    this.blockList = res;
                    this.blockName = res[0].blockchain_name;
                });
            },
            //选中链名称
            changeBlockchain(item, index) {
                this.blockchainIndex = index;
                this.blockName = item.blockchain_name;
            },
            //获取钱包余额
            getAvailable(symbol) {
                _getAllWallet().then((res) => {
                    let walletList = res.extends;
                    let initObj = walletList.find(item => {
                        return item.symbol_data.toLowerCase() == symbol.toLowerCase()
                    })
                    this.usdtBalance = initObj.volume
                });
            },
            //点全部
            allBtn() {
                this.amount = this.getwei(this.usdtBalance, this.numLenth);
                this.changeInput()
            },
            //输入改变
            changeInput() {
                if (this.amount === '') {
                    this.volume_last = '0.00'
                    return
                }
                if (this.amount.length > 11) {
                    this.amount = this.amount.slice(0, 11)
                }
      if (this.withdraw_fee_type == 'part') {
        _withdrawFee({
          amount: this.amount,
          channel: this.value + '_' + this.blockName
        }).then((res) => {
          console.log(res)
          this.fee = res.fee;
          this.volume_last = res.volume_last;
        });
      } else if (this.withdraw_fee_type == 'rate') {
        if (this.amount == '') {
          this.volume_last = 0
        } else {
          this.fee = this.getwei(this.percent * this.amount, this.numLenth)
          this.volume_last = this.getwei(this.amount * 1 - this.percent * this.amount, this.numLenth)
        }
      } else {
        if (this.amount * 1 < this.fee * 1) {
          console.log('a')
          this.volume_last = 0
        } else {
          this.volume_last = this.getwei(this.amount * 1 - this.fee * 1, this.numLenth)
        }
      }
                if (this.withdraw_fee_type == 'part') {
                    _withdrawFee({
                        amount: this.amount,
                        channel: this.value + '_' + this.blockName
                    }).then((res) => {
                        console.log(res)
                        this.fee = res.fee;
                        this.volume_last = res.volume_last;
                    });
                } else if (this.withdraw_fee_type == 'rate') {
                    if (this.amount == '') {
                        this.volume_last = 0
                    } else {
                        this.fee = this.getwei(this.percent * this.amount, this.numLenth)
                        this.volume_last = this.getwei(this.amount * 1 - this.percent * this.amount, this.numLenth)
                    }
                } else {
                    if (this.amount * 1 < this.fee * 1) {
                        console.log('a')
                        this.volume_last = 0
                    } else {
                        this.volume_last = this.getwei(this.amount * 1 - this.fee * 1, this.numLenth)
                    }
                }
    },
    //提币提交
    onConfirm() {
      if (!this.amount) {
        showToast(this.$t('请输入数量'));
        return;
      }
            },
            //提币提交
            onConfirm() {
                if (!this.amount) {
                    showToast(this.$t('请输入数量'));
                    return;
                }
      let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
      if (!numReg.test(this.amount)) {
        showToast(this.$t('请输入数字'));
        return;
      }
                let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
                if (!numReg.test(this.amount)) {
                    showToast(this.$t('请输入数字'));
                    return;
                }
      if (!this.address) {
        showToast(this.$t('请输入提现地址'));
        return;
      }
                if (!this.address) {
                    showToast(this.$t('请输入提现地址'));
                    return;
                }
      if (this.amount && this.address) {
        // this.$router.push({
        //   path: '/cryptos/withdraw/securityVerification',
        //   query: {
        //     amount: this.amount,
        //     from: this.address,
        //     channel: this.value + '_' + this.blockName
        //   }
        // })
        _withdrawApply({
            session_token:this.sessionToken,
            amount:this.amount,
            from:this.address,
            channel:this.value+'_'+ this.blockName
        }).then((res)=> {
            console.log('123123123123123',res);
            if(res.code==0) {
                this.$router.push({
                    path:"/withdraw/withdrawSumbit"
                });
            }else{
              this.$toast(this.$t(res.msg));
            }
            this.getToken();
        });
      } else {
        showToast(this.$t('请输入提币数量'));
      }
    },
    async pastCont() {
      this.address = await navigator.clipboard.readText();
    }
  }
}
                if (this.amount && this.address) {
                    // this.$router.push({
                    //   path: '/cryptos/withdraw/securityVerification',
                    //   query: {
                    //     amount: this.amount,
                    //     from: this.address,
                    //     channel: this.value + '_' + this.blockName
                    //   }
                    // })
                    //       _withdrawApply({
                    //         session_token:this.sessionToken,
                    //         amount:this.amount,
                    //         from:this.address,
                    //         channel:this.value+'_'+ this.blockName
                    //     }).then((res)=> {
                    //         if(res.code==0) {
                    //             this.$router.push({
                    //                 path:"/withdraw/withdrawSumbit"
                    //             });
                    //         }else{
                    // showToast(this.$t(res.msg));
                    //         }
                    //     });
                    _withdrawApply({
                            session_token:this.sessionToken,
                            amount:this.amount,
                            from:this.address,
                            channel:this.value+'_'+ this.blockName
                    }).then((res) => {
                        this.$router.push({
                            path: "/cryptos/withdraw/withdrawSumbit"
                        });
                    }).catch(err => {
                        //console.log(err)
                        if (err.code == 105) {
                            showToast(this.$t('当前还需交易%s,才可提币', {
                                'MONEY': err.msg
                            }));
                        } else if (err.code === 'ECONNABORTED') {
                            showToast(this.$t('网络超时!'))
                        } else if (err.msg !== undefined) {
                            showToast(this.$t(err.msg))
                        }
                        // this.getToken()
                    })
                } else {
                    showToast(this.$t('请输入提币数量'));
                }
            },
            async pastCont() {
                this.address = await navigator.clipboard.readText();
            }
        }
    }
</script>
<style lang="scss" scoped>
@import "@/assets/init.scss";
    @import "@/assets/init.scss";
#cryptos {
  .withdrawl-page {
    width: 100%;
    box-sizing: border-box;
    font-size: 26px;
  }
    #cryptos {
        .withdrawl-page {
            width: 100%;
            box-sizing: border-box;
            font-size: 26px;
        }
  .van-popup.van-popup--bottom {
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
  }
        .van-popup.van-popup--bottom {
            border-top-left-radius: 30px;
            border-top-right-radius: 30px;
        }
  .pop-box {
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
  }
        .pop-box {
            border-top-left-radius: 30px;
            border-top-right-radius: 30px;
        }
  .color-blue {
    color: $btn_main;
  }
        .color-blue {
            color: $btn_main;
        }
  .bg-grey-light {
    background: $light-grey;
  }
        .bg-grey-light {
            background: $light-grey;
        }
  li {
    &.active {
      border-color: $color_main;
      color: $color_main;
    }
  }
        li {
            &.active {
                border-color: $color_main;
                color: $color_main;
            }
        }
  .van-button--default {
    color: $text_color;
  }
        .van-button--default {
            color: $text_color;
        }
  .btnMain {
    background: $btn_main;
  }
}
</style>
        .btnMain {
            background: $btn_main;
        }
    }
</style>
src/views/my/index.vue
@@ -1,11 +1,17 @@
<template>
  <section class="my-index" >
    <fx-header :title="$t('my')">
    <!-- <fx-header :back="false" :title="$t('my')">
      <template v-slot:right>
        <van-icon name="service-o" size="24" @click="$router.push('/customerService')"></van-icon>
      </template>
    </fx-header>
    </fx-header> -->
    <assets-head title="">
        <!-- <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
            @click="goRouter('/customerService')" /> -->
            <template v-slot:right>
              <van-icon name="service-o" size="24" @click="$router.push('/customerService')"></van-icon>
            </template>
    </assets-head>
    <div class="px-8 mt-4">
      <h1 class="text-2xl font-bold title" v-if="!(userStore.userInfo && userStore.userInfo.token)">{{
        $t('welcome')
@@ -35,7 +41,7 @@
            <div class="label pl-2 pr-2 ml-3" :class="{ 'green': kycHighStatus == 2 }">
              {{ kycHighStatus == 2 ? $t('高级用户') : $t('普通用户') }}
            </div>
            <div class="pl-2 pr-2 ml-3" style="font-size: 12px;">{{$t('信用分')}} : {{userStore.userInfo.creditScore}}</div>
            <div class="pl-2 pr-2 ml-3" style="font-size: 12px;">{{$t('信用分')}} : {{userdata.creditScore}}</div>
          </div>
        </div>
      </div>
@@ -50,10 +56,10 @@
            <img src="@/assets/imgs/my/安全.png" alt="">
            <div>{{ t('安全') }}</div>
          </div>
          <div class="label_item flex flex-col items-center justify-center mt-8" @click="onRoute('/changePassword')">
<!--          <div class="label_item flex flex-col items-center justify-center mt-8" @click="onRoute('/changePassword')">
            <img src="@/assets/imgs/my/密码.png" alt="">
            <div>{{ t('修改密码') }}</div>
          </div>
          </div> -->
          <div class="label_item flex flex-col items-center justify-center mt-8"
            @click="onRoute('/cryptos/accountChange')">
            <img src="@/assets/imgs/my/记录.png" alt="">
@@ -108,7 +114,7 @@
<script setup>
import { reactive, onMounted, ref, computed } from 'vue';
import { useRouter } from 'vue-router';
import { _getIdentify, _getKycHighLevel, _logOut } from "@/service/user.api.js";
import { _getIdentify, _getKycHighLevel, _logOut,_info ,_customer } from "@/service/user.api.js";
import { useUserStore } from '@/store/user';
import { useI18n } from "vue-i18n";
import useClipboard from "vue-clipboard3";
@@ -121,8 +127,10 @@
const router = useRouter()
const userStore = useUserStore()
const customer_service_url = ref(null)
const status = ref(null)
const kycHighStatus = ref(null)
const userdata = ref({})
const state = reactive({
  cellList: [
    {
@@ -144,19 +152,22 @@
  ]
})
const onRoute = (path) => {
  console.log(path)
  // if(path=='/login'){
     //  console.log(status.value);
     //  // router.$refs.app.loginButton();
  // }else{
     //  router.push(path)
  // }
  router.push(path)
  if(path=='/customerService'){
      if(customer_service_url.value){
          window.location.href = customer_service_url.value;
      }else{
          router.push(path)
      }
  }else{
      router.push(path)
  }
}
onMounted(() => {
  if (userStore.userInfo && userStore.userInfo.token) {
    getIdentify()
    getKycHighLevel()
    getinfo()
    getcustomer()
  }
})
const cellList = computed(() => {
@@ -210,6 +221,21 @@
    store.state.user.userInfo = {}
  })
}
const getcustomer = () => {
  _customer().then((data) => {
    customer_service_url.value = data.customer_service_url
    console.log(customer_service_url);
  }).catch(error => {
    console.error('Error fetching data:', error);
  });
};
const getinfo = () => {
  _info().then((data) => {
    userdata.value = data;  // 确保 userdata 被正确声明
  }).catch(error => {
    console.error('Error fetching data:', error);
  });
};
const getIdentify = () => {
  _getIdentify().then(data => {
    status.value = data.status
src/views/safety/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="safety">
    <fx-header :back="false" @back="$router.push('/my/index')">
    <fx-header >
    </fx-header>
    <div class="content">
      <div class="title textColor">{{ $t('safe') }}</div>
@@ -8,7 +8,7 @@
      <div class="tit2">{{ $t('twoAuthenticationTips') }}</div>
    </div>
    <van-grid :column-num="2" :gutter="12" class="verify">
      <van-grid-item v-for="(item, index) in verifyList" :key="index"
      <!-- <van-grid-item v-for="(item, index) in verifyList" :key="index"
        @click="gotoVerify(item.url, item.isVerify, item.type)">
        <div class="verifyBox">
          <div class="left">
@@ -22,7 +22,7 @@
          </div>
        </div>
        <div class="name textColor">{{ item.title }}</div>
      </van-grid-item>
      </van-grid-item> -->
    </van-grid>
    <div class="content">
      <div v-for="(obj, index) in list" :key="index" @click="$router.push(obj.url)"
src/views/trade/index.vue
@@ -13,7 +13,6 @@
    <ContractHeader :symbol="symbol" :range="range" :selectIndex="selectIndex" :symbolName="symbolName"
      :balance="userInfo.balance" @tab="onTopTab" @update-coin="onUpdate">
    </ContractHeader>
    <!-- <Head :symbolObj="symbolObj"></Head> -->
    <div :key="symbol" class="pb-108 no_touch">
@@ -305,10 +304,10 @@
    }
  },
  async created() {
    if (this.$route.query.type) {
      this.type = this.$route.query.type
    }
    this.keyIndex += 1
    await this.SET_COIN_LIST(this.type)
    _getBalance().then(data => { // 获取用户余额
      this.$store.commit('user/SET_USERINFO', { balance: data.money })
@@ -317,8 +316,10 @@
    })
  },
  methods: {
    ...mapActions('home', [SET_COIN_LIST]),
    onUpdate(symbol) { // 更新
        this.keyIndex += 1
      this.currentType = 'long'
      this.symbol = symbol
      this.closeSocket()