123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- <template>
- <view class="center">
- <view class="box-top">
- <view class="bg3" @click="test()"><image src="../../static/index/img14.png" mode=""></image></view>
- <view class="bg3 two" @click="foxlogin"><image src="../../static/index/img08.png" mode=""></image></view>
- </view>
- <u-popup v-model="show" mode="left" width="565rpx" border-radius="14">
- <view class="popup">
- <view class="title">
- <view class="title-img"><image src="../../static/img/logo.png" mode=""></image></view>
- <view class="text">恒星币</view>
- </view>
- <view class="hx"></view>
- <view class="box-left" v-for="(item, index) in cdList" @click="navTo(item.url)">
- <view class="box-box">
- <view class="box-img"><image :src="item.image" mode=""></image></view>
- <view class="box-title">{{ item.title }}</view>
- <view class="box-right"><image :src="item.right" mode=""></image></view>
- </view>
- <view class="hx1"></view>
- </view>
- </view>
- </u-popup>
- </view>
- </template>
- <script>
- import uniPopup from '@/components/uni-popup/uni-popup.vue';
- import MetaMaskOnboarding from '@metamask/onboarding';
- import { mapState, mapMutations } from 'vuex';
- import { logins, userinfo, logout } from '@/api/login.js';
- export default {
- computed: {
- ...mapState('user', ['address', 'hasLogin', 'userInfo'])
- },
- data() {
- return {
- show: false,
- cdList: [
- {
- image: '../../static/img/cd1.png',
- title: '首页 ',
- right: '../../static/img/right.png',
- url: '/pages/index/index'
- },
- {
- image: '../../static/img/cd2.png',
- title: '恒星私募',
- right: '../../static/img/right.png',
- url: '/pages/private/private'
- },
- {
- image: '../../static/img/cd5.png',
- title: 'DIFI挖矿',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd4.png',
- title: '我的推荐',
- right: '../../static/img/right.png',
- url: '/pages/index/share'
- },
- {
- image: '../../static/img/cd3.png',
- title: '超级节点',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd6.png',
- title: '游戏版块',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd7.png',
- title: '好友加速明细',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd8.png',
- title: '算力奖励明细',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd9.png',
- title: '社群奖励明细',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- },
- {
- image: '../../static/img/cd10.png',
- title: '公会奖励明细',
- right: '../../static/img/right.png',
- url: '/pages/index/Expect'
- }
- ]
- };
- },
- methods: {
- ...mapMutations('user', ['setAddress', 'setUserInfo', 'login']),
- navTo(url) {
- uni.navigateTo({
- url
- });
- },
- test() {
- this.show = true;
- console.log(this.show);
- },
- foxlogin() {
- const isMetaMaskInstalled = this.isMetaMaskInstalled();
- if (!isMetaMaskInstalled) {
- const forwarderOrigin = 'http://flow.frp.liuniu946.com/index/#/';
- const onboarding = new MetaMaskOnboarding({ forwarderOrigin });
- onboarding.startOnboarding();
- } else {
- try {
- ethereum.request({ method: 'eth_requestAccounts' });
- this.getaccount();
- } catch (error) {
- console.log(error, '1234556');
- }
- }
- },
- async getaccount() {
- const obj = this;
- const accounts = await ethereum.request({ method: 'eth_accounts' });
- if (accounts[0] == undefined) {
- this.foxlogin();
- } else {
- console.log(accounts[0],"123456");
- this.setAddress(accounts[0]);
- this.changeAddress();
- logins({ address: obj.address }).then(({ data }) => {
- obj.login();
- uni.setStorageSync('token', data.userinfo.token);
- userinfo().then(({ data }) => {
- console.log(data);
- obj.setUserInfo(data.data);
- });
- });
- }
- },
- async changeAddress() {
- try {
- await ethereum.request({
- method: 'wallet_switchEthereumChain',
- params: [{ chainId: '0x38' }]
- });
- } catch (switchError) {
- console.log(switchError, 'erro');
-
- if (switchError.code === 4902) {
- try {
- await ethereum.request({
- method: 'wallet_addEthereumChain',
- params: [
- {
- chainId: '0x38',
- chainName: 'BSC主网络',
- rpcUrls: ['https://bsc-dataseed1.binance.org/'] ,
- blockExplorerUrls: ['https://bscscan.com/'],
- nativeCurrency: {
- name: 'BNB',
- symbol: 'BNB',
- decimals: 18
- }
- }
- ]
- });
- } catch (addError) {}
- }
- }
- },
- isMetaMaskInstalled() {
- const { ethereum } = window;
- return Boolean(ethereum && ethereum.isMetaMask);
- },
- }
- };
- </script>
- <style lang="less">
- .box-top {
- display: flex;
- padding: 36rpx 41rpx 72rpx 41rpx;
- }
- image {
- width: 100%;
- height: 100%;
- }
- .bg3 {
- width: 56rpx;
- height: 62rpx;
- }
- .two {
- margin-left: 36rpx;
- }
- .popup {
- display: flex;
- flex-direction: column;
- background: linear-gradient(180deg, #00143b 0%, #000309 100%);
- height: 100%;
- .box-left {
- width: 530rpx;
- display: flex;
- flex-direction: column;
- .box-box {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: flex-start;
- margin-left: 30rpx;
- }
- .box-img {
- z-index: 999;
- width: 35rpx;
- height: 35rpx;
- }
- .box-title {
- margin-left: 20rpx;
- font-size: 30rpx;
- font-family: PingFang SC;
- // font-weight: bold;
- color: #ffffff;
- line-height: 78rpx;
- }
- .box-right {
- position: absolute;
- right: 0;
- z-index: 999;
- width: 17rpx;
- height: 32rpx;
- }
- }
- .title {
- margin: 40rpx 190rpx;
- display: flex;
- flex-direction: column;
- align-items: center;
- .title-img {
- width: 186rpx;
- height: 193rpx;
- }
- .text {
- display: flex;
- font-size: 41rpx;
- font-family: zihun100hao-fangfangxianfengti;
- font-weight: 400;
- color: #ffffff;
- line-height: 38rpx;
- }
- }
- .hx {
- width: 565rpx;
- height: 12rpx;
- background: #ffffff;
- opacity: 0.23;
- }
- .hx1 {
- width: 565rpx;
- height: 2rpx;
- background: #ffffff;
- opacity: 0.1;
- }
- }
- </style>
|