Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
This commit is contained in:
TIANHE
2026-01-05 05:16:30 +08:00
parent ce063e53b5
commit 3a74257b29
11 changed files with 93 additions and 13 deletions
@@ -814,6 +814,9 @@ const locale = {
'community.message.unfavoriteSuccess': 'تم إلغاء التجميع بنجاح', 'community.message.unfavoriteSuccess': 'تم إلغاء التجميع بنجاح',
'community.message.operationSuccess': 'العملية ناجحة', 'community.message.operationSuccess': 'العملية ناجحة',
'community.message.operationFailed': 'فشلت العملية', 'community.message.operationFailed': 'فشلت العملية',
'community.banner.readOnly': 'للقراءة فقط',
'community.banner.loginHint': 'لل تسجيل الدخول أو التسجيل، يرجى النقر على الزر للانتقال إلى صفحة مستقلة لتجنب مشاكل CSRF',
'community.banner.jumpButton': 'الانتقال إلى تسجيل الدخول/التسجيل',
'dashboard.totalEquity': 'إجمالي حقوق الملكية', 'dashboard.totalEquity': 'إجمالي حقوق الملكية',
'dashboard.totalPnL': 'إجمالي الربح والخسارة', 'dashboard.totalPnL': 'إجمالي الربح والخسارة',
'dashboard.aiStrategies': 'استراتيجية الذكاء الاصطناعي', 'dashboard.aiStrategies': 'استراتيجية الذكاء الاصطناعي',
@@ -815,6 +815,9 @@ const locale = {
'community.message.unfavoriteSuccess': 'Abholung erfolgreich abbrechen', 'community.message.unfavoriteSuccess': 'Abholung erfolgreich abbrechen',
'community.message.operationSuccess': 'Operation erfolgreich', 'community.message.operationSuccess': 'Operation erfolgreich',
'community.message.operationFailed': 'Der Vorgang ist fehlgeschlagen', 'community.message.operationFailed': 'Der Vorgang ist fehlgeschlagen',
'community.banner.readOnly': 'Nur lesen',
'community.banner.loginHint': 'Für Login oder Registrierung bitte auf die Schaltfläche klicken, um zu einer unabhängigen Seite zu wechseln und CSRF-Probleme zu vermeiden',
'community.banner.jumpButton': 'Zur Anmeldung/Registrierung',
'dashboard.totalEquity': 'Gesamteigenkapital', 'dashboard.totalEquity': 'Gesamteigenkapital',
'dashboard.totalPnL': 'Gesamtgewinn und -verlust', 'dashboard.totalPnL': 'Gesamtgewinn und -verlust',
'dashboard.aiStrategies': 'KI-Strategie', 'dashboard.aiStrategies': 'KI-Strategie',
@@ -930,6 +930,9 @@ const locale = {
'community.message.unfavoriteSuccess': 'Unfavorited successfully', 'community.message.unfavoriteSuccess': 'Unfavorited successfully',
'community.message.operationSuccess': 'Operation successful', 'community.message.operationSuccess': 'Operation successful',
'community.message.operationFailed': 'Operation failed', 'community.message.operationFailed': 'Operation failed',
'community.banner.readOnly': 'Read Only',
'community.banner.loginHint': 'For login or registration, please click the button to jump to an independent page to avoid CSRF issues',
'community.banner.jumpButton': 'Go to Login/Register',
'dashboard.totalEquity': 'Total Equity', 'dashboard.totalEquity': 'Total Equity',
'dashboard.totalPnL': 'Total P&L', 'dashboard.totalPnL': 'Total P&L',
'dashboard.aiStrategies': 'AI Strategies', 'dashboard.aiStrategies': 'AI Strategies',
@@ -815,6 +815,9 @@ const locale = {
'community.message.unfavoriteSuccess': 'Annuler la collecte avec succès', 'community.message.unfavoriteSuccess': 'Annuler la collecte avec succès',
'community.message.operationSuccess': 'Opération réussie', 'community.message.operationSuccess': 'Opération réussie',
'community.message.operationFailed': "L'opération a échoué", 'community.message.operationFailed': "L'opération a échoué",
'community.banner.readOnly': 'Lecture seule',
'community.banner.loginHint': 'Pour vous connecter ou vous inscrire, veuillez cliquer sur le bouton pour accéder à une page indépendante afin d\'éviter les problèmes CSRF',
'community.banner.jumpButton': 'Aller à Connexion/Inscription',
'dashboard.totalEquity': 'capitaux propres totaux', 'dashboard.totalEquity': 'capitaux propres totaux',
'dashboard.totalPnL': 'Total des profits et pertes', 'dashboard.totalPnL': 'Total des profits et pertes',
'dashboard.aiStrategies': "Stratégie d'IA", 'dashboard.aiStrategies': "Stratégie d'IA",
@@ -815,6 +815,9 @@ const locale = {
'community.message.unfavoriteSuccess': '収集を正常にキャンセルしました', 'community.message.unfavoriteSuccess': '収集を正常にキャンセルしました',
'community.message.operationSuccess': '操作は成功しました', 'community.message.operationSuccess': '操作は成功しました',
'community.message.operationFailed': '操作が失敗しました', 'community.message.operationFailed': '操作が失敗しました',
'community.banner.readOnly': '閲覧のみ',
'community.banner.loginHint': 'ログインまたは登録が必要な場合は、ボタンをクリックして独立したページに移動し、CSRFの問題を回避してください',
'community.banner.jumpButton': 'ログイン/登録へ',
'dashboard.totalEquity': '総資本', 'dashboard.totalEquity': '総資本',
'dashboard.totalPnL': '損益通算', 'dashboard.totalPnL': '損益通算',
'dashboard.aiStrategies': 'AI戦略', 'dashboard.aiStrategies': 'AI戦略',
@@ -815,6 +815,9 @@ const locale = {
'community.message.unfavoriteSuccess': '수집을 취소했습니다.', 'community.message.unfavoriteSuccess': '수집을 취소했습니다.',
'community.message.operationSuccess': '작업 성공', 'community.message.operationSuccess': '작업 성공',
'community.message.operationFailed': '작업 실패', 'community.message.operationFailed': '작업 실패',
'community.banner.readOnly': '읽기 전용',
'community.banner.loginHint': '로그인 또는 등록이 필요한 경우 버튼을 클릭하여 독립 페이지로 이동하여 CSRF 문제를 방지하세요',
'community.banner.jumpButton': '로그인/등록으로 이동',
'dashboard.totalEquity': '총자본', 'dashboard.totalEquity': '총자본',
'dashboard.totalPnL': '총손익', 'dashboard.totalPnL': '총손익',
'dashboard.aiStrategies': 'AI 전략', 'dashboard.aiStrategies': 'AI 전략',
@@ -816,6 +816,9 @@ const locale = {
'community.message.unfavoriteSuccess': 'ยกเลิกการรวบรวมเรียบร้อยแล้ว', 'community.message.unfavoriteSuccess': 'ยกเลิกการรวบรวมเรียบร้อยแล้ว',
'community.message.operationSuccess': 'การดำเนินงานประสบความสำเร็จ', 'community.message.operationSuccess': 'การดำเนินงานประสบความสำเร็จ',
'community.message.operationFailed': 'การดำเนินการล้มเหลว', 'community.message.operationFailed': 'การดำเนินการล้มเหลว',
'community.banner.readOnly': 'อ่านอย่างเดียว',
'community.banner.loginHint': 'สำหรับการเข้าสู่ระบบหรือการลงทะเบียน กรุณาคลิกปุ่มเพื่อไปยังหน้าอิสระเพื่อหลีกเลี่ยงปัญหา CSRF',
'community.banner.jumpButton': 'ไปที่เข้าสู่ระบบ/ลงทะเบียน',
'dashboard.totalEquity': 'ส่วนของผู้ถือหุ้นทั้งหมด', 'dashboard.totalEquity': 'ส่วนของผู้ถือหุ้นทั้งหมด',
'dashboard.totalPnL': 'กำไรและขาดทุนทั้งหมด', 'dashboard.totalPnL': 'กำไรและขาดทุนทั้งหมด',
'dashboard.aiStrategies': 'กลยุทธ์เอไอ', 'dashboard.aiStrategies': 'กลยุทธ์เอไอ',
@@ -1567,6 +1567,9 @@ const locale = {
'community.message.operationSuccess': 'Thao tác thành công', 'community.message.operationSuccess': 'Thao tác thành công',
'community.message.operationFailed': 'Thao tác thất bại thất bại', 'community.message.operationFailed': 'Thao tác thất bại thất bại',
'community.banner.readOnly': 'Chỉ xem',
'community.banner.loginHint': 'Để đăng nhập hoặc đăng ký, vui lòng nhấp vào nút để chuyển đến trang độc lập nhằm tránh các vấn đề CSRF',
'community.banner.jumpButton': 'Đi đến Đăng nhập/Đăng ký',
'dashboard.totalEquity': 'Tổng vốn chủ sở hữu', 'dashboard.totalEquity': 'Tổng vốn chủ sở hữu',
@@ -839,6 +839,9 @@ const locale = {
'community.message.unfavoriteSuccess': '取消收藏成功', 'community.message.unfavoriteSuccess': '取消收藏成功',
'community.message.operationSuccess': '操作成功', 'community.message.operationSuccess': '操作成功',
'community.message.operationFailed': '操作失败', 'community.message.operationFailed': '操作失败',
'community.banner.readOnly': '仅供浏览',
'community.banner.loginHint': '如需登录注册请点击按钮跳转到独立页面,从而避免CSRF问题',
'community.banner.jumpButton': '跳转到登录/注册',
'dashboard.totalEquity': '总权益', 'dashboard.totalEquity': '总权益',
'dashboard.totalPnL': '总盈亏', 'dashboard.totalPnL': '总盈亏',
'dashboard.aiStrategies': 'AI 策略', 'dashboard.aiStrategies': 'AI 策略',
@@ -839,6 +839,9 @@ const locale = {
'community.message.unfavoriteSuccess': '取消收藏成功', 'community.message.unfavoriteSuccess': '取消收藏成功',
'community.message.operationSuccess': '操作成功', 'community.message.operationSuccess': '操作成功',
'community.message.operationFailed': '操作失敗', 'community.message.operationFailed': '操作失敗',
'community.banner.readOnly': '僅供瀏覽',
'community.banner.loginHint': '如需登錄註冊請點擊按鈕跳轉到獨立頁面,從而避免CSRF問題',
'community.banner.jumpButton': '跳轉到登錄/註冊',
'dashboard.totalEquity': '總權益', 'dashboard.totalEquity': '總權益',
'dashboard.totalPnL': '總盈虧', 'dashboard.totalPnL': '總盈虧',
'dashboard.aiStrategies': 'AI 策略', 'dashboard.aiStrategies': 'AI 策略',
@@ -1,13 +1,22 @@
<template> <template>
<div class="indicator-community-iframe"> <div class="indicator-community-container">
<iframe <div class="community-banner">
class="community-iframe" <a-icon type="info-circle" />
:src="url" <span class="banner-text">{{ $t('community.banner.loginHint') }}</span>
title="Indicator Community" <a-button type="link" size="small" @click="jumpToLogin" class="jump-button">
frameborder="0" {{ $t('community.banner.jumpButton') }}
referrerpolicy="no-referrer-when-downgrade" </a-button>
allow="clipboard-read; clipboard-write; fullscreen" </div>
/> <div class="indicator-community-iframe">
<iframe
class="community-iframe"
:src="url"
title="Indicator Community"
frameborder="0"
referrerpolicy="no-referrer-when-downgrade"
allow="clipboard-read; clipboard-write; fullscreen"
/>
</div>
</div> </div>
</template> </template>
@@ -18,17 +27,58 @@ export default {
return { return {
url: 'https://www.quantdinger.com/' url: 'https://www.quantdinger.com/'
} }
},
methods: {
jumpToLogin () {
// CSRF
window.open('https://www.quantdinger.com/', '_blank')
}
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.indicator-community-container {
display: flex;
flex-direction: column;
height: calc(100vh - 120px);
}
.community-banner {
display: flex;
align-items: center;
padding: 12px 12px;
background: #e6f7ff;
border: 1px solid #91d5ff;
border-radius: 0;
margin: 0;
flex-shrink: 0;
font-size: 14px;
color: #1890ff;
.anticon {
margin-right: 8px;
font-size: 16px;
}
.banner-text {
flex: 1;
}
.jump-button {
padding: 0;
height: auto;
margin-left: 8px;
}
}
.indicator-community-iframe { .indicator-community-iframe {
position: relative; position: relative;
left: -24px; // left: -24px;
top: -24px; width: calc(100%);
width: calc(100% + 48px); flex: 1;
height: calc(100vh - 120px + 48px); min-height: 0;
overflow: hidden;
} }
.community-iframe { .community-iframe {