9337c3cf960b60078558b7f942fd27f1ab39364b..7bb960ef165d091678a65ddc01b6551ec4487daa
2025-12-29 李凌
1
7bb960 diff | tree
2025-12-22 李凌
1
6cd1d7 diff | tree
2025-12-19 李凌
1
4870e3 diff | tree
44 files modified
276 ■■■■■ changed files
.env 2 ●●● patch | view | raw | blame | history
index.html 2 ●●● patch | view | raw | blame | history
relicon.png patch | view | raw | blame | history
src/assets/image/symbol/usdc.png patch | view | raw | blame | history
src/assets/imgs/assets/chonbi.png patch | view | raw | blame | history
src/assets/imgs/logo.png patch | view | raw | blame | history
src/assets/video/home_1.mp4 patch | view | raw | blame | history
src/components/Transform/application/application.vue 4 ●●●● patch | view | raw | blame | history
src/components/Transform/ex-header/index.vue 4 ●●●● patch | view | raw | blame | history
src/components/application/application.vue 4 ●●●● patch | view | raw | blame | history
src/components/quotes-advanced-item/index.vue 1 ●●●● patch | view | raw | blame | history
src/config/index.js 21 ●●●● patch | view | raw | blame | history
src/i18n/Deutsch.js 4 ●●●● patch | view | raw | blame | history
src/i18n/Italy.js 2 ●●● patch | view | raw | blame | history
src/i18n/Japanese.js 2 ●●● patch | view | raw | blame | history
src/i18n/Portuguese.js 2 ●●● patch | view | raw | blame | history
src/i18n/Spanish.js 2 ●●● patch | view | raw | blame | history
src/i18n/cn.js 2 ●●● patch | view | raw | blame | history
src/i18n/en.js 6 ●●●● patch | view | raw | blame | history
src/i18n/fa.js 2 ●●● patch | view | raw | blame | history
src/i18n/korean.js 2 ●●● patch | view | raw | blame | history
src/i18n/th.js 2 ●●● patch | view | raw | blame | history
src/i18n/vi.js 2 ●●● patch | view | raw | blame | history
src/i18n/zhcn.js 2 ●●● patch | view | raw | blame | history
src/service/user.api.js 2 ●●● patch | view | raw | blame | history
src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue 4 ●●●● patch | view | raw | blame | history
src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue 4 ●●●● patch | view | raw | blame | history
src/views/C2C/c2c-trade/page/SellGenerate.vue 4 ●●●● patch | view | raw | blame | history
src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue 4 ●●●● patch | view | raw | blame | history
src/views/C2C/c2cOrder/order-generation/orderGeneration.vue 4 ●●●● patch | view | raw | blame | history
src/views/authentication/index.vue 28 ●●●● patch | view | raw | blame | history
src/views/certificationCenter/index.vue 20 ●●●●● patch | view | raw | blame | history
src/views/cryptos/AboutUs/index.vue 12 ●●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargeList.vue 25 ●●●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargeSubmit.vue 4 ●●●● patch | view | raw | blame | history
src/views/cryptos/Withdraw/withdrawSumbit.vue 4 ●●●● patch | view | raw | blame | history
src/views/homePage/components/head.vue 14 ●●●●● patch | view | raw | blame | history
src/views/homePage/index.vue 29 ●●●● patch | view | raw | blame | history
src/views/login/index.vue 5 ●●●●● patch | view | raw | blame | history
src/views/my/assets.vue 7 ●●●● patch | view | raw | blame | history
src/views/my/index.vue 24 ●●●●● patch | view | raw | blame | history
src/views/order/order-submit.vue 4 ●●●● patch | view | raw | blame | history
src/views/register/index.vue 5 ●●●●● patch | view | raw | blame | history
src/views/safety/resetPhoneEmail.vue 5 ●●●●● patch | view | raw | blame | history
.env
@@ -1,2 +1,2 @@
VITE_APP__TITLE = "MetaEquity"
VITE_APP__TITLE = "FracTionxEX"
VUE_APP_THEME = "dark"
index.html
@@ -11,7 +11,7 @@
  <meta name="theme-color" content="#131a2e">
  <meta name="apple-mobile-web-app-status-bar-style" content="#131a2e" />
  <link rel="apple-touch-icon" href="./public/img/App.png">
  <title>MetaEquity</title>
  <title>FracTionxEX</title>
</head>
<body>
relicon.png

src/assets/image/symbol/usdc.png

src/assets/imgs/assets/chonbi.png

src/assets/imgs/logo.png

src/assets/video/home_1.mp4
Binary files differ
src/components/Transform/application/application.vue
@@ -71,8 +71,8 @@
      this.time = dataTimeEx(Date.parse(new Date()), true);
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/components/Transform/ex-header/index.vue
@@ -51,8 +51,8 @@
      this.tabList[index]['data'] = this.tabList[index]['data'].filter(item => item.symbol.includes(this.keywords))
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/components/application/application.vue
@@ -71,8 +71,8 @@
      this.time = dataTimeEx(Date.parse(new Date()), true);
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/components/quotes-advanced-item/index.vue
@@ -68,7 +68,6 @@
  width: 120px;
  flex: none;
  color: var(--van-cell-value-color);
}
:deep(.van-cell__value){
src/config/index.js
@@ -35,12 +35,12 @@
// const ENV_DEV = 'zhapi.coinbtcs.com' // dev
// const ENV_DEV = 'openapi.yanshiz.com' // dev
const ENV_DEV = 'api.metaequityex.com' // dev
const ENV_DEV = 'ddapi.fractionx-ex.com' // dev
// const ENV_DEV = '192.168.10.6:8086' // dev
// const ENV_PRO = 'qheufhj.site' //  app域名
// const ENV_PRO = window.location.hostname // 接口域名跟随 H5zhapi.coinbtcs.com
const ENV_PRO = 'api.metaequityex.com' // 接口域名跟随 H5zhapi.coinbtcs.com
const ENV_PRO = 'ddapi.fractionx-ex.com' // 接口域名跟随 H5zhapi.coinbtcs.com
// const ENV_PRO = '192.168.10.6:8086' // 接口域名跟随 H5zhapi.coinbtcs.com
let base_url = ''
@@ -56,7 +56,7 @@
    ws_url = 'wss://' + ENV_PRO + '/api/websocket'
}
let imgUrl = 'https://img.metaequityex.com' // 暂时的 单独的图片地址
let imgUrl = 'https://ddimg.fractionx-ex.com' // 暂时的 单独的图片地址
export const BASE_URL = base_url
export const WS_URL = ws_url
@@ -67,7 +67,20 @@
// 公司logo
export const LOGO = new URL('@/assets/imgs/logo.png', import.meta.url)
export const customerServiceUrl = 'https://chat.onlinesupport.help/chat_online/index?channelId=5c7314eab72c4a72b2dc9b63c4502e69' // 客服外链链接
export const customerServiceUrl = ()=>{
    let str = 'https://chat.onlinesupport.help/chat_online/index?channelId=5c7314eab72c4a72b2dc9b63c4502e69'
    let user = JSON.parse(localStorage.getItem('user'))
    console.log(user);
    let userName = '',pid = '';
    if(user && user.userInfo){
        userName = user.userInfo.username
        pid = user.userInfo.usercode
    }
    str += `&userName=${userName}&pid=${pid}`
    return str
} // 客服外链链接
export default {
    sliderOptions: {
src/i18n/Deutsch.js
@@ -69,7 +69,7 @@
    nationality: "Staatsangehörigkeit",
    realName: "Real Name",
    entryRealName: "Bitte geben Sie Ihren echten Namen ein",
    credentPassport: "Document/Passport Number",
    credentPassport: "Von der Regierung ausgestellte Ausweis-/Passnummer",
    entryCredentPassport: "Bitte geben Sie Ihre ID/Passnummer ein",
    uploadCredentPassport: "ID Foto/Pass hochladen",
    uploadPicCredentPassport: "Upload ID/Pass Authentication Images",
@@ -2867,5 +2867,5 @@
Einzahlungen an die oben genannte Adresse erfordern die Bestätigung aller Netzwerkknoten und werden erst nach einer zweiten Netzwerkbestätigung gutgeschrieben.
Bitte stellen Sie sicher, dass Ihr Computer und Ihr Browser sicher sind, um Manipulationen oder Datenlecks zu verhindern.
Bei Fragen wenden Sie sich bitte an unseren Online-Kundenservice.`,
    "MCB白皮书":'MCB-Whitepaper',
    "DXCN白皮书":'DXCN-Whitepaper',
}
src/i18n/Italy.js
@@ -2957,5 +2957,5 @@
I depositi all'indirizzo sopra indicato richiederanno la conferma da parte di tutti i nodi di rete e verranno accreditati solo dopo una seconda conferma di rete.
Assicurati che il tuo computer e il tuo browser siano sicuri per evitare manomissioni o fughe di informazioni.
Per qualsiasi domanda, contatta il nostro servizio clienti online.`,
    "MCB白皮书":'Libro bianco MCB',
    "DXCN白皮书":'Libro bianco DXCN',
}
src/i18n/Japanese.js
@@ -2725,5 +2725,5 @@
上記のアドレスへの入金は、すべてのネットワークノードによる確認が必要であり、2回目のネットワーク確認後にのみ入金されます。
情報の改ざんや漏洩を防ぐため、お使いのコンピューターとブラウザが安全であることをご確認ください。
ご質問がございましたら、オンラインカスタマーサービスまでお問い合わせください。`,
    "MCB白皮书":'MCBホワイトペーパー',
    "DXCN白皮书":'DXCNホワイトペーパー',
}
src/i18n/Portuguese.js
@@ -676,5 +676,5 @@
Os depósitos para o endereço acima exigirão a confirmação de todos os nós da rede e só serão creditados após uma segunda confirmação da rede.
Certifique-se de que o seu computador e o seu navegador estão seguros para evitar a adulteração ou fuga de informação.
Em caso de dúvidas, contacte o nosso serviço de apoio ao cliente online.`,
    "MCB白皮书":'Livro Branco do MCB',
    "DXCN白皮书":'Livro Branco do DXCN',
}
src/i18n/Spanish.js
@@ -2640,5 +2640,5 @@
Los depósitos a la dirección anterior requerirán la confirmación de todos los nodos de la red y solo se acreditarán tras una segunda confirmación de la red.
Asegúrese de que su ordenador y navegador sean seguros para evitar la manipulación o filtración de información.
Si tiene alguna pregunta, póngase en contacto con nuestro servicio de atención al cliente en línea.`,
    "MCB白皮书":'Libro blanco de MCB',
    "DXCN白皮书":'Libro blanco de DXCN',
}
src/i18n/cn.js
@@ -2846,5 +2846,5 @@
您充值至上述地址後,需要整個網絡節點的確認,二次網絡確認後到賬。
請務必確認電腦及瀏覽器安全,防止信息被篡改或泄漏。
有任何問題可聯繫在線客服服務。`,
    "MCB白皮书":'MCB白皮書',
    "DXCN白皮书":'DXCN白皮書',
}
src/i18n/en.js
@@ -65,8 +65,8 @@
    nationality: "Country of Citizenship",
    realName: "Actual name",
    entryRealName: "Please enter your real name",
    credentPassport: "Document/passport number",
    entryCredentPassport: "Please enter your ID/passport number",
    credentPassport: "Government-issued ID / Passport Number",
    entryCredentPassport: "Please enter your government-issued ID or passport number",
    uploadCredentPassport: "ID photo/upload passport",
    uploadPicCredentPassport: "Document/passport authentication picture upload",
    credentFront: "ID front",
@@ -2821,5 +2821,5 @@
Deposits to the address above will require confirmation from all network nodes, and will only be credited after a second network confirmation.
Please ensure that your computer and browser are secure to prevent information tampering or leakage.
If you have any questions, please contact our online customer service.`,
    "MCB白皮书":'MCB White Paper',
    "DXCN白皮书":'DXCN White Paper',
}
src/i18n/fa.js
@@ -2764,5 +2764,5 @@
Les dépôts à l’adresse ci-dessus nécessiteront une confirmation de tous les nœuds du réseau et ne seront crédités qu’après une seconde confirmation réseau.
Veuillez vous assurer que votre ordinateur et votre navigateur sont sécurisés afin d’éviter toute altération ou fuite d’informations.
Pour toute question, veuillez contacter notre service client en ligne.`,
    "MCB白皮书":'Livre blanc du MCB',
    "DXCN白皮书":'Livre blanc du DXCN',
}
src/i18n/korean.js
@@ -2861,5 +2861,5 @@
위 주소로 입금하려면 모든 네트워크 노드의 확인이 필요하며, 두 번째 네트워크 확인 후에만 입금됩니다.
정보 변조 또는 유출을 방지하기 위해 컴퓨터와 브라우저의 보안을 확인하십시오.
문의 사항이 있으시면 온라인 고객 서비스로 문의해 주십시오.`,
    "MCB白皮书":'MCB 백서',
    "DXCN白皮书":'DXCN 백서',
}
src/i18n/th.js
@@ -2831,5 +2831,5 @@
การฝากเงินไปยังที่อยู่ข้างต้นจำเป็นต้องได้รับการยืนยันจากทุกโหนดเครือข่าย และจะได้รับเครดิตหลังจากการยืนยันเครือข่ายครั้งที่สอง
โปรดตรวจสอบให้แน่ใจว่าคอมพิวเตอร์และเบราว์เซอร์ของคุณปลอดภัยเพื่อป้องกันการปลอมแปลงหรือการรั่วไหลของข้อมูล
หากมีข้อสงสัย โปรดติดต่อฝ่ายบริการลูกค้าออนไลน์ของเรา`,
    "MCB白皮书":'เอกสารไวท์เปเปอร์ของ MCB',
    "DXCN白皮书":'เอกสารไวท์เปเปอร์ของ DXCN',
}
src/i18n/vi.js
@@ -2811,5 +2811,5 @@
Việc gửi tiền vào địa chỉ trên sẽ yêu cầu xác nhận từ tất cả các nút mạng và sẽ chỉ được ghi có sau lần xác nhận mạng thứ hai.
Vui lòng đảm bảo máy tính và trình duyệt của bạn được bảo mật để ngăn chặn việc giả mạo hoặc rò rỉ thông tin.
Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với bộ phận chăm sóc khách hàng trực tuyến của chúng tôi.`,
    "MCB白皮书":'Sách trắng MCB',
    "DXCN白皮书":'Sách trắng DXCN',
}
src/i18n/zhcn.js
@@ -2826,5 +2826,5 @@
您充值至上述地址后,需要整个网络节点的确认,二次网络确认后到账。
请务必确认电脑及浏览器安全,防止信息被篡改或泄漏。
有任何问题可联系在线客服服务。`,
    "MCB白皮书":'MCB白皮书',
    "DXCN白皮书":'DXCN白皮书',
}
src/service/user.api.js
@@ -216,7 +216,7 @@
            name: data.name, // 姓名
            idFrontImg: data.frontFile.length && data.frontFile[0].resURL || '',
            idBackImg: data.reverseFile.length && data.reverseFile[0].resURL || '',
            handheldPhoto: data.fileList.length && data.fileList[0].resURL || ''
            // handheldPhoto: data.fileList.length && data.fileList[0].resURL || ''
        }
    })
}
src/views/C2C/c2c-order-list/components/TradeSuccessDetail.vue
@@ -146,8 +146,8 @@
      return str
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/C2C/c2c-trade/components/TradeSuccessDetail.vue
@@ -146,8 +146,8 @@
      return str
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/C2C/c2c-trade/page/SellGenerate.vue
@@ -216,8 +216,8 @@
      return formatTime(new Date(time), 'yyyy-MM-dd hh:mm:ss')
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/C2C/c2cOrder/components/appeal/AppealWaiting.vue
@@ -31,8 +31,8 @@
  },
  methods: {
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/C2C/c2cOrder/order-generation/orderGeneration.vue
@@ -120,8 +120,8 @@
      this.$router.push({ path: '/chat' })
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/authentication/index.vue
@@ -66,7 +66,7 @@
              </div>
              <div class=" font-26 h-20 textColor1">{{ $t('credentObverse') }}</div>
            </div>
            <div class="flex-1 flex flex-col text-center justify-center items-center">
            <!-- <div class="flex-1 flex flex-col text-center justify-center items-center">
              <div class="upload-wrap">
                <img src="../../assets/image/kyc/2.png" alt="" class="w-full"
                  v-if="[1, 2].includes(status) && fileList.length === 0" />
@@ -74,20 +74,20 @@
                  :after-read="afterRead" @click-upload="onClickUpload('fileList')" v-else />
              </div>
              <div class="font-26 h-20" style="color:#868D9A;">{{ $t('handCredent') }}</div>
            </div>
            </div> -->
          </div>
        </div>
        <template v-if="!disabled()">
          <div class="font-35 mb-32 textColor">{{ $t('photoExample') }}</div>
          <img src="@/assets/image/kyc/kyc-demo.png" alt="" style="width:100%;height:auto;" class="w-756 h-220 mb-100">
          <!-- <div class="mb-100 flex justify-center">
            <div class="flex flex-1 justify-center">
              <img src="../../assets/image/kyc/0.png" alt="" class="w-120 h-120" />
            </div>
          <!-- <img src="@/assets/image/kyc/kyc-demo.png" alt="" style="width:100%;height:auto;" class="w-756 h-220 mb-100"> -->
          <div class="mb-100 flex justify-center">
            <div class="flex flex-1 justify-center">
              <img src="../../assets/image/kyc/1.png" alt="" class="w-120 h-120" />
            </div>
          </div> -->
            <div class="flex flex-1 justify-center">
              <img src="../../assets/image/kyc/0.png" alt="" class="w-120 h-120" />
            </div>
          </div>
        </template>
        <button class="apply-btn btnMain text-white font-35 h-100 rounded" @click="onSubmit" v-if="!disabled()">{{
          $t('Apply')
@@ -135,7 +135,6 @@
const language = ref('en')
const controlChild = ref(null)
const { proxy } = getCurrentInstance();
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
onMounted(() => {
  fetchInfo();
@@ -209,16 +208,19 @@
    showToast(t('entryCredent'))
    return
  }
  if (frontFile.value.length == 0 || reverseFile.value.length == 0 || fileList.value.length == 0) {
  // if (frontFile.value.length == 0 || reverseFile.value.length == 0 || fileList.value.length == 0) { // 需要手持身份证
  if (frontFile.value.length == 0 || reverseFile.value.length == 0) { // 不需要手持身份证
    showToast(t('uploadComplete'))
    return
  }
  _applyIdentify({
    name: name.value,
    idnumber: idnumber.value,
    frontFile: frontFile.value,
    reverseFile: reverseFile.value,
    fileList: fileList.value,
    // fileList: fileList.value,
    countryName: countryCode.value // this.countryName 存储的 code, 回来再遍历
  }).then(() => {
    showToast(t('submitSuccess'))
@@ -230,8 +232,8 @@
  })
}
const tokefu = () => {
  if (customer_service_url.value) {
    window.location.href = customer_service_url.value;
  if (customerServiceUrl()) {
    window.location.href = customerServiceUrl();
  } else {
    router.push('/customerService')
  }
src/views/certificationCenter/index.vue
@@ -40,7 +40,7 @@
            <img :src="handImg(`status${kyc_status}`)" alt="" />
            <span class="textColor-span font-28 flex items-center">{{
              fixState(kyc_status)
            }}</span>
              }}</span>
          </div>
        </div>
        <div class="px-32-1">
@@ -66,7 +66,8 @@
            <p v-show="(kyc_status == 3)">{{ $t('certificationRefusal') }}:{{ turnDownMsg }}</p>
          </div> -->
          <div class="rounded-lg py-26 text-center btn"
            :class="kyc_status == 0 || kyc_status == 3 ? 'btnMain text-white' : 'bgDark text-grey'" @click="openUlr(1)">{{
            :class="kyc_status == 0 || kyc_status == 3 ? 'btnMain text-white' : 'bgDark text-grey'" @click="openUlr(1)">
            {{
              fixBtnState(kyc_status) }}</div>
        </div>
@@ -121,12 +122,12 @@
            <span class="textColor mr-10">{{ item.title }}</span>
            <span>{{ item.des }}</span>
          </div>
          <div class="text-grey text-grey1 font-30 " v-for="(str, index) in item.arr" :class="{ 'colorMain': index == 1 }"
            :key="index">{{ str }}</div>
          <div class="text-grey text-grey1 font-30 " v-for="(str, index) in item.arr"
            :class="{ 'colorMain': index == 1 }" :key="index">{{ str }}</div>
        </div>
        <div class="btnMain btnMain1 text-white font-34 py-26 rounded-lg text-center mt-68" @click="onClose">{{
          $t('confirm')
        }}</div>
          }}</div>
      </div>
    </van-popup>
  </div>
@@ -366,6 +367,7 @@
</script>
<style lang="scss" scoped>
@import "@/views/authentication/components/intl.css";
@import '@/assets/theme/index.scss';
.certificationCenter {
  width: 100%;
@@ -383,7 +385,10 @@
  padding-left: 2rem;
  padding-right: 2rem;
  padding-bottom: 2.625rem;
  background: $tab_background;
  @include themify() {
    background-color: themed("c2c_background1");
  }
  .user-info {
    overflow: hidden;
@@ -563,7 +568,8 @@
.fs {
  font-size: 14px;
  margin-left: 10px;
  color: $text_color1;;
  color: $text_color1;
  ;
}
.text-grey .img3 {
src/views/cryptos/AboutUs/index.vue
@@ -46,7 +46,7 @@
        case '27':
          return this.$t('帮助中心')
        case '28':
          return this.$t('MCB白皮书')
          return this.$t('DXCN白皮书')
        default:
          return this.$t('关于我们')
      }
@@ -63,11 +63,11 @@
    },
    getCms() {
      let language
      if (this.$i18n.locale == 'zh-CN' || this.$i18n.locale == 'CN') {
        language = this.$i18n.locale
      } else {
        language = 'en'
      }
      // if (this.$i18n.locale == 'zh-CN' || this.$i18n.locale == 'CN') {
      language = this.$i18n.locale
      // } else {
      //   language = 'en'
      // }
      // 白皮书限定只要中文的
      if (this.serviceTerm == '28') language = 'en'
src/views/cryptos/Recharge/rechargeList.vue
@@ -5,7 +5,7 @@
        <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
          @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
      </assets-head>
      <assets-head v-else :title="$t('充值通道')" >
      <assets-head v-else :title="$t('充值通道')">
        <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
          @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
      </assets-head>
@@ -14,22 +14,22 @@
        <div class="recharge-list flex justify-between">
          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
            @click="selectSymbol('usdt')">
            <img src="../../../assets/image/symbol/usdt.png" class="w-92 h-92" />
            <img :src="`${HOST_URL}/symbol/usdt.png`" class="w-92 h-92" />
            <div class="text-grey font-26 mt-32">{{ $t('USDT充值') }}</div>
          </div>
          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
            @click="selectSymbol('usdc')">
            <img src="../../../assets/image/symbol/usdc.png" class="w-92 h-92" />
            <div class="text-grey font-26 mt-32">{{ $t('USDC充值') }}</div>
          </div>
          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
            @click="selectSymbol('usdc')">
            <img :src="`${HOST_URL}/symbol/usdc.png`" class="w-92 h-92" />
            <div class="text-grey font-26 mt-32">{{ $t('USDC充值') }}</div>
          </div>
          <div class="item-view  flex flex-col items-center justify-center text-center w-189 h-220 box-border"
            @click="selectSymbol('btc')">
            <img src="../../../assets/image/symbol/btc.png" class="w-92 h-92" />
            <img :src="`${HOST_URL}/symbol/btc.png`" class="w-92 h-92" />
            <div class="text-grey font-26 mt-32">{{ $t('BTC充值') }}</div>
          </div>
          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
            @click="selectSymbol('eth')">
            <img src="../../../assets/image/symbol/eth.png" class="w-92 h-92" />
            <img :src="`${HOST_URL}/symbol/eth.png`" class="w-92 h-92" />
            <div class="text-grey font-26 mt-32">{{ $t('ETH充值') }}</div>
          </div>
        </div>
@@ -55,6 +55,7 @@
<script>
import assetsHead from "@/components/Transform/assets-head/index.vue";
import { HOST_URL } from '@/config'
import { Icon } from 'vant';
export default {
  name: 'rechageList',
@@ -86,7 +87,8 @@
          imgPath: new URL('@/assets/image/crypto.png', import.meta.url),
        }
      ],
      isForeign: false
      isForeign: false,
      HOST_URL,
    }
  },
  created() {
@@ -151,7 +153,8 @@
    border-radius: 15px;
    box-sizing: border-box;
  }
  .reminder{
  .reminder {
    font-size: 2rem;
    padding: 2rem;
  }
src/views/cryptos/Recharge/rechargeSubmit.vue
@@ -74,8 +74,8 @@
      this.time = dataTimeEx(Date.parse(new Date()), true);
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/cryptos/Withdraw/withdrawSumbit.vue
@@ -74,8 +74,8 @@
      this.time = dataTimeEx(Date.parse(new Date()), true);
    },
    tokefu() {
      if (customerServiceUrl) {
        window.location.href = customerServiceUrl;
      if (customerServiceUrl()) {
        window.location.href = customerServiceUrl();
      } else {
        this.$router.push('/customerService')
      }
src/views/homePage/components/head.vue
@@ -4,15 +4,15 @@
            <img src="@/assets/imgs/home/more.png" alt="" @click="onRoute('/my')">
        </div>
        <div class="more_input tabBackground1 pl-5 pr-5 flex items-center justify-start mr-5 pt-2">
        <div class="more_input pl-5 pr-5 flex items-center justify-start mr-5 pt-2">
            <img src="@/assets/imgs/quotes/search.png" alt="">
            <!-- <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span> -->
            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="padding: 0 1rem;"
            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="padding: 0 1rem;background: none;"
                @input="emit('search', iValue)" />
        </div>
        <div class="scan"><img src="@/assets/image/assets-center/language.png" alt="" @click="onRoute('/language')">
        </div>
        <!-- <div class="" @click="store.commit('vant/SET_THEME', 'dark')">切换1</div>
        <div class="" @click="store.commit('vant/SET_THEME', 'light')">切换2</div> -->
@@ -41,6 +41,7 @@
</script>
<style lang="scss" scoped>
@import '@/assets/theme/index.scss';
.head {
    width: 100%;
    margin-bottom: 1rem;
@@ -53,13 +54,16 @@
    }
    .more_input {
        // width: 26rem;
        // background: #fff;
        width: 100%;
        height: 4.5rem;
        border-radius: 2.25rem;
        font-size: 1.5rem;
        @include themify() {
            background-color: themed("input_background");
            color: themed("text_color1");
        }
        span {
            text-overflow: ellipsis;
            overflow: hidden;
src/views/homePage/index.vue
@@ -12,7 +12,6 @@
        <video autoplay loop muted playsinline class="home_logo">
            <source src="@/assets/video/home_1.mp4" type="video/mp4">
            您的浏览器不支持 video 标签。
        </video>
        <!-- <div class="text-center font-bold mt-8 logo_text">{{ $t('复制财富,從此刻開始') }}</div>
@@ -33,7 +32,7 @@
        </div>
        <!-- 新闻 -->
        <!-- <van-notice-bar class="font-26 mt-10 index_notice" background="#fafbfc" :scrollable="false" wrapable
        <van-notice-bar class="font-26 mt-10 index_notice" background="#333" :scrollable="false" wrapable
            color="#333333">
            <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false">
                <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)">
@@ -46,7 +45,7 @@
                    </div>
                </van-swipe-item>
            </van-swipe>
        </van-notice-bar> -->
        </van-notice-bar>
        <!-- <div class="flex justify-between mt-10">
            <van-swipe class="home_swipe_1" :autoplay="2000">
@@ -105,7 +104,6 @@
const { t } = useI18n()
const router = useRouter()
const store = useStore();
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const tabbers = [
    // { key: 1, name: t('跟单'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
@@ -125,7 +123,7 @@
    // { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/wantBuy' },
    // { key: 13, name: t('质押'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '' },
    { key: 14, name: t('onLineService'), icon: new URL('@/assets/imgs/home/home_10.png', import.meta.url), path: '/customerService' },
    { key: 15, name: t('MCB白皮书'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/aboutUs?serviceTerm=28' },
    { key: 15, name: 'DXCM PDF', icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: 'https://www.dexm-whitepaper.com/' },
]
// 获取公告数据
@@ -147,9 +145,16 @@
const toPage = (path) => {
    if (!path) return
    // 如果路径包含 "http",则作为外链跳转
    if (path && (path.startsWith('http://') || path.startsWith('https://'))) {
        window.open(path, '_blank');
        return;
    }
    if (path == '/customerService') {
        if (customer_service_url.value) {
            window.location.href = customer_service_url.value;
        // 客服链接,有值的话就会跳转到客服外链
        if (customerServiceUrl()) {
            window.location.href = customerServiceUrl();
        } else {
            router.push(path)
        }
@@ -228,6 +233,8 @@
</script>
<style lang="scss">
@import '@/assets/theme/index.scss';
.home_page {
    // background: $white;
    min-height: 100vh;
@@ -253,8 +260,14 @@
        }
        .notice_content {
            @include themify() {
                color: themed("text_color");
            }
            &>div:first-child {
                color: $text_color1;
                @include themify() {
                    color: themed("text_color1");
                }
            }
        }
    }
src/views/login/index.vue
@@ -55,7 +55,6 @@
import store from '@/store/store'
import { LOGO, customerServiceUrl } from "@/config";
const { t } = useI18n()
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const router = useRouter()
const onRoute = (path) => {
@@ -63,8 +62,8 @@
        router.go(-1)
    } else {
        if (path == '/customerService') {
            if (customer_service_url.value) {
                window.location.href = customer_service_url.value;
            if (customerServiceUrl()) {
                window.location.href = customerServiceUrl();
            } else {
                router.push(path)
            }
src/views/my/assets.vue
@@ -27,7 +27,7 @@
        <div class="tabbers flex justify-between mt-20 pl-1 pr-1">
            <div class="item" v-for="item in tabList" :key="item.key" @click="toPage(item.path)">
                <img style="width: 100px;" :src="item.icon" alt="">
                <img :src="item.icon" alt="">
                <div class="mt-3 text-center">{{ item.name }}</div>
            </div>
        </div>
@@ -285,6 +285,11 @@
            img {
                height: $item_width;
                border-radius: 50%;
                background: #fff;
                @include themify() {
                    border: themed("main_background") 1px solid;
                }
            }
        }
    }
src/views/my/index.vue
@@ -130,7 +130,6 @@
const router = useRouter()
const userStore = useUserStore()
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const status = ref(null)
const kycHighStatus = ref(null)
const userdata = ref({})
@@ -166,8 +165,8 @@
})
const onRoute = (path) => {
  if (path == '/customerService') {
    if (customer_service_url.value) {
      window.location.href = customer_service_url.value;
    if (customerServiceUrl()) {
      window.location.href = customerServiceUrl();
    } else {
      router.push(path)
    }
@@ -235,15 +234,6 @@
    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 被正确声明
@@ -272,6 +262,8 @@
</script>
<style lang="scss" scoped>
@import '@/assets/theme/index.scss';
:deep(.van-cell-group__title) {
  // background: $main2_background !important;
  background: $inp-b !important;
@@ -303,11 +295,15 @@
}
:deep(.van-icon) {
  color: $text_color;
  @include themify() {
    color: themed("text_color") !important;
  }
}
:deep(.van-cell__title) {
  color: $text_color;
  @include themify() {
    color: themed("text_color") !important;
  }
}
:deep(.van-cell:after) {
src/views/order/order-submit.vue
@@ -121,8 +121,8 @@
const showPopup = ref(false)
const orderNo = ref(null)
const onRoute = () => {
  if (customerServiceUrl) {
    window.location.href = customerServiceUrl;
  if (customerServiceUrl()) {
    window.location.href = customerServiceUrl();
  } else {
    router.push('/customerService?order_no=' + orderNo.value)
  }
src/views/register/index.vue
@@ -88,7 +88,6 @@
import { ref, onMounted, reactive, onUnmounted } from 'vue';
import { showToast } from "vant";
import store from '@/store/store'
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const { t } = useI18n()
const router = useRouter()
const onRoute = (path) => {
@@ -96,8 +95,8 @@
        router.go(-1)
    } else {
        if (path == '/customerService') {
            if (customer_service_url.value) {
                window.location.href = customer_service_url.value;
            if (customerServiceUrl()) {
                window.location.href = customerServiceUrl();
            } else {
                router.push(path)
            }
src/views/safety/resetPhoneEmail.vue
@@ -68,7 +68,6 @@
import { ref, onMounted, reactive, onUnmounted } from 'vue';
import { showToast } from "vant";
import store from '@/store/store'
const customer_service_url = ref(customerServiceUrl) // 客服链接,有值的话就会跳转到客服外链
const { t } = useI18n()
const router = useRouter()
const onRoute = (path) => {
@@ -76,8 +75,8 @@
        router.go(-1)
    } else {
        if (path == '/customerService') {
            if (customer_service_url.value) {
                window.location.href = customer_service_url.value;
            if (customerServiceUrl()) {
                window.location.href = customerServiceUrl();
            } else {
                router.push(path)
            }