wesmiler 2 years ago
parent
commit
9dda781917
84 changed files with 8794 additions and 4729 deletions
  1. 0 1
      TronenergyWeb/dist/assets/Brokerage-4134dbc0.js
  2. 1 0
      TronenergyWeb/dist/assets/Brokerage-71c10783.css
  3. 1 0
      TronenergyWeb/dist/assets/Brokerage-71ed3131.js
  4. 0 1
      TronenergyWeb/dist/assets/Brokerage-cbcf62d1.css
  5. 0 1
      TronenergyWeb/dist/assets/ChangeLanguage-078bf845.js
  6. 1 0
      TronenergyWeb/dist/assets/ChangeLanguage-12747d58.js
  7. 0 1
      TronenergyWeb/dist/assets/ChangeLanguage-4a08c636.css
  8. 1 0
      TronenergyWeb/dist/assets/ChangeLanguage-6cf759bc.css
  9. 4 4
      TronenergyWeb/dist/assets/DES-624adaae.js
  10. 18 0
      TronenergyWeb/dist/assets/EnergyView-50149358.js
  11. 0 15
      TronenergyWeb/dist/assets/EnergyView-be596d42.js
  12. 1 1
      TronenergyWeb/dist/assets/EnergyView-56fe769d.css
  13. 0 6
      TronenergyWeb/dist/assets/ExchangeView-a9860b0d.js
  14. 1 1
      TronenergyWeb/dist/assets/ExchangeView-de8afbe0.css
  15. 6 0
      TronenergyWeb/dist/assets/ExchangeView-ebcd52ba.js
  16. 1 1
      TronenergyWeb/dist/assets/FootView-f59ae6aa.css
  17. 0 1
      TronenergyWeb/dist/assets/FootView-86239e81.js
  18. 1 0
      TronenergyWeb/dist/assets/FootView-8dd2557a.js
  19. 15 0
      TronenergyWeb/dist/assets/GroupView-2ab509e9.js
  20. 0 1
      TronenergyWeb/dist/assets/GroupView-79a6fe65.js
  21. 1 0
      TronenergyWeb/dist/assets/GroupView-948ad5fc.css
  22. 0 1
      TronenergyWeb/dist/assets/GroupView-9893f8a8.css
  23. 1 0
      TronenergyWeb/dist/assets/Help-55e83b67.js
  24. 0 1
      TronenergyWeb/dist/assets/Help-857f6097.css
  25. 0 1
      TronenergyWeb/dist/assets/Help-9eb25f52.js
  26. 1 0
      TronenergyWeb/dist/assets/Help-f635d242.css
  27. 0 1
      TronenergyWeb/dist/assets/Machine-01aab959.css
  28. 7 0
      TronenergyWeb/dist/assets/Machine-2ef36df4.js
  29. 1 0
      TronenergyWeb/dist/assets/Machine-2fa33e32.css
  30. 0 7
      TronenergyWeb/dist/assets/Machine-6a5ade8b.js
  31. 0 4
      TronenergyWeb/dist/assets/MachineRecord-29798717.js
  32. 0 1
      TronenergyWeb/dist/assets/MachineRecord-37ad26f3.css
  33. 1 0
      TronenergyWeb/dist/assets/MachineRecord-499d538d.css
  34. 4 0
      TronenergyWeb/dist/assets/MachineRecord-5bbb95a9.js
  35. 1 0
      TronenergyWeb/dist/assets/Message-208a5336.css
  36. 0 1
      TronenergyWeb/dist/assets/Message-5b5d677b.css
  37. 0 1
      TronenergyWeb/dist/assets/Message-9d888d54.js
  38. 1 0
      TronenergyWeb/dist/assets/Message-e88c2c45.js
  39. 1 0
      TronenergyWeb/dist/assets/Recharge-0678a40f.css
  40. 0 1
      TronenergyWeb/dist/assets/Recharge-1547ef93.js
  41. 0 1
      TronenergyWeb/dist/assets/Recharge-76dfde9d.css
  42. 1 0
      TronenergyWeb/dist/assets/Recharge-dbf160cf.js
  43. 1 1
      TronenergyWeb/dist/assets/Recommend-8a23c33c.css
  44. 0 1
      TronenergyWeb/dist/assets/Recommend-7e253d67.js
  45. 1 0
      TronenergyWeb/dist/assets/Recommend-a957d844.js
  46. 1 0
      TronenergyWeb/dist/assets/SwapView-0a50eb8d.css
  47. 0 1
      TronenergyWeb/dist/assets/SwapView-94b6d090.css
  48. 1 0
      TronenergyWeb/dist/assets/SwapView-bf76d4bd.js
  49. 0 1
      TronenergyWeb/dist/assets/SwapView-f575d5be.js
  50. 0 1
      TronenergyWeb/dist/assets/UserView-3643d824.js
  51. 0 1
      TronenergyWeb/dist/assets/UserView-7915d324.css
  52. 13 0
      TronenergyWeb/dist/assets/UserView-b7e288cd.js
  53. 1 0
      TronenergyWeb/dist/assets/UserView-bf60b837.css
  54. 0 1
      TronenergyWeb/dist/assets/Withdraw-603979f7.css
  55. 1 0
      TronenergyWeb/dist/assets/Withdraw-955e8373.css
  56. 1 0
      TronenergyWeb/dist/assets/Withdraw-aca12f78.js
  57. 0 1
      TronenergyWeb/dist/assets/Withdraw-f7276abe.js
  58. BIN
      TronenergyWeb/dist/assets/bonus-4e637b7e.png
  59. 0 1
      TronenergyWeb/dist/assets/index-22f85548.js
  60. 1 1
      TronenergyWeb/dist/assets/index-703df7f8.css
  61. 1 0
      TronenergyWeb/dist/assets/index-936b52e1.js
  62. 0 147
      TronenergyWeb/dist/assets/index-b9d888dc.js
  63. 0 1
      TronenergyWeb/dist/assets/index-c352f296.css
  64. 174 0
      TronenergyWeb/dist/assets/index-e1806e32.js
  65. 1 0
      TronenergyWeb/dist/assets/index-e2c1c7e7.css
  66. 1 1
      TronenergyWeb/dist/assets/vue-qr-8520530d.js
  67. BIN
      TronenergyWeb/dist/image/bonus.png
  68. 17 16
      TronenergyWeb/dist/index.html
  69. 1914 0
      TronenergyWeb/dist/static/js/telegram-web-app.js
  70. 15 14
      TronenergyWeb/index.html
  71. BIN
      TronenergyWeb/public/image/bonus.png
  72. 1914 0
      TronenergyWeb/public/static/js/telegram-web-app.js
  73. 108 103
      TronenergyWeb/src/App.vue
  74. 130 126
      TronenergyWeb/src/components/footer/FootView.vue
  75. 3 1
      TronenergyWeb/src/lang/cn.ts
  76. 184 168
      TronenergyWeb/src/lang/en.ts
  77. 100 94
      TronenergyWeb/src/views/EnergyView.vue
  78. 487 488
      TronenergyWeb/src/views/HomeView.vue
  79. 144 140
      TronenergyWeb/src/views/Withdraw.vue
  80. 888 866
      TronenergyWeb/src/views/energy/EnergyView.vue
  81. 1003 1002
      TronenergyWeb/src/views/exchange/ExchangeView.vue
  82. 504 500
      TronenergyWeb/src/views/machine/Machine.vue
  83. 893 782
      TronenergyWeb/src/views/user/center/UserView.vue
  84. 221 216
      TronenergyWeb/src/views/user/message/Message.vue

File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Brokerage-4134dbc0.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Brokerage-71c10783.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Brokerage-71ed3131.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Brokerage-cbcf62d1.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/ChangeLanguage-078bf845.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/ChangeLanguage-12747d58.js


+ 0 - 1
TronenergyWeb/dist/assets/ChangeLanguage-4a08c636.css

@@ -1 +0,0 @@
-.lang-icon[data-v-24d16a21]{cursor:pointer}

+ 1 - 0
TronenergyWeb/dist/assets/ChangeLanguage-6cf759bc.css

@@ -0,0 +1 @@
+.lang-icon[data-v-2bbc90b1]{cursor:pointer}

File diff suppressed because it is too large
+ 4 - 4
TronenergyWeb/dist/assets/DES-624adaae.js


File diff suppressed because it is too large
+ 18 - 0
TronenergyWeb/dist/assets/EnergyView-50149358.js


File diff suppressed because it is too large
+ 0 - 15
TronenergyWeb/dist/assets/EnergyView-be596d42.js


File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/EnergyView-56fe769d.css


File diff suppressed because it is too large
+ 0 - 6
TronenergyWeb/dist/assets/ExchangeView-a9860b0d.js


File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/ExchangeView-de8afbe0.css


File diff suppressed because it is too large
+ 6 - 0
TronenergyWeb/dist/assets/ExchangeView-ebcd52ba.js


File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/FootView-f59ae6aa.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/FootView-86239e81.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/FootView-8dd2557a.js


File diff suppressed because it is too large
+ 15 - 0
TronenergyWeb/dist/assets/GroupView-2ab509e9.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/GroupView-79a6fe65.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/GroupView-948ad5fc.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/GroupView-9893f8a8.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Help-55e83b67.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Help-857f6097.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Help-9eb25f52.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Help-f635d242.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Machine-01aab959.css


File diff suppressed because it is too large
+ 7 - 0
TronenergyWeb/dist/assets/Machine-2ef36df4.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Machine-2fa33e32.css


File diff suppressed because it is too large
+ 0 - 7
TronenergyWeb/dist/assets/Machine-6a5ade8b.js


File diff suppressed because it is too large
+ 0 - 4
TronenergyWeb/dist/assets/MachineRecord-29798717.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/MachineRecord-37ad26f3.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/MachineRecord-499d538d.css


File diff suppressed because it is too large
+ 4 - 0
TronenergyWeb/dist/assets/MachineRecord-5bbb95a9.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Message-208a5336.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Message-5b5d677b.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Message-9d888d54.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Message-e88c2c45.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Recharge-0678a40f.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Recharge-1547ef93.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Recharge-76dfde9d.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Recharge-dbf160cf.js


File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/Recommend-8a23c33c.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Recommend-7e253d67.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Recommend-a957d844.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/SwapView-0a50eb8d.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/SwapView-94b6d090.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/SwapView-bf76d4bd.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/SwapView-f575d5be.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/UserView-3643d824.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/UserView-7915d324.css


File diff suppressed because it is too large
+ 13 - 0
TronenergyWeb/dist/assets/UserView-b7e288cd.js


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/UserView-bf60b837.css


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Withdraw-603979f7.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Withdraw-955e8373.css


File diff suppressed because it is too large
+ 1 - 0
TronenergyWeb/dist/assets/Withdraw-aca12f78.js


File diff suppressed because it is too large
+ 0 - 1
TronenergyWeb/dist/assets/Withdraw-f7276abe.js


BIN
TronenergyWeb/dist/assets/bonus-4e637b7e.png


+ 0 - 1
TronenergyWeb/dist/assets/index-22f85548.js

@@ -1 +0,0 @@
-import{F as t}from"./FootView-86239e81.js";import{d as s,r as _,c as n,a,b as e,F as r,o as c,_ as d}from"./index-b9d888dc.js";const p={class:"home"},i=s({__name:"index",setup(m){return(l,u)=>{const o=_("router-view");return c(),n(r,null,[a("div",p,[e(o)]),e(t)],64)}}});const f=d(i,[["__scopeId","data-v-94755586"]]);export{f as default};

File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/index-703df7f8.css


+ 1 - 0
TronenergyWeb/dist/assets/index-936b52e1.js

@@ -0,0 +1 @@
+import{d as s,r as t,c as _,a as n,b as e,F as a,o as r,_ as c}from"./index-e1806e32.js";import{F as p}from"./FootView-8dd2557a.js";const d={class:"home"},i=s({__name:"index",setup(l){return(m,u)=>{const o=t("router-view");return r(),_(a,null,[n("div",d,[e(o)]),e(p)],64)}}});const x=c(i,[["__scopeId","data-v-0f4e4cc3"],["__file","/usr/local/develop/php/www/waibao/NN2023091101/PY2023092801/TronenergyWeb/src/views/user/index.vue"]]);export{x as default};

File diff suppressed because it is too large
+ 0 - 147
TronenergyWeb/dist/assets/index-b9d888dc.js


+ 0 - 1
TronenergyWeb/dist/assets/index-c352f296.css

@@ -1 +0,0 @@
-.home[data-v-94755586]{padding-bottom:48px}

File diff suppressed because it is too large
+ 174 - 0
TronenergyWeb/dist/assets/index-e1806e32.js


+ 1 - 0
TronenergyWeb/dist/assets/index-e2c1c7e7.css

@@ -0,0 +1 @@
+.home[data-v-0f4e4cc3]{padding-bottom:48px}

File diff suppressed because it is too large
+ 1 - 1
TronenergyWeb/dist/assets/vue-qr-8520530d.js


BIN
TronenergyWeb/dist/image/bonus.png


+ 17 - 16
TronenergyWeb/dist/index.html

@@ -1,16 +1,17 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8">
-    <link rel="icon" href="/favicon.ico">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <script src="https://telegram.org/js/telegram-web-app.js"></script>
-    <title>Tronenergy</title>
-    <script type="module" crossorigin src="/assets/index-b9d888dc.js"></script>
-    <link rel="stylesheet" href="/assets/index-703df7f8.css">
-  </head>
-  <body>
-    <div id="app"></div>
-    
-  </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8">
+		<link rel="icon" href="/favicon.ico">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
+		<!-- <script src="https://telegram.org/js/telegram-web-app.js"></script> -->
+		<script src="/public/static/js/telegram-web-app.js"></script>
+		<title>Tronenergy</title>
+		<script type="module" crossorigin src="/assets/index-e1806e32.js"></script>
+		<link rel="stylesheet" href="/assets/index-2c56cb9a.css">
+	</head>
+	<body>
+		<div id="app"></div>
+		
+	</body>
+</html>

File diff suppressed because it is too large
+ 1914 - 0
TronenergyWeb/dist/static/js/telegram-web-app.js


+ 15 - 14
TronenergyWeb/index.html

@@ -1,14 +1,15 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8">
-    <link rel="icon" href="/favicon.ico">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <script src="https://telegram.org/js/telegram-web-app.js"></script>
-    <title>Tronenergy</title>
-  </head>
-  <body>
-    <div id="app"></div>
-    <script type="module" src="/src/main.ts"></script>
-  </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8">
+		<link rel="icon" href="/favicon.ico">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
+		<!-- <script src="https://telegram.org/js/telegram-web-app.js"></script> -->
+		<script src="/public/static/js/telegram-web-app.js"></script>
+		<title>Tronenergy</title>
+	</head>
+	<body>
+		<div id="app"></div>
+		<script type="module" src="/src/main.ts"></script>
+	</body>
+</html>

BIN
TronenergyWeb/public/image/bonus.png


File diff suppressed because it is too large
+ 1914 - 0
TronenergyWeb/public/static/js/telegram-web-app.js


+ 108 - 103
TronenergyWeb/src/App.vue

@@ -1,103 +1,108 @@
-<template>
-  <a-config-provider :locale="locale">
-    <RouterView />
-  </a-config-provider>
-</template>
-
-<script setup lang="ts">
-import { RouterView } from 'vue-router';
-import zhCN from 'ant-design-vue/es/locale/zh_CN';
-import dayjs from 'dayjs';
-import 'dayjs/locale/zh-cn';
-import { ref } from 'vue';
-dayjs.locale('zh-cn');
-
-const locale = ref(zhCN)
-</script>
-
-<style  lang="less">
-* {
-  font-family: PingFang SC-Bold, PingFang SC;
-  box-sizing: border-box;
-}
-
-div,
-p,
-span {
-  cursor: default;
-}
-
-.ant-input-group {
-  border-radius: 15px;
-}
-
-.ant-input-group .ant-input {
-  height: 50px;
-}
-
-.ant-input-group-addon {
-  width: 50px;
-}
-
-.ant-menu-inline,
-.ant-menu-vertical,
-.ant-menu-vertical-left {
-  border-right: none !important;
-  font-weight: bold;
-}
-
-.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
-  background-color: #294BA5 !important;
-  padding-left: 10px !important;
-  border-radius: 8px;
-  color: #fff;
-  height: 44px;
-}
-
-// 个人中心菜单
-.ant-menu-vertical .ant-menu-item::after,
-.ant-menu-vertical-left .ant-menu-item::after,
-.ant-menu-vertical-right .ant-menu-item::after,
-.ant-menu-inline .ant-menu-item::after {
-  border: none !important;
-}
-
-.ant-menu-inline.ant-menu-root .ant-menu-item,
-.ant-menu-inline.ant-menu-root .ant-menu-submenu-title {
-  cursor: pointer;
-  padding-left: 10px !important;
-}
-
-:where(.css-dev-only-do-not-override-eq3tly).ant-drawer .ant-drawer-body{
-  padding: 20px 14px;
-}
-
-.brokerage-back{
-  background-color: rgba(0, 0, 0, 0.6);
-}
-
-.ant-notification-notice .ant-notification-notice-description{
-  white-space: pre-line;
-}
-
-.ant-modal-content{
-  border-radius: 8px !important;
-}
-
-.ant-modal-header{
-  border-radius:  8px 8px 0 0 !important;
-}
-
-.ant-input-number-out-of-range input{
-  color: #000 !important;
-}
-
-.ant-btn{
-  border: 0 !important;
-}
-
-.ant-modal-footer{
-  border-top: 0 !important;
-}
-
-</style>
+<template>
+	<a-config-provider :locale="locale">
+		<RouterView />
+	</a-config-provider>
+</template>
+
+<script setup lang="ts">
+	import { RouterView } from 'vue-router';
+	import zhCN from 'ant-design-vue/es/locale/zh_CN';
+	import dayjs from 'dayjs';
+	import 'dayjs/locale/zh-cn';
+	import { ref } from 'vue';
+	dayjs.locale('zh-cn');
+
+	const locale = ref(zhCN)
+</script>
+
+<style lang="less">
+	* {
+		font-family: PingFang SC-Bold, PingFang SC;
+		box-sizing: border-box;
+	}
+
+	div,
+	p,
+	span {
+		cursor: default;
+	}
+
+	.ant-input-group {
+		border-radius: 15px;
+	}
+
+	.ant-input-group .ant-input {
+		height: 50px;
+	}
+
+	.ant-input-group-addon {
+		width: 50px;
+	}
+
+	.ant-menu-inline,
+	.ant-menu-vertical,
+	.ant-menu-vertical-left {
+		border-right: none !important;
+		font-weight: bold;
+	}
+
+	.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
+		background-color: #294BA5 !important;
+		padding-left: 10px !important;
+		border-radius: 8px;
+		color: #fff;
+		height: 44px;
+	}
+
+	// 个人中心菜单
+	.ant-menu-vertical .ant-menu-item::after,
+	.ant-menu-vertical-left .ant-menu-item::after,
+	.ant-menu-vertical-right .ant-menu-item::after,
+	.ant-menu-inline .ant-menu-item::after {
+		border: none !important;
+	}
+
+	.ant-menu-inline.ant-menu-root .ant-menu-item,
+	.ant-menu-inline.ant-menu-root .ant-menu-submenu-title {
+		cursor: pointer;
+		padding-left: 10px !important;
+	}
+
+	:where(.css-dev-only-do-not-override-eq3tly).ant-drawer .ant-drawer-body {
+		padding: 20px 14px;
+	}
+
+	.brokerage-back {
+		background-color: rgba(0, 0, 0, 0.6);
+	}
+
+	.ant-notification-notice .ant-notification-notice-description {
+		white-space: pre-line;
+	}
+
+	.ant-modal-content {
+		border-radius: 8px !important;
+	}
+
+	.ant-modal-header {
+		border-radius: 8px 8px 0 0 !important;
+	}
+
+	.ant-input-number-out-of-range input {
+		color: #000 !important;
+	}
+
+	.ant-btn {
+		border: 0 !important;
+	}
+
+	.ant-modal-footer {
+		border-top: 0 !important;
+	}
+
+	.commoission-modal {
+		.ant-modal-content {
+			background-color: transparent !important;
+		}
+	}
+</style>

+ 130 - 126
TronenergyWeb/src/components/footer/FootView.vue

@@ -1,134 +1,138 @@
 <template>
-  <div class="foot">
-    <div :id="footActive == 1 ? 'foot-icon-1' : ''" @click="pageTo(1)"></div>
-    <div :id="footActive == 2 ? 'foot-icon-2' : ''" @click="pageTo(2)"></div>
-    <div :id="footActive == 3 ? 'foot-icon-3' : ''" @click="pageTo(3)"></div>
-    <div :id="footActive == 4 ? 'foot-icon-4' : ''" @click="pageTo(4)"></div>
-  </div>
-
-  <a-modal v-model:visible="bindWarning" title="系统提示" @ok="toMessage">
-    <p>请先前往完善信息</p>
-  </a-modal>
+	<div class="foot">
+		<div :id="footActive == 1 ? 'foot-icon-1' : ''" @click="pageTo(1)"></div>
+		<div :id="footActive == 2 ? 'foot-icon-2' : ''" @click="pageTo(2)"></div>
+		<div :id="footActive == 3 ? 'foot-icon-3' : ''" @click="pageTo(3)"></div>
+		<div :id="footActive == 4 ? 'foot-icon-4' : ''" @click="pageTo(4)"></div>
+	</div>
+
+	<a-modal v-model:visible="bindWarning" :title="translate('系统提示')" @ok="toMessage" :ok-text="translate('确定')"
+		:cancel-text="translate('取消')">
+		<p>{{translate('请先前往完善信息')}}</p>
+	</a-modal>
 </template>
 
 <script setup lang="ts">
-import { onMounted, ref } from 'vue';
-import { useRouter } from 'vue-router';
-
-const userInfo = ref(JSON.parse(localStorage.botInfo))
-
-const bindWarning = ref(false)
-
-const props = defineProps({
-  index: {
-    type: Number,
-    default: 4
-  }
-})
-
-const router = useRouter()
-
-const toMessage = () => {
-  router.push('/user/message')
-  bindWarning.value = false
-}
-
-const pageHold = (data: any) => {
-  if (userInfo.value.state == '4') {
-    if (!userInfo.value.trc_url) {
-      bindWarning.value = true
-    } else {
-      router.push(data)
-    }
-  } else {
-    if (!userInfo.value.fsdz || !userInfo.value.trc_url) {
-      bindWarning.value = true
-    } else {
-      router.push(data)
-    }
-  }
-}
-
-const pageTo = (data: any) => {
-  footActive.value = data
-  switch (data) {
-    case 1:
-      pageHold('/energy')
-      break;
-    case 2:
-      pageHold('/exchange')
-      break;
-    case 3:
-      pageHold('/machine')
-      break;
-    case 4:
-      router.push('/user')
-      break;
-  }
-}
-
-const footActive = ref(4)
-
-onMounted(() => {
-  footActive.value = props.index
-  userInfo.value = JSON.parse(localStorage.botInfo);
-})
-
+	import { onMounted, ref } from 'vue';
+	import { useRouter } from 'vue-router';
+	import { translate } from '@/lang';
+
+	// rio-wes 修改
+	localStorage.botInfo = typeof (localStorage.botInfo) != 'undefined' && localStorage.botInfo ? localStorage.botInfo : JSON.stringify({});
+
+	const userInfo = ref(JSON.parse(localStorage.botInfo))
+
+	const bindWarning = ref(false)
+
+	const props = defineProps({
+		index: {
+			type: Number,
+			default: 4
+		}
+	})
+
+	const router = useRouter()
+
+	const toMessage = () => {
+		router.push('/user/message')
+		bindWarning.value = false
+	}
+
+	const pageHold = (data : any) => {
+		if (userInfo.value.state == '4') {
+			if (!userInfo.value.trc_url) {
+				bindWarning.value = true
+			} else {
+				router.push(data)
+			}
+		} else {
+			if (!userInfo.value.fsdz || !userInfo.value.trc_url) {
+				bindWarning.value = true
+			} else {
+				router.push(data)
+			}
+		}
+	}
+
+	const pageTo = (data : any) => {
+		footActive.value = data
+		switch (data) {
+			case 1:
+				pageHold('/energy')
+				break;
+			case 2:
+				pageHold('/exchange')
+				break;
+			case 3:
+				pageHold('/machine')
+				break;
+			case 4:
+				router.push('/user')
+				break;
+		}
+	}
+
+	const footActive = ref(4)
+
+	onMounted(() => {
+		footActive.value = props.index
+		userInfo.value = JSON.parse(localStorage.botInfo);
+	})
 </script>
 
 <style scoped lang="less">
-.foot {
-  height: 48px;
-  width: 100%;
-  background: #fff;
-  position: fixed;
-  bottom: 0;
-  left: 0;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  box-shadow: 0px -2px 4px 1px rgba(0, 0, 0, 0.16);
-}
-
-.foot div {
-  cursor: pointer;
-  padding: 0 40px;
-  width: 24px;
-  height: 24px;
-
-  &:first-of-type {
-    background: url('../../../public/image/Exchange2.png') center -2px no-repeat;
-  }
-
-  &:nth-of-type(2) {
-    background: url('../../../public/image/energy2.png') center -2px no-repeat;
-  }
-
-  &:nth-of-type(3) {
-    background: url('../../../public/image/ore2.png') center -2px no-repeat;
-  }
-
-  &:nth-of-type(4) {
-    background: url('../../../public/image/user2.png') center -2px no-repeat;
-  }
-
-}
-
-.foot {
-  #foot-icon-1 {
-    background-image: url(../../../public/image/Exchange.png);
-  }
-
-  #foot-icon-2 {
-    background-image: url(../../../public/image/energy.png);
-  }
-
-  #foot-icon-3 {
-    background-image: url(../../../public/image/ore.png);
-  }
-
-  #foot-icon-4 {
-    background-image: url(../../../public/image/user.png);
-  }
-}
+	.foot {
+		height: 48px;
+		width: 100%;
+		background: #fff;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		box-shadow: 0px -2px 4px 1px rgba(0, 0, 0, 0.16);
+	}
+
+	.foot div {
+		cursor: pointer;
+		padding: 0 40px;
+		width: 24px;
+		height: 24px;
+
+		&:first-of-type {
+			background: url('../../../public/image/Exchange2.png') center -2px no-repeat;
+		}
+
+		&:nth-of-type(2) {
+			background: url('../../../public/image/energy2.png') center -2px no-repeat;
+		}
+
+		&:nth-of-type(3) {
+			background: url('../../../public/image/ore2.png') center -2px no-repeat;
+		}
+
+		&:nth-of-type(4) {
+			background: url('../../../public/image/user2.png') center -2px no-repeat;
+		}
+
+	}
+
+	.foot {
+		#foot-icon-1 {
+			background-image: url(../../../public/image/Exchange.png);
+		}
+
+		#foot-icon-2 {
+			background-image: url(../../../public/image/energy.png);
+		}
+
+		#foot-icon-3 {
+			background-image: url(../../../public/image/ore.png);
+		}
+
+		#foot-icon-4 {
+			background-image: url(../../../public/image/user.png);
+		}
+	}
 </style>

+ 3 - 1
TronenergyWeb/src/lang/cn.ts

@@ -181,7 +181,9 @@ export default {
   '支付':'支付',
   '注:实际获得能量会随全网质押量不断浮动':'注:实际获得能量会随全网质押量不断浮动',
   '付款成功,请前往钱包查看':'付款成功,请前往钱包查看',
-
+
+	// rio-wes 新增
+	'未领取佣金': '未领取佣金',
   
 
 }

+ 184 - 168
TronenergyWeb/src/lang/en.ts

@@ -1,183 +1,199 @@
 
 export default {
-  // 首页
-  'Tronenergy交易平台': 'Tronenergy Platform',
-  '平台总能量': 'Total platform energy',
-  '累计为用户提供能量': 'Provide energy to the user',
-  '累计为用户节省TRX': 'Cumulative TRX savings for users',
-  '快捷': 'Quick',
-  '交易': 'Trade',
-  '交易1': 'Longer rental periods, up to 30 days',
-  '交易2': 'Wider range, support 32,000 starting rent',
-  '交易3': 'Quick hire, energy in seconds',
-  '交易4': 'Support multi-currency payment purchase',
-  '交易5': 'Supports DAPP browser',
-  '币币自助兑换平台': 'Coin self-service exchange platform',
-  '闪兑1': 'Support USDT, TRX exchange, real-time arrival',
-  '闪兑2': 'Small redemption (10 USDT & 200 TRX starting)',
-  '闪兑3': 'Support plug-in wallet DAPP payment and transfer payment exchange',
-  '闪兑4': 'Supports custom wallet reception',
-  '机器人': 'Robot',
-  '机器人1': 'Energy purchase, convenient and fast',
-  '机器人2': 'TRX Exchange, real-time exchange rates',
-  '机器人3': 'Wallet query, exchange rate query',
-  '机器人4': 'Monitoring wallets, Daily overview',
-  '介绍': 'Introduce',
-  '介绍1-1': 'It is an energy free trading platform in Tron ecology. Our purpose is to reduce the burning cost of energy consumption for Tron traders, and provide more preferential, safer and more efficient energy self-service rental services.',
-  '介绍2-1': 'Economy',
-  '介绍2-2': 'In order to solve the problem of excessive TRX fee expenses, we offer the energy trading function, which can help you to pay in seconds, in the process, the fee is directly reduced by 88%. You can also earn energy trading commissions by idling TRX.',
-  '介绍3-1': 'Efficient',
-  '介绍3-2': 'Manual & Transfer & Batch leasing methods; The process is fast and convenient, only need to receive the address to obtain energy; USDT, contract transfer is applicable; Tron TRON users must have money saving experts.',
-  '介绍4-1': 'Secure',
-  '介绍4-2': "As the world's leading wave field energy trading platform, we are committed to providing users with stable and efficient services. We are always working hard to develop new technologies and features to guarantee the user experience. We provide 24-hour dedicated customer service, as well as professional technical team support, to provide users with reliable operation guarantee.",
-  '立即查看':'View now',
-  '团队明细':'Team detail',
+	// 首页
+	'Tronenergy交易平台': 'Tronenergy Platform',
+	'平台总能量': 'Total platform energy',
+	'累计为用户提供能量': 'Provide energy to the user',
+	'累计为用户节省TRX': 'Cumulative TRX savings for users',
+	'快捷': 'Quick',
+	'交易': 'Trade',
+	'交易1': 'Longer rental periods, up to 30 days',
+	'交易2': 'Wider range, support 32,000 starting rent',
+	'交易3': 'Quick hire, energy in seconds',
+	'交易4': 'Support multi-currency payment purchase',
+	'交易5': 'Supports DAPP browser',
+	'币币自助兑换平台': 'Coin self-service exchange platform',
+	'闪兑1': 'Support USDT, TRX exchange, real-time arrival',
+	'闪兑2': 'Small redemption (10 USDT & 200 TRX starting)',
+	'闪兑3': 'Support plug-in wallet DAPP payment and transfer payment exchange',
+	'闪兑4': 'Supports custom wallet reception',
+	'机器人': 'Robot',
+	'机器人1': 'Energy purchase, convenient and fast',
+	'机器人2': 'TRX Exchange, real-time exchange rates',
+	'机器人3': 'Wallet query, exchange rate query',
+	'机器人4': 'Monitoring wallets, Daily overview',
+	'介绍': 'Introduce',
+	'介绍1-1': 'It is an energy free trading platform in Tron ecology. Our purpose is to reduce the burning cost of energy consumption for Tron traders, and provide more preferential, safer and more efficient energy self-service rental services.',
+	'介绍2-1': 'Economy',
+	'介绍2-2': 'In order to solve the problem of excessive TRX fee expenses, we offer the energy trading function, which can help you to pay in seconds, in the process, the fee is directly reduced by 88%. You can also earn energy trading commissions by idling TRX.',
+	'介绍3-1': 'Efficient',
+	'介绍3-2': 'Manual & Transfer & Batch leasing methods; The process is fast and convenient, only need to receive the address to obtain energy; USDT, contract transfer is applicable; Tron TRON users must have money saving experts.',
+	'介绍4-1': 'Secure',
+	'介绍4-2': "As the world's leading wave field energy trading platform, we are committed to providing users with stable and efficient services. We are always working hard to develop new technologies and features to guarantee the user experience. We provide 24-hour dedicated customer service, as well as professional technical team support, to provide users with reliable operation guarantee.",
+	'立即查看': 'View now',
+	'团队明细': 'Team detail',
 
-  // 页脚
-  '业务': 'Business',
-  '快捷交易': 'Quick trade',
-  '币币闪兑': 'Coin flash exchange',
-  '联系我们': 'Contact us',
-  '客服': 'Customer service',
-  '频道': 'Channel',
-  '邮箱': 'Mailbox',
+	// 页脚
+	'业务': 'Business',
+	'快捷交易': 'Quick trade',
+	'币币闪兑': 'Coin flash exchange',
+	'联系我们': 'Contact us',
+	'客服': 'Customer service',
+	'频道': 'Channel',
+	'邮箱': 'Mailbox',
 
-  // 用户中心
-  '个人中心': 'Individual Center',
-  '平台余额': 'Platform balance',
-  '钱包余额': 'Wallet balance',
-  '余额不足': 'Insufficient Balance',
-  '充值': 'Top-up',
-  '提币': 'withdraw',
-  '佣金': 'commission',
-  '领取': 'Draw down',
-  '能量购买': 'Energy purchase',
-  '闪兑': 'Exchange',
-  '能量矿机': 'Energy miner',
-  '邀请好友': 'Invite friends',
-  '账单': 'check',
-  '能量订单': 'energy',
-  '算力释放': 'computing release',
-  '暂无记录': 'No record',
-  '我的团队': 'Team',
-  '我的信息': 'Information',
-  '我的推荐': 'Recommendation',
-  '帮助': 'Help',
-  '你有待领取佣金': 'You are waiting to receive your commission',
-  '累计待领取佣金': 'Accumulated pending commission',
-  '领取佣金': 'Receive commission',
-  '请先前往完善信息': 'Please go to complete the information first',
-  '系统提示': 'System prompt',
-  '已失效': 'Became invalid',
+	// 用户中心
+	'个人中心': 'Individual Center',
+	'平台余额': 'Platform balance',
+	'钱包余额': 'Wallet balance',
+	'余额不足': 'Insufficient Balance',
+	'充值': 'Top-up',
+	'提币': 'withdraw',
+	'佣金': 'commission',
+	'领取': 'Draw down',
+	'能量购买': 'Energy purchase',
+	'闪兑': 'Exchange',
+	'能量矿机': 'Energy miner',
+	'邀请好友': 'Invite friends',
+	'账单': 'check',
+	'能量订单': 'energy',
+	'算力释放': 'computing release',
+	'暂无记录': 'No record',
+	'我的团队': 'Team',
+	'我的信息': 'Information',
+	'我的推荐': 'Recommendation',
+	'帮助': 'Help',
+	'你有待领取佣金': 'You are waiting to receive your commission',
+	'累计待领取佣金': 'Accumulated pending commission',
+	'领取佣金': 'Receive commission',
+	'请先前往完善信息': 'Please go to complete the information first',
+	'系统提示': 'System prompt',
+	'已失效': 'Became invalid',
 
-  // 我的团队
-  '当前等级': 'Current level',
-  '团队算力': 'Team computing power',
-  '下一等级团队算力任务': 'Next level team computing task',
-  '直推成员': 'Direct member',
-  '直推': 'Direct',
-  '算力': 'Computing power',
-  '暂无绑定': 'Unbound',
-  '暂无直推': 'No recommendation',
-  '团队': 'Team',
-  '推荐奖励': 'Recommendation reward',
-  '节点收益': 'Node Revenue',
-  '开发者收益': 'Developer Benefits',
-  '全球分红': 'Global dividend',
-  '暂无可领取佣金': 'No commission available at the moment',
+	// 我的团队
+	'当前等级': 'Current level',
+	'团队算力': 'Team computing power',
+	'下一等级团队算力任务': 'Next level team computing task',
+	'直推成员': 'Direct member',
+	'直推': 'Direct',
+	'算力': 'Computing power',
+	'暂无绑定': 'Unbound',
+	'暂无直推': 'No recommendation',
+	'团队': 'Team',
+	'推荐奖励': 'Recommendation reward',
+	'节点收益': 'Node Revenue',
+	'开发者收益': 'Developer Benefits',
+	'全球分红': 'Global dividend',
+	'暂无可领取佣金': 'No commission available at the moment',
 
 
-  // 我的信息
-  'Telegram账号': 'Telegram account',
-  '钱包地址': 'Wallet address',
-  '推荐人': 'Referrer',
-  '去绑定': 'Bound to',
-  '绑定地址': 'Binding address',
-  '请输入绑定地址': 'Please enter the binding address',
-  '绑定推荐人': 'Bind referees',
-  '请输入推荐人地址': "Please enter the referrer's address",
+	// 我的信息
+	'Telegram账号': 'Telegram account',
+	'钱包地址': 'Wallet address',
+	'推荐人': 'Referrer',
+	'去绑定': 'Bound to',
+	'绑定地址': 'Binding address',
+	'请输入绑定地址': 'Please enter the binding address',
+	'绑定推荐人': 'Bind referees',
+	'请输入推荐人地址': "Please enter the referrer's address",
 
-  // 我的推荐
-  '我的链接': 'My link',
-  '复制': 'Copy',
-  '累计奖励': 'Cumulative reward',
-  '推荐': 'Recommended',
-  '我的二维码': 'My QR code',
-  '人': 'people',
+	// 我的推荐
+	'我的链接': 'My link',
+	'复制': 'Copy',
+	'累计奖励': 'Cumulative reward',
+	'推荐': 'Recommended',
+	'我的二维码': 'My QR code',
+	'人': 'people',
 
-  //提币
-  '请先绑定钱包': 'Please bind your wallet first',
-  '绑定钱包地址, 充值自动识别入账': 'Bind wallet address, recharge automatically recognize the account',
-  '请输入绑定钱包': 'Please enter bind wallet',
-  '绑定': 'Bind',
-  '可用余额': 'Available balance',
-  '全部提取': 'Full extraction',
-  '输入提取金额': 'Input withdrawal amount',
-  '到账钱包': 'Arrival wallet',
-  '立即提币': 'Immediate withdrawal',
+	//提币
+	'请先绑定钱包': 'Please bind your wallet first',
+	'绑定钱包地址, 充值自动识别入账': 'Bind wallet address, recharge automatically recognize the account',
+	'请输入绑定钱包': 'Please enter bind wallet',
+	'绑定': 'Bind',
+	'可用余额': 'Available balance',
+	'全部提取': 'Full extraction',
+	'输入提取金额': 'Input withdrawal amount',
+	'到账钱包': 'Arrival wallet',
+	'立即提币': 'Immediate withdrawal',
 
-  // 充值
-  '扫码充值': 'Scan code and recharge',
-  'APP充值': 'APP recharge',
-  '复制地址': 'Copy address',
-  '付款': 'Payment',
-  '充值须知': 'Top up instructions',
-  '充值须知1': 'Bind wallet address, recharge automatically recognize the account',
-  '充值须知2': 'Please check the wallet address before the transfer, if the transfer is not found after the recharge amount can contact the customer',
-  '充值须知3': 'The wallet address bound to the account must be transferred and recharged before it can be normally credited',
-  '充值须知4': 'The amount must be greater than 1TRX',
-  '我已知晓': 'I already know',
-  '付款成功': 'Payment successful',
-  '付款失败': 'Payment failed',
-  '拒绝签名': 'Reject signature',
+	// 充值
+	'扫码充值': 'Scan code and recharge',
+	'APP充值': 'APP recharge',
+	'复制地址': 'Copy address',
+	'付款': 'Payment',
+	'充值须知': 'Top up instructions',
+	'充值须知1': 'Bind wallet address, recharge automatically recognize the account',
+	'充值须知2': 'Please check the wallet address before the transfer, if the transfer is not found after the recharge amount can contact the customer',
+	'充值须知3': 'The wallet address bound to the account must be transferred and recharged before it can be normally credited',
+	'充值须知4': 'The amount must be greater than 1TRX',
+	'我已知晓': 'I already know',
+	'付款成功': 'Payment successful',
+	'付款失败': 'Payment failed',
+	'拒绝签名': 'Reject signature',
 
-  // 能量矿机
-  '每日收益率': 'Daily yield',
-  '每日算力': 'Daily computing power',
-  '总产值': 'Gross value',
-  '已产出': 'produced',
-  '选择数量': 'Selection quantity',
-  '购买记录': 'Purchase record',
-  '租赁成功':'Lease success',
-  '去租赁': 'Go to lease',
-  '购买成功': 'Successful purchase',
-  '确定': 'OK',
-  '转账':'Transfer',
+	// 能量矿机
+	'每日收益率': 'Daily yield',
+	'每日算力': 'Daily computing power',
+	'总产值': 'Gross value',
+	'已产出': 'produced',
+	'选择数量': 'Selection quantity',
+	'购买记录': 'Purchase record',
+	'租赁成功': 'Lease success',
+	'去租赁': 'Go to lease',
+	'购买成功': 'Successful purchase',
+	'确定': 'OK',
+	'转账': 'Transfer',
 
-  // 闪兑
-  '请先输入闪兑金额': 'Please enter the flash transfer amount first',
-  '余额兑换': 'Balance exchange',
-  '转账兑换': 'Transfer exchange',
-  'DAPP兑换':'DAPP exchange',
-  '接收地址': 'Receiving address',
-  '输入金额': 'Input amount',
-  '最大': 'Max',
-  '兑换成': 'Convert into',
-  '约': 'about',
-  '确认兑换': 'Confirm conversion',
-  '订单确认': 'Order confirmation',
-  '付款地址': 'Payment address',
-  '二维码': 'QR code',
-  '付款金额': 'Payment amount',
-  '支持小额兑换': 'Support small exchange',
-  '起兑': 'invoicing',
-  '复制金额':'Copy Amount',
-  '复制成功':'replicating success',
-  '数量': 'quantity',
+	// 闪兑
+	'请先输入闪兑金额': 'Please enter the flash transfer amount first',
+	'余额兑换': 'Balance exchange',
+	'转账兑换': 'Transfer exchange',
+	'DAPP兑换': 'DAPP exchange',
+	'接收地址': 'Receiving address',
+	'输入金额': 'Input amount',
+	'最大': 'Max',
+	'兑换成': 'Convert into',
+	'约': 'about',
+	'确认兑换': 'Confirm conversion',
+	'订单确认': 'Order confirmation',
+	'付款地址': 'Payment address',
+	'二维码': 'QR code',
+	'付款金额': 'Payment amount',
+	'支持小额兑换': 'Support small exchange',
+	'起兑': 'invoicing',
+	'复制金额': 'Copy Amount',
+	'复制成功': 'replicating success',
+	'数量': 'quantity',
 
-  // 能量
-  '没有填写默认绑定当前地址': 'The current address is bound by default',
-  '地址格式错误,请确认后重新输入':'Address format error, please confirm and re-enter',
-  '租用笔数': 'Number of rental',
-  '预估能量约': 'Estimated energy',
-  '租用订单确认': 'Hire order confirmation',
-  '笔': '',
-  '租用时长': 'Duration of rental',
-  '天': 'day',
-  '订单金额': 'Order amount',
-  '需支付': 'Need to pay',
-  '支付': 'Pay',
-  '注:实际获得能量会随全网质押量不断浮动': 'Note: The actual energy obtained will fluctuate with the amount of pledge of the whole network',
-  '付款成功,请前往钱包查看':'Payment successful, please go to the wallet to check',
+	// 能量
+	'没有填写默认绑定当前地址': 'The current address is bound by default',
+	'地址格式错误,请确认后重新输入': 'Address format error, please confirm and re-enter',
+	'租用笔数': 'Number of rental',
+	'预估能量约': 'Estimated energy',
+	'租用订单确认': 'Hire order confirmation',
+	'笔': '',
+	'租用时长': 'Duration of rental',
+	'天': 'day',
+	'订单金额': 'Order amount',
+	'需支付': 'Need to pay',
+	'支付': 'Pay',
+	'注:实际获得能量会随全网质押量不断浮动': 'Note: The actual energy obtained will fluctuate with the amount of pledge of the whole network',
+	'付款成功,请前往钱包查看': 'Payment successful, please go to the wallet to check',
+
+	// rio-wes 新增
+	'未领取佣金': 'Unclaimed',
+	'已释放': 'Released',
+	'未释放': 'Unreleased',
+	'取消': 'Cancel',
+	'A型能量算力': 'A energy computing power',
+	'B型能量算力': 'B energy computing power',
+	'C型能量算力': 'C energy computing power',
+	'D型能量算力': 'D energy computing power',
+	'购买': 'Buy',
+	'需转账金额': 'Transfer amount',
+	'最低1USDT起兑,余额不足1USDT': 'The minimum exchange amount is 1 USD, and the balance is less than 1 USD',
+	'最低200起兑,余额不足200': 'Minimum exchange rate of 200, balance less than 200',
+	'请先前往首页授权!': 'Please go to the homepage for authorization first!',
+	'温馨提示:2个工作日内到账,20TRX起提,系统会扣除1TRX手续费': 'Reminder: Upon receipt within 2 working days, the system will deduct 1TRX handling fee starting from 20TRX',
 
 }

+ 100 - 94
TronenergyWeb/src/views/EnergyView.vue

@@ -1,127 +1,133 @@
 <template>
 	<div class="recharge">
 		<h2>购买能量</h2>
-    <p class="balance">余额: 0 TRX</p>
+		<p class="balance">余额: 0 TRX</p>
 		<p>能量接收地址</p>
 		<div class="input-box">
-      <a-input v-model:value="from.address" :bordered="false" placeholder="不填默认当前绑定钱包" />
+			<a-input v-model:value="from.address" :bordered="false" placeholder="不填默认当前绑定钱包" />
 			<img src="../../public/image/wallet.png" alt="">
 		</div>
-    
+
 		<div class="input-box">
-      <span class="input-item">购买笔数:</span>
-      <a-input v-model:value="from.address" :bordered="false" placeholder="请输入购买笔数" suffix="笔" />
-			
+			<span class="input-item">购买笔数:</span>
+			<a-input v-model:value="from.address" :bordered="false" placeholder="请输入购买笔数" suffix="笔" />
+
 		</div>
 		<div class="input-box">
-      <span class="input-item">购买天数:</span>
-      <a-input v-model:value="from.address" :bordered="false" placeholder="请输入购买天数" suffix="天" />
-			
+			<span class="input-item">购买天数:</span>
+			<a-input v-model:value="from.address" :bordered="false" placeholder="请输入购买天数" suffix="天" />
+
 		</div>
 
-		<p>支付</p>
-    <p class="balance">需转账金额 <span> 0 TRX</span> </p>
+		<p>{{translate('支付')}}</p>
+		<p class="balance">{{translate('需转账金额')}} <span> 0 TRX</span> </p>
 
-		<a-button class="recharge-button" type="primary">购买</a-button>
+		<a-button class="recharge-button" type="primary">{{translate('购买')}}</a-button>
 	</div>
 </template>
 
 <script setup lang="ts">
-import { onMounted, ref } from 'vue';
-import { SettingOutlined } from '@ant-design/icons-vue';
-
+	import { onMounted, ref } from 'vue';
+	import { SettingOutlined } from '@ant-design/icons-vue';
+	import { translate } from '@/lang';
 
-const from = ref({
-  address:null
-})
+	const from = ref({
+		address: null
+	})
 
-const input = (data: any) => {
-	console.log(data.target.value);
-}
-
-onMounted(() => {
-	(window as any).Telegram.WebApp.BackButton.isVisible = true;
-})
+	const input = (data : any) => {
+		console.log(data.target.value);
+	}
 
+	onMounted(() => {
+		(window as any).Telegram.WebApp.BackButton.isVisible = true;
+	})
 </script>
 
 <style scoped lang="less">
-.recharge {
-	padding: 16px;
+	.recharge {
+		padding: 16px;
 
-	h2 {
-		font-weight: 600;
-		text-align: center;
-	}
+		h2 {
+			font-weight: 600;
+			text-align: center;
+		}
 
-	p {
-		font-size: 16px;
-	}
-	.recharge-tip{
-		font-size: 14px;
-		margin-top: 10px;
-		>span{
-			color: red;
+		p {
+			font-size: 16px;
+		}
+
+		.recharge-tip {
+			font-size: 14px;
+			margin-top: 10px;
+
+			>span {
+				color: red;
+			}
+		}
+
+		.recharge-button {
+			margin-top: 30px;
+			width: 100%;
+			height: 50px;
+			border-radius: 10px;
+			font-size: 16px;
+		}
+
+		.balance {
+			position: relative;
+			background-color: #f5f5f5;
+			padding: 10px 16px;
+			font-size: 14px;
+			border-radius: 10px;
+
+			>span {
+				position: absolute;
+				display: block;
+				top: 10px;
+				right: 20px;
+			}
 		}
 	}
 
-	.recharge-button{
-		margin-top: 30px;
+	.input-box {
+		display: flex;
+		align-items: center;
+		position: relative;
+		margin-bottom: 15px;
 		width: 100%;
-		height: 50px;
+		border: none;
+		padding: 12px 0 12px 10px;
+		background-color: #f6f6f6;
+		outline: none;
 		border-radius: 10px;
-		font-size: 16px;
+
+		&:first-of-type {
+			padding-left: 50px;
+		}
+
+		>img {
+			width: 20px;
+			position: absolute;
+			margin: auto;
+			top: 0;
+			bottom: 0;
+			left: 15px;
+		}
+
+		.input-item {
+			flex-shrink: 0;
+
+		}
 	}
-  .balance{
-    position: relative;
-    background-color: #f5f5f5;
-    padding: 10px 16px;
-    font-size: 14px;
-    border-radius: 10px;
-    >span{
-      position: absolute;
-      display: block;
-      top: 10px;
-      right: 20px;
-    }
-  }
-}
-
-.input-box {
-  display: flex;
-  align-items: center;
-	position: relative;
-  margin-bottom: 15px;
-  width: 100%;
-	border: none;
-	padding: 12px 0 12px 10px;
-	background-color: #f6f6f6;
-	outline: none;
-	border-radius: 10px;
-  &:first-of-type{
-    padding-left: 50px;
-  }
-	>img{
-		width: 20px;
-		position: absolute;
-		margin: auto;
-		top: 0;
-		bottom: 0;
-		left: 15px;
+
+	.recharge-input {
+		display: block;
+		width: 100%;
+		border: none;
+		padding: 12px 0 12px 50px;
+		background-color: #f6f6f6;
+		outline: none;
+		border-radius: 10px;
 	}
-  .input-item{
-    flex-shrink: 0;
-
-  }
-}
-
-.recharge-input {
-	display: block;
-	width: 100%;
-	border: none;
-	padding: 12px 0 12px 50px;
-	background-color: #f6f6f6;
-	outline: none;
-	border-radius: 10px;
-}
 </style>

File diff suppressed because it is too large
+ 487 - 488
TronenergyWeb/src/views/HomeView.vue


+ 144 - 140
TronenergyWeb/src/views/Withdraw.vue

@@ -9,7 +9,8 @@
 				<img src="../../public/image/wallet.png" alt="">
 			</div>
 			<p class="recharge-tip"> <span>*</span>{{ translate('绑定钱包地址, 充值自动识别入账') }} </p>
-			<a-button class="recharge-button" type="primary" @click="updateAddress" :loading="loading">{{ translate('绑定') }}</a-button>
+			<a-button class="recharge-button" type="primary" @click="updateAddress"
+				:loading="loading">{{ translate('绑定') }}</a-button>
 		</div>
 
 		<div v-if="userInfo.trc_url">
@@ -17,181 +18,184 @@
 				<span>{{ translate('可用余额') }}:0 TRX</span>
 				<span @click="getAll">{{ translate('全部提取') }}</span>
 			</div>
-			<a-input-number class="draw-input" :min="0" :max="userInfo.TRX" v-model:value="drawValue" :placeholder="translate('输入提取金额')" />
+			<a-input-number class="draw-input" :min="0" :max="userInfo.TRX" v-model:value="drawValue"
+				:placeholder="translate('输入提取金额')" />
 			<div class="draw-top">
 				<span>{{ translate('到账钱包') }}</span>
 			</div>
 			<div class="draw-address">{{ userInfo.trc_url }}</div>
-			<div class="recharge-tip2">温馨提示:2个工作日内到账,20TRX起提,系统会扣除1TRX手续费</div>
+			<div class="recharge-tip2">{{translate('温馨提示:2个工作日内到账,20TRX起提,系统会扣除1TRX手续费')}}</div>
 
-			<a-button class="draw-button" type="primary" :loading="drawLoading" @click=""> <span>{{ translate('立即提币') }}</span> </a-button>
+			<a-button class="draw-button" type="primary" :loading="drawLoading" @click="">
+				<span>{{ translate('立即提币') }}</span> </a-button>
 		</div>
 
 	</div>
 </template>
 
 <script setup lang="ts">
-import { onMounted, ref } from 'vue';
-import { SettingOutlined } from '@ant-design/icons-vue';
-import { decryptData, encryptDES } from '@/utils/DES';
-import { updateAddressApi } from '@/api';
-import { message } from 'ant-design-vue';
-import { useRoute, useRouter } from 'vue-router';
-import { translate } from '@/lang';
-
-const router = useRouter()
-
-const userInfo = ref(JSON.parse(localStorage.botInfo))
-
-const loading = ref(false)
-
-const drawLoading = ref(false)
-
-const value5 = ref()
-
-const drawValue = ref()
-
-const input = (data: any) => {
-	value5.value = data.target.value
-}
-
-onMounted(() => {
-	(window as any).Telegram.WebApp.BackButton.isVisible = true;
-	userInfo.value = JSON.parse(localStorage.botInfo);
-})
-
-const updateAddress = async () => {
-	if (!value5.value) {
-		message.warning('请先输入地址!')
-	} else {
-		loading.value = true
-		let key: any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${value5.value}"}`, 'Longteng')
-		const res: any = await updateAddressApi({ key: key })
-		if (res.code == 200) {
-			localStorage.botInfo = JSON.stringify(res.data);
-			message.success(res.msg)
-			loading.value = false
-			userInfo.value = JSON.parse(localStorage.botInfo);
+	import { onMounted, ref } from 'vue';
+	import { SettingOutlined } from '@ant-design/icons-vue';
+	import { decryptData, encryptDES } from '@/utils/DES';
+	import { updateAddressApi } from '@/api';
+	import { message } from 'ant-design-vue';
+	import { useRoute, useRouter } from 'vue-router';
+	import { translate } from '@/lang';
+
+	const router = useRouter()
+
+	const userInfo = ref(JSON.parse(localStorage.botInfo))
+
+	const loading = ref(false)
+
+	const drawLoading = ref(false)
+
+	const value5 = ref()
+
+	const drawValue = ref()
+
+	const input = (data : any) => {
+		value5.value = data.target.value
+	}
+
+	onMounted(() => {
+		(window as any).Telegram.WebApp.BackButton.isVisible = true;
+		userInfo.value = JSON.parse(localStorage.botInfo);
+	})
+
+	const updateAddress = async () => {
+		if (!value5.value) {
+			message.warning(translate('请先输入地址!'))
 		} else {
-			message.error(res.msg)
-			loading.value = false
+			loading.value = true
+			let key : any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${value5.value}"}`, 'Longteng')
+			const res : any = await updateAddressApi({ key: key })
+			if (res.code == 200) {
+				localStorage.botInfo = JSON.stringify(res.data);
+				message.success(translate(res.msg))
+				loading.value = false
+				userInfo.value = JSON.parse(localStorage.botInfo);
+			} else {
+				message.error(translate(res.msg))
+				loading.value = false
+			}
 		}
 	}
-}
-
-const getAll = () => {
-	drawValue.value = userInfo.value.TRX
-}
 
+	const getAll = () => {
+		drawValue.value = userInfo.value.TRX
+	}
 </script>
 
 <style scoped lang="less">
-.recharge {
-	padding: 16px;
-	margin-bottom: 48px;
+	.recharge {
+		padding: 16px;
+		margin-bottom: 48px;
+
+		h2 {
+			font-weight: 600;
+			text-align: center;
+			font-size: 16px;
+			margin-bottom: 24px;
+		}
 
-	h2 {
-		font-weight: 600;
-		text-align: center;
-		font-size: 16px;
-		margin-bottom: 24px;
+		p {
+			font-size: 16px;
+		}
+
+		.recharge-tip {
+			font-size: 14px;
+			margin-top: 10px;
+
+			>span {
+				color: red;
+			}
+		}
+
+		.recharge-button {
+			margin-top: 30px;
+			width: 100%;
+			height: 50px;
+			border-radius: 10px;
+			font-size: 16px;
+		}
 	}
 
-	p {
-		font-size: 16px;
+	.input-box {
+		position: relative;
+
+		>img {
+			width: 20px;
+			position: absolute;
+			margin: auto;
+			top: 0;
+			bottom: 0;
+			left: 15px;
+		}
 	}
 
-	.recharge-tip {
-		font-size: 14px;
-		margin-top: 10px;
+	.recharge-input {
+		display: block;
+		width: 100%;
+		border: none;
+		padding: 12px 0 12px 50px;
+		background-color: #f6f6f6;
+		outline: none;
+		border-radius: 10px;
+	}
+
+	.draw-top {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		margin-bottom: 12px;
 
 		>span {
-			color: red;
+			font-size: 14px;
+			font-weight: bold;
+
+			&:nth-of-type(2) {
+				font-size: 12px;
+				color: #294BA5;
+				cursor: pointer;
+			}
 		}
 	}
 
-	.recharge-button {
-		margin-top: 30px;
+	.draw-input {
+		margin-bottom: 12px;
 		width: 100%;
-		height: 50px;
-		border-radius: 10px;
-		font-size: 16px;
 	}
-}
-
-.input-box {
-	position: relative;
-
-	>img {
-		width: 20px;
-		position: absolute;
-		margin: auto;
-		top: 0;
-		bottom: 0;
-		left: 15px;
+
+	.draw-address {
+		height: 44px;
+		background: rgba(41, 75, 165, 0.06);
+		border-radius: 8px;
+		line-height: 44px;
+		padding-left: 12px;
+		font-size: 14px;
 	}
-}
-
-.recharge-input {
-	display: block;
-	width: 100%;
-	border: none;
-	padding: 12px 0 12px 50px;
-	background-color: #f6f6f6;
-	outline: none;
-	border-radius: 10px;
-}
-
-.draw-top {
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	margin-bottom: 12px;
-
-	>span {
+
+	.recharge .draw-button {
+		cursor: pointer !important;
+		margin-top: 30px;
+		width: 100%;
+		height: 44px;
+		background: #294BA5;
+		border-radius: 4px;
+		color: #fff;
+		text-align: center;
 		font-size: 14px;
 		font-weight: bold;
 
-		&:nth-of-type(2) {
-			font-size: 12px;
-			color: #294BA5;
+		>span {
 			cursor: pointer;
 		}
 	}
-}
-
-.draw-input {
-	margin-bottom: 12px;
-	width: 100%;
-}
-
-.draw-address {
-	height: 44px;
-	background: rgba(41, 75, 165, 0.06);
-	border-radius: 8px;
-	line-height: 44px;
-	padding-left: 12px;
-	font-size: 14px;
-}
-
-.recharge .draw-button {
-	cursor: pointer !important;
-	margin-top: 30px;
-	width: 100%;
-	height: 44px;
-	background: #294BA5;
-	border-radius: 4px;
-	color: #fff;
-	text-align: center;
-	font-size: 14px;
-	font-weight: bold;
-	>span{
-		cursor: pointer;
+
+	.recharge-tip2 {
+		margin-top: 15px;
+		color: #2c58cf;
+		font-size: 12px;
 	}
-}
-.recharge-tip2{
-	margin-top: 15px;
-	color: #2c58cf;
-	font-size: 12px;
-}
 </style>

File diff suppressed because it is too large
+ 888 - 866
TronenergyWeb/src/views/energy/EnergyView.vue


File diff suppressed because it is too large
+ 1003 - 1002
TronenergyWeb/src/views/exchange/ExchangeView.vue


File diff suppressed because it is too large
+ 504 - 500
TronenergyWeb/src/views/machine/Machine.vue


File diff suppressed because it is too large
+ 893 - 782
TronenergyWeb/src/views/user/center/UserView.vue


+ 221 - 216
TronenergyWeb/src/views/user/message/Message.vue

@@ -1,230 +1,235 @@
 <template>
-  <div class="homePage">
-    <div class="home-head">
-
-      <div class="head-topBox">
-        <div class="topBox-avatar">
-          <img class="avatar-img" src="../../../../public/image/info.png" @click="" alt="">
-          <div class="avatar-text">{{ translate('我的信息') }}</div>
-        </div>
-
-        <div class="topBox-menu">
-          <ChangeLanguage></ChangeLanguage>
-        </div>
-      </div>
-
-      <div class="head-card">
-        <div class="card-title">
-          <h2>{{ translate('Telegram账号') }}</h2>
-          <a class="bindButton" v-if="!userInfo.fullname" href="https://t.me/Tron_energybot" target="_blank">{{ translate('去绑定') }}</a>
-        </div>
-        <div class="card-link" v-if="!userInfo.fullname"> {{ translate('暂无绑定') }} </div>
-        <div class="card-link" v-if="userInfo.fullname">{{ userInfo.fullname }}</div>
-        <div class="card-title">
-          <h2>{{ translate('钱包地址') }}</h2>
-          <span class="bindButton" v-if="!userInfo.trc_url" @click="openAddress">{{ translate('去绑定') }}</span>
-        </div>
-        <div class="card-link" v-if="!userInfo.trc_url"> {{ translate('暂无绑定') }} </div>
-        <div class="card-link" v-if="userInfo.trc_url">{{ userInfo.trc_url }}</div>
-        <div class="card-title">
-          <h2>{{ translate('推荐人') }}</h2>
-          <span class="bindButton" v-if="!userInfo.fsdz" @click="openBind2 = true">{{ translate('去绑定') }}</span>
-        </div>
-        <div class="card-link" v-if="!userInfo.fsdz"> {{ translate('暂无绑定') }} </div>
-        <div class="card-link" v-if="userInfo.fsdz"> {{ userInfo.fsdz }} </div>
-      </div>
-
-    </div>
-
-    <a-modal v-model:visible="openBind" :title="translate('绑定地址')" @ok="addressOk" :confirmLoading="addressLoading">
-      <a-input class="addressInput" v-model:value="updateAddressValue" :placeholder="translate('请输入绑定地址')" />
-    </a-modal>
-
-    <a-modal v-model:visible="openBind2" :title="translate('绑定推荐人')" @ok="recomOk" :confirmLoading="recomLoading">
-      <a-input class="addressInput" v-model:value="updateRecomValue.address" :placeholder="translate('请输入推荐人地址')" />
-    </a-modal>
-
-
-  </div>
+	<div class="homePage">
+		<div class="home-head">
+
+			<div class="head-topBox">
+				<div class="topBox-avatar">
+					<img class="avatar-img" src="../../../../public/image/info.png" @click="" alt="">
+					<div class="avatar-text">{{ translate('我的信息') }}</div>
+				</div>
+
+				<div class="topBox-menu">
+					<ChangeLanguage></ChangeLanguage>
+				</div>
+			</div>
+
+			<div class="head-card">
+				<div class="card-title">
+					<h2>{{ translate('Telegram账号') }}</h2>
+					<a class="bindButton" v-if="!userInfo.fullname" href="https://t.me/Tron_energybot"
+						target="_blank">{{ translate('去绑定') }}</a>
+				</div>
+				<div class="card-link" v-if="!userInfo.fullname"> {{ translate('暂无绑定') }} </div>
+				<div class="card-link" v-if="userInfo.fullname">{{ userInfo.fullname }}</div>
+				<div class="card-title">
+					<h2>{{ translate('钱包地址') }}</h2>
+					<span class="bindButton" v-if="!userInfo.trc_url" @click="openAddress">{{ translate('去绑定') }}</span>
+				</div>
+				<div class="card-link" v-if="!userInfo.trc_url"> {{ translate('暂无绑定') }} </div>
+				<div class="card-link" v-if="userInfo.trc_url">{{ userInfo.trc_url }}</div>
+				<div class="card-title">
+					<h2>{{ translate('推荐人') }}</h2>
+					<span class="bindButton" v-if="!userInfo.fsdz"
+						@click="openBind2 = true">{{ translate('去绑定') }}</span>
+				</div>
+				<div class="card-link" v-if="!userInfo.fsdz"> {{ translate('暂无绑定') }} </div>
+				<div class="card-link" v-if="userInfo.fsdz"> {{ userInfo.fsdz }} </div>
+			</div>
+
+		</div>
+
+		<a-modal v-model:visible="openBind" :title="translate('绑定地址')" @ok="addressOk" :confirmLoading="addressLoading"
+			:ok-text="translate('确定')" :cancel-text="translate('取消')">
+			<a-input class="addressInput" v-model:value="updateAddressValue" :placeholder="translate('请输入绑定地址')" />
+		</a-modal>
+
+		<a-modal v-model:visible="openBind2" :title="translate('绑定推荐人')" @ok="recomOk" :confirmLoading="recomLoading"
+			:ok-text="translate('确定')" :cancel-text="translate('取消')">
+			<a-input class="addressInput" v-model:value="updateRecomValue.address"
+				:placeholder="translate('请输入推荐人地址')" />
+		</a-modal>
+
+
+	</div>
 </template>
 
 
 <script setup lang="ts">
-import ChangeLanguage from '../../../components/changeLanguage/ChangeLanguage.vue';
-import { onMounted, ref } from 'vue';
-import { useRouter } from 'vue-router';
-import { getUserInfoApi, loginApi, updateAddressApi, updateBindApi } from '../../../api/index'
-import { encryptDES, decryptData } from '../../../utils/DES'
-import { message } from 'ant-design-vue';
-import { translate } from '@/lang';
-
-const router = useRouter()
-
-const visible = ref(false)
-
-const backButton = ref()
-
-const openBind = ref(false)
-
-const openBind2 = ref(false)
-
-const addressLoading = ref(false)
-
-const recomLoading = ref(false)
-
-const updateAddressValue = ref()
-
-const updateRecomValue = ref({
-  code:'',
-  address:''
-})
-
-const userInfo = ref(JSON.parse(localStorage.botInfo))
-
-const pageTo = (data: any) => {
-  router.push(data)
-}
-
-const openAddress = () => {
-  openBind.value = true
-}
-
-const addressOk = async () => {
-  if (!updateAddressValue.value) {
-		message.warning('请先输入地址!')
-	}else{
-    addressLoading.value = true
-		let key:any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${updateAddressValue.value}"}`, 'Longteng')
-		const res:any = await updateAddressApi({key:key})
-		if (res.code == 200) {
-      addressLoading.value = false
-			localStorage.botInfo = JSON.stringify(res.data);
-			message.success(res.msg)
-			setTimeout(() => {
-				router.go(0)
-			}, 2000);
-		}else{
-      addressLoading.value = false
-			message.error(res.msg)
-		}
+	import ChangeLanguage from '../../../components/changeLanguage/ChangeLanguage.vue';
+	import { onMounted, ref } from 'vue';
+	import { useRouter } from 'vue-router';
+	import { getUserInfoApi, loginApi, updateAddressApi, updateBindApi } from '../../../api/index'
+	import { encryptDES, decryptData } from '../../../utils/DES'
+	import { message } from 'ant-design-vue';
+	import { translate } from '@/lang';
+
+	const router = useRouter()
+
+	const visible = ref(false)
+
+	const backButton = ref()
+
+	const openBind = ref(false)
+
+	const openBind2 = ref(false)
+
+	const addressLoading = ref(false)
+
+	const recomLoading = ref(false)
+
+	const updateAddressValue = ref()
+
+	const updateRecomValue = ref({
+		code: '',
+		address: ''
+	})
+
+	const userInfo = ref(JSON.parse(localStorage.botInfo))
+
+	const pageTo = (data : any) => {
+		router.push(data)
 	}
-}
-
-const recomOk = async () => {
-  if (!updateRecomValue.value.address ) {
-		message.warning('请先输入推荐人地址!')
-	}else{
-    recomLoading.value = true
-		let key:any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${updateRecomValue.value.address}"}`, 'Longteng')
-		const res:any = await updateBindApi({key:key})
-		if (res.code == 200) {
-      recomLoading.value = false
-      openBind2.value = false
-			localStorage.botInfo = JSON.stringify(res.data);
-			message.success(res.msg)
-			setTimeout(() => {
-				router.go(0)
-			}, 2000);
-		}else{
-      recomLoading.value = false
-			message.error(res.msg)
-		}
+
+	const openAddress = () => {
+		openBind.value = true
 	}
-}
 
-onMounted(() => {
-  (window as any).Telegram.WebApp.BackButton.isVisible = true;
-  userInfo.value = JSON.parse(localStorage.botInfo);
-})
+	const addressOk = async () => {
+		if (!updateAddressValue.value) {
+			message.warning('请先输入地址!')
+		} else {
+			addressLoading.value = true
+			let key : any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${updateAddressValue.value}"}`, 'Longteng')
+			const res : any = await updateAddressApi({ key: key })
+			if (res.code == 200) {
+				addressLoading.value = false
+				localStorage.botInfo = JSON.stringify(res.data);
+				message.success(res.msg)
+				setTimeout(() => {
+					router.go(0)
+				}, 2000);
+			} else {
+				addressLoading.value = false
+				message.error(res.msg)
+			}
+		}
+	}
 
+	const recomOk = async () => {
+		if (!updateRecomValue.value.address) {
+			message.warning('请先输入推荐人地址!')
+		} else {
+			recomLoading.value = true
+			let key : any = encryptDES(`{"user_id":${userInfo.value.user_id},"address":"${updateRecomValue.value.address}"}`, 'Longteng')
+			const res : any = await updateBindApi({ key: key })
+			if (res.code == 200) {
+				recomLoading.value = false
+				openBind2.value = false
+				localStorage.botInfo = JSON.stringify(res.data);
+				message.success(res.msg)
+				setTimeout(() => {
+					router.go(0)
+				}, 2000);
+			} else {
+				recomLoading.value = false
+				message.error(res.msg)
+			}
+		}
+	}
 
+	onMounted(() => {
+		(window as any).Telegram.WebApp.BackButton.isVisible = true;
+		userInfo.value = JSON.parse(localStorage.botInfo);
+	})
 </script>
 
 <style scoped lang="less">
-.homePage {
-  padding: 16px 16px 0;
-}
-
-.head-topBox {
-  display: flex;
-  justify-content: space-between;
-
-  .topBox-avatar {
-    display: flex;
-    align-items: center;
-
-    .avatar-img {
-      cursor: default;
-      width: 30px;
-      height: 30px;
-      line-height: 30px;
-      font-size: 18px;
-      text-align: center;
-    }
-
-    .avatar-text {
-      font-size: 16px;
-      font-weight: bold;
-      font-family: PingFang SC-Bold, PingFang SC;
-      margin-left: 4px;
-    }
-  }
-
-  .topBox-menu {
-    img {
-      margin-right: 12px;
-
-      &:last-of-type {
-        margin-right: 0;
-      }
-    }
-  }
-}
-
-.head-card {
-  box-sizing: border-box;
-  padding: 12px;
-  margin-top: 24px;
-  // height: 196px;
-  background: #FFFFFF;
-  box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
-  border-radius: 12px;
-
-  .card-title {
-    margin-top: 16px;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-
-    &:first-of-type {
-      margin-top: 0;
-    }
-
-    >h2 {
-      font-size: 14px;
-      font-weight: bold;
-    }
-    .bindButton {
-      text-decoration: none;
-      color: #294BA5;
-      font-size: 12px;
-      cursor: pointer;
-    }
-  }
-
-  .card-link {
-    box-sizing: border-box;
-    height: 44px;
-    background: rgba(0, 0, 0, 0.06);
-    border-radius: 8px;
-    padding: 0 8px;
-    display: flex;
-    align-items: center;
-    font-size: 12px;
-  }
-
-}
-.addressInput{
-  margin: 10px 0;
-}
+	.homePage {
+		padding: 16px 16px 0;
+	}
+
+	.head-topBox {
+		display: flex;
+		justify-content: space-between;
+
+		.topBox-avatar {
+			display: flex;
+			align-items: center;
+
+			.avatar-img {
+				cursor: default;
+				width: 30px;
+				height: 30px;
+				line-height: 30px;
+				font-size: 18px;
+				text-align: center;
+			}
+
+			.avatar-text {
+				font-size: 16px;
+				font-weight: bold;
+				font-family: PingFang SC-Bold, PingFang SC;
+				margin-left: 4px;
+			}
+		}
+
+		.topBox-menu {
+			img {
+				margin-right: 12px;
+
+				&:last-of-type {
+					margin-right: 0;
+				}
+			}
+		}
+	}
+
+	.head-card {
+		box-sizing: border-box;
+		padding: 12px;
+		margin-top: 24px;
+		// height: 196px;
+		background: #FFFFFF;
+		box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
+		border-radius: 12px;
+
+		.card-title {
+			margin-top: 16px;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			&:first-of-type {
+				margin-top: 0;
+			}
+
+			>h2 {
+				font-size: 14px;
+				font-weight: bold;
+			}
+
+			.bindButton {
+				text-decoration: none;
+				color: #294BA5;
+				font-size: 12px;
+				cursor: pointer;
+			}
+		}
+
+		.card-link {
+			box-sizing: border-box;
+			height: 44px;
+			background: rgba(0, 0, 0, 0.06);
+			border-radius: 8px;
+			padding: 0 8px;
+			display: flex;
+			align-items: center;
+			font-size: 12px;
+		}
+
+	}
+
+	.addressInput {
+		margin: 10px 0;
+	}
 </style>