zzzz
2024-04-23 e52dc331a5ca991f1251534179a7774d858c6fc1
src/App.vue
@@ -1,115 +1,136 @@
<template>
  <div id="app">
    <!-- <div id="status-bar" style="position: relative;"></div> -->
    <div class="w-full h-full">
      <keep-alive>
        <router-view class="appContent" v-if="$route.meta.keepAlive"></router-view>
        <router-view
          class="appContent"
          v-if="$route.meta.keepAlive"
        ></router-view>
      </keep-alive>
      <router-view class="appContent" v-if="!$route.meta.keepAlive"></router-view>
      <router-view
        class="appContent"
        v-if="!$route.meta.keepAlive"
      ></router-view>
      <Footer v-if="$route.meta.footer"></Footer>
    </div>
  </div>
  <!-- <loading v-else /> -->
</template>
<script>
import { mapState } from 'vuex'
// import Loading from '@/components/loading'
import Footer from '@/components/footer'
import { mapActions, mapMutations, mapGetters } from 'vuex';
import { SET_CURRENCY, SET_KEFU, SET_CONFIG } from '@/store/const.store';
import { changeTheme, setStorage, getStorage, setSessionStorage, getSessionStorage } from '@/utils/utis'
import { encryptDes, decryptDes } from '@/utils/des'
import { mapState } from "vuex";
import Footer from "@/components/footer";
import { mapActions, mapMutations, mapGetters } from "vuex";
import { SET_CURRENCY, SET_KEFU, SET_CONFIG } from "@/store/const.store";
import {
  changeTheme,
  setStorage,
  getStorage,
  setSessionStorage,
  getSessionStorage,
} from "@/utils/utis";
import { encryptDes, decryptDes } from "@/utils/des";
import axios from "axios";
import { BASE_URL } from "@/config";
import { signatureGenerate } from "@/utils/signatureUtil"
import { signatureGenerate } from "@/utils/signatureUtil";
export default {
  name: "App",
  data() {
    return {
      initReady: false, // 获取初始化信息, 【货币单位】
      transitionName: '',
    }
      transitionName: "",
    };
  },
  async created() {
    window.onload = function () {
      document.addEventListener('touchstart', function (event) {
      document.addEventListener("touchstart", function (event) {
        if (event.touches.length > 1) {
          event.preventDefault();
        }
      });
      var lastTouchEnd = 0;
      document.addEventListener('touchend', function (event) {
        var now = (new Date()).getTime();
        if (now - lastTouchEnd <= 300) {
          event.preventDefault();
        }
        lastTouchEnd = now;
      }, false);
      document.addEventListener('gesturestart', function (event) {
        event.preventDefault()
      document.addEventListener(
        "touchend",
        function (event) {
          var now = new Date().getTime();
          if (now - lastTouchEnd <= 300) {
            event.preventDefault();
          }
          lastTouchEnd = now;
        },
        false
      );
      document.addEventListener("gesturestart", function (event) {
        event.preventDefault();
      });
    }
    let usercode = this.geturlkey('usercode');
    if (usercode) { //
      setStorage('usercode', usercode);
    };
    let usercode = this.geturlkey("usercode");
    if (usercode) {
      //
      setStorage("usercode", usercode);
    }
    await this.init();
    //document.addEventListener('touchmove', function (e) { e.cancelable && e.preventDefault(); }, false);
  },
  mounted() {
    window.document.documentElement.setAttribute('data-theme', this.theme)
    changeTheme(this.theme)
    window.document.documentElement.setAttribute("data-theme", this.theme);
    changeTheme(this.theme);
    this.GET_UERS_KYC();
  },
  components: {
    // loading: Loading,
    Footer
    Footer,
  },
  methods: {
    ...mapActions('home', [SET_KEFU]),
    ...mapActions('user', [SET_CONFIG]),
    ...mapMutations('language', ['setLanguage']),
    ...mapMutations('home', [SET_CURRENCY]),
    ...mapActions("home", [SET_KEFU]),
    ...mapActions("user", [SET_CONFIG, "GET_UERS_KYC"]),
    ...mapMutations("language", ["setLanguage"]),
    ...mapMutations("home", [SET_CURRENCY]),
    async init() {
      await this.verifyLink();
      this.setLanguage(this.$i18n.locale)
      await this.SET_KEFU()
      await this.SET_CONFIG()
      this.setLanguage(this.$i18n.locale);
      await this.SET_KEFU();
      await this.SET_CONFIG();
      // this.initReady = true
    },
    geturlkey: function (name) {
      return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null;
      return (
        decodeURIComponent(
          (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(
            location.href
          ) || [, ""])[1].replace(/\+/g, "%20")
        ) || null
      );
    },
    async verifyLink(url) {
      let baseUrl = BASE_URL;
      const { signature, timestamp } = signatureGenerate()
      const { signature, timestamp } = signatureGenerate();
      if (url) {
        baseUrl = url;
      }
      axios({
        method: 'get',
        url: baseUrl + '/api/exchangerateuserconfig!get.action',
        method: "get",
        url: baseUrl + "/api/exchangerateuserconfig!get.action",
        timeout: 10000,
        dataType: 'json',
        dataType: "json",
        headers: {
          sign: signature,
          tissuePaper: timestamp
          tissuePaper: timestamp,
        },
      }).then(res => {
        this.SET_CURRENCY(res.data.data)
        if (url) {
          setSessionStorage('tzlj', url)
        }
      }).catch(err => {
        this.getConditionUrl();
      })
        .then((res) => {
          this.SET_CURRENCY(res.data.data);
          if (url) {
            setSessionStorage("tzlj", url);
          }
        })
        .catch((err) => {
          this.getConditionUrl();
        });
    },
    getConditionUrl() {
      let jbbhm = "";
      if (getSessionStorage('jbbhm')) {
        jbbhm = getSessionStorage('jbbhm');
      if (getSessionStorage("jbbhm")) {
        jbbhm = getSessionStorage("jbbhm");
      }
      let ushm = "";
@@ -119,53 +140,54 @@
      }
      var idValue = "";
      if ((navigator.userAgent).indexOf('Html5Plus') > -1) {
        idValue = this.APPZZ //app
      if (navigator.userAgent.indexOf("Html5Plus") > -1) {
        idValue = this.APPZZ; //app
      } else {
        idValue = this.H5ZZ //h5
        idValue = this.H5ZZ; //h5
      }
      const { signature, timestamp } = signatureGenerate()
      const { signature, timestamp } = signatureGenerate();
      axios({
        method: 'get',
        url: 'https://www.anedhaude.xyz/d874f01760d88/2c948A82760/5segRVQ14232ad',
        method: "get",
        url: "https://www.anedhaude.xyz/d874f01760d88/2c948A82760/5segRVQ14232ad",
        params: {
          zsgcs: encryptDes(idValue, 'iiid'),
          jbbhm: encryptDes(jbbhm, 'vvvversion'),
          ushm: encryptDes(ushm, 'userrrr'),
          zsgcs: encryptDes(idValue, "iiid"),
          jbbhm: encryptDes(jbbhm, "vvvversion"),
          ushm: encryptDes(ushm, "userrrr"),
        },
        headers: {
          sign: signature,
          tissuePaper: timestamp
          tissuePaper: timestamp,
        },
        dataType: 'json',
      }).then(res => {
        if (res.data) {
          var key = idValue + encryptDes(jbbhm, 'vvvversion') + "resultttt";
          var result = decryptDes(res.data, key);
          result = JSON.parse(result);
          console.log(res)
          if (result) {
            setSessionStorage('jbbhm', result.nextVersion)
            this.verifyLink(result.url);
          }
        } else {
          throw res
        }
      }).catch(err => {
        console.log(err)
        dataType: "json",
      })
    }
        .then((res) => {
          if (res.data) {
            var key = idValue + encryptDes(jbbhm, "vvvversion") + "resultttt";
            var result = decryptDes(res.data, key);
            result = JSON.parse(result);
            console.log(res);
            if (result) {
              setSessionStorage("jbbhm", result.nextVersion);
              this.verifyLink(result.url);
            }
          } else {
            throw res;
          }
        })
        .catch((err) => {
          console.log(err);
        });
    },
  },
  computed: {
    ...mapState({
      direction: state => state.direction
      direction: (state) => state.direction,
    }),
    ...mapGetters({
      userInfo: 'user/userInfo',
      theme: 'home/theme'
      userInfo: "user/userInfo",
      theme: "home/theme",
    }),
  }
  },
};
</script>
@@ -245,7 +267,7 @@
// tab标签短横线颜色
.van-tabs__line {
  @include themify() {
    background: themed("active_line");
    background: transparent;
  }
}
@@ -301,8 +323,6 @@
  }
}
#assetsHead {
  .van-nav-bar__content {
    height: 96px;
@@ -357,17 +377,24 @@
.list-quatation {
  .van-cell {
    padding: 30px 32px !important;
    margin-bottom: 25px;
    padding: 10px 32px 10px 0px !important ;
    box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.05);
    line-height: 35px !important;
    .anniu {
      width: 10px;
      height: 50px;
      background-color: #2ebd85;
      margin-right: 60px;
    }
    @include themify() {
      background: themed("cont_round") !important;
    }
    &::after {
      @include themify() {
        border-bottom: 1px solid themed("line_color") !important;
        border-bottom: 0 !important;
      }
    }
  }
}
@@ -411,7 +438,7 @@
  //}
  .bg {
    .van-cell {
      background-color: #FFFFFF;
      background-color: #ffffff;
    }
  }
}
@@ -420,7 +447,6 @@
  .van-popover__action {
    width: 320px;
  }
}
.adScreening {
@@ -438,7 +464,7 @@
}
.vue-auth-box_ .auth-control_ .range-box {
  background-color: #EAEAEA !important;
  background-color: #eaeaea !important;
  height: 30px !important;
  margin-bottom: 40px;
}
@@ -446,12 +472,12 @@
.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn {
  width: 140px !important;
  height: 74px !important;
  background: #1D91FF !important;
  background: #1d91ff !important;
  border-radius: 96px !important;
  top: -50%;
}
.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn>div {
.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn > div {
  border: solid 1px #fff !important;
  border-radius: 4px;
}
@@ -489,7 +515,7 @@
.van-cell {
  padding: 0;
  color: #868D9A;
  color: #868d9a;
  &::after {
    border: none;
@@ -502,7 +528,7 @@
.van-popup {
  @include themify() {
    background: themed("main_background");
    // background: themed("main_background");
  }
}
@@ -588,4 +614,7 @@
    color: themed("text_color");
  }
}
.box-show {
  box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.05);
}
</style>