SamsaraDao/about.html
2025-04-23 15:00:07 +08:00

405 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="PYXEL || Ultimate Gaming HTML Template">
<title>Samsara DAO</title>
<!-- Favicon -->
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
<!-- All CSS files -->
<link rel="stylesheet" href="static/css/font-awesome.css">
<link rel="stylesheet" href="static/css/bootstrap.min.css">
<link rel="stylesheet" href="static/css/app.css">
<link rel="stylesheet" href="static/js/element-ui-min.css">
<style>
.el-carousel__item{
display: flex;
justify-content: space-around;
}
</style>
</head>
<body class="tt-smooth-scroll">
<!-- Preloader-->
<div id="preloader">
<div class="pyramid-loader">
<div class="wrapper">
<span class="side side1"></span>
<span class="side side2"></span>
<span class="side side3"></span>
<span class="side side4"></span>
<span class="shadow"></span>
</div>
</div>
</div>
<!-- Preloader-->
<!-- Main Wrapper Start -->
<div id="app" v-cloak>
<div id="publickHeader"></div>
<div class="about-page">
<section class="title-banner py-80">
<div class="container-fluid">
<h1 class="fw-500 text-center">{{currentLanguage == 'zh'?'關於我們':'About Us'}}</h1>
</div>
</section>
<!-- ABOUT US SECTION START -->
<section class="about-us-section mb-80">
<div class="container-fluid">
<div class="about-container mb-80">
<div class="row align-items-center" style="height: 400px;">
<div
style="height: 100%;overflow: auto;"
class="col-lg-6"
id="aboutContent"
v-html="currentLanguage == 'zh' ? aboutObj.cn : aboutObj.en"
></div>
<div class="col-lg-6" style="height: 100%;">
<img src="static/ui/about/us.png" alt="">
</div>
</div>
<div class="row align-items-center" style="margin-top: 10vh;height: 400px;">
<div class="col-lg-6">
<el-carousel
height="400px"
arrow="always"
:autoplay="false"
indicator-position="none"
@change="nowTeam($event)"
>
<el-carousel-item v-for="(item,index) in aboutObj.teamlist" :key="item.id">
<img :src="baseUrl + item.img" style="height: 100%;" alt="">
</el-carousel-item>
</el-carousel>
</div>
<div class="col-lg-6" style="height: 100%;overflow: auto;">
<h3 class="fw-500 mb-24">{{ currentLanguage == 'zh' ? nowteaminfos.title_cn : nowteaminfos.title_en}}</h3>
<div v-html="currentLanguage == 'zh' ? nowteaminfos.desc_cn : nowteaminfos.desc_en"></div>
</div>
</div>
</div>
</div>
</section>
<!-- ABOUT US SECTION END -->
<!-- SIGN UP BANNER START -->
<section class="mb-80" style="width: 90%;margin: 0 auto;">
<h4 style="font-weight: 700;margin-bottom: 4vh;">{{currentLanguage == 'zh' ? '合作伙伴':'Cooperative Partner'}}</h4>
<el-carousel
height="30vh"
arrow="always"
:autoplay="true"
indicator-position="none"
>
<el-carousel-item>
<img src="./static/ui/about/t1.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t2.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t3.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t4.png" style="height: 100%;" alt="">
</el-carousel-item>
<el-carousel-item>
<img src="./static/ui/about/t4.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t5.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t6.png" style="height: 100%;" alt="">
<img src="./static/ui/about/t6.png" style="height: 100%;" alt="">
</el-carousel-item>
</el-carousel>
</section>
<!-- team -->
</div>
<div id="publciFooter"></div>
<!-- 钱包选择弹窗 -->
<el-dialog :visible.sync="moneyDialogVisible" width="40%" custom-class="wallet-dialog">
<div class="wallet-container">
<i class="el-icon-close" @click="moneyDialogVisible = false"></i>
<div class="wallet-left">
<h6 style="font-weight: 700;margin-bottom: 4vh;">{{currentLanguage == 'zh' ? '連接錢包' : 'Connect wallet'}}</h6>
<p class="wallet-tip">
{{ currentLanguage == 'zh' ? '首先,連接以下其中一個錢包。 請務必安全地儲存您的私密金鑰或助記詞,永遠不要與任何人分享它們。' : 'Firstly, connect one of the following wallets. Please make sure to securely store your private keys or mnemonics and never share them with anyone.' }}
</p>
<div class="wallet-grid">
<div v-for="(wallet,index) in wallets" :key="index" class="wallet-item"
@click="selectWallet(wallet)">
<img :src="wallet.icon" :alt="wallet.name">
<span>{{ wallet.name }}</span>
</div>
</div>
</div>
<div class="wallet-right" v-if="selectMoney.icon">
<div class="connecting-status">
<img :src="selectMoney.icon" class="tp-logo">
<p class="status-text">{{ currentLanguage == 'zh' ? '正在打開' : 'Opening' }} {{selectMoney.name}}</p>
<p class="confirm-text">
{{ currentLanguage == 'zh' ? '請在' : 'Please in' }}
{{selectMoney.name}}
{{ currentLanguage == 'zh' ? '中確認' : 'Confirm in the middle' }}</p>
</div>
</div>
<div v-else style="display: flex;justify-content: center;align-items: center;width: 50%;">{{ moneyTip(moneyTipMessage) }}</div>
</div>
</el-dialog>
<!-- 钱包地址弹窗 -->
<el-dialog :visible.sync="showMoneyAdress" width="30%" :close-on-click-modal="false">
<div style="color: #000;">
{{ currentLanguage == 'zh' ? '錢包地址:' : 'Wallet address' }}
{{ userMoneyAdressAll }}
<img src="static/image/fuzhi.png" @click="copyText(userMoneyAdressAll)" style="margin-left: 5px;vertical-align: middle;cursor: pointer;">
</div>
</el-dialog>
</div>
<!-- Main Wrapper End -->
<!-- Back To Top Start -->
<button class="scrollToTopBtn"><i class="fa fa-arrow-up"></i></button>
<!-- Mobile Menu Start -->
<div class="mobile-nav__wrapper">
<div class="mobile-nav__overlay mobile-nav__toggler"></div>
<div class="mobile-nav__content">
<span class="mobile-nav__close mobile-nav__toggler"><i class="fa fa-times"></i></span>
<div class="logo-box">
<a href="index.html" aria-label="logo image"><img src="static/picture/logo.png" alt=""></a>
</div>
<div class="mobile-nav__container"></div>
</div>
</div>
<!-- Mobile Menu End -->
<!-- Jquery Js -->
<script src="static/js/bootstrap.min.js"></script>
<script src="static/js/jquery-3.6.3.min.js"></script>
<script src="static/js/publickDOM.js"></script>
<!-- 引入翻譯文件 -->
<script src="static/js/translation.js"></script>
<script src="static/js/i18n.js"></script>
<!-- 獲取用戶信息 -->
<script src="static/js/getIsUser.js"></script>
<!-- 引入 Vue.js -->
<script src="static/js/vue.js" ></script>
<!-- 引入 axios -->
<script src="static/js/axios.min.js"></script>
<!-- 引入 Element UI JS -->
<script src="static/js/element-ui.js"></script>
<script>
// 創建一個增強版的 localStorage
const enhancedStorage = {
setItem: function(key, value) {
localStorage.setItem(key, value);
// 觸發自定義事件
window.dispatchEvent(new CustomEvent('localStorageChange', {
detail: { key, value }
}));
},
getItem: function(key) {
return localStorage.getItem(key);
}
};
// 替換原始的 setItem 方法
const originalSetItem = localStorage.setItem;
localStorage.setItem = function(key, value) {
originalSetItem.call(localStorage, key, value);
window.dispatchEvent(new CustomEvent('localStorageChange', {
detail: { key, value }
}));
};
var $vm = new Vue({
el: "#app",
data() {
return {
// 钱包登录开始
userMoneyAdressAll:"",
showMoneyAdress:false,
hasAdress:false,
moneyTipMessage:"",
selectMoney:{},
wallets: [
{
name: 'MetaMask',
icon: 'static/metamask.png'
},
{
name: 'TokenPocket',
icon: 'static/tokenpocket.png'
},
{
name: 'OKX Wallet',
icon: 'static/okx-wallet.png'
}
],
moneyDialogVisible: false,
userIsLogin: false,
userMoneyAdress: "",
// 钱包登录结尾
currentLanguage: localStorage.getItem('languageNow') || 'en',
aboutObj: {},
baseUrl,
nowteaminfos:{},
}
},
async created(){
const user = window.localStorage.getItem("userInfo")
if (user) {
this.userIsLogin = true;
}
// 钱包登录开始
const provider = window.web3?.currentProvider;
let accounts1 = [];
let accounts2 = [];
let accounts3 = [];
if(provider){
accounts1 = await provider.request({method: 'eth_accounts'});
}
if(window.tokenpocket?.ethereum){
accounts2 = await window.tokenpocket.ethereum.request({method: 'eth_accounts'});
}
if(window.okxwallet || (window.ethereum && window.ethereum?.isOKExWallet)){
accounts3 = await window.okxwallet.request({method: 'eth_accounts'});
}
console.log(accounts1,accounts2,accounts3,'see');
let _adressM = accounts1[0] || accounts2[0] || accounts3[0];
if(_adressM){
this.userMoneyAdressAll = _adressM;
this.userMoneyAdress = _adressM.slice(0,4) + "...." + _adressM.slice(-4);
}
// 钱包登录结尾
},
mounted() {
window.addEventListener('localStorageChange', (event) => {
if (event.detail.key === 'languageNow') {
this.currentLanguage = event.detail.value;
}
});
this.getAbouts();
},
methods: {
// <-- -------------------------钱包登录开始 --------------------------->
copyText(txt){
let message = this.currentLanguage == 'zh' ? '複製成功!' : 'Copy successful!';
navigator.clipboard.writeText(txt)
.then(()=>{
this.$message.success(message)
})
.catch(err=>{
console.log(err,'error');
})
},
allMoney(){
this.showMoneyAdress = true;
},
userMoneyAdressOptions(adress){
if(adress){
return adress
}else{
return this.currentLanguage == 'zh' ? '連接錢包' : 'Connect wallet'
}
},
moneyTip(txt){
if(txt){
return txt
}else{
return this.currentLanguage == 'zh' ? '請選擇連接錢包' : 'Please choose to connect the wallet'
}
},
selectWallet(wallet) {
this.selectMoney = {};
if(wallet.name == 'MetaMask') {
if(window.web3?.currentProvider){
this.selectMoney = wallet;
this.connectWallet(wallet.name);
}else{
this.moneyTipMessage = this.currentLanguage == 'zh' ? 'MetaMask未安裝' : 'MetaMask not installed';
}
}
if (wallet.name == 'TokenPocket') {
if(window.tokenpocket?.ethereum){
this.selectMoney = wallet;
this.connectWallet(wallet.name);
}else{
this.moneyTipMessage = this.currentLanguage == 'zh' ? 'TokenPocket未安裝' : 'TokenPocket not installed';
}
}
if(wallet.name == "OKX Wallet"){
if(window.okxwallet || (window.ethereum && window.ethereum.isOKExWallet)){
this.selectMoney = wallet;
this.connectWallet(wallet.name);
}else{
this.moneyTipMessage = this.currentLanguage == 'zh' ? '欧易钱包未安装' : 'OKX Wallet not installed';
}
}
},
async connectWallet(walletType){
let account = "";
try {
if (walletType == 'MetaMask') {
const provider = window.web3.currentProvider;
const accounts = await provider.request({
method: 'eth_requestAccounts'
});
account = accounts[0];
}
if (walletType == 'TokenPocket') {
const tpAccounts = await window.tokenpocket.ethereum.request({
method: 'eth_requestAccounts'
});
account = tpAccounts[0];
}
if (walletType == 'OKX Wallet') {
const okxAccounts = await window.okxwallet.request({
method: 'eth_requestAccounts'
});
account = okxAccounts[0];
}
console.log(account,'xxaa');
let _adressM = account;
this.userMoneyAdressAll = account;
this.userMoneyAdress = _adressM.slice(0,4) + "...." + _adressM.slice(-4);
this.moneyDialogVisible = false;
} catch (error) {
console.log(error);
}
},
toConnectWallet() {
if(this.userMoneyAdress){
if(this.isShowSale){
return
}
this.hasAdress = !this.hasAdress;
return
};
this.moneyDialogVisible = true;
},
//<-- -------------------------钱包登录结尾 --------------------------->
mobileLang(){
this.currentLanguage = mobileLang()
},
nowTeam(index){
this.nowteaminfos = this.aboutObj.teamlist[index];
},
async getAbouts(){
let res = await axios.get(baseUrl+'api/index/about');
if (res.data.code === 1) {
this.aboutObj = res.data.data;
this.nowteaminfos = this.aboutObj.teamlist[0];
}
}
}
})
</script>
<script src="static/js/app.js"></script>
</body>
</html>