update sponsor

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
This commit is contained in:
Jianhui Zhao
2025-10-08 21:57:52 +08:00
parent 222e3855ae
commit 83909abd6d
6 changed files with 5 additions and 209 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

+5 -5
View File
@@ -14,7 +14,7 @@
</el-menu>
<el-space>
<el-button plain type="primary" @click="sponsor = true">
<el-button plain type="primary" @click="openSponsor">
<el-icon :size="20" color="red"><HeartIcon/></el-icon>
<span>{{ $t('navbar.sponsor') }}</span>
</el-button>
@@ -67,13 +67,11 @@
</el-space>
</el-footer>
</el-container>
<Sponsor v-model="sponsor"/>
</template>
<script setup>
import { Terminal as TerminalIcon, Github as GithubIcon, Heart as HeartIcon } from '@vicons/fa'
import { useRttyVersionStore } from '@/stores/rtty-version'
import Sponsor from './Sponsor.vue'
import particlesOptions from './particles'
import { watch, ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
@@ -91,10 +89,12 @@ watch(route, newRoute => selectedMenu.value = newRoute.path)
const version = useRttyVersionStore()
const sponsor = ref(false)
const stars = ref('0')
function openSponsor() {
window.open('https://zhaojh329.github.io/zhaojh329/')
}
function openRttyRelease() {
window.open('https://github.com/zhaojh329/rtty/releases')
}
-186
View File
@@ -1,186 +0,0 @@
<template>
<el-dialog v-model="model" :title="$t('sponsor.title')" width="500px">
<el-tabs>
<el-tab-pane v-for="pay in pays" :key="pay.name" :label="pay.name === 'PayPal' ? 'PayPal' : $t('sponsor.' + pay.name)">
<div class="tab-content">
<el-space v-if="pay.name === 'wallet'" direction="vertical">
<p>{{ $t('sponsor.walletnote') }}</p>
<el-select v-model="currentWallet" style="width: 240px" @change="copied = false">
<el-option v-for="w in wallets" :key="w.name" :label="w.name" :value="w.name"/>
</el-select>
<el-input v-model="currentWalletAddress" readonly>
<template #append>
<el-button :icon="copied ? Check : DocumentCopy" @click="copyAddress" />
</template>
</el-input>
<div style="padding: 10px;background-color: white; width: 220px;">
<qrcode-vue :value="currentWalletAddress" size="220" level="H" render-as="svg" />
</div>
</el-space>
<el-space v-else-if="pay.name === 'PayPal'">
<el-icon class="paypal-icon" :size="40" color="#009cde"><PaypalIcon/></el-icon>
<el-link class="paypal-link" href="https://paypal.me/zjh329?country.x=C2&locale.x=zh_XC" target="_blank">https://paypal.me/zjh329</el-link>
</el-space>
<div v-else style="padding-top: 25px;">
<div class="qr-container">
<div class="qr-frame">
<div class="qr-code">
<img :src="pay.img" width="95%"/>
</div>
</div>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
<p>{{ $t('sponsor.acknowledgments') }}</p>
<p>{{ $t('sponsor.contact') }}<el-link href="mailto:zhaojh329@gmail.com">{{ 'zhaojh329@gmail.com' }}</el-link></p>
</el-dialog>
</template>
<script setup>
import { CcPaypal as PaypalIcon } from '@vicons/fa'
import wxpayImg from '@/assets/wxpay.png'
import alipayImg from '@/assets/alipay.png'
import { computed, ref } from 'vue'
import { DocumentCopy, Check } from '@element-plus/icons-vue'
import useClipboard from 'vue-clipboard3'
import QrcodeVue from 'qrcode.vue'
const model = defineModel()
const { toClipboard } = useClipboard()
const pays = [
{
name: 'wxpay',
img: wxpayImg
},
{
name: 'alipay',
img: alipayImg
},
{
name: 'PayPal'
},
{
name: 'wallet'
}
]
const wallets = [
{
name: 'BTC',
address: 'bc1p2kxxj07kmu8u2wjmrsjpcphpz45mtxg024m6u42nk5lyzc5rgxmqztenej'
},
{
name: 'ETH',
address: '0x76aD2bd4C018331549d8851b8C4AfDB6569D0e48'
},
{
name: 'BNB',
address: '0x76aD2bd4C018331549d8851b8C4AfDB6569D0e48'
},
{
name: 'DOGE',
address: '0x76aD2bd4C018331549d8851b8C4AfDB6569D0e48'
},
{
name: 'USTD',
address: '0x76aD2bd4C018331549d8851b8C4AfDB6569D0e48'
}
]
const currentWallet = ref('BTC')
const currentWalletAddress = computed(() => {
const wallet = wallets.find(w => w.name === currentWallet.value)
return wallet ? wallet.address : ''
})
const copied = ref(false)
const copyAddress = () => {
toClipboard(currentWalletAddress.value)
copied.value = true
}
</script>
<style scoped>
.tab-content {
display: flex;
flex-direction: column;
align-items: center;
}
.qr-container {
position: relative;
margin-bottom: 25px;
transition: all 0.4s ease;
}
.qr-container:hover {
transform: translateY(-10px);
}
.qr-frame {
width: 260px;
height: 260px;
background: linear-gradient(45deg, #ff00e5, #00e5ff);
border-radius: 20px;
display: flex;
justify-content: center;
align-items: center;
padding: 10px;
position: relative;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
animation: glow 2s infinite alternate;
}
@keyframes glow {
from {
box-shadow: 0 0 15px rgba(0, 229, 255, 0.6);
}
to {
box-shadow: 0 0 25px rgba(255, 0, 229, 0.8), 0 0 35px rgba(0, 229, 255, 0.6);
}
}
.qr-code {
width: 240px;
height: 240px;
background: white;
border-radius: 15px;
display: flex;
justify-content: center;
align-items: center;
font-size: 8rem;
color: #333;
overflow: hidden;
}
.paypal-icon {
filter: drop-shadow(0 0 10px rgba(0, 156, 222, 0.5));
}
.paypal-link {
font-size: 1.3rem;
color: #00e5ff !important;
font-weight: 600;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 10px;
padding: 10px 25px;
background: rgba(30, 35, 60, 0.5);
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
.paypal-link:hover {
color: #ff00e5 !important;
transform: translateY(-3px);
background: rgba(40, 45, 70, 0.7);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
</style>
-9
View File
@@ -10,15 +10,6 @@
"language": "Language",
"sponsor": "Sponsor"
},
"sponsor": {
"title": "Support RTTY project",
"wxpay": "WeChat Pay",
"alipay": "Alipay",
"wallet": "Wallet",
"walletnote": "Make sure to copy the wallet addresses exactly when making your donation, as we cannot recover funds sent to the wrong wallet.",
"acknowledgments": "Thank you for considering sponsoring the RTTY project! Your support will help me continue to develop and maintain the RTTY project!",
"contact": "If you have any questions, please contact: "
},
"hero": {
"title": "Remote Terminal Access, Simplified",
"subtitle": "Access your devices anywhere, anytime through a web browser",
-9
View File
@@ -10,15 +10,6 @@
"language": "语言",
"sponsor": "赞助"
},
"sponsor": {
"title": "支持 RTTY 项目",
"wxpay": "微信支付",
"alipay": "支付宝",
"wallet": "钱包",
"walletnote": "捐赠时请务必准确复制钱包地址,因为我们无法追回发送到错误钱包的资金。",
"acknowledgments": "感谢您考虑赞助 RTTY 项目!您的支持将帮助我持续开发和维护 RTTY 项目!",
"contact": "如有问题,请联系:"
},
"hero": {
"title": "远程终端访问,从未如此简单",
"subtitle": "随时随地通过浏览器访问您的设备",