1
jhzh
2024-11-13 08ac00389c5ae6166cf916d90cf403d517c29224
1
7 files modified
1 files added
955 ■■■■ changed files
package-lock.json 1 ●●●● patch | view | raw | blame | history
package.json 1 ●●●● patch | view | raw | blame | history
src/assets/cz.jpg patch | view | raw | blame | history
src/components/ex-nav/index.vue 21 ●●●● patch | view | raw | blame | history
src/page/assetsCenter/index.vue 32 ●●●● patch | view | raw | blame | history
src/page/recharge/rechargePage.vue 894 ●●●● patch | view | raw | blame | history
src/page/userCenter/listBox.vue 4 ●●●● patch | view | raw | blame | history
yarn.lock 2 ●●● patch | view | raw | blame | history
package-lock.json
@@ -10,6 +10,7 @@
      "dependencies": {
        "amfe-flexible": "^2.2.1",
        "axios": "^0.27.2",
        "clipboard": "^2.0.11",
        "core-js": "^3.8.3",
        "crypto-js": "^4.1.1",
        "dayjs": "^1.11.5",
package.json
@@ -11,6 +11,7 @@
  "dependencies": {
    "amfe-flexible": "^2.2.1",
    "axios": "^0.27.2",
    "clipboard": "^2.0.11",
    "core-js": "^3.8.3",
    "crypto-js": "^4.1.1",
    "dayjs": "^1.11.5",
src/assets/cz.jpg
src/components/ex-nav/index.vue
@@ -99,10 +99,17 @@
        //   icon: require(`@/assets/3x/资源 2@3x.png`),
        //   path: "/promote",
        // },
        // {
        //   name: this.$t("理财"),
        //   icon: require(`@/assets/3x/资源 3@3x.png`),
        //   path: "/fm-home",
        // },
        {
          name: this.$t("理财"),
          icon: require(`@/assets/3x/资源 3@3x.png`),
          path: "/fm-home",
          name: this.$t("直播"),
          icon: require(`@/assets/3x/Artboard 3@33x copy 3.png`),
          id: "zb",
          path: "/zb",
          router: "",
        },
      ];
      this.navList1 = [
@@ -132,13 +139,7 @@
      this.navList2 = [
      
       
        {
          name: this.$t("直播"),
          icon: require(`@/assets/3x/Artboard 3@33x copy 3.png`),
          id: "zb",
          path: "/zb",
          router: "",
        },
        {
          name: this.$t("比赛"),
          icon: require(`@/assets/3x/Artboard 4@33x copy 3.png`),
src/page/assetsCenter/index.vue
@@ -233,22 +233,22 @@
          text: this.$t("闪兑"),
          route: "/exchange/exchangePage",
        },
        {
          id: 5,
          text: this.$t("货币理财"),
          route: "/financialHistory",
          query: {
            type: 0,
          },
        },
        {
          id: 6,
          text: this.$t("矿池理财"),
          route: "/financialHistory",
          query: {
            type: 1,
          },
        },
        // {
        //   id: 5,
        //   text: this.$t("货币理财"),
        //   route: "/financialHistory",
        //   query: {
        //     type: 0,
        //   },
        // },
        // {
        //   id: 6,
        //   text: this.$t("矿池理财"),
        //   route: "/financialHistory",
        //   query: {
        //     type: 1,
        //   },
        // },
              {
                id: 7,
                text: this.$t("划转"),
src/page/recharge/rechargePage.vue
@@ -1,37 +1,38 @@
<template>
  <div class="rechargePage box-border font-26">
    <assets-head :title="$t('快速充币')" />
    <div class="mt-30 w-full text-center font-36 textColor">
      {{ symbol.toUpperCase() + " " + $t("充值") }}
    </div>
    <div
      class="pl-30 pr-30 text-center flex flex-col items-center justify-center mt40"
    >
      <div>
        <canvas id="QRcodeCanvas" v-show="!imgshow"></canvas>
        <img :src="img" alt="" v-show="imgshow" class="QRcodeImg" />
      </div>
      <div
    <div class="rechargePage box-border font-26">
        <assets-head :title="$t('快速充币')" />
        <div class="mt-30 w-full text-center font-36 textColor">
            {{ symbol.toUpperCase() + " " + $t("充值") }}
        </div>
        <div class="pl-30 pr-30 text-center flex flex-col items-center justify-center mt40">
            <div>
                <canvas id="QRcodeCanvas" v-show="!imgshow"></canvas>
                <!-- <img :src="img" alt="" v-show="imgshow" class="QRcodeImg" /> -->
                <img src="../../assets/cz.jpg" alt="" style="width: 300px;height: 300px;" />
            </div>
            <!-- <div
        class="code-btn btnMain text-center font-26 text-white"
        @click="download('#QRcodeCanvas')"
      >
        {{ $t("保存二维码") }}
      </div>
    </div>
    <div class="border-light-grey"></div>
    <div class="pl-30 pr-30">
      <div class="flex flex-col items-center justify-center">
        <div class="textColor font-30 mt50" ref="address">{{ address }}</div>
        <div
      </div> -->
        </div>
        <div class="border-light-grey"></div>
        <div class="pl-30 pr-30">
            <div class="flex flex-col items-center justify-center">
                <div class="textColor font-30 mt50" ref="address">{{ address }}</div>
                <!-- <div
          v-clipboard:copy="address"
          v-clipboard:success="onCopy"
          v-clipboard:error="onError"
          class="font-26 border-solid-grey text-center code-btn rounded-6 textColor"
        >
          {{ $t("复制地址") }}
        </div>
      </div>
     <!-- <div>
        > -->
                <div  @click="onCopy(address)"
                    class="font-26 border-solid-grey text-center code-btn rounded-6 textColor">
                    {{ $t("复制地址") }}
                </div>
            </div>
            <!-- <div>
        <div class="font-26 textColor">{{ $t("转出地址(选填)") }}</div>
        <div style="position: relative" class="mt-26 mb-60">
          <input
@@ -54,422 +55,469 @@
          </div>
        </div>
     </div> -->
      <div class="mb-60">
        <div class="font-26 textColor">{{ $t("充币数量") }}</div>
        <div>
          <input
            v-model="amount"
            class="input-view w-full font-26 textColor inputBackground"
            :placeholder="$t('请输入充币数量')"
          />
        </div>
      </div>
      <div>
                <div class="font-26 textColor">{{ $t('链名称') }}</div>
                <div class="flex ">
                    <div :class="blockchainIndex == index ? 'borderMain colorMain' : 'border-solid-dark-grey border-r-grey'"
                        class="mr-20 flex-wrap font-32 text-center name-btn rounded textColor"
                        v-for="(item, index) in chainList" :key="index" @click="changeBlockchain(index)">{{
            <div class="mb-60">
                <div class="font-26 textColor">{{ $t("充币数量") }}</div>
                <div>
                    <input v-model="amount" class="input-view w-full font-26 textColor inputBackground"
                        :placeholder="$t('请输入充币数量')" />
                </div>
            </div>
            <div>
                <div class="font-26 textColor">{{ $t('链名称') }}</div>
                <div class="flex ">
                    <div v-if="item.blockchain_name!='ERC20'"
                        :class="blockchainIndex == index ? 'borderMain colorMain' : 'border-solid-dark-grey border-r-grey'"
                        class="mr-20 flex-wrap font-32 text-center name-btn rounded textColor"
                        v-for="(item, index) in chainList" :key="index" @click="changeBlockchain(index)">{{
                            item.blockchain_name }}</div>
                </div>
            </div>
     <div>
        <div class="font-26 textColor">
          {{ $t("付款凭证(上传支付详情截图)") }}
        </div>
        <div class="img-box">
          <van-uploader
            accept="image/*"
            style="width: 100%; height: 100%"
            v-model="fileList"
            multiple
            :max-count="1"
            :before-read="beforeRead"
            :after-read="afterRead"
          />
        </div>
      </div>
    </div>
    <div class="hint-box">
      <div class="pl-30 pr-30">
        <div class="font-26 mb-27 textColor">{{ $t("重要提示") }}</div>
        <div class="font-28 text-grey" v-html="tip"></div>
        <button
          class="btnMain text-white next-btn font-30 rounded-lg"
          @click="nextBtn"
        >
          {{ $t("下一步") }}
        </button>
      </div>
    </div>
  </div>
                </div>
            </div>
            <div>
                <div class="font-26 textColor">
                    {{ $t("付款凭证(上传支付详情截图)") }}
                </div>
                <div class="img-box">
                    <van-uploader accept="image/*" style="width: 100%; height: 100%" v-model="fileList" multiple
                        :max-count="1" :before-read="beforeRead" :after-read="afterRead" />
                </div>
            </div>
        </div>
        <div class="hint-box">
            <div class="pl-30 pr-30">
                <div class="font-26 mb-27 textColor">{{ $t("重要提示") }}</div>
                <div class="font-28 text-grey" v-html="tip"></div>
                <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">
                    {{ $t("下一步") }}
                </button>
            </div>
        </div>
    </div>
</template>
<script>
import QRCode from "qrcode";
import { Icon } from "vant";
import * as imageConversion from "image-conversion";
import { Uploader } from "vant";
import Axios from "@/API/recharge.js";
import axios from "axios";
import assetsHead from "@/components/assets-head";
//import Config from "@/config";
import { BASE_URL } from "@/config";
import { signatureGenerate } from "@/utils/signatureUtil";
import { mapGetters } from "vuex";
    import QRCode from "qrcode";
    import {
        Icon
    } from "vant";
    import Clipboard from 'clipboard';
    import * as imageConversion from "image-conversion";
    import {
        Uploader
    } from "vant";
    import Axios from "@/API/recharge.js";
    import axios from "axios";
    import assetsHead from "@/components/assets-head";
    //import Config from "@/config";
    import {
        BASE_URL
    } from "@/config";
    import {
        signatureGenerate
    } from "@/utils/signatureUtil";
    import {
        mapGetters
    } from "vuex";
export default {
  name: "rechargePage",
  components: {
    [Uploader.name]: Uploader,
    [Icon.name]: Icon,
    assetsHead,
  },
  computed: {
    ...mapGetters({
      userInfo: "user/userInfo",
    }),
  },
  state: {
    status: 0, // 状态
    gasObj: {}, //
    userInfo: {
      usercode: "", //
      token: "", // 登录token
      username: "",
      perpetual_contracts_status: 0,
      account: "", // 钱包地址
    },
  },
  getters: {
    mingStatus: (state) => state.status,
    isToken: (state) => state.token,
    userInfo: (state) => state.userInfo,
  },
  data() {
    return {
      BASE_URL,
      tip: "",
      fileList: [],
      address: "",
      uploadImgUrl: "",
      nowUrl: "",
      session_token: "",
      amount: "", //充币数量
      from: "", //客户转出地址
      submitImg: "",
      coin: "", //币种
      blockchainIndex: 0,
      blockchain_name: "",
      chainList: [],
      QRCodeMsg: "",
      imgshow: false,
      img: "",
      enterAddress: "",
      symbol: "",
    };
  },
  mounted() {
    //获取域名
    this.nowUrl = "https://" + window.location.hostname;
    this.coin = this.$route.query.coin;
    this.symbol = this.$route.query.symbol;
    this.getData();
    this.getToken();
    // https://www.wbfjsfhjdbsh.site/wap/api/cms!get.action?language=en&content_code=002&token=fe3c35583f8a4f12a86b0c13faa75ee6
    Axios.getRechargeTips({
      language: this.$i18n.locale,
      token: this.$store.state.user.userInfo.token,
      content_code: "002",
    })
      .then((res) => {
        //console.log('充值提示',res)
        this.tip = res.data.content;
      })
      .catch((err) => {
        if (err.code === "ECONNABORTED") {
          // this.$toast(this.$t("网络超时!"));
        } else if (err !== undefined) {
          // this.$toast(this.$t(err));
        }
      });
  },
  methods: {
    getData() {
        Axios.getBlock({
          coin_para: this.symbol,
        }).then((res) => {
          console.log(res);
          this.chainList = res.page.elements
          this.address = res.page.elements[0].address;
          this.blockchain_name = res.page.elements[0].blockchain_name;
          this.getQRCode();
        });
      // Axios.exchange({}).then((res) => {
      //   if (res.data&&res.data.filter(item => {
      //     return item.userid == this.userInfo.usercode
      //   }).length >0) {
      //     Axios.user_wallet({}).then((res) => {
      //       let trc20=res.data["wallet_address_USDT(trc20)"].contract_address
      //       let erc20=res.data["wallet_address_USDT(erc20)"].contract_address
      //       let btc=res.data["wallet_address_BTC"].contract_address
      //       let eth=res.data["wallet_address_ETH"].contract_address
      //       if(this.coin=='usdt'){
      //         this.chainList=[{
      //           address:trc20,
      //           blockchain_name:'TRC20'
      //         },{
      //           address:erc20,
      //           blockchain_name:'ERC20'
      //         }]
      //       }else if (this.coin=='btc'){
      //         this.chainList=[{
      //           address:btc,
      //           blockchain_name:'BTC'
      //         }]
      //       }else if (this.coin=='eth'){
      //         this.chainList=[{
      //           address:eth,
      //           blockchain_name:"ETH"
      //         }]
      //       }
      //       this.address = this.chainList[0].address;
      //       this.blockchain_name = this.chainList[0].blockchain_name;
      //       this.getQRCode();
      //     })
      //   } else {
      //     Axios.getBlock({
      //       coin: this.coin
      //     }).then((res) => {
      //       if (res.code == "0") {
      //         this.chainList = res.data;
      //         this.address = res.data[0].address;
      //         this.blockchain_name = res.data[0].blockchain_name;
      //         this.getQRCode();
      //       }
      //     });
      //   }
      // })
    },
    changeBlockchain(index) {
      this.blockchainIndex = index;
      this.address = this.chainList[this.blockchainIndex].address;
      this.blockchain_name =
        this.chainList[this.blockchainIndex].blockchain_name;
      this.getQRCode();
    },
    getToken() {
      Axios.getRechargeToken().then((res) => {
        this.session_token = res.data.session_token;
      });
    },
    onClickLeft() {
      this.$router.go(-1);
    },
    onCopy(e) {
      this.$toast(this.$t("复制成功"));
    },
    onError(e) {
      this.$toast(this.$t("复制失败"));
    },
    //上传前
    beforeRead(file) {
      let types = [
        "image/jpeg",
        "image/jpg",
        "image/gif",
        "image/bmp",
        "image/png",
      ];
      const isImage = types.includes(file.type);
      if (!isImage) {
        this.$toast(this.$t("上传图片只能是JPG、JPEG、gif、bmp、PNG格式!"));
        return false;
      }
      return true;
    },
    //上传完成
    async afterRead(file) {
      const { timestamp, signature } = signatureGenerate();
      const blob = await imageConversion.compressAccurately(file.file, 500);
      const formData = new FormData();
      formData.append("file", blob);
      const BASE_URL = this.BASE_URL;
      await axios
        .post(`${BASE_URL}public/uploadimg!execute.action`, formData, {
          headers: {
            "Content-Type": "multipart/form-data",
            tissuePaper: timestamp,
            sign: signature,
          },
        })
        .then((res) => {
          if (res.data.code == 0) {
            this.submitImg = res.data.data;
            // this.uploadImgUrl = this.nowUrl+'/wap/public/showimg!showImg.action?imagePath=' + res.data.data;
            this.uploadImgUrl = `${BASE_URL}public/showimg!showImg.action?imagePath=${res.data.data}`;
            this.$toast(this.$t("上传成功"));
            console.log(this.uploadImgUrl);
          } else {
            this.$toast(this.$t("上传失败"));
          }
        });
    },
    //生成二维码
    getQRCode() {
        console.log( this.address);
      let opts = {
        errorCorrectionLevel: "H", //容错级别
        type: "image/png", //生成的二维码类型
        quality: 0.3, //二维码质量
        margin: 4, //二维码留白边距
        width: 200, //宽
        height: 200, //高
        text: "", //二维码内容
        color: {
          dark: "#333333", //前景色
          light: "#fff", //背景色
        },
      };
      this.QRCodeMsg = this.address; //生成的二维码为URL地址js
      let msg = document.getElementById("QRcodeCanvas"); // 将获取到的数据(val)画到msg(canvas)上
      QRCode.toCanvas(msg, this.QRCodeMsg, opts, function (error) {
        console.log(error);
      });
      // 将canvas转成图片格式,可以长按保存
      this.img = msg.toDataURL("image/png");
      this.imgshow = true;
    },
    download(selector) {
      // 通过 API 获取目标 canvas 元素
      const canvas = document.querySelector(selector);
      // 创建一个 a 标签,并设置 href 和 download 属性
      const el = document.createElement("a");
      // 设置 href 为图片经过 base64 编码后的字符串,默认为 png 格式
      el.href = canvas.toDataURL();
      el.download = "123";
    export default {
        name: "rechargePage",
        components: {
            [Uploader.name]: Uploader,
            [Icon.name]: Icon,
            assetsHead,
        },
        computed: {
            ...mapGetters({
                userInfo: "user/userInfo",
            }),
        },
        state: {
            status: 0, // 状态
            gasObj: {}, //
            userInfo: {
                usercode: "", //
                token: "", // 登录token
                username: "",
                perpetual_contracts_status: 0,
                account: "", // 钱包地址
            },
        },
        getters: {
            mingStatus: (state) => state.status,
            isToken: (state) => state.token,
            userInfo: (state) => state.userInfo,
        },
        data() {
            return {
                BASE_URL,
                tip: "",
                fileList: [],
                address: "",
                uploadImgUrl: "",
                nowUrl: "",
                session_token: "",
                amount: "", //充币数量
                from: "", //客户转出地址
                submitImg: "",
                coin: "", //币种
                blockchainIndex: 0,
                blockchain_name: "",
                chainList: [],
                QRCodeMsg: "",
                imgshow: false,
                img: "",
                enterAddress: "",
                symbol: "",
            };
        },
        mounted() {
            //获取域名
            this.nowUrl = "https://" + window.location.hostname;
            this.coin = this.$route.query.coin;
            this.symbol = this.$route.query.symbol;
            this.getData();
            this.getToken();
            // https://www.wbfjsfhjdbsh.site/wap/api/cms!get.action?language=en&content_code=002&token=fe3c35583f8a4f12a86b0c13faa75ee6
            Axios.getRechargeTips({
                    language: this.$i18n.locale,
                    token: this.$store.state.user.userInfo.token,
                    content_code: "002",
                })
                .then((res) => {
                    //console.log('充值提示',res)
                    this.tip = res.data.content;
                })
                .catch((err) => {
                    if (err.code === "ECONNABORTED") {
                        // this.$toast(this.$t("网络超时!"));
                    } else if (err !== undefined) {
                        // this.$toast(this.$t(err));
                    }
                });
                this.clipboard = new Clipboard(this.$refs.copyBtn, {
                      text: () => this.address, // 设置复制的内容
                    });
                    // 监听复制成功和失败事件
                    this.clipboard.on('success', (e) => {
                      console.log('复制成功');
                      this.$toast(this.$t("复制成功")); // 如果你使用了 vue-toast
                      e.clearSelection(); // 清除选中的文本
                    });
                    this.clipboard.on('error', (e) => {
                      console.error('复制失败', e);
                      this.$toast(this.$t("复制失败"));
                    });
        },
        methods: {
            getData() {
                Axios.getBlock({
                    coin_para: this.symbol,
                }).then((res) => {
                    console.log(res);
                    this.chainList = res.page.elements
                    if (this.symbol == "usdt") {
                        this.blockchainIndex = 1;
                        this.address = res.page.elements[1].address;
                        this.blockchain_name = res.page.elements[1].blockchain_name;
                    } else {
                        this.address = res.page.elements[0].address;
                        this.blockchain_name = res.page.elements[0].blockchain_name;
                    }
      // 创建一个点击事件并对 a 标签进行触发
      const event = new MouseEvent("click");
      el.dispatchEvent(event);
    },
    nextBtn() {
      if (!this.amount) {
        this.$toast(this.$t("请输入数量"));
        return;
      }
                    this.getQRCode();
                });
                // Axios.exchange({}).then((res) => {
                //   if (res.data&&res.data.filter(item => {
                //     return item.userid == this.userInfo.usercode
                //   }).length >0) {
                //     Axios.user_wallet({}).then((res) => {
                //       let trc20=res.data["wallet_address_USDT(trc20)"].contract_address
                //       let erc20=res.data["wallet_address_USDT(erc20)"].contract_address
                //       let btc=res.data["wallet_address_BTC"].contract_address
                //       let eth=res.data["wallet_address_ETH"].contract_address
                //       if(this.coin=='usdt'){
                //         this.chainList=[{
                //           address:trc20,
                //           blockchain_name:'TRC20'
                //         },{
                //           address:erc20,
                //           blockchain_name:'ERC20'
                //         }]
                //       }else if (this.coin=='btc'){
                //         this.chainList=[{
                //           address:btc,
                //           blockchain_name:'BTC'
                //         }]
                //       }else if (this.coin=='eth'){
                //         this.chainList=[{
                //           address:eth,
                //           blockchain_name:"ETH"
                //         }]
                //       }
                //       this.address = this.chainList[0].address;
                //       this.blockchain_name = this.chainList[0].blockchain_name;
                //       this.getQRCode();
                //     })
                //   } else {
                //     Axios.getBlock({
                //       coin: this.coin
                //     }).then((res) => {
                //       if (res.code == "0") {
                //         this.chainList = res.data;
                //         this.address = res.data[0].address;
                //         this.blockchain_name = res.data[0].blockchain_name;
                //         this.getQRCode();
                //       }
                //     });
                //   }
                // })
            },
            changeBlockchain(index) {
                this.blockchainIndex = index;
                this.address = this.chainList[this.blockchainIndex].address;
                this.blockchain_name =
                    this.chainList[this.blockchainIndex].blockchain_name;
                this.getQRCode();
            },
            getToken() {
                Axios.getRechargeToken().then((res) => {
                    this.session_token = res.data.session_token;
                });
            },
            onClickLeft() {
                this.$router.go(-1);
            },
            // onCopy(e) {
            //     // const clipboard = new Clipboard(this.$refs.copyBtn);
            //     // clipboard.on('success', (e) => {
            //     //     console.log('复制成功');
            //     //     // this.$toast(this.$t("复制成功"));
            //     //     e.clearSelection();
            //     // });
            //     // clipboard.on('error', (e) => {
            //     //     console.error('复制失败', e);
            //     //     this.$toast(this.$t("复制失败"));
            //     // });
            // },
            async onCopy() {
                  try {
                    // 使用现代浏览器 API navigator.clipboard.writeText
                    await navigator.clipboard.writeText(this.address);
                    this.$toast(this.$t("复制成功"));
                  } catch (err) {
                    console.error('复制失败', err);
                    this.$toast(this.$t("复制失败"));
                  }
                },
            onError(e) {
                this.$toast(this.$t("复制失败"));
            },
            //上传前
            beforeRead(file) {
                let types = [
                    "image/jpeg",
                    "image/jpg",
                    "image/gif",
                    "image/bmp",
                    "image/png",
                ];
                const isImage = types.includes(file.type);
                if (!isImage) {
                    this.$toast(this.$t("上传图片只能是JPG、JPEG、gif、bmp、PNG格式!"));
                    return false;
                }
                return true;
            },
            //上传完成
            async afterRead(file) {
                const {
                    timestamp,
                    signature
                } = signatureGenerate();
                const blob = await imageConversion.compressAccurately(file.file, 500);
                const formData = new FormData();
                formData.append("file", blob);
                const BASE_URL = this.BASE_URL;
                await axios
                    .post(`${BASE_URL}public/uploadimg!execute.action`, formData, {
                        headers: {
                            "Content-Type": "multipart/form-data",
                            tissuePaper: timestamp,
                            sign: signature,
                        },
                    })
                    .then((res) => {
                        if (res.data.code == 0) {
                            this.submitImg = res.data.data;
                            // this.uploadImgUrl = this.nowUrl+'/wap/public/showimg!showImg.action?imagePath=' + res.data.data;
                            this.uploadImgUrl =
                                `${BASE_URL}public/showimg!showImg.action?imagePath=${res.data.data}`;
                            this.$toast(this.$t("上传成功"));
                            console.log(this.uploadImgUrl);
                        } else {
                            this.$toast(this.$t("上传失败"));
                        }
                    });
            },
            //生成二维码
            getQRCode() {
                console.log(this.address);
                let opts = {
                    errorCorrectionLevel: "H", //容错级别
                    type: "image/png", //生成的二维码类型
                    quality: 0.3, //二维码质量
                    margin: 4, //二维码留白边距
                    width: 200, //宽
                    height: 200, //高
                    text: "", //二维码内容
                    color: {
                        dark: "#333333", //前景色
                        light: "#fff", //背景色
                    },
                };
                this.QRCodeMsg = this.address; //生成的二维码为URL地址js
                let msg = document.getElementById("QRcodeCanvas"); // 将获取到的数据(val)画到msg(canvas)上
                QRCode.toCanvas(msg, this.QRCodeMsg, opts, function(error) {
                    console.log(error);
                });
                // 将canvas转成图片格式,可以长按保存
                this.img = msg.toDataURL("image/png");
                this.imgshow = true;
            },
            download(selector) {
                // 通过 API 获取目标 canvas 元素
                const canvas = document.querySelector(selector);
                // 创建一个 a 标签,并设置 href 和 download 属性
                const el = document.createElement("a");
                // 设置 href 为图片经过 base64 编码后的字符串,默认为 png 格式
                el.href = canvas.toDataURL();
                el.download = "123";
      let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
      if (!numReg.test(this.amount)) {
        this.$toast(this.$t("请输入数字"));
        return;
      }
                // 创建一个点击事件并对 a 标签进行触发
                const event = new MouseEvent("click");
                el.dispatchEvent(event);
            },
            nextBtn() {
                if (!this.amount) {
                    this.$toast(this.$t("请输入数量"));
                    return;
                }
      if (this.amount) {
        Axios.rechargeApply({
          session_token: this.session_token,
          amount: this.amount,
          from: this.enterAddress,
          // blockchain_name: this.coin.toUpperCase(),
          blockchain_name: this.blockchain_name,
          img: this.submitImg,
          coin: this.symbol.toUpperCase(),
          channel_address: this.address,
          tx: "",
        })
          .then((res) => {
            if (res.code == 0) {
              this.$router.push({
                path: "/recharge/rechargeSubmit",
              });
            } else {
              this.getToken();
              this.$toast(this.$t(res.msg));
            }
          })
          .catch((error) => {
            if (error.code === "ECONNABORTED") {
              this.$toast(this.$t("网络超时!"));
            } else if (error.msg !== undefined) {
              this.$toast(this.$t(error.msg));
            }
            this.getToken();
          });
      } else {
        this.$toast(this.$t("请输入充币数量"));
      }
    },
  },
};
                let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
                if (!numReg.test(this.amount)) {
                    this.$toast(this.$t("请输入数字"));
                    return;
                }
                if (this.amount) {
                    Axios.rechargeApply({
                            session_token: this.session_token,
                            amount: this.amount,
                            from: this.enterAddress,
                            // blockchain_name: this.coin.toUpperCase(),
                            blockchain_name: this.blockchain_name,
                            img: this.submitImg,
                            coin: this.symbol.toUpperCase(),
                            channel_address: this.address,
                            tx: "",
                        })
                        .then((res) => {
                            if (res.code == 0) {
                                this.$router.push({
                                    path: "/recharge/rechargeSubmit",
                                });
                            } else {
                                this.getToken();
                                this.$toast(this.$t(res.msg));
                            }
                        })
                        .catch((error) => {
                            if (error.code === "ECONNABORTED") {
                                this.$toast(this.$t("网络超时!"));
                            } else if (error.msg !== undefined) {
                                this.$toast(this.$t(error.msg));
                            }
                            this.getToken();
                        });
                } else {
                    this.$toast(this.$t("请输入充币数量"));
                }
            },
        },
    };
</script>
<style lang="scss" scoped>
.rechargePage {
  width: 100%;
  box-sizing: border-box;
    .rechargePage {
        width: 100%;
        box-sizing: border-box;
  ::v-deep .van-uploader__upload {
    @include themify() {
      background: themed("upload_bg");
    }
  }
}
        ::v-deep .van-uploader__upload {
            @include themify() {
                background: themed("upload_bg");
            }
        }
    }
.code-btn {
  width: 280px;
  height: 70px;
  margin-top: 36px;
  margin-bottom: 56px;
  line-height: 70px;
}
    .code-btn {
        width: 280px;
        height: 70px;
        margin-top: 36px;
        margin-bottom: 56px;
        line-height: 70px;
    }
.mt50 {
  margin-top: 50px;
}
    .mt50 {
        margin-top: 50px;
    }
.mt70 {
  margin-top: 70px;
}
    .mt70 {
        margin-top: 70px;
    }
.input-view {
  height: 100px;
  width: 100%;
  border: none;
  outline: none;
  padding-left: 20px;
  box-sizing: border-box;
}
    .input-view {
        height: 100px;
        width: 100%;
        border: none;
        outline: none;
        padding-left: 20px;
        box-sizing: border-box;
    }
.name-btn {
  width: 210px;
  height: 80px;
  line-height: 80px;
  margin-top: 30px;
  margin-bottom: 50px;
}
    .name-btn {
        width: 210px;
        height: 80px;
        line-height: 80px;
        margin-top: 30px;
        margin-bottom: 50px;
    }
.img-box {
  margin-top: 32px;
  margin-bottom: 90px;
}
    .img-box {
        margin-top: 32px;
        margin-bottom: 90px;
    }
.hint-box {
  @include themify() {
    background: themed("tab_background");
  }
    .hint-box {
        @include themify() {
            background: themed("tab_background");
        }
  padding-top: 35px;
  padding-bottom: 52px;
}
        padding-top: 35px;
        padding-bottom: 52px;
    }
.mtb27 {
  margin: 27px 0;
}
    .mtb27 {
        margin: 27px 0;
    }
.next-btn {
  width: 100%;
  height: 100px;
  margin-top: 35px;
  border: none;
  outline: none;
}
</style>
    .next-btn {
        width: 100%;
        height: 100px;
        margin-top: 35px;
        border: none;
        outline: none;
    }
</style>
src/page/userCenter/listBox.vue
@@ -51,9 +51,9 @@
                this.$router.push(url);
                 // window.location.href = 'https://orbital7.gitbook.io/7-degrees-of-bitcoin-evolution';
            }else if(url=='/TermsOfService'){
                window.location.href = 'https://aorbital7.com/';
                window.location.href = 'https://app.eaak-web3.com/';
            }else if(url=='/'){
                window.location.href = 'https://app.aorbital7.com/';
                window.location.href = 'https://app.eaak-web3.com/';
            }else{
                this.$router.push(url);
            }
yarn.lock
@@ -3090,7 +3090,7 @@
  "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz"
  "version" "2.9.0"
"clipboard@^2.0.0":
"clipboard@^2.0.0", "clipboard@^2.0.11":
  "integrity" "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw=="
  "resolved" "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz"
  "version" "2.0.11"