Compare commits

...

4 Commits

Author SHA1 Message Date
254212a154 Merge branch 'dev' of http://47.129.22.53:22345/lizixuan/coinbus into dev 2026-01-16 10:37:52 +08:00
yyb
53e264584d insert 项目说明 2026-01-16 10:37:13 +08:00
yyb
d10d9e5fbb insert 项目说明 2026-01-16 10:35:46 +08:00
408e40b206 代码推送 2026-01-16 10:32:27 +08:00
571 changed files with 172759 additions and 4 deletions

3
yq/.browserslistrc Normal file
View File

@@ -0,0 +1,3 @@
> 1%
last 2 versions
not dead

8
yq/.env.test Normal file
View File

@@ -0,0 +1,8 @@
# 测试环境
NODE_ENV = 'test'
# 测试环境api前缀
VUE_APP_BASE_API = ''
# 测试环境Url地址
VUE_APP_BASE_URL = 'http://10.168.2.125:7101'

20
yq/.eslintrc.js Normal file
View File

@@ -0,0 +1,20 @@
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/essential',
'eslint:recommended'
],
parserOptions: {
parser: 'babel-eslint'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-redeclare': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-unused-vars': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
}

23
yq/.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

View File

@@ -1,5 +1,23 @@
目录简介:
- src/项目核心源码Vue2
- views/:业务页面(大量数据指标/图表页、个人中心、订阅、支付、帮助中心等)
- components/:通用组件(顶部/侧栏、表单、留言板等)
- router/路由配置history 模式、重复导航处理、部分页面权限信息)
- store/Vuex 状态管理(用户/Tab/大额交易等)
- api/:接口封装与请求工具
- util/工具库ECharts 数据处理、请求、加密、格式化等)
- lang/多语言与文案i18n、侧栏/页面文案、SEO 文案)
- public/:静态资源与入口 HTML图标/图片等)
- vue.config.js / babel.config.js构建配置
相关联其他文件:
- 入口与挂载src/main.js、src/App.vue、public/index.html
- 路由与导航src/router/index.js、src/components/CommonAside.vue、src/util/menu.js
- 接口请求src/api/*.js、src/util/request.js、src/api/http.js
- 图表与数据处理src/util/processingData.js、src/util/echarts.js、src/util/chartResize.js
- 多语言/SEO 文案src/lang/index.js、src/lang/zh.js、src/lang/en.js、src/lang/seoText/*
功能简介:
功能简介:
- 区块链/加密数据可视化平台前端:基于 Vue2 + ElementUI + ECharts 展示各类指标图表(含时间轴、缩放、均线等处理)。
- 用户与权限体系:路由 meta 中包含角色权限控制(注册/高级/vip/支持/审核/财务/管理员等)。
- 业务模块:个人中心、帮助中心/工单、订阅与告警、支付/充值/提现与后台管理、指标文档介绍、SEO 展示页等。

5
yq/babel.config.js Normal file
View File

@@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}

BIN
yq/dist.zip Normal file

Binary file not shown.

13420
yq/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

48
yq/package.json Normal file
View File

@@ -0,0 +1,48 @@
{
"name": "project",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"serve:test": "vue-cli-service serve --mode test",
"build:test": "vue-cli-service build --mode test"
},
"dependencies": {
"@dreysolano/prerender-spa-plugin": "^1.0.3",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^1.0.2",
"axios": "^0.27.2",
"bignumber.js": "^9.1.2",
"core-js": "^3.25.5",
"echarts": "^5.3.2",
"element-resize-detector": "^1.2.4",
"element-ui": "^2.15.8",
"encryptlong": "^3.1.4",
"vue": "^2.6.11",
"vue-i18n": "^8.27.2",
"vue-meta-info": "^0.1.7",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.2.0",
"vuex": "^3.4.0",
"vuex-persistedstate": "^4.1.0",
"wangeditor": "^4.7.15"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.17",
"@vue/cli-plugin-eslint": "~4.5.17",
"@vue/cli-plugin-router": "~4.5.17",
"@vue/cli-plugin-vuex": "~4.5.17",
"@vue/cli-service": "~4.5.17",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"jsencrypt": "^3.3.1",
"prerender-spa-plugin": "^3.4.0",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"sitemap-webpack-plugin": "^1.1.1",
"vue-template-compiler": "^2.6.11"
}
}

BIN
yq/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
yq/public/img/btc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
yq/public/img/busd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
yq/public/img/eth.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
yq/public/img/f1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
yq/public/img/f2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
yq/public/img/f3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
yq/public/img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
yq/public/img/gusd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
yq/public/img/husd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
yq/public/img/ltc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

85
yq/public/index.html Normal file
View File

@@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
<link rel="icon" type="image/x-icon" href="./favicon.ico">
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3157209_ua5c8rb0fwc.css">
<meta name="google-site-verification" content="tnPx29xrawMDQ-WEm9nzlcid1_ZK8o1T-WwpGMKwNuQ" />
<!-- SEO 相关 meta 标签优化 -->
<!--
- index: 允许搜索引擎索引此页面
- follow: 允许搜索引擎跟踪页面中的链接
- max-image-preview:large: 允许在搜索结果中显示大图预览
- max-snippet:-1: 允许搜索引擎显示任意长度的文本片段
- max-video-preview:-1: 允许搜索引擎显示任意长度的视频预览
-->
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<!-- 允许谷歌索引和跟踪链接-->
<meta name="googlebot" content="index, follow">
<meta name="googlebot-news" content="index, follow">
<meta name="bingbot" content="index, follow">
<link rel="canonical" href="https://coinbus.cc" />
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,minimum-scale=1.0">
<title>coinbus - A professional blockchain data analysis platform</title>
<meta name="description" content="Coinbus data analysis platform, covering BTC ETH、 Blockchain data from various aspects such as stablecoins and macroeconomics. Provide precise analysis of on chain data, market indicators, exchange data, trading volume, monitoring of large transactions, liquidity, bonds, and many other sectors to help you gain insights into cryptocurrency market trends">
<meta name="keywords" content="coinbus,BTC,ETH,stablecoins,macroeconomics,blockchain data analysis,on chain data,market indicators,exchange data,trading volume,large transactions,liquidity,bonds,cryptocurrency market trends">
</head>
<style>
body {
margin: 0px;
padding: 0;
/* height: 0px; */
/* //隐藏滚动条 */
scrollbar-width: none;
-ms-overflow-style: none;
border-right: none;
}
html{
/* //隐藏滚动条 */
scrollbar-width: none;
-ms-overflow-style: none;
border-right: none;
margin: 0px;
padding: 0;
overflow: hidden;
}
ul {
padding: 0;
margin: 0;
list-style: none
}
/* .messageClass{
z-index: 99999;
color: blue !important;
background: rebeccapurple;
} */
</style>
<body>
<!-- 当网站不支持vue时显示 -->
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

22
yq/public/robots.txt Normal file
View File

@@ -0,0 +1,22 @@
User-agent: * # 适用于所有搜索引擎爬虫
Allow: / #允许爬取根目录下的所有内容
Disallow: /admin
Disallow: /api
# 站点地图配置
Sitemap: https://coinbus.cc/sitemap.xml # 站点地图
# SEO优化 允许爬取各类静态资源文件
Allow: /*.js
Allow: /*.css
Allow: /*.png
Allow: /*.jpg
Allow: /*.gif
Allow: /*.svg
Allow: /*.ico

893
yq/src/App.vue Normal file
View File

@@ -0,0 +1,893 @@
<template >
<div id="app" class="capitalize">
<el-container style="height: 100vh">
<el-header class="headerTop" style="width: 100%; height: 60px">
<common-header></common-header>
</el-header>
<el-container style="overflow: auto">
<!-- 路由页面 v-if="routerPage == `IndexIntroduce`||routerPage == `noWeb` "-->
<div class="routePages" v-if="pageName !== `Web`">
<router-view class="capitalize"></router-view>
</div>
<!-- 组件页面 -->
<div class="mainBOOS" v-if="pageName == `Web`">
<div class="sidebar">
<common-aside></common-aside>
</div>
<div class="outer">
<el-container class="pageConcent">
<el-main class="el_main">
<router-view class="pages"></router-view>
</el-main>
</el-container>
</div>
</div>
</el-container>
</el-container>
<!-- 指标解释 -->
<el-col>
<div
v-show="pageName !== `IndexIntroduce`"
@click="handelIndexIntroduce"
class="i izhibiaoguanli indexIntroduce"
:data-text="$t(`home.introduction`)"
style="color: #6580a9; font-size: 50px"
></div>
</el-col>
</div>
</template>
<script>
import CommonAside from "./components/CommonAside.vue";
import CommonHeader from "./components/CommonHeader.vue";
import commonFooter from "./components/commonFooter.vue";
import * as echarts from "echarts";
export default {
components: {
CommonAside,
CommonHeader,
commonFooter,
},
data() {
return {
value: "1",
options: [
{
value: "1",
label: "Bitcoin (BTC)",
src: "https://studio.glassnode.com/images/crypto-icons/btc.png",
},
{
value: "2",
label: "Ethereum (ETH)",
src: "https://studio.glassnode.com/images/crypto-icons/eth.png",
},
{
value: "3",
label: "Litecoin (LTC)",
src: "https://studio.glassnode.com/images/crypto-icons/ltc.png",
},
{
value: "4",
label: "Binance USD (BUSD)",
src: "https://studio.glassnode.com/images/crypto-icons/busd.png",
},
{
value: "5",
label: "Gemini dollar (GUSD)",
src: "https://studio.glassnode.com/images/crypto-icons/gusd.png",
},
{
value: "6",
label: "HUSD (HUSD)",
src: "https://studio.glassnode.com/images/crypto-icons/husd.png",
},
],
// menuHeight: {
// height: "900px",
// },
bodyHeight: "",
mainComponent: "mainStartCom",
isShrink: false, //控制是否改变宽度
fatherWidth: "300",
pageWidth: 0,
chart: null,
routerPage: "web",
pageName: "",
};
},
created() {
//动态调整左侧菜单栏高度 document.documentElement.clientHeight
// var docHeight = document.body.clientHeight;
// if (!docHeight) {
// this.menuHeight.height = 900 +`px`
// }else{
// this.menuHeight.height = docHeight - 20 + "px";
// }
// this.menuHeight.height = docHeight - 20 + "px";
// this.menuHeight.height=localStorage.getItem("screenHight")
// 监听localstorage改变赋值
this.bodyHeight = localStorage.getItem("screenHight");
window.addEventListener("setItem", () => {
this.bodyHeight = localStorage.getItem("screenHight");
});
},
watch: {
menuHeight: {
handler(val) {
// console.log(val.height, 1234565);
},
deep: true,
immediate: true,
},
"$route.name"(newValue) {
this.pageName = newValue;
},
},
mounted() {
this.pageName = this.$route.name;
//监听localStorage
window.addEventListener("setItem", () => {
this.routerPage = JSON.parse(localStorage.getItem("routerPage"));
});
},
methods: {
//点击指标介绍 打开新窗口
handelIndexIntroduce() {
let url =
window.location.origin +
this.$router.resolve({ name: "IndexIntroduce" }).href;
let a = window.open(url, "_blank");
},
},
};
</script>
<style lang="scss" scoped>
// -----------顶部导航栏------------------------
* {
box-sizing: border-box;
}
#app{
//隐藏滚动条
scrollbar-width: none;
-ms-overflow-style: none;
border-right: none;
// overflow: hidden;
box-sizing: border-box;
overflow-x: hidden;
}
html{
//隐藏滚动条
scrollbar-width: none;
-ms-overflow-style: none;
border-right: none;
box-sizing: border-box;
overflow: hidden;
background: gold;
}
html,
body {
margin: 0px;
padding: 0px;
box-sizing: border-box;
overflow-x: hidden;
}
* {
box-sizing: border-box;
}
.el-container{
//隐藏滚动条
scrollbar-width: none;
-ms-overflow-style: none;
border-right: none;
}
.pageConcent {
// outline: 1px solid red;
// background: rgba(0,0,0, 0.1);
// background-image: linear-gradient(to bottom, rgba(231,248,255,0.9), rgba(0,0,0,0), rgba(0,0,0,0.1));
background-image: linear-gradient(
to bottom,
rgba(231, 248, 255, 0.6),
rgba(231, 248, 255, 0.6),
rgba(231, 248, 255, 0.2),
rgba(255, 255, 255, 0)
);
// background: #fff;
// color: var(--okd-color-text-amplifed);
// padding: 0px 1%;
// width: 100%;
min-height: 100%;
// width:calc(100vw - 330px);
// outline: 1px solid red;
// background: firebrick;
// background: #888888;
width: 100%;
.el_main {
overflow-x: hidden;
// width: 90%;
// width: 20%;
// width:calc(100vw - 330px);
min-height: 100%;
display: flex;
justify-content: center;
// background: green;
width: 100%;
// width: 74vw;
.pages {
width: 90%;
min-height: 85%;
margin: 80px 0px;
box-shadow: 2px 5px 15px -5px #888888;
padding: 30px 0px;
// background: #fff;
background: #fafdfe;
// background: #383d71;
}
}
}
#app {
// width: 100vw;
// height: 100vh;
box-sizing: border-box;
// width: 100%;
// height: 100%;
// outline: 1px solid red;
// background: honeydew;
background-image: linear-gradient(
to bottom,
rgba(231, 248, 255, 1),
rgba(231, 248, 255, 0.6),
rgba(231, 248, 255, 0.6),
#fff
);
// background: goldenrod;
overflow-x: hidden;
//loading 层级
::v-deep .el-loading-mask {
z-index: 1998 !important;
}
.indexIntroduce {
// outline: 1px solid red;
position: fixed;
top: 180px;
right: 50px;
width: 10px;
height: 80px;
border-radius: 80px;
display: flex;
align-items: center;
justify-content: center;
}
.indexIntroduce:hover {
color: #f7931a !important;
// background: #f5390e;
cursor: pointer;
}
.indexIntroduce:hover::after {
content: attr(data-text); /* 显示的文字内容 国际化 */
position: absolute;
top: 80%;
left: 50%;
transform: translateX(-50%); /* 水平居中 */
// padding: 5px; /* 内边距 */
color: #000; /* 文字颜色 */
font-size: 12px; /* 文字大小 */
width: 60px;
// outline: 1px solid red;
text-align: center;
color: #f7931a;
}
}
#app .header {
width: inherit;
height: 60px;
display: flex;
align-items: center;
justify-content: space-between;
position: fixed;
line-height: 60px;
color: #b3c0d1;
left: 0%;
top: 0%;
z-index: 1999.5;
// outline: 1px solid red;
padding: 0px 20px;
// background: #383d71;
color: #fff;
}
.el-card__body,
.el-main {
padding: 2px;
}
.headList,
.headList2 {
height: 100%;
display: flex;
align-items: center;
font-size: 13px;
color: rgba(0, 0, 0, 0.5);
// outline: 1px solid red;
padding-inline-start: 0px;
margin-block-end: 0px;
margin-block-start: 0px;
}
.mainBOOS {
// outline: 1px solid red;
min-width: 99vw;
// height: calc(100vh - 60px);
display: flex;
height: 100vh;
}
// .mainBOOS ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// height: 0;
// }
// .mainBOOS ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// }
// .mainBOOS ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// height: 0;
// }
.sidebar {
// width: 320px;
height: calc(100vh - 60px);
// background: red;
background-image: linear-gradient(
to bottom,
rgba(231, 248, 255, 1),
rgba(231, 248, 255, 0.6),
rgba(231, 248, 255, 0.4),
);
box-shadow: 2px 5px 15px -5px #888888;
position: relative;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
z-index: 1999;
}
.outer {
// height: calc(100vh - 60px);
// height: 100%;
overflow-y: auto;
// overflow-y: none;
// background: #383d71;
flex: 1;
// outline: 1px solid red;
// background: green;
width: 100%;
height: 100%;
}
// .outer > .pageConcent ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// height: 0;
// }
// ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// }
// ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// height: 0;
// }
/* 设置滚动条的基本样式 */
::-webkit-scrollbar {
width: 0px; /* 设置滚动条的宽度 */
}
/* 设置滚动条轨道样式 */
::-webkit-scrollbar-track {
background-color: #f5f5f5; /* 设置滚动条轨道的背景色 */
}
/* 设置滚动条滑块样式 */
::-webkit-scrollbar-thumb {
background-color: #ccc; /* 设置滚动条滑块的背景色 */
border-radius: 20px; /* 设置滚动条滑块的圆角 */
// background: rgba(247,147,26, 0.1);
}
/* 设置滚动条滑块在鼠标悬停时的样式 */
::-webkit-scrollbar-thumb:hover {
background-color: #888; /* 设置滚动条滑块在鼠标悬停时的背景色 */
}
li {
list-style: none;
height: 30px;
line-height: 30px;
display: flex;
align-items: center;
justify-content: center;
// outline: 1px solid red ;
}
li:hover {
color: #000;
}
.headList li {
margin-left: 15px;
// outline: 1px solid red ;
}
.headList2 li {
margin-left: 15px;
// outline: 1px solid red ;
}
#app .headList2 li {
// outline: 1px solid red ;
padding: 5px 5px;
}
#app .headList li {
// outline: 1px solid red ;
padding: 5px 5px;
}
.registered {
outline: 1px solid red;
text-align: center;
outline: 1px solid rgba(0, 0, 0, 0.2);
}
// -----------中间部分-------------------------
.middle {
width: inherit;
// height: 100px;
outline: 1px solid;
// background: green;
padding-top: 60px;
display: flex;
justify-content: space-between;
align-items: center;
}
.middle > .left {
width: 280px;
// height: 600px;
// display: flex;
// flex-direction: column;
background: paleturquoise;
padding-top: 60px;
}
.middle > .right {
display: flex;
flex: 1;
height: 600px;
background: khaki;
}
// -----------侧边栏----------------------------
.left .search {
width: inherit;
height: 60px;
outline: 1px solid red;
position: fixed;
top: 60px;
left: 0px;
background: pink;
}
.left .sidebar {
outline: 1px solid red;
// width: inherit;
}
// .sidebar {
// width: 25%;
// height: 100vh;
// outline: 1px solid red;
// background: honeydew;
// margin-top: 41px;
// padding: 1px;
// position: relative;
// display: flex;
// }
// 侧边导航
// .sidebarNav {
// width: 100%;
// display: flex;
// flex: 1;
// outline: 1px solid red;
// margin-top: 80px;
// }
// ---------------搜索下拉框样式-----------------------
// .search {
// width: 280px;
// height: 35px;
// line-height: 35px;
// outline: 1px solid red;
// // background: red;
// margin-top: 10px;
// position: fixed;
// top: 40px;
// left: 20px;
// z-index: 99;
// }
// .dark-select {
// border: 1px solid rgba(0, 0, 0, 0.5);
// width: 200px;
// border-radius: 5px;
// margin-top: 40px;
// display: inline-block;
// // margin-top: 10px;
// .el-select-dropdown__item {
// line-height: 30px;
// height: 30px;
// }
// .el-select .el-input .el-select__caret.el-icon-::before {
// content: "\e790";
// position: absolute;
// width: 100%;
// height: 100%;
// top: 50%;
// left: 50%;
// transform: translate(-50%, -50%);
// }
// // 修改input默认值颜色 兼容其它主流浏览器
// input::-webkit-input-placeholder {
// // color: rgba(255, 255, 255, 0.60);
// color: rgba(0, 0, 0, 0.4);
// }
// input::-moz-input-placeholder {
// // color: rgba(255, 255, 255, 0.60);
// color: rgba(0, 0, 0, 0.6);
// }
// input::-ms-input-placeholder {
// // color: rgba(255, 255, 255, 0.60);
// color: rgba(0, 0, 0, 0.6);
// }
// // input框
// .el-select,
// .el-input,
// .el-input__inner {
// // background-color: rgba(0, 0, 0, 0.3);
// background-color: rgba(255, 255, 255, 0.1);
// // background-color: #ccc;
// // color: rgba(255, 255, 255, 0.50);
// // color: #fff;
// // border: 1px solid #000;
// // outline: 1px solid #000;
// outline: none;
// border: none; // 去掉边框
// // border-color: "#000";// 默认边框的颜色
// // text-align: left;
// // border-radius: 4px;
// }
// // 选中时边框颜色
// // .el-input__inner:focus{
// // border-color: "#000"
// // }
// // 鼠标悬浮时 input框颜色
// // .el-input__inner:hover{
// // background-color: rgba(0, 0, 0, 0.3);
// // }
// // input框 右侧的箭头
// // .el-select .el-input .el-select__caret {
// // color: rgba(255, 255, 255, 0.50);
// // }
// // option选项 上面的箭头
// // .el-popper[x-placement^="bottom"] .popper__arrow::after {
// // // border-bottom-color: rgba(43, 45, 55, 0.80);
// // // border-bottom-color: rgba(0, 0, 0, 0.10);
// // // background: rgba(0, 0, 0, 0.2);
// // // z-index: 9999;
// // }
// // .popper__arrow {
// // border: none;
// // }
// // option选项 最外层
// .el-select-dropdown {
// // border: none !important;
// // background: rgba(43, 45, 55, 0.80) !important;
// // background: rgba(0, 0, 0, 0.2) !important;
// // background: #fff;
// border: 1px solid rgba(0, 0, 0, 0.2);
// z-index: 9;
// }
// // option选项 文字样式
// .el-select-dropdown__item {
// // color: rgba(255, 255, 255, 0.50) !important;
// // color: rgba(0, 0, 0, 0.50) !important;
// // color: #000;
// z-index: 9;
// font-size: 12px;
// }
// .el-select-dropdown__item.selected span {
// // color: rgba(255, 255, 255, 0.80) !important;
// // color: rgba(0, 0, 0, 0.50) !important;\ \
// font-size: 12px;
// z-index: 9;
// }
// // 移入option选项 样式调整
// // .el-select-dropdown__item {
// // height: 20px;
// // margin-top: 10px;
// // }
// // // .el-select-dropdown__item.hover {
// // // background-color: rgba(255, 255, 255, 0.06);
// // // background-color: #d2d6e8;
// // // color: rgba(255, 255, 255, 0.60) !important;
// // z-index: 9999;
// // }
// // 下拉框垂直滚动条宽度
// // .el-scrollbar__bar.is-vertical {
// // width: 10px;
// // top: 2px;
// // }
// // 下拉框最大高度
// // .el-select-dropdown__wrap {
// // max-height: 200px;
// // }
// }
.option {
display: flex;
align-items: center;
justify-content: left;
.label {
margin-left: 5px;
}
}
// ------------子导航加内容整体盒子-------------------------
// .contents {
// width: 79vw;
// position: absolute;
// top: 0px;
// right: 0px;
// border: 1px solid rgba(0, 0, 0, 0.3);
// background: res;
// }
// .el-card__body,
// .el-main {
// padding: 0px !important;
// }
// .el-header {
// // background-color: #b3c0d1;
// height: 40px !important;
// display: flex;
// align-items: center;
// color: #333;
// // background: #b3c0d1;
// border-bottom: 1px solid rgba(0, 0, 0, 0.2);
// }
// // -------子导航----第二横向导航栏-------------------------
// .sc-jGprRt {
// display: flex;
// align-items: center;
// // outline: 1px solid red;
// width: 300px;
// justify-content: space-around;
// }
// .sc-jGprRt button {
// display: flex;
// // outline: 1px solid red;
// border: 1px solid rgba(0, 0, 0, 0.2);
// color: rgba(0, 0, 0, 0.6);
// padding: 2px 5px;
// align-items: center;
// justify-content: space-around;
// transition: linear 0.2s;
// border-radius: 2px;
// }
// .sc-jGprRt button:hover {
// border: 1px solid rgba(0, 0, 0, 0.6);
// }
// // .el-aside {
// // color: #333;
// // // color: #ccc;
// // }
// ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// }
// ::-webkit-scrollbar {
// //隐藏滚动条
// width: 0 !important;
// height: 0;
// }
// // ----------侧边栏-------------------------------
// .optionItem span {
// margin-left: 10px;
// }
// .aside {
// outline: 1px slid red;
// }
// .el-submenu .el-submenu__title {
// height: 35px;
// line-height: 35px;
// display: flex;
// align-items: center;
// font-size: 12px;
// }
// .el-submenu .el-menu-item {
// height: 30px !important;
// // width: inherit;
// white-space: nowrap; //不换行
// text-overflow: ellipsis; //将文本溢出显示为(…)
// overflow: hidden; //溢出隐藏。
// line-height: 30px !important;
// margin: 0px;
// padding-left: 25px !important;
// font-size: 10px !important;
// // outline: 1px solid red;
// }
// //子选项
// .itemT1 span:nth-of-type(1) {
// color: rgb(104, 113, 152);
// display: inline-block;
// vertical-align: middle;
// // outline: 1px solid red;
// background: rgb(229, 231, 240);
// font-size: 0.75rem;
// font-weight: bold;
// text-transform: capitalize;
// border-radius: 4px;
// height: 20px;
// width: 20px;
// text-align: center;
// line-height: 20px;
// }
// .el-menu-item-group__title {
// padding-left: 20px !important;
// }
// .itemT2 span:nth-of-type(1) {
// display: inline-block;
// vertical-align: middle;
// width: 20px;
// height: 20px;
// line-height: 20px;
// font-size: 0.75rem;
// font-weight: bold;
// overflow: hidden;
// border-radius: 4px;
// text-align: center;
// letter-spacing: -1px;
// white-space: nowrap;
// text-transform: capitalize;
// background: rgb(230, 238, 255);
// color: rgb(35, 110, 254);
// }
// .itemT3 span:nth-of-type(1) {
// display: inline-block;
// vertical-align: middle;
// width: 20px;
// height: 20px;
// line-height: 20px;
// font-size: 0.75rem;
// font-weight: bold;
// overflow: hidden;
// border-radius: 4px;
// text-align: center;
// letter-spacing: -1px;
// white-space: nowrap;
// text-transform: capitalize;
// background: rgb(250, 233, 237);
// color: rgb(254, 109, 145);
// }
// .title2 {
// display: inline;
// margin-left: 10px;
// color: rgba(0, 0, 0, 0.6);
// }
//
//
// .el-container.is-vertical {
// flex-direction: row;
// }
// // .el-main{
// // background: red;
// // position: absolute;
// // top: 0px;
// // left: 0px;
// // }
.resize {
cursor: col-resize;
position: absolute;
right: 0;
height: 100%;
width: 5px;
}
.routePages {
min-width: 99vw;
height: 93.5vh;
// outline: 1px solid red;
// background: gold;
// padding: 20px;
// overflow-y: auto;
box-sizing: border-box;
// overflow: hidden;
.jumpHome {
// outline: 1px solid red;
width: 100%;
display: inline-block;
text-align: right;
height: 30px;
line-height: 50px;
color: rgba(0, 0, 0, 0.9);
span {
position: fixed;
right: 20px;
top: 60px;
font-size: 14px;
font-weight: 600;
}
span:hover {
color: #f7931a;
}
}
}
</style>
<style lang="scss">
/* 警告语层级 */
.messageClass {
z-index: 999999 !important;
}
//公式的公共样式
.formulas {
display: flex;
justify-content: center;
align-items: center;
font-weight: 550;
color: rgba(0, 0, 0, 0.6);
div:nth-of-type(2) {
display: flex;
flex-direction: column;
margin-left: 10px;
span {
text-align: center;
}
span:nth-of-type(1) {
border-bottom: 1px solid rgba(0, 0, 0, 1);
}
}
}
</style>

View File

@@ -0,0 +1,64 @@
// import { ref } from "vue";
// import axios from "axios";
// const keyword = ref("");
// let temp;
// const search = () => {
// temp?.("取消请求"); // 取消上一次请求
// axios({
// method: "post",
// url: "/api",
// data: { wd: keyword.value },
// cancelToken: new axios.CancelToken((cancel) => {
// // 接受一个 cancel 取消当前请求的方法
// temp = cancel;
// })
// }).then((res) => {
// // 成功
// }).catch((err) => {
// if (axios.isCancel(err)) {
// console.log(err.message); // 被取消时的参数
// } else {
// console.log(err); // 请求错误
// }
// });
// };
// import { AxiosRequestConfig } from "axios";
// export default {
// tokens: new Map(),
// getKey: (config: AxiosRequestConfig): string => [config.url,config.method].join("&"),
// add(config: AxiosRequestConfig) {
// const pendingKey = this.getKey(config);
// config.cancelToken =
// config.cancelToken ||
// new axios.CancelToken((cancel) => {
// if (!this.tokens.has(pendingKey)) {
// this.tokens.set(pendingKey, cancel);
// }
// });
// },
// remove(config: AxiosRequestConfig) {
// const pendingKey = this.getKey(config);
// if (this.tokens.has(pendingKey)) {
// const cancelToken = this.tokens.get(pendingKey);
// cancelToken(pendingKey);
// this.tokens.delete(pendingKey);
// }
// },
// removeAll() {
// this.tokens.forEach((value, key) => {
// const cancelToken = this.tokens.get(key);
// cancelToken(key);
// this.tokens.delete(key);
// });
// },
// };

685
yq/src/api/api.js Normal file
View File

@@ -0,0 +1,685 @@
import { get,POST } from './http'
export default class API {
//盈利地址数
static getDownloadFile(ids) {
return get(`/marketall/ticket/downloadFile?ids=${ids}`)
}
//盈利地址数
static getProfitAddress(req, radius, start, end) {
if (start) {
return get(`/marketall/${radius}/v2/${req}?start=${start}`)
} else {
return get(`/marketall/${radius}/v2/${req}`)
}
}
//
static getHolder(req, radius, start, end) {
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
//验证邮箱是否注册过
static getcheckMail(email) {
return get(`/system/user/checkMail/${email}`)
}
//请求个人中心资料
static getpersonal() {
return get(`/system/user/profile`)
}
//请求重置密码验证码
static getpasswrodCode() {
return get(`/auth/restPwdCode`)
}
//请求注册弹窗验证码图片
static getCodeEmail(username, email) {
return get(`/auth/emailcode?userName=${username}&email=${email}`)
}
//请求验证码图片
static getVerification() {
return get(`/code`)
}
//请求erc20 token大额交易 前50的token
static getETHTokenAbbrs() {
return get(`/marketall/eth/ETHTokenAbbrs`)
}
//BTC移动平均线
static getEthSma(day, start, end,) {
if (start) {
return get(`/marketall/eth/sma/${day}?start=${start}&end=${end}`)
} else {
return get(`/marketall/eth/sma/${day}`)
}
}
//BTC移动平均线
static getSma(day, start, end,) {
if (start) {
return get(`/marketall/btc/sma/${day}?start=${start}&end=${end}`)
} else {
return get(`/marketall/btc/sma/${day}`)
}
}
//新合约地址
static getNewContract(req, radius, page, limit,total) {
if (total) {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}&total=${total}`)
}else{
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
//11月2号 更改dailyBuySell接口
static getDailyBuySell(req, radius, start, end, page, limit) {
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
//大额交易搜索 分页 没有时间搜索 26修改接口
static getBigDeals3(req, radius, search, page, limit) {
if (search) {
return get(`/marketall/${radius}/${req}?total=${search}&page=${page}&limit=${limit}`)
} else if (!search) {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
//新增csupply 流通供应量/ 累计币天销毁量(流通供应量)
static getMvrv(req, radius, start, end) {
if (radius !== "BTC" && start) {
return get(`/marketall/list/interface?req=market&radius=${radius}&start=${start}&end=${end}`)
} else if (radius == "BTC" && start && end) {
return get(`/marketall/btc/mvrv?start=${start}&end=${end}`)
} else if (radius == "BTC" && !start) {
return get(`/marketall/btc/mvrv`)
} else {
console.log("走着空间看到就", `${req, radius}`);
return get(`/marketall/list/interface?req=market&radius=${radius}`)
}
}
//新增csupply 流通供应量/ 累计币天销毁量(流通供应量)
static getCsupply(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//新增soag 币天销毁量年龄分布
static getSoag(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//新增dormancy 已花费输出休眠平均天数
static getDormancy(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//新增asol已花费输出平均寿命
static getAsol(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//新增sopr 已花费输出盈利比
static getSopr(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//新增Profitrate 已实现盈利交易占比
static getProfitrate(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//纳斯达克日K BTC 日K
static getNDAQBTCPrice(req, start, end,sma) {
if (sma) {
if (start) {
return get(`/marketall/market/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/market/${req}?sma=${sma}`)
}
}else{
if (start) {
return get(`/marketall/market/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/market/${req}`)
}
}
}
//合约主动买入量
static getTakerlongshortRatio(symbol, period, start, end, limit) {
// &limit=${limit}
if (start) {
return get(`/futures/data/takerlongshortRatio?symbol=${symbol}&period=${period}&startTime=${start}&endTime=${end}`)
} else {
return get(`/futures/data/takerlongshortRatio?symbol=${symbol}&period=${period}`)
}
}
//未平仓合约数
static getOpenInterest(symbol, start, end, limit) {
// &limit=${limit}
if (symbol && start) {
return get(`/fapi/v1/openInterest?symbol=${symbol}&startTime=${start}&endTime=${end}`)
} else if (!symbol && start) {
return get(`/fapi/v1/openInterest?startTime=${start}&endTime=${end}`)
} if (symbol && !start) {
return get(`/fapi/v1/openInterest?symbol=${symbol}`)
} else {
return get(`/fapi/v1/openInterest`)
}
}
//资金费率
static getFundingRate(symbol, start, end, limit) {
// &limit=${limit}
if (symbol && start) {
return get(`/fapi/v1/fundingRate?symbol=${symbol}&startTime=${start}&endTime=${end}`)
} else if (!symbol && start) {
return get(`/fapi/v1/fundingRate?startTime=${start}&endTime=${end}`)
} if (symbol && !start) {
return get(`/fapi/v1/fundingRate?symbol=${symbol}`)
} else {
return get(`/fapi/v1/fundingRate`)
}
}
//每日交易量、交易费
static getVolume(req, radius, start, end,sma) {
if (sma) {
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
static getFees(req, radius, start, end,) {
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
//ma370
static getMa370(req, radius, start, end,sma) {
if (sma) {
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//每日币价K线 新增capReal
static getCapReal(start, end,) {
if (start) {
return get(`/marketall/btc/capReal?coin=BTC&start=${start}&end=${end}`)
} else {
return get(`/marketall/btc/capReal?coin=BTC`)
}
}
//请求BTC price价格
static getBtcPrice(start, end,) {
if (start) {
return get(`/marketall/list/interface?req=price&radius=btc&start=${start}&end=${end}`)
} else {
return get(`/marketall/list/interface?req=price&radius=btc`)
}
}
//请求BTC/ETH price价格
static getBtcPrice2(radius, start, end,) {
if (start) {
return get(`/marketall/list/interface?req=price&radius=${radius}&start=${start}&end=${end}`)
} else {
return get(`/marketall/list/interface?req=price&radius=${radius}`)
}
}
//币安 条件查询
static getPriceValueLine(start, end,) {
return get(`/marketall/bian/list?symbol=BTCUSDT&start=${start}&end=${end}`)
if (req && start && end) {
return get(`/marketall/${radius}/${req}?symbol=${symbol}&timeInterval=${timeInterval}&start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}?symbol=${symbol}&timeInterval=${timeInterval}`)
}
// &start=${start}&end=${end}
}
//以太坊巨鲸地址余额列表
static getTopAddrList(type, page, limit) {
if (type) {
return get(`/marketall/eth/ethTopAddrList?total=${type}&page=${page}&limit=${limit}`)
} else {
return get(`/marketall/eth/ethTopAddrList?page=${page}&limit=${limit}`)
}
if (req && start && end && type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&type=${type}`)
} else if (req && start && end && !type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
//地址对应标记持有者名称关系列表
static getBtctags(req, radius, page, limit) {
if (req && page && !limit) {
return get(`/marketall/${radius}/${req}?page=${page}`)
} else if (req && page && limit) {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
} else if (req && !page && limit) {
return get(`/marketall/${radius}/${req}?limit=${limit}`)
}
else {
return get(`/marketall/${radius}/${req}`)
}
}
//天针
static getDaysNeedle(interval, limit) {
return get(`https://13.214.133.132:7101/marketall/bian/tz?interval=${interval}&limit=${limit}`)
}
//8/29新增币价当前市值排名
static getCoinmarketall() {
return get(`/marketall/list/coinmarket/all`)
}
//8/29新增24小时币价
static getCoinmarket(coin, start, end) {
if (coin) {
return get(`/marketall/list/coinmarket?coin=${coin}&start=${start}&end=${end}`)
} else {
return
}
if (start) {
return get(`/marketall/list/coinmarket?coin=${coin}&start=${start}&end=${end}`)
} else {
return get(`/marketall/list/coinmarket?coin=${coin}`)
}
}
//8/15新增币安价格
static getPriceValue(interval, start, end) {
return get(`/marketall/bian/priceValue?interval=${interval}&start=${start}&end=${end}`)
// return get(`/marketall/bian/priceValue?symbol=BTCUSDT&start=${start}&end=${end}`)
}
//8月5号新增BalanceData
static getBalanceData(req, radius, value, start, end) {
if (req && !start && !end) {
return get(`/marketall/${radius}/${req}/${value}`)
} else {
return get(`/marketall/${radius}/${req}/${value}?start=${start}&end=${end}`)
}
}
//8月2号新增getTopList
static getTopList(req, radius, type,) {
if (req && type) {
return get(`/marketall/${radius}/${req}?${type}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
//20号新增newAddress
static getNewAddress(req, radius, start, end,sma) {
if (sma) {
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
//币安 条件查询
static getBiAnController(req, radius, symbol, timeInterval, start, end, type,) {
if (req && start && end) {
return get(`/marketall/${radius}/${req}?symbol=${symbol}&timeInterval=${timeInterval}&start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}?symbol=${symbol}&timeInterval=${timeInterval}`)
}
// &start=${start}&end=${end}
}
//arh99请求格式不同
static getArh(req, radius, start, end) {
if (req && start && end) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
//大额交易搜索 不分页
static getBigDeals2(req, radius, search, start, end, page, limit) {
if (search && start && end) {
return get(`/marketall/${radius}/${req}?total=${search}&start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else if (req && search && !start) {
return get(`/marketall/${radius}/${req}?total=${search}&page=${page}&limit=${limit}`)
} else if (req && !search && !start) {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
//大额交易搜索 带分页
static getETHTokenBigtx(req, radius, search, start, end, page, limit, abbr) {
if (abbr) {
if (search && start && end) {
return get(`/marketall/${radius}/${req}?total=${search}&start=${start}&end=${end}&page=${page}&limit=${limit}&abbr=${abbr}`)
} else if (req && search && !start) {
return get(`/marketall/${radius}/${req}?total=${search}&page=${page}&limit=${limit}&abbr=${abbr}`)
} else if (req && !search && !start) {//默认渲染一天的数据 带时间
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}&abbr=${abbr}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}&abbr=${abbr}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}&abbr=${abbr}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}&abbr=${abbr}`)
}
} else {
if (search && start && end) {
return get(`/marketall/${radius}/${req}?total=${search}&start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else if (req && search && !start) {
return get(`/marketall/${radius}/${req}?total=${search}&page=${page}&limit=${limit}`)
} else if (req && !search && !start) {//默认渲染一天的数据 带时间
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
}
//大额交易搜索 带分页
static getBigDeals(req, radius, search, start, end, page, limit) {
if (search && start && end) {
return get(`/marketall/${radius}/${req}?total=${search}&start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else if (req && search && !start) {
return get(`/marketall/${radius}/${req}?total=${search}&page=${page}&limit=${limit}`)
} else if (req && !search && !start) {//默认渲染一天的数据 带时间
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
} else if (req && !search && start && page) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else if (req && !search && start) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&page=${page}&limit=${limit}`)
} else {
return get(`/marketall/${radius}/${req}?page=${page}&limit=${limit}`)
}
}
//大额tabel表格
static getBigDealsTabel(req, radius, address, txId) {
if (address) {
return get(`/marketall/${radius}/${req}?address=${address}`)
} else {
return get(`/marketall/${radius}/${req}?txId=${txId}`)
}
}
//大额交易数量查询
static getBigDealsCount(req, radius, start, end, type,sma) {
if (sma) {
if (req && start && end && type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&type=${type}&sma=${sma}`)
} else if (req && start && end && !type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/${radius}/${req}?sma=${sma}`)
}
}else{
if (req && start && end && type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}&type=${type}`)
} else if (req && start && end && !type) {
return get(`/marketall/${radius}/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/${radius}/${req}`)
}
}
}
static getNdaqData(type, start, end) {//NAQA
if (start && end) {
return get(`${type}&start=${start}&end=${end}`)
} else {
return get(`${type}`)
}
}
//通用请求
static getActiveaddress(req, radius, start, end,sma) {//Activeaddress
if (sma) {
if (req && radius && start && end) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}&start=${start}&end=${end}&sma=${sma}`)
} else if (req && radius && !start) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}&sma=${sma}`)
} else if (req && !radius && start && end) {
return get(`/marketall/list/interface?req=${req}&start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/list/interface?req=${req}&sma=${sma}`)
}
}else{
if (req && radius && start && end) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}&start=${start}&end=${end}`)
} else if (req && radius && !start) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}`)
} else if (req && !radius && start && end) {
return get(`/marketall/list/interface?req=${req}&start=${start}&end=${end}`)
} else {
return get(`/marketall/list/interface?req=${req}`)
}
}
}
//请求价格
static getPriceOHLC(req, radius, start, end) {//Activeaddress
if (start && end) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}&start=${start}&end=${end}`)
}
if (req && radius) {
return get(`/marketall/list/interface?req=${req}&radius=${radius}`)
} else if (req && !radius && start && end) {
return get(`/marketall/list/interface?req=${req}&start=${start}&end=${end}`)
} else {
return get(`/marketall/list/interface?req=${req}`)
}
}
//NDAQ
static getPriceNDAQ(req, start, end,sma) {//Activeaddress
if (sma) {
if (start, end) {
return get(`/marketall/market/${req}?start=${start}&end=${end}&sma=${sma}`)
} else {
return get(`/marketall/market/${req}?sma=${sma}`)
}
}else{
if (start, end) {
return get(`/marketall/market/${req}?start=${start}&end=${end}`)
} else {
return get(`/marketall/market/${req}`)
}
}
}
}

312
yq/src/api/apiPost.js Normal file
View File

@@ -0,0 +1,312 @@
import request from './http'
//盈利地址数
export function fetchProfitAddress(data) {
return request({
url: `/marketall/btc/v2/profitAddress`,
method: 'post',
data
})
}
//亏损地址数
export function fetchLossAddress(data) {
return request({
url: `/marketall/btc/v2/lossAddress`,
method: 'post',
data
})
}
//地址盈亏比
export function fetchProfitRatio(data) {
return request({
url: `/marketall/btc/v2/profitRatio`,
method: 'post',
data
})
}
//长期持有者供应量
export function fetchLthSupply(data) {
return request({
url: `/marketall/btc/v2/lthSupply`,
method: 'post',
data
})
}
//短期持有者供应量
export function fetchSthSupply(data) {
return request({
url: `/marketall/btc/v2/sthSupply`,
method: 'post',
data
})
}
// 已实现价格
export function fetchRealizedPrice(data) {
return request({
url: `/marketall/btc/v2/realizedPrice`,
method: 'post',
data
})
}
// 长/短期持有者供应量盈亏比
export function fetchRelativeLthSth(data) {
return request({
url: `/marketall/btc/v2/relativeLthSth`,
method: 'post',
data
})
}
// 长期持有者盈利总供应量
export function fetchLthProfitSupply(data) {
return request({
url: `/marketall/btc/v2/lthProfitSupply`,
method: 'post',
data
})
}
// 长期持有者亏损总供应量
export function fetchLthLossSupply(data) {
return request({
url: `/marketall/btc/v2/lthLossSupply`,
method: 'post',
data
})
}
// 短期持有者盈利总供应量
export function fetchSthProfitSupply(data) {
return request({
url: `/marketall/btc/v2/sthProfitSupply`,
method: 'post',
data
})
}
// 短期持有者亏损总供应量
export function fetchSthLossSupply(data) {
return request({
url: `/marketall/btc/v2/sthLossSupply`,
method: 'post',
data
})
}
// 短期持有者盈亏比
export function fetchSthProfitRatio(data) {
return request({
url: `/marketall/btc/v2/sthProfitRatio`,
method: 'post',
data
})
}
// 短期到长期实现价值比率
export function fetchSLRVRatio(data) {
return request({
url: `/marketall/btc/v2/SLRVRatio`,
method: 'post',
data
})
}
// 长期持有者盈亏比
export function fetchLthProfitRatio(data) {
return request({
url: `/marketall/btc/v2/lthProfitRatio`,
method: 'post',
data
})
}
//长期持有者每日交易量
export function fetchLthVolume(data) {
return request({
url: `/marketall/btc/v2/lthVolume`,
method: 'post',
data
})
}
//交易汇率乘数
export function fetchFrm(data) {
return request({
url: `/marketall/btc/v2/frm`,
method: 'post',
data
})
}
//累积价值-销毁天数比
export function fetchCvdd(data) {
return request({
url: `/marketall/btc/v2/cvdd`,
method: 'post',
data
})
}
//已平衡价格
export function fetchBalancedPrice(data) {
return request({
url: `/marketall/btc/v2/balancedPrice`,
method: 'post',
data
})
}
//市值/交易价值比
export function fetchNvtRatio(data) {
return request({
url: `/marketall/btc/v2/nvtRatio`,
method: 'post',
data
})
}
//流通速度
export function fetchVelocity(data) {
return request({
url: `/marketall/btc/v2/velocity`,
method: 'post',
data
})
}
//已实现流通市值
export function fetchRcap(data) {
return request({
url: `/marketall/btc/rcap`,
method: 'post',
data
})
}
//已实现流通市值(找零消除)
export function fetchEarcap(data) {
return request({
url: `/marketall/btc/earcap`,
method: 'post',
data
})
}
//时区购买力
export function getTzbp(data) {
return request({
url: `/marketall/exchange/v2/tzbp`,
method: 'post',
data
})
}
//买入大单挂单
export function getBobp(data) {
return request({
url: `/marketall/exchange/v2/bobp`,
method: 'post',
data
})
}
//卖出大单挂单
export function getBosp(data) {
return request({
url: `/marketall/exchange/v2/bosp`,
method: 'post',
data
})
}
//交易所余额
export function getExchange(data) {
return request({
url: `/marketall/btc/v2/ebalance`,
method: 'post',
data
})
}
//交易所余额 下拉框
export function getExchanges(data) {
return request({
url: `/marketall/btc/v2/exchanges`,
method: 'post',
data
})
}
//交易所余额ETH
export function getExchangeETH(data) {
return request({
url: `/marketall/eth/v2/ebalance`,
method: 'post',
data
})
}
//交易所余额 下拉框ETH
export function getExchangesETH(data) {
return request({
url: `/marketall/eth/v2/exchanges`,
method: 'post',
data
})
}
//待交易池详情
export function getMempool(data) {
return request({
url: `/marketall/btc/v2/mempool`,
method: 'post',
data
})
}
//NVT信号
export function getNvtSign(data) {
return request({
url: `/marketall/btc/v2/nvtSign`,
method: 'post',
data
})
}
//长/短期持有者供应量盈亏分布
export function DistributionLthSth(data) {
return request({
url: `/marketall/btc/v2/distributionLthSth`,
method: 'post',
data
})
}
//大额交易ETH 价格接口
export function ethPrice(data) {
return request({
url: `/marketall/eth/v2/price`,
method: 'post',
data
})
}
//价值损毁天数倍数
export function getVDD(data) {
return request({
url: `/marketall/btc/vdd`,
method: 'post',
data
})
}

147
yq/src/api/help.js Normal file
View File

@@ -0,0 +1,147 @@
import request from './http'
//获取问题分类
export function getQuestionType(data) {
return request({
url: `marketall/ticket/getQuestionType`,
method: 'post',
data
})
}
//提交工单
export function getSubmitTicket(data) {
return request({
url: `marketall/ticket/submitTicket`,
method: 'post',
data
})
}
//工单继续提交
export function getResubmitTicket(data) {
return request({
url: `marketall/ticket/resubmitTicket`,
method: 'post',
data
})
}
//撤回工单
export function getRetractTicket(data) {
return request({
url: `marketall/ticket/retractTicket`,
method: 'post',
data
})
}
//个人工单列表
export function getPrivateTicket(data) {
return request({
url: `marketall/ticket/getPrivateTicket`,
method: 'post',
data
})
}
//工单详情
export function getTicketDetails(data) {
return request({
url: `marketall/ticket/getTicketDetails`,
method: 'post',
data
})
}
//提交工单审核
export function getSubmitAuditTicket(data) {
return request({
url: `marketall/ticket/submitAuditTicket`,
method: 'post',
data
})
}
//个人未读工单数
export function getUnreadCount(data) {
return request({
url: `marketall/ticket/getUnreadCount`,
method: 'post',
data
})
}
//后台工单列表
export function getTicketList(data) {
return request({
url: `marketall/ticket/getTicketList`,
method: 'post',
data
})
}
//每日工单数
export function getDailyCount(data) {
return request({
url: `marketall/ticket/getDailyCount`,
method: 'post',
data
})
}
//审核工单
export function getAuditTicket(data) {
return request({
url: `marketall/ticket/auditTicket`,
method: 'post',
data
})
}
//文件下载
export function getDownloadFile(data) {
return request({
url: `marketall/ticket/downloadFile`,
method: 'post',
data
})
}
//回复工单
export function getResponTicket(data) {
return request({
url: `marketall/ticket/responTicket`,
method: 'post',
data
})
}
//个人中心 个人中心 已回复未读工单更改状态
export function getReadTicket(data) {
return request({
url: `marketall/ticket/readTicket`,
method: 'post',
data
})
}
//结束工单
export function getEndTicket(data) {
return request({
url: `marketall/ticket/endTicket`,
method: 'post',
data
})
}
//查询用户当前账户余额
export function GetUserAccount(data) {
return request({
url: `/order/transfer/getUserAccount`,
method: 'post',
data
})
}

418
yq/src/api/http.js Normal file
View File

@@ -0,0 +1,418 @@
import axios from 'axios'
import { Message } from 'element-ui'
import { Loading } from 'element-ui';
import CancelTokens from './CancelTokens'
const baseURL = '/api' //代理接口的名称
import { $addStorageEvent } from '../util/processingData'
//不需要带token 匿名访问的接口
const noTokenUrl = [
`/marketall/btc/address`,
`/marketall/list/interface?req=price&`,
`/marketall/BTC/csupply`,
`/marketall/btc/mintusd`,
`/marketall/btc/marketcap`,
`/marketall/BTC/mvrv`,
`/marketall/BTC/btcbigtxcount`,
`/marketall/BTC/bigamountvout`,
`/marketall/BTC/arh99`,
`/marketall/BTC/arh99day`,
`/marketall/BTC/jzr60`,
`/marketall/BTC/jzr60day`,
`/marketall/BTC/ma730`,
`marketall/BTC/ma730day`,
`/marketall/ETH/csupply`,
`/marketall/ETH/reward`,
`/marketall/eth/ETHVolume`,
`/marketall/eth/ETHFees`,
`/marketall/eth/address`,
`/marketall/ETH/ethbigtxcount`,
`/marketall/ETH/ethbigtx`,
`/eth/ethTopAddrList`,
`/marketall/ETH/tronUsdtVolume`,
`/marketall/eth/usdtVolume`,
`/marketall/eth/usdcVolume`,
`/marketall/ETH/tronUsdcVolume`,
`/marketall/market/NDAQohlc`,
`/marketall/market/NDAQma`,
]
let overtime = "" //同页面多次请求超时只报错一次
window.addEventListener("setItem", () => {
overtime = localStorage.getItem("overtime");
});
Message.customClass = "messageClass"
let message = '' //登录过期控制只提示一次报错
//开发环境 development
if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'http://10.168.2.197:7001'
// axios.defaults.baseURL = 'https://13.214.133.132:11447'
// axios.defaults.baseURL = 'http://10.168.2.125:7101'
axios.defaults.baseURL = 'https://coinbus.cc/api/v1'
}
//生产环境 production
if (process.env.NODE_ENV == 'production') {
axios.defaults.baseURL = 'https://coinbus.cc/api/v1'
// xios.defaults.baseURL = 'https://13.214.133.132:11447'
}
//测试环境
if (process.env.NODE_ENV === "staging") {
axios.defaults.baseURL = "https://coinbus.cc/api/v1"
}
//创建一个axios对象
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 1000,// 10000
});
// 添加请求拦截器(post)
service.interceptors.request.use( config =>{
if (config.url.includes('/fapi/v1/fundingRate') || config.url.includes('/fapi/v1/openInterest') || config.url.includes('/futures/data/takerlongshortRatio')) {
config.baseURL = baseURL
// config.baseURL = `https://fapi.binance.com`
// config.baseURL = 'https://binancezh.jp'
}
else if(config.url.includes('transfer/endOrder')){
config.timeout = 60000//充值确认接口单独设置响应时间1分钟
}else if(config.url.includes('levelUp')){
config.timeout = 30000//消费升级接口改为30秒
}else{
config.timeout = 10000
}
// token
if (!noTokenUrl.includes(config.url)) {
const token = localStorage.token;
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
}
return config
},error=> {
// if (error.code == "ECONNABORTED") {
// console.log(overtime,"几个都降低");
// if (!overtime) {
// overtime ="请求超时"
// Message({//请求超时
// showClose: true,
// message: window.vm.$i18n.t('login.timeout'),
// type: 'error',
// customClass: "messageClass",
// duration: 10000,
// });
// }
// }
// if (error.response.status >= 500) {//服务器错误
// console.log("甲方劲夫劲夫附件");
// Message({
// showClose: true,
// message: window.vm.$i18n.t('login.server'),
// type: 'error',
// customClass: "messageClass"
// });
// }
// 对请求错误做些什么
return Promise.reject(error)
})
// 添加请求拦截器
// token注入
axios.interceptors.request.use(function (config) {
if (config.url.includes('/fapi/v1/fundingRate') || config.url.includes('/fapi/v1/openInterest') || config.url.includes('/futures/data/takerlongshortRatio')) {
config.baseURL = baseURL
// config.baseURL = `https://fapi.binance.com`
// config.baseURL = 'https://binancezh.jp'
}
// config.headers={
// appid:"565656"
// }w'i'zhi
// token
if (!noTokenUrl.includes(config.url)) {
const token = localStorage.token;
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
}
return config
}, (error) => {
// 对请求错误做些什么
return Promise.reject(error)
})
//响应超时的时间
axios.defaults.timeout = 10000;
service.defaults.timeout = 10000;
// 设置请求次数,请求的间隙
axios.defaults.retry = 1;
axios.defaults.retryDelay = 1000;
var axiosResError = ""
// 添加响应拦截器
axios.interceptors.response.use(
res => {
// console.log(res,"响应数据111");
if (res.config.baseURL !== "https://fapi.binance.com") {
if (res.data.code == 421) {//登录过期删除token 421
//清空就是拦截到过期就删除了token 把两外两个存成空
console.log("登录过期");
localStorage.removeItem("token");
$addStorageEvent(1, "username", '')
$addStorageEvent(1, "loginTime", '')
localStorage.setItem("identity", JSON.stringify({}))
$addStorageEvent(1, "dialogLoginVisible",JSON.stringify(true) );//弹出登录
if(!message){
message = res.data.msg
Message({
message: res.data.msg,
type: 'warning',
customClass: "messageClass",
duration: 3000,
showClose: true,
});
}
}else if(res.data.code == 401){//登录才能查看的页面
if (!overtime) {
overtime ="登录才能查看的页面"
Message({
message: window.vm.$i18n.t('login.viewPage'),
type: 'error',
customClass: "messageClass",
showClose: true,
});
}
}else if(res.data.code !== 200){
console.log(`!== 200`,res);
Message({
message: res.data.msg,
type: 'error',
customClass: "messageClass"
});
}
}
return res;
}, error => {
if (error.code == "ECONNABORTED") {
if (!overtime) {
overtime ="请求超时"
Message({//请求超时
showClose: true,
message: window.vm.$i18n.t('login.timeout'),
type: 'error',
customClass: "messageClass",
showClose: true,
duration: 4000,
});
}
}
console.log('err' + error)
let { message } = error;
if (message == "Network Error") {//后端接口连接异常,请刷新重试
message = window.vm.$i18n.t('login.linkError')
}
else if (message.includes("timeout")) {//超时
message = window.vm.$i18n.t('login.timeout')
}
else if (message.includes("Request failed with status code")) {//系统接口异常5...
message = window.vm.$i18n.t('login.system') + message.substr(message.length - 3);
}
if (!overtime) {
overtime=message
Message({
message: message,
type: 'error',
showClose: true,
duration: 5 * 1000
})
}
// Message({
// message: message,
// type: 'error',
// duration: 5 * 1000
// })
return Promise.reject(error)
}
);
var serviceResError=""
// 添加响应拦截器 post
service.interceptors.response.use(
res=>{
if (res.data.code == 421) {//登录过期删除token 421
//清空就是拦截到过期就删除了token 把两外两个存成空
localStorage.removeItem("token");
$addStorageEvent(1, "username", '')
$addStorageEvent(1, "loginTime", '')
localStorage.setItem("identity", JSON.stringify({}))
$addStorageEvent(1, "dialogLoginVisible",JSON.stringify(true) );
console.log(message,"service 1 ");
if(!message){//登录过期 控制报错信息只提示一次
message = res.data.msg
Message({
message: res.data.msg,
type: 'error',
customClass: "messageClass",
duration: 3000,
showClose: true,
});
}
}else if(res.data.code == 401){//登录才能查看的页面
if (!overtime) {
overtime=`登录才能查看的页面`
Message({
message: window.vm.$i18n.t('login.viewPage'),
type: 'error',
customClass: "messageClass",
showClose: true,
});
}
}else if(res.data.code !== 200){
console.log(`!== 200`,res);
Message({
message: res.data.msg,
type: 'error',
customClass: "messageClass",
showClose: true,
});
}
return res;
},
error=>{
if (error.code == "ECONNABORTED") {
if (!overtime) {
overtime ="请求超时"
Message({//请求超时
showClose: true,
message: window.vm.$i18n.t('login.timeout'),
type: 'error',
customClass: "messageClass",
showClose: true,
duration: 4000,
});
}
}
console.log('err5555555555555' + error)
let { message } = error;
if (message == "Network Error") {
message = window.vm.$i18n.t('login.linkError')
}
else if (message.includes("timeout")) {
message = window.vm.$i18n.t('login.timeout')
}
else if (message.includes("Request failed with status code")) {
message = window.vm.$i18n.t('login.system') + message.substr(message.length - 3);
}
if (!overtime) {
overtime=message
Message({
message: message,
type: 'error',
showClose: true,
duration: 5 * 1000
})
}
// Message({
// message: message,
// type: 'error',
// duration: 5 * 1000
// })
return Promise.reject(error)
}
)
// 封装 get 方法
export function get(url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
}).then(res => {
resolve(res)
}).catch(err => {
reject(err)
return
})
})
}
// 封装 post方法
export function POST(url, data) {
return new Promise((resolve, reject) => {
axios.post(url, data)
.then(res => {
resolve(res)
})
.catch(err => {
reject(err)
})
})
}
// 封装 delete方法
export function Delete(url) {
return new Promise((resolve, reject) => {
axios.delete(url)
.then(res => {
resolve(res)
})
.catch(err => {
reject(err)
})
})
}
export default service;

View File

@@ -0,0 +1,73 @@
import request from './http'
//进入页面默认请求留言数据
export function fetchMessageBoard(data) {
return request({
url: `/marketall/msgBorad/getPageMsg`,
method: 'post',
data
})
}
//提交留言
export function submitMessage(data) {
return request({
url: `/marketall/msgBorad/submitMsg`,
method: 'post',
data
})
}
//留言板后台 留言数量
export function msgBoradNum(data) {
return request({
url: `/marketall/msgBorad/getDailyMsgCount`,
method: 'post',
data
})
}
//留言板后台 tabel表格数据
export function msgBoradTabel(data) {
return request({
url: `/marketall/msgBorad/getAllMsg`,
method: 'post',
data
})
}
//回复留言
export function responMsg(data) {
return request({
url: `/marketall/msgBorad/responMsg`,
method: 'post',
data
})
}
//个人中心 未读留言
export function getPrivateMsg(data) {
return request({
url: `/marketall/msgBorad/getPrivateMsg`,
method: 'post',
data
})
}
//查询点赞 踩的数量
export function getPraise(data) {
return request({
url: `/marketall/msgBorad/getPageDetail`,
method: 'post',
data
})
}
//点赞 踩
export function getClickPraisePoor(data) {
return request({
url: `/marketall/msgBorad/comment`,
method: 'post',
data
})
}

View File

@@ -0,0 +1,25 @@
import request from './http'
//请求订阅
export function getSubscript(data) {
return request({
url: '/marketall/msgSub/subscript',
method: 'post',
data
})
}
//订阅列表
export function getSubscriptList(data) {
return request({
url: '/marketall/msgSub/list',
method: 'post',
data
})
}
//退订
export function getSubscriptDelete(data) {
return request({
url: '/marketall/msgSub/cancel',
method: 'post',
data
})
}

544
yq/src/api/pages.js Normal file
View File

@@ -0,0 +1,544 @@
import request from './http'
//PI周期顶指标
export function takePiCycleTopIndicator(data) {
return request({
url: `/marketall/btc/v2/PiCycleTopIndicator`,
method: 'post',
data
})
}
//稳定币供应比
export function takeSsr(data) {
return request({
url: `/marketall/btc/v2/ssr`,
method: 'post',
data
})
}
//稳定币供应比振荡器
export function takeSsro(data) {
return request({
url: `/marketall/btc/v2/ssro`,
method: 'post',
data
})
}
//库存/新发行比
export function takeStfRatio(data) {
return request({
url: `/marketall/btc/v2/stfRatio`,
method: 'post',
data
})
}
//库存/新发行偏差
export function takeStfDeflection(data) {
return request({
url: `/marketall/btc/v2/stfDeflection`,
method: 'post',
data
})
}
//黄金比例乘数
export function takeGoldenRatioMult(data) {
return request({
url: `/marketall/btc/v2/goldenRatioMult`,
method: 'post',
data
})
}
//PI周期顶指标 eth
export function takepiCycleTopEth(data) {
return request({
url: `/marketall/eth/v2/PiCycleTopIndicator`,
method: 'post',
data
})
}
//黄金比例乘数 eth takegoldenRatioMultEth
export function takegoldenRatioMultEth(data) {
return request({
url: `/marketall/eth/v2/goldenRatioMult`,
method: 'post',
data
})
}
//币天销毁量 eth cdd
export function getCddEth(data) {
return request({
url: `/marketall/eth/v2/cdd`,
method: 'post',
data
})
}
//已花费输出休眠平均天数 eth dormancy
export function getDormancyEth(data) {
return request({
url: `/marketall/eth/v2/dormancy`,
method: 'post',
data
})
}
//已花费输出平均寿命eth asol
export function getAsolEth(data) {
return request({
url: `/marketall/eth/v2/asol`,
method: 'post',
data
})
}
//币天销毁量分布eth
export function getCddwaveEth(data) {
return request({
url: `/marketall/eth/v2/cddwave`,
method: 'post',
data
})
}
//按余额分段的地址数分布eth
export function getDistributionEth(data) {
return request({
url: `/marketall/eth/v2/address/distribution`,
method: 'post',
data
})
}
//持有者地址的供应分布eth
export function getSupplyDistributionEth(data) {
return request({
url: `/marketall/eth/v2/address/supplyDistribution`,
method: 'post',
data
})
}
//盈利地址百分比eth
export function getProfitPercentEth(data) {
return request({
url: `/marketall/eth/v2/address/profitPercent`,
method: 'post',
data
})
}
//盈利地址百分比eth
export function getProfitEth(data) {
return request({
url: `/marketall/eth/v2/address/profit`,
method: 'post',
data
})
}
//亏损地址数eth
export function getLossEth(data) {
return request({
url: `/marketall/eth/v2/address/loss`,
method: 'post',
data
})
}
//通货膨胀率eth
export function getInflactionRateEth(data) {
return request({
url: `/marketall/eth/v2/inflactionRate`,
method: 'post',
data
})
}
//通货膨胀率eth
export function getIssuanceEth(data) {
return request({
url: `/marketall/eth/v2/issuance`,
method: 'post',
data
})
}
//已花费输出盈利比eth
export function getSoprEth(data) {
return request({
url: `/marketall/eth/v2/sopr`,
method: 'post',
data
})
}
//流通速度eth
export function getVelocityEth(data) {
return request({
url: `/marketall/eth/v2/velocity`,
method: 'post',
data
})
}
//流通速度eth
export function getNvtRatioEth(data) {
return request({
url: `/marketall/eth/v2/nvtRatio`,
method: 'post',
data
})
}
//活跃度eth
export function getLivelinessEth(data) {
return request({
url: `/marketall/eth/v2/liveliness`,
method: 'post',
data
})
}
//交易费率乘数eth
export function getFrmEth(data) {
return request({
url: `/marketall/eth/v2/frm`,
method: 'post',
data
})
}
//盈利百分比eth
export function getSupplyProfitPercentEth(data) {
return request({
url: `/marketall/eth/v2/supply/profitPercent`,
method: 'post',
data
})
}
//盈利供应量eth
export function getSupplyProfitEth(data) {
return request({
url: `/marketall/eth/v2/supply/profit`,
method: 'post',
data
})
}
//盈利亏损量eth
export function getSupplyLossEth(data) {
return request({
url: `/marketall/eth/v2/supply/loss`,
method: 'post',
data
})
}
//未实现的净收益损失比eth
export function getNuplEth(data) {
return request({
url: `/marketall/eth/v2/nupl`,
method: 'post',
data
})
}
//未实现的净收益量 eth
export function getRelativeUProfitEth(data) {
return request({
url: `/marketall/eth/v2/relativeUProfit`,
method: 'post',
data
})
}
//未实现的净亏损量 eth
export function getRelativeULossEth(data) {
return request({
url: `/marketall/eth/v2/relativeULoss`,
method: 'post',
data
})
}
//长持者未实现的净收益量 eth
export function getLthNUPLEth(data) {
return request({
url: `/marketall/eth/v2/lthNUPL`,
method: 'post',
data
})
}
//短持者未实现的净亏损量 eth
export function getSthNUPLEth(data) {
return request({
url: `/marketall/eth/v2/sthNUPL`,
method: 'post',
data
})
}
//流通市值 eth
export function getMarketcapEth(data) {
return request({
url: `/marketall/eth/v2/marketcap`,
method: 'post',
data
})
}
//已实现流通市值 eth
export function getRcapEth(data) {
return request({
url: `/marketall/eth/v2/rcap`,
method: 'post',
data
})
}
//已实现价格 eth
export function getRpriceEth(data) {
return request({
url: `/marketall/eth/v2/rprice`,
method: 'post',
data
})
}
//流通市值-已实现流通市值比 eth
export function getMvrvRatioEth(data) {
return request({
url: `/marketall/eth/v2/mvrvRatio`,
method: 'post',
data
})
}
//燃烧量 eth
export function getBurnedSupplyEth(data) {
return request({
url: `/marketall/eth/v2/burnedSupply`,
method: 'post',
data
})
}
//燃烧量 eth
export function getMintedSupplyEth(data) {
return request({
url: `/marketall/eth/v2/mintedSupply`,
method: 'post',
data
})
}
//USDT铸造量
export function getMintedUSDT(data) {
return request({
url: `/marketall/eth/v2/usdt/minted`,
method: 'post',
data
})
}
//USDT铸造量 表格数据
export function getMintedUSDTTable(data) {
return request({
url: `/marketall/eth/v2/usdt/minted/list`,
method: 'post',
data
})
}
//USDC铸造量
export function getMintedUSDC(data) {
return request({
url: `/marketall/eth/v2/usdc/minted`,
method: 'post',
data
})
}
//USDC铸造量 表格数据
export function getMintedUSDCTable(data) {
return request({
url: `/marketall/eth/v2/usdc/minted/list`,
method: 'post',
data
})
}
//BUSD铸造量
export function getMintedBUSD(data) {
return request({
url: `/marketall/eth/v2/busd/minted`,
method: 'post',
data
})
}
//BUSD铸造量 表格数据
export function getMintedBUSDTable(data) {
return request({
url: `/marketall/eth/v2/busd/minted/list`,
method: 'post',
data
})
}
//资金费率
export function getFundingRate(data) {
return request({
url: `/marketall/exchange/fundingRate`,
method: 'post',
data
})
}
//未平仓合约数
export function getOpenInterest(data) {
return request({
url: `/marketall/exchange/openInterest`,
method: 'post',
data
})
}
//合约主动买入量
export function getTakerLongShortRatio(data) {
return request({
url: `/marketall/exchange/takerlongshortRatio`,
method: 'post',
data
})
}
//成交量分布图
export function getVolumeProfile(data) {
return request({
url: `/marketall/exchange/volumeProfile`,
method: 'post',
data
})
}
//成交量分布图 K线数据
export function getKLine(data) {
return request({
url: `/marketall/bian/kline`,
method: 'post',
data
})
}
//代币交易量
export function getErcVolume(data) {
return request({
url: `/marketall/eth/ETHTokenVolume`,
method: 'post',
data
})
}
//国债收益率
export function getUSTreasuriesYields(data) {
return request({
url: `/marketall/market/USTreasuriesYields`,
method: 'post',
data
})
}
//货币供应量
export function MoneyStockMeasures(data) {
return request({
url: `/marketall/market/MoneyStockMeasures`,
method: 'post',
data
})
}
//私营部门贷款
export function loanPsi(data) {
return request({
url: `/marketall/market/loan/psi`,
method: 'post',
data
})
}
//私人债务占GDP比重
export function loanGdp(data) {
return request({
url: `/marketall/market/loan/gdp`,
method: 'post',
data
})
}
//每周经济指数
export function wei(data) {
return request({
url: `/marketall/market/wei`,
method: 'post',
data
})
}
//MVRV Z-Score BTC 修改接口为POST
export function MVRVZ(data) {
return request({
url: `/marketall/btc/mvrvz`,
method: 'post',
data
})
}
//外汇
export function exchangeRate(data) {
return request({
url: `/marketall/market/exchangeRate`,
method: 'post',
data
})
}
//外汇曲线图
export function exchangeRateChart(data) {
return request({
url: `/marketall/market/exchangeRate/list`,
method: 'post',
data
})
}
//GDP 曲线图
export function getGDPChart(data) {
return request({
url: `/marketall/market/GDP/list`,
method: 'post',
data
})
}
//GDP
export function getGDP(data) {
return request({
url: `/marketall/market/GDP`,
method: 'post',
data
})
}

161
yq/src/api/pay.js Normal file
View File

@@ -0,0 +1,161 @@
import request from './http'
//提交充值
export function Recharge(data) {
return request({
url: `/order/transfer/createOrder`,
method: 'post',
data
})
}
//订单支付确认
export function EndOrder(data) {
return request({
url: `/order/transfer/endOrder`,
method: 'post',
data
})
}
//请求订单取消 关闭转账交易
export function CancelOrder(data) {
return request({
url: `/order/transfer/cancelOrder`,
method: 'post',
data
})
}
//根据txid查询订单
export function CheckOrderByTxid(data) {
return request({
url: `/order/transfer/checkOrderByTxid`,
method: 'post',
data
})
}
//提交升级订单
export function LevelUp(data) {
return request({
url: `/order/consume/levelUp`,
method: 'post',
data
})
}
//获取对应等级所需金额
export function GetNeedFunding(data) {
return request({
url: `/order/consume/getNeedFunding`,
method: 'post',
data
})
}
//发起提现申请
export function Apply(data) {
return request({
url: `/order/withdraw/apply`,
method: 'post',
data
})
}
//查看个人提现历史
export function Pravite(data) {
return request({
url: `/order/withdraw//history/pravite`,
method: 'post',
data
})
}
//查看个人提现历史
export function historyAll(data) {
return request({
url: `/order/withdraw/history/all`,
method: 'post',
data
})
}
//财务处理提现订单
export function Handle(data) {
return request({
url: `/order/withdraw/handle`,
method: 'post',
data
})
}
//查看提现订单详情
export function getDetail(data) {
return request({
url: `/order/withdraw/getDetail`,
method: 'post',
data
})
}
//查看个人充值记录
export function privateOrder(data) {
return request({
url: `order/transfer/privateOrder`,
method: 'post',
data
})
}
//查看所有充值记录
export function allAddCreditOrder(data) {
return request({
url: `order/transfer/allAddCreditOrder`,
method: 'post',
data
})
}
//获取邮箱验证码
export function getEmailCode(data) {
return request({
url: `order/withdraw/getEmailCode`,
method: 'post',
data
})
}
//查看个人消费历史 消费记录
export function PrivateConsume(data) {
return request({
url: `order/consume/privateConsume`,
method: 'post',
data
})
}
//新增用户可用地址
export function AddNewAddress(data) {
return request({
url: `order/transfer/addNewAddress`,
method: 'post',
data
})
}
//查询上次提交交易hash时间 倒计时
export function LastUseTxid(data) {
return request({
url: `order/transfer/lastUseTxid`,
method: 'post',
data
})
}

View File

@@ -0,0 +1,93 @@
import request from './http'
//地址统计
export function getAddress(data) {
return request({
url: `/marketall/btc/rt/address`,
method: 'post',
data
})
}
//交易费
export function getBTCFees(data) {
return request({
url: `/marketall/btc/rt/BTCFees`,
method: 'post',
data
})
}
//交易量
export function getBTCVolume(data) {
return request({
url: `/marketall/btc/rt/BTCVolume`,
method: 'post',
data
})
}
//交易量(消除找零)
export function getEaVolume2(data) {
return request({
url: `/marketall/btc/rt/eaVolume`,
method: 'post',
data
})
}
//每日已实现盈利交易占比
export function getProfitRate2(data) {
return request({
url: `/marketall/btc/rt/profitRate`,
method: 'post',
data
})
}
//已花费输出盈利比
export function getSopr2(data) {
return request({
url: `/marketall/btc/rt/sopr`,
method: 'post',
data
})
}
//已花费输出平均寿命
export function getAsol2(data) {
return request({
url: `/marketall/btc/rt/asol`,
method: 'post',
data
})
}
//已花费输出休眠平均天数
export function getDormancy2(data) {
return request({
url: `/marketall/btc/rt/dormancy`,
method: 'post',
data
})
}
//币天销毁量
export function getCdd2(data) {
return request({
url: `/marketall/btc/rt/cdd`,
method: 'post',
data
})
}
//币天销毁量年龄分布
export function getSoag2(data) {
return request({
url: `/marketall/btc/rt/soag`,
method: 'post',
data
})
}

9
yq/src/api/sharing.js Normal file
View File

@@ -0,0 +1,9 @@
import server from "../util/request"
export function fetchActiveaddress(params){
return server({
method:"GET",
url:"/marketall/activeaddress/list?coin=btc",
params
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

539
yq/src/assets/icon/demo.css Normal file
View File

@@ -0,0 +1,539 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,571 @@
@font-face {
font-family: "i"; /* Project id 3157209 */
src: url('iconfont.woff2?t=1693193677535') format('woff2'),
url('iconfont.woff?t=1693193677535') format('woff'),
url('iconfont.ttf?t=1693193677535') format('truetype');
}
.i {
font-family: "i" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.ijingshigantanhao2:before {
content: "\e7f4";
}
.ishuaxin:before {
content: "\e6e0";
}
.ishuaxin1:before {
content: "\e63b";
}
.ishuaxin2:before {
content: "\e796";
}
.izixun:before {
content: "\e64e";
}
.iguzhi:before {
content: "\e65e";
}
.izixun1:before {
content: "\e645";
}
.izixun2:before {
content: "\e771";
}
.iGDP:before {
content: "\e884";
}
.imeiguzhibiao:before {
content: "\e6dc";
}
.izixun3:before {
content: "\e638";
}
.igdp:before {
content: "\e63f";
}
.iguzhi1:before {
content: "\e639";
}
.iicon_jinrongfuwu:before {
content: "\e649";
}
.iGDP1:before {
content: "\e658";
}
.iGDP2:before {
content: "\e648";
}
.ichanpin-huobijinrongfuwu:before {
content: "\e63a";
}
.ichanpin-huobijinrongfuwu1:before {
content: "\e663";
}
.izhaiquan-cijizhaiquan:before {
content: "\e671";
}
.iguzhiqiquan:before {
content: "\e7a2";
}
.iGDP3:before {
content: "\e692";
}
.izhaiquan:before {
content: "\e68e";
}
.izhaiquan1:before {
content: "\100f2";
}
.ihuidaodingbu:before {
content: "\e73c";
}
.ihuidaodingbu1:before {
content: "\e637";
}
.ixiangyouzhankai2:before {
content: "\e624";
}
.ixiangyouzhankai3:before {
content: "\e7d3";
}
.iarrow-right-fill-03:before {
content: "\e739";
}
.ixiangyouzhankai4:before {
content: "\e635";
}
.iyouzhankai-moren:before {
content: "\e636";
}
.izuoyouzhankai:before {
content: "\e65c";
}
.izuoyou:before {
content: "\e634";
}
.ijiantou_zuoyouqiehuan1:before {
content: "\eb0d";
}
.izuoyoutuo:before {
content: "\e673";
}
.izuoyoulashen:before {
content: "\e652";
}
.i10x6xiangyouzhankaisanjiao:before {
content: "\e63e";
}
.iyouzhankai:before {
content: "\e684";
}
.ixiangyouzhankai:before {
content: "\e651";
}
.ixiangyouzhankai1:before {
content: "\e693";
}
.izuoyouzhankai1:before {
content: "\ec3a";
}
.iicon-rgb_zhibiaozhinengguanli:before {
content: "\e6fa";
}
.izhibiaoguanli:before {
content: "\e72a";
}
.ixiaoshouzhibiao:before {
content: "\e664";
}
.ishoucang:before {
content: "\e630";
}
.ilevel1:before {
content: "\e631";
}
.ilevel2:before {
content: "\e632";
}
.ilevel3:before {
content: "\e633";
}
.ixingxing5:before {
content: "\e80d";
}
.ixingxing6:before {
content: "\efeb";
}
.i24gl-starEmpty:before {
content: "\e8c4";
}
.ixingxing7:before {
content: "\e75b";
}
.iicon-test1:before {
content: "\e625";
}
.iicon-test2:before {
content: "\e629";
}
.ixingxing:before {
content: "\e607";
}
.iiconzhengli-:before {
content: "\e61f";
}
.ixingxing1:before {
content: "\e870";
}
.istart:before {
content: "\e608";
}
.istar:before {
content: "\e65d";
}
.ixingxing2:before {
content: "\e621";
}
.ixingxing3:before {
content: "\e622";
}
.istart1:before {
content: "\e623";
}
.ixingxing4:before {
content: "\e62f";
}
.ishengji:before {
content: "\e62c";
}
.ishengban-shengji:before {
content: "\e643";
}
.ibanbenshengji-05:before {
content: "\e62a";
}
.iebr_shengji:before {
content: "\e61e";
}
.ifacebookfacebook52:before {
content: "\e606";
}
.itwitter-fill:before {
content: "\e63d";
}
.ireddit:before {
content: "\ea03";
}
.idiscord:before {
content: "\e617";
}
.itelegram:before {
content: "\e618";
}
.icai4:before {
content: "\e691";
}
.icai1:before {
content: "\e602";
}
.icai2:before {
content: "\e68f";
}
.idianzan:before {
content: "\e616";
}
.idianzan1:before {
content: "\e619";
}
.ifenxiang:before {
content: "\e601";
}
.icai:before {
content: "\e62e";
}
.iz-like:before {
content: "\e6bf";
}
.ixiaosanjiaodown:before {
content: "\e614";
}
.ixiaosanjiaoup:before {
content: "\e615";
}
.isousuotianchong:before {
content: "\e694";
}
.isousuo:before {
content: "\e60e";
}
.itongzhi:before {
content: "\e612";
}
.igl-folderOpen:before {
content: "\eabe";
}
.iiccandleline:before {
content: "\e613";
}
.igeren9:before {
content: "\e641";
}
.imeiyuan6:before {
content: "\e738";
}
.imeiyuan2:before {
content: "\e64b";
}
.imeiyuan3:before {
content: "\eb1a";
}
.imeiyuan_o:before {
content: "\eba1";
}
.i24gl-obelus:before {
content: "\e88f";
}
.i24gl-plusMinus:before {
content: "\e890";
}
.ishuben:before {
content: "\e60d";
}
.i-zhuzhuangtu:before {
content: "\e628";
}
.imeiyuan4:before {
content: "\e90d";
}
.ijiantou_zuoyouqiehuan:before {
content: "\e6eb";
}
.i9meiyuan:before {
content: "\e626";
}
.icode-branch:before {
content: "\e993";
}
.ishuben-book2:before {
content: "\e644";
}
.izhengfu:before {
content: "\e73d";
}
.iqianbao-copy:before {
content: "\ebb4";
}
.ixiebao:before {
content: "\e600";
}
.i30:before {
content: "\e620";
}
.ijinbi:before {
content: "\e6c8";
}
.iiconset0294:before {
content: "\e6c1";
}
.imeiyuan1:before {
content: "\e733";
}
.izhexiantu-xianxing:before {
content: "\e904";
}
.iqianbao:before {
content: "\e646";
}
.ishandian:before {
content: "\e799";
}
.ichuizi:before {
content: "\e61b";
}
.izhexiantu_o:before {
content: "\ebb3";
}
.iicon-test:before {
content: "\e603";
}
.iqianbao1:before {
content: "\e61c";
}
.itubiao:before {
content: "\e610";
}
.ithin-_home_flat:before {
content: "\e611";
}
.ibuilding:before {
content: "\e64a";
}
.itubiao1:before {
content: "\e61d";
}
.iwenjianjia:before {
content: "\e74a";
}
.ishizhong:before {
content: "\e60c";
}
.iyonghuguanli_huaban:before {
content: "\e62d";
}
.itubiao2:before {
content: "\e659";
}
.ifangzi:before {
content: "\e64f";
}
.ihammer:before {
content: "\e87c";
}
.imeiyuan:before {
content: "\e73f";
}
.irili:before {
content: "\e71a";
}
.idianchi:before {
content: "\e62b";
}
.ichangyongtubiao_dianyuanguanlixuanzhong:before {
content: "\e605";
}
.ichangyongtubiao-fuben-33:before {
content: "\e60a";
}
.ichangyongtubiao-fuben-41:before {
content: "\e60b";
}
.ichangyongtubiao-fuben-60:before {
content: "\e60f";
}
.ichangyong_faxian:before {
content: "\e6b0";
}
.ia-changyong_faxianfuben:before {
content: "\e6ba";
}
.ia-changyong_lianjiefuben:before {
content: "\e6bb";
}
.ixiaoxi:before {
content: "\e67c";
}
.iwangluo:before {
content: "\e627";
}
.ixiangji:before {
content: "\e609";
}
.ishouji:before {
content: "\e61a";
}
.idingwei:before {
content: "\e604";
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,982 @@
{
"id": "3157209",
"name": "music",
"font_family": "i",
"css_prefix_text": "i",
"description": "",
"glyphs": [
{
"icon_id": "689256",
"name": "警示 感叹号 2",
"font_class": "jingshigantanhao2",
"unicode": "e7f4",
"unicode_decimal": 59380
},
{
"icon_id": "1781545",
"name": "刷新",
"font_class": "shuaxin",
"unicode": "e6e0",
"unicode_decimal": 59104
},
{
"icon_id": "6376283",
"name": "刷新",
"font_class": "shuaxin1",
"unicode": "e63b",
"unicode_decimal": 58939
},
{
"icon_id": "28944169",
"name": "刷新",
"font_class": "shuaxin2",
"unicode": "e796",
"unicode_decimal": 59286
},
{
"icon_id": "1115097",
"name": "资讯",
"font_class": "zixun",
"unicode": "e64e",
"unicode_decimal": 58958
},
{
"icon_id": "1279431",
"name": "股指",
"font_class": "guzhi",
"unicode": "e65e",
"unicode_decimal": 58974
},
{
"icon_id": "2506223",
"name": "资讯",
"font_class": "zixun1",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "4933454",
"name": "资讯",
"font_class": "zixun2",
"unicode": "e771",
"unicode_decimal": 59249
},
{
"icon_id": "5719208",
"name": "GDP",
"font_class": "GDP",
"unicode": "e884",
"unicode_decimal": 59524
},
{
"icon_id": "6695200",
"name": "每股指标",
"font_class": "meiguzhibiao",
"unicode": "e6dc",
"unicode_decimal": 59100
},
{
"icon_id": "7708016",
"name": "资讯",
"font_class": "zixun3",
"unicode": "e638",
"unicode_decimal": 58936
},
{
"icon_id": "11086601",
"name": "gdp",
"font_class": "gdp",
"unicode": "e63f",
"unicode_decimal": 58943
},
{
"icon_id": "12084717",
"name": "股指",
"font_class": "guzhi1",
"unicode": "e639",
"unicode_decimal": 58937
},
{
"icon_id": "12319736",
"name": "货币金融服务",
"font_class": "icon_jinrongfuwu",
"unicode": "e649",
"unicode_decimal": 58953
},
{
"icon_id": "13759988",
"name": "GDP",
"font_class": "GDP1",
"unicode": "e658",
"unicode_decimal": 58968
},
{
"icon_id": "15216920",
"name": "GDP",
"font_class": "GDP2",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "22992379",
"name": "产品-货币金融服务",
"font_class": "chanpin-huobijinrongfuwu",
"unicode": "e63a",
"unicode_decimal": 58938
},
{
"icon_id": "23093526",
"name": "产品-货币金融服务",
"font_class": "chanpin-huobijinrongfuwu1",
"unicode": "e663",
"unicode_decimal": 58979
},
{
"icon_id": "23524296",
"name": "债券-次级债券",
"font_class": "zhaiquan-cijizhaiquan",
"unicode": "e671",
"unicode_decimal": 58993
},
{
"icon_id": "27125111",
"name": "股指期权",
"font_class": "guzhiqiquan",
"unicode": "e7a2",
"unicode_decimal": 59298
},
{
"icon_id": "29689001",
"name": "GDP",
"font_class": "GDP3",
"unicode": "e692",
"unicode_decimal": 59026
},
{
"icon_id": "32334086",
"name": "债券",
"font_class": "zhaiquan",
"unicode": "e68e",
"unicode_decimal": 59022
},
{
"icon_id": "33096080",
"name": "债券",
"font_class": "zhaiquan1",
"unicode": "100f2",
"unicode_decimal": 65778
},
{
"icon_id": "7482196",
"name": "回到顶部",
"font_class": "huidaodingbu",
"unicode": "e73c",
"unicode_decimal": 59196
},
{
"icon_id": "8644758",
"name": "回到顶部",
"font_class": "huidaodingbu1",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "2272804",
"name": "向右展开",
"font_class": "xiangyouzhankai2",
"unicode": "e624",
"unicode_decimal": 58916
},
{
"icon_id": "4039964",
"name": "向右展开3",
"font_class": "xiangyouzhankai3",
"unicode": "e7d3",
"unicode_decimal": 59347
},
{
"icon_id": "6136815",
"name": "右展开",
"font_class": "arrow-right-fill-03",
"unicode": "e739",
"unicode_decimal": 59193
},
{
"icon_id": "8209295",
"name": "向右展开",
"font_class": "xiangyouzhankai4",
"unicode": "e635",
"unicode_decimal": 58933
},
{
"icon_id": "20120590",
"name": "右展开-默认",
"font_class": "youzhankai-moren",
"unicode": "e636",
"unicode_decimal": 58934
},
{
"icon_id": "1615178",
"name": "左右展开",
"font_class": "zuoyouzhankai",
"unicode": "e65c",
"unicode_decimal": 58972
},
{
"icon_id": "2702787",
"name": "左右",
"font_class": "zuoyou",
"unicode": "e634",
"unicode_decimal": 58932
},
{
"icon_id": "5387596",
"name": "箭头_左右切换",
"font_class": "jiantou_zuoyouqiehuan1",
"unicode": "eb0d",
"unicode_decimal": 60173
},
{
"icon_id": "7717061",
"name": "左右拖",
"font_class": "zuoyoutuo",
"unicode": "e673",
"unicode_decimal": 58995
},
{
"icon_id": "9925313",
"name": "左右拉伸",
"font_class": "zuoyoulashen",
"unicode": "e652",
"unicode_decimal": 58962
},
{
"icon_id": "15160919",
"name": "10x6向右展开三角",
"font_class": "10x6xiangyouzhankaisanjiao",
"unicode": "e63e",
"unicode_decimal": 58942
},
{
"icon_id": "16324782",
"name": "右展开",
"font_class": "youzhankai",
"unicode": "e684",
"unicode_decimal": 59012
},
{
"icon_id": "18451417",
"name": "向右展开",
"font_class": "xiangyouzhankai",
"unicode": "e651",
"unicode_decimal": 58961
},
{
"icon_id": "33475546",
"name": "向右展开",
"font_class": "xiangyouzhankai1",
"unicode": "e693",
"unicode_decimal": 59027
},
{
"icon_id": "35915355",
"name": "左右展开",
"font_class": "zuoyouzhankai1",
"unicode": "ec3a",
"unicode_decimal": 60474
},
{
"icon_id": "5950487",
"name": "icon-rgb_指标智能管理",
"font_class": "icon-rgb_zhibiaozhinengguanli",
"unicode": "e6fa",
"unicode_decimal": 59130
},
{
"icon_id": "12594593",
"name": "指标管理",
"font_class": "zhibiaoguanli",
"unicode": "e72a",
"unicode_decimal": 59178
},
{
"icon_id": "22169360",
"name": "销售指标",
"font_class": "xiaoshouzhibiao",
"unicode": "e664",
"unicode_decimal": 58980
},
{
"icon_id": "4393",
"name": "收藏",
"font_class": "shoucang",
"unicode": "e630",
"unicode_decimal": 58928
},
{
"icon_id": "1127408",
"name": "等级一",
"font_class": "level1",
"unicode": "e631",
"unicode_decimal": 58929
},
{
"icon_id": "1127409",
"name": "等级二",
"font_class": "level2",
"unicode": "e632",
"unicode_decimal": 58930
},
{
"icon_id": "1127410",
"name": "等级三",
"font_class": "level3",
"unicode": "e633",
"unicode_decimal": 58931
},
{
"icon_id": "2932864",
"name": "星星",
"font_class": "xingxing5",
"unicode": "e80d",
"unicode_decimal": 59405
},
{
"icon_id": "7296812",
"name": "星星",
"font_class": "xingxing6",
"unicode": "efeb",
"unicode_decimal": 61419
},
{
"icon_id": "7553794",
"name": "24gl-starEmpty",
"font_class": "24gl-starEmpty",
"unicode": "e8c4",
"unicode_decimal": 59588
},
{
"icon_id": "11222358",
"name": "星星",
"font_class": "xingxing7",
"unicode": "e75b",
"unicode_decimal": 59227
},
{
"icon_id": "14007852",
"name": "lv2",
"font_class": "icon-test1",
"unicode": "e625",
"unicode_decimal": 58917
},
{
"icon_id": "14007854",
"name": "lv1",
"font_class": "icon-test2",
"unicode": "e629",
"unicode_decimal": 58921
},
{
"icon_id": "1671793",
"name": "星星",
"font_class": "xingxing",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "4608572",
"name": "活动,五角星,星",
"font_class": "iconzhengli-",
"unicode": "e61f",
"unicode_decimal": 58911
},
{
"icon_id": "8289033",
"name": "星星",
"font_class": "xingxing1",
"unicode": "e870",
"unicode_decimal": 59504
},
{
"icon_id": "8406048",
"name": "五角星",
"font_class": "start",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "19031627",
"name": "星星",
"font_class": "star",
"unicode": "e65d",
"unicode_decimal": 58973
},
{
"icon_id": "20188729",
"name": "星星",
"font_class": "xingxing2",
"unicode": "e621",
"unicode_decimal": 58913
},
{
"icon_id": "22402157",
"name": "星星",
"font_class": "xingxing3",
"unicode": "e622",
"unicode_decimal": 58914
},
{
"icon_id": "24106208",
"name": "五角星",
"font_class": "start1",
"unicode": "e623",
"unicode_decimal": 58915
},
{
"icon_id": "33438709",
"name": "星星",
"font_class": "xingxing4",
"unicode": "e62f",
"unicode_decimal": 58927
},
{
"icon_id": "3777786",
"name": "升级",
"font_class": "shengji",
"unicode": "e62c",
"unicode_decimal": 58924
},
{
"icon_id": "8802621",
"name": "升版-升级",
"font_class": "shengban-shengji",
"unicode": "e643",
"unicode_decimal": 58947
},
{
"icon_id": "14915034",
"name": "版本升级",
"font_class": "banbenshengji-05",
"unicode": "e62a",
"unicode_decimal": 58922
},
{
"icon_id": "16120758",
"name": "ebr_升级",
"font_class": "ebr_shengji",
"unicode": "e61e",
"unicode_decimal": 58910
},
{
"icon_id": "1188726",
"name": "facebook_facebook52",
"font_class": "facebookfacebook52",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "9512669",
"name": "twitter",
"font_class": "twitter-fill",
"unicode": "e63d",
"unicode_decimal": 58941
},
{
"icon_id": "11983504",
"name": "reddit",
"font_class": "reddit",
"unicode": "ea03",
"unicode_decimal": 59907
},
{
"icon_id": "26267561",
"name": "discord",
"font_class": "discord",
"unicode": "e617",
"unicode_decimal": 58903
},
{
"icon_id": "26267569",
"name": "telegram",
"font_class": "telegram",
"unicode": "e618",
"unicode_decimal": 58904
},
{
"icon_id": "8358884",
"name": "踩2",
"font_class": "cai4",
"unicode": "e691",
"unicode_decimal": 59025
},
{
"icon_id": "4485651",
"name": "踩",
"font_class": "cai1",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "8358883",
"name": "踩1",
"font_class": "cai2",
"unicode": "e68f",
"unicode_decimal": 59023
},
{
"icon_id": "9149167",
"name": "点赞",
"font_class": "dianzan",
"unicode": "e616",
"unicode_decimal": 58902
},
{
"icon_id": "9686817",
"name": "点赞",
"font_class": "dianzan1",
"unicode": "e619",
"unicode_decimal": 58905
},
{
"icon_id": "68268",
"name": "分享",
"font_class": "fenxiang",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "848624",
"name": "cai",
"font_class": "cai",
"unicode": "e62e",
"unicode_decimal": 58926
},
{
"icon_id": "849179",
"name": "点赞",
"font_class": "z-like",
"unicode": "e6bf",
"unicode_decimal": 59071
},
{
"icon_id": "166176",
"name": "小三角down",
"font_class": "xiaosanjiaodown",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "166177",
"name": "小三角up",
"font_class": "xiaosanjiaoup",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "145727",
"name": "搜索_填充",
"font_class": "sousuotianchong",
"unicode": "e694",
"unicode_decimal": 59028
},
{
"icon_id": "5034919",
"name": "搜索",
"font_class": "sousuo",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "9826654",
"name": "通知",
"font_class": "tongzhi",
"unicode": "e612",
"unicode_decimal": 58898
},
{
"icon_id": "7594806",
"name": "24gl-folderOpen",
"font_class": "gl-folderOpen",
"unicode": "eabe",
"unicode_decimal": 60094
},
{
"icon_id": "659106",
"name": "ic_candleline",
"font_class": "iccandleline",
"unicode": "e613",
"unicode_decimal": 58899
},
{
"icon_id": "741931",
"name": "个人 (9)",
"font_class": "geren9",
"unicode": "e641",
"unicode_decimal": 58945
},
{
"icon_id": "844642",
"name": "美元6",
"font_class": "meiyuan6",
"unicode": "e738",
"unicode_decimal": 59192
},
{
"icon_id": "3762533",
"name": "美元",
"font_class": "meiyuan2",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "5387627",
"name": "美元",
"font_class": "meiyuan3",
"unicode": "eb1a",
"unicode_decimal": 60186
},
{
"icon_id": "5387968",
"name": "美元_o",
"font_class": "meiyuan_o",
"unicode": "eba1",
"unicode_decimal": 60321
},
{
"icon_id": "7542786",
"name": "24gl-obelus",
"font_class": "24gl-obelus",
"unicode": "e88f",
"unicode_decimal": 59535
},
{
"icon_id": "7542792",
"name": "24gl-plusMinus",
"font_class": "24gl-plusMinus",
"unicode": "e890",
"unicode_decimal": 59536
},
{
"icon_id": "8922368",
"name": "书本",
"font_class": "shuben",
"unicode": "e60d",
"unicode_decimal": 58893
},
{
"icon_id": "11227027",
"name": "4-柱状图",
"font_class": "-zhuzhuangtu",
"unicode": "e628",
"unicode_decimal": 58920
},
{
"icon_id": "12387153",
"name": "美元",
"font_class": "meiyuan4",
"unicode": "e90d",
"unicode_decimal": 59661
},
{
"icon_id": "15685587",
"name": "箭头_左右切换",
"font_class": "jiantou_zuoyouqiehuan",
"unicode": "e6eb",
"unicode_decimal": 59115
},
{
"icon_id": "16589891",
"name": "美元",
"font_class": "9meiyuan",
"unicode": "e626",
"unicode_decimal": 58918
},
{
"icon_id": "18170243",
"name": "代码,分支,分流,分叉",
"font_class": "code-branch",
"unicode": "e993",
"unicode_decimal": 59795
},
{
"icon_id": "19009843",
"name": "书本-book2",
"font_class": "shuben-book2",
"unicode": "e644",
"unicode_decimal": 58948
},
{
"icon_id": "21732462",
"name": "正负",
"font_class": "zhengfu",
"unicode": "e73d",
"unicode_decimal": 59197
},
{
"icon_id": "29890537",
"name": "钱包",
"font_class": "qianbao-copy",
"unicode": "ebb4",
"unicode_decimal": 60340
},
{
"icon_id": "5136",
"name": "鞋/包",
"font_class": "xiebao",
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "49730",
"name": "美元",
"font_class": "30",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "313854",
"name": "金币",
"font_class": "jinbi",
"unicode": "e6c8",
"unicode_decimal": 59080
},
{
"icon_id": "554343",
"name": "美元",
"font_class": "iconset0294",
"unicode": "e6c1",
"unicode_decimal": 59073
},
{
"icon_id": "844637",
"name": "美元1",
"font_class": "meiyuan1",
"unicode": "e733",
"unicode_decimal": 59187
},
{
"icon_id": "1727596",
"name": "409折线图-线性",
"font_class": "zhexiantu-xianxing",
"unicode": "e904",
"unicode_decimal": 59652
},
{
"icon_id": "2668424",
"name": "钱包",
"font_class": "qianbao",
"unicode": "e646",
"unicode_decimal": 58950
},
{
"icon_id": "4294114",
"name": "闪电",
"font_class": "shandian",
"unicode": "e799",
"unicode_decimal": 59289
},
{
"icon_id": "5048147",
"name": "锤子",
"font_class": "chuizi",
"unicode": "e61b",
"unicode_decimal": 58907
},
{
"icon_id": "5388007",
"name": "折线图_o",
"font_class": "zhexiantu_o",
"unicode": "ebb3",
"unicode_decimal": 60339
},
{
"icon_id": "5650485",
"name": "房子",
"font_class": "icon-test",
"unicode": "e603",
"unicode_decimal": 58883
},
{
"icon_id": "5969564",
"name": "钱包",
"font_class": "qianbao1",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "6264220",
"name": "图标44",
"font_class": "tubiao",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "6953121",
"name": "房子01",
"font_class": "thin-_home_flat",
"unicode": "e611",
"unicode_decimal": 58897
},
{
"icon_id": "9525397",
"name": "建筑",
"font_class": "building",
"unicode": "e64a",
"unicode_decimal": 58954
},
{
"icon_id": "10352335",
"name": "图表",
"font_class": "tubiao1",
"unicode": "e61d",
"unicode_decimal": 58909
},
{
"icon_id": "11520058",
"name": "文件夹",
"font_class": "wenjianjia",
"unicode": "e74a",
"unicode_decimal": 59210
},
{
"icon_id": "11855585",
"name": "时钟",
"font_class": "shizhong",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "12753449",
"name": "用户管理",
"font_class": "yonghuguanli_huaban",
"unicode": "e62d",
"unicode_decimal": 58925
},
{
"icon_id": "13638712",
"name": "图表",
"font_class": "tubiao2",
"unicode": "e659",
"unicode_decimal": 58969
},
{
"icon_id": "15819520",
"name": "房子",
"font_class": "fangzi",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "18165178",
"name": "槌子,锤子,敲打,工具",
"font_class": "hammer",
"unicode": "e87c",
"unicode_decimal": 59516
},
{
"icon_id": "21732485",
"name": "美元",
"font_class": "meiyuan",
"unicode": "e73f",
"unicode_decimal": 59199
},
{
"icon_id": "5483674",
"name": "日历",
"font_class": "rili",
"unicode": "e71a",
"unicode_decimal": 59162
},
{
"icon_id": "9982141",
"name": "电池",
"font_class": "dianchi",
"unicode": "e62b",
"unicode_decimal": 58923
},
{
"icon_id": "10283803",
"name": "电源管理",
"font_class": "changyongtubiao_dianyuanguanlixuanzhong",
"unicode": "e605",
"unicode_decimal": 58885
},
{
"icon_id": "20733427",
"name": "验证码",
"font_class": "changyongtubiao-fuben-33",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "20733429",
"name": "分类",
"font_class": "changyongtubiao-fuben-41",
"unicode": "e60b",
"unicode_decimal": 58891
},
{
"icon_id": "20733455",
"name": "券",
"font_class": "changyongtubiao-fuben-60",
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "24330605",
"name": "常用_发现",
"font_class": "changyong_faxian",
"unicode": "e6b0",
"unicode_decimal": 59056
},
{
"icon_id": "24333891",
"name": "常用_发现 副本",
"font_class": "a-changyong_faxianfuben",
"unicode": "e6ba",
"unicode_decimal": 59066
},
{
"icon_id": "24333904",
"name": "常用_链接 副本",
"font_class": "a-changyong_lianjiefuben",
"unicode": "e6bb",
"unicode_decimal": 59067
},
{
"icon_id": "1212315",
"name": "消息",
"font_class": "xiaoxi",
"unicode": "e67c",
"unicode_decimal": 59004
},
{
"icon_id": "2378431",
"name": "网络",
"font_class": "wangluo",
"unicode": "e627",
"unicode_decimal": 58919
},
{
"icon_id": "5093354",
"name": "相机",
"font_class": "xiangji",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "6570225",
"name": "手机",
"font_class": "shouji",
"unicode": "e61a",
"unicode_decimal": 58906
},
{
"icon_id": "7127376",
"name": "定位",
"font_class": "dingwei",
"unicode": "e604",
"unicode_decimal": 58884
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

BIN
yq/src/assets/imgs/why.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
yq/src/assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

5
yq/src/assets/style.css Normal file
View File

@@ -0,0 +1,5 @@
/* 全局样式 */
/* 首字母大写 */
.capitalize {
text-transform: capitalize;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,60 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

View File

@@ -0,0 +1,613 @@
<template>
<div class="leaveMessage" >
<h3>{{ $t(`message.messageBoard`) }}</h3>
<span class="wantMessage" @click="handelWantMessage" v-show="WantShow">
{{ $t(`message.message`) }}</span
>
<!-- 未留言 -->
<div class="inputContent" v-show="leaveShow">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
:placeholder="$t(`message.said`)"
v-model="textarea"
resize="none"
>
</el-input>
<el-button @click="handelPublish" class="publish">{{
$t(`message.publish`)
}}</el-button>
</div>
<!-- 已发表留言 -->
<div class="leaveContent" v-show="messageContentShow">
<!-- 用户名 -->
<el-row>
<el-col class="user" v-for="item in messageContent" :key="item.id">
<div class="picture">
<img
src="https://hbimg.huabanimg.com/94d26a8255b902cd27b98da5e4518217ebc437892616-RZJfHt_fw658"
alt=""
/>
</div>
<div class="name">
<!-- 留言第一层 -->
<div class="firstLayer">
<span>{{ item.userName }}</span>
<span>{{ item.id }} {{ $t(`message.building`) }}</span>
<!-- 留言内容 -->
<p>{{ item.userMsg }}</p>
<!-- 回复 -->
<div class="reply">
<span>{{handelTime(item.userDate)}}</span>
<span @click="handelReply(item)">{{
$t(`message.reply`)
}}</span>
</div>
</div>
<!-- 回复留言层 -->
<div v-if="item.responList[0]">
<div v-for="replyItem in getData(item.responList)" :key="replyItem.id">
<div class="replyMessage" v-for="replySubItem in replyItem" :key="replySubItem.responid">
<div>
<img
src="https://hbimg.huabanimg.com/94d26a8255b902cd27b98da5e4518217ebc437892616-RZJfHt_fw658"
alt=""
/>
</div>
<div class="replyContent" >
<span>{{replySubItem.responser}}</span>
<span>{{replySubItem.respon}}</span>
<p class="time">
{{ handelTime(replySubItem.responDate) }}
<span @click="handelReply(item)">{{
$t(`message.reply`)
}}</span>
</p>
</div>
</div>
</div>
</div>
<!-- 回复留言下面的输入框 -->
<div class="replyInput" v-if="replyId == item.id">
<el-input
v-model="reply"
:placeholder="$t(`message.said1`)"
></el-input>
<el-button class="publish" @click="handelDefiniteReply">{{
$t(`message.determine`)
}}</el-button>
<el-button class="replyCancel" @click="handelCancelReply">{{
$t(`message.cancel`)
}}</el-button>
</div>
</div>
</el-col>
</el-row>
</div>
<!-- 点赞分享 -->
<div class="praise">
<span>{{ $t(`message.help`) }} </span>
<span @click="handelPraise"
><i class="i iz-like"></i>{{ praiseNum }}</span
>
<span><i class="i icai" @click="handelPoor"></i> {{ poorNum }}</span>
<i class="i itwitter-fill bird" @click="handelTwitter"></i>
<i class="i ifacebookfacebook52 facebook" @click="handelFacebook"></i>
<i class="i itelegram bird" @click="handelTelegram"></i>
<i class="i ireddit Reddit" @click="handelReddit"></i>
<!-- <span @click="handelShare"> <i class="i ifenxiang"></i></span> -->
</div>
<el-dialog title="选择分享" :visible.sync="dialogVisibleShare" width="30%">
<div class="shareBox">
<p @click="handelTwitter">分享页面到 Twitter</p>
<p @click="handelFacebook">分享页面到 Facebook</p>
<p @click="handelTelegram">分享页面到 Telegram</p>
<p @click="handelReddit">分享页面到 Reddit</p>
<p>分享页面到 discord</p>
</div>
<!-- <div class="shareBtn">
<el-button @click="dialogVisibleShare = false"> </el-button>
<el-button type="primary" @click="dialogVisibleShare = false"
> </el-button
>
</div> -->
</el-dialog>
</div>
</template>
<script>
import {
fetchMessageBoard,
submitMessage,
responMsg,
getPraise,
getClickPraisePoor,
} from "../api/messageBoard";
export default {
data() {
return {
leaveShow: true,
textarea: "",
messageContent: [
// {
// id: 1,
// userMsg: "我是第一条留言",
// userName: "留言人",
// msgDate: "2009-01-09T08:00:00.000+00:00",
// responList: {
// responId: 3,
// respon: "管理员回复此留言的内容",
// responser: "管理员",
// toUser: "留言人",
// responDate: "2009-01-09T08:01:00.000+00:00",
// responList: {
// responId: 4,
// respon: "用户回复管理员答复的内容",
// responser: "留言人",
// toUser: "留言人",
// responDate: "2009-01-09T08:02:00.000+00:00",
// responList: null,
// },
// },
// },
// {
// id: 2,
// userMsg: "我是第二条留言",
// userName: "留言人",
// msgDate: "2009-01-09T09:00:00.000+00:00",
// responList: null,
// },
],
reply: "",
WantShow: false,
messageContentShow: false,
messageBoard: {
//请求历史留言
page: "",
coinType: "",
pageNum: 1,
pagesize: 10,
},
pagelabel: "",
submitMsg: {
//发表留言
message: "",
page: "",
coinType: "",
},
replyId: "",
responMsg: {
//回复留言
message: "",
msg_id: "",
},
praiseNum: 0,
praiseFlag: false,
poorNum: 0,
poorFlag: false,
dialogVisibleShare: false,
twitterURL:"",
pageUrl:"",//网站当前页面地址
telegramURL:"",
};
},
watch: {
pagelabel() {//跳转不同页面 请求不同页面数据
this.fetchDefaultMessage(this.messageBoard);
this.fetchPraise({page:this.messageBoard.page,coinType:this.messageBoard.coinType})
},
},
mounted() {
this.messageBoard.page =JSON.parse(localStorage.getItem("params")).label//当前所在页面
this.messageBoard.coinType = localStorage.getItem("radius"); //当前币种
this.fetchDefaultMessage(this.messageBoard);
this.fetchPraise({page:this.messageBoard.page,coinType:this.messageBoard.coinType})//请求点赞 踩的历史数量
this.pageUrl = window.location.href
//监听localstorage改变赋值
window.addEventListener("setItem", (e) => {
this.messageBoard.page =JSON.parse(localStorage.getItem("params")).label
this.messageBoard.coinType = localStorage.getItem("radius");
this.pagelabel = JSON.parse(localStorage.getItem("params")).label
});
},
methods: {
//请求历史留言
async fetchDefaultMessage(data) {
const list = await fetchMessageBoard(data);
this.messageContent = list.data.data.data
if (this.messageContent[0]) {//有留言数据的情况 默认发表留言框不显示
this.messageContentShow = true;
this.WantShow = true;
this.leaveShow = false;
}else{
this.leaveShow = true;
this.WantShow = false;
this.messageContentShow = false;
}
},
//发表留言请求
async fetchSubmitMessage(data) {
const list = await submitMessage(data);
//点击发表以后要重新请求所有留言数据
this.fetchDefaultMessage(this.messageBoard);
},
//回复留言
async fetchResponMsg(data) {
const list = await responMsg(data);
// 回复留言以后查询 所有留言重新渲染
this.fetchDefaultMessage(this.messageBoard);
},
//请求点赞 踩的历史数量
async fetchPraise(data){
const list = await getPraise(data)
this.praiseNum = list.data.data.likeNum
this.poorNum = list.data.data.choose
},
//点赞 点踩以后传送数据
async fetchClickNum(data){
const list = await getClickPraisePoor(data)
},
//点击顶部我要留言
handelWantMessage() {
this.leaveShow = true;
},
//点击发表留言
handelPublish() {
// let id = 1;
// let obj = {
// id: id++,
// message: this.textarea,
// };
// id = obj.id;
// this.messageContent.push(obj);
this.leaveShow = false;
this.WantShow = true;
// -------------------
this.submitMsg.message = this.textarea;
this.submitMsg.page = this.messageBoard.page;
this.submitMsg.coinType = this.messageBoard.coinType;
console.log(this.submitMsg,6621544561213);
this.fetchSubmitMessage(this.submitMsg);
this.textarea = "";
},
//点击回复留言
handelReply(data) {
this.replyId = data.id; //通过ID控制回复框是否显示
},
//取消回复留言
handelCancelReply() {
this.replyId = "";
},
//确定回复留言
handelDefiniteReply() {
this.responMsg.message = this.reply;
this.responMsg.msg_id = this.replyId;
this.fetchResponMsg(this.responMsg);
this.reply =""
},
//点赞
handelPraise() {
this.praiseFlag = !this.praiseFlag;
if (this.praiseFlag) {
this.praiseNum++;
this.fetchClickNum({page:this.messageBoard.page,coinType:this.messageBoard.coinType,choose:1})//发送点赞或踩的数据到后端
} else {
this.fetchClickNum({page:this.messageBoard.page,coinType:this.messageBoard.coinType,choose:0})
this.praiseNum--;
}
//请求所有历史点赞数量
this.fetchPraise({page:this.messageBoard.page,coinType:this.messageBoard.coinType})
},
//踩
handelPoor() {
this.poorFlag = !this.poorFlag;
if (this.poorFlag) {
this.poorNum++;
this.fetchClickNum({page:this.messageBoard.page,coinType:this.messageBoard.coinType,choose:2})
} else {
this.poorNum--;
this.fetchClickNum({page:this.messageBoard.page,coinType:this.messageBoard.coinType,choose:0})
}
//请求所有历史点赞 踩数量
this.fetchPraise({page:this.messageBoard.page,coinType:this.messageBoard.coinType})
},
//点击分享
handelShare(){
this.dialogVisibleShare =true
},
//分享到Twitter
handelTwitter(){
this.twitterURL=`http://twitter.com/share?text=${this.$t(this.messageBoard.page)}&url=${this.pageUrl}`
window.open(this.twitterURL)
},
//分享到Facebook
handelFacebook(){
this.facebookURL=`https://www.facebook.com/sharer.php?u=${this.pageUrl}`
window.open(this.facebookURL)
},
//分享到Telegram
handelTelegram(){
this.telegramURL= `https://t.me/share?url=${this.pageUrl}&text=${this.$t(this.messageBoard.page)}`
window.open(this.telegramURL)
},
//分享到Reddit
handelReddit(){
this.redditURL= `http://www.reddit.com/submit?url=${this.pageUrl}&title=${this.$t(this.messageBoard.page)}`
window.open(this.redditURL)
},
// 处理留言板嵌套数组
getData(data){
let newData =[]
this.handelArrList(data,newData)
return newData
},
// 处理留言板嵌套数组
handelArrList(data,newData) {
let newObj ={}
Object.keys(data).forEach(item=>{
newObj[item]=data[item]
})
newData.push(newObj)
if (!newObj.responList) return
this.handelArrList(newObj.responList,newData)
},
//处理时间格式
handelTime(time){
return `${time.split("T")[0]} ${time.split("T")[1].split(".")[0]}`
}
},
};
</script>
<style lang="scss" scoped>
* {
margin: 0px;
padding: 0px;
box-sizing: border-box;
}
.leaveMessage {
margin-top: 5px;
position: relative;
width: 100%;
min-height: 200px;
// height: 500px;
background: #e5e5e5;
padding: 0px 5px;
padding-bottom: 50px;
// background: rgba(247,147,26,0.1);
border: 1px solid rgba(0, 0, 0, 0.1);
// background: red;
// outline: 1px solid red;
h3 {
margin: 0px;
display: inline-block;
// border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.wantMessage {
margin-left: 20px;
font-size: 14px;
color: #0098d8;
cursor: pointer;
}
.leaveContent {
width: 100%;
padding: 10px 0px;
// background: papayawhip;
margin-top: 10px;
border-top: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
.user {
// outline: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
padding: 10px 0px;
display: flex;
justify-content: space-around;
margin-top: 5px;
.picture {
padding: 10px;
img {
width: 40px;
height: 40px;
}
}
}
.name {
flex: 1;
// outline: 1px solid red;
font-size: 13px;
padding: 0px 20px;
.firstLayer{
// outline: 1px solid red;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
padding: 10px 0px;
}
span:nth-of-type(1) {
color: #0098d8;
}
span:nth-of-type(2) {
color: rgba(0, 0, 0, 0.6);
margin-left: 20px;
font-size: 13px;
}
p {
min-height: 20px; // outline: 1px solid red;
font-size: 13px;
margin-top: 10px;
}
.reply {
font-size: 12px;
span:nth-of-type(1) {
color: rgba(0, 0, 0, 0.6);
}
span:nth-of-type(2) {
color: #0098d8;
cursor: pointer;
}
}
}
}
.praise {
position: absolute;
bottom: 10px;
padding: 0px 10px;
color: rgba(0, 0, 0, 0.6);
// outline: 1px solid red;
span {
display: inline-block;
line-height: 30px;
font-weight: 600;
font-size: 15px;
// outline: 1px solid red;
}
i {
margin-left: 20px;
font-size: 18px;
cursor: pointer;
}
}
// 默认状态
.inputContent {
// outline: 1px solid red;
// border: 1PX solid #ccc;
margin-top: 5px;
.publish {
padding: 5px 20px;
margin-top: 10px;
background: #7b8c9e;
color: #fff;
}
}
// 回复留言
.replyMessage {
// outline: 1px solid red;
// height: 70px;
padding: 5px;
display: flex;
img {
width: 40px;
height: 40px;
}
.replyContent {
padding: 0px 10px;
span:nth-of-type(2) {
color: rgba(0, 0, 0, 1);
font-size: 14px;
}
.time {
color: rgba(0, 0, 0, 0.6);
height: 20px;
// margin: 0;
span {
cursor: pointer;
}
}
}
}
// .replyMessageBox{
// }
// 回复留言的输入框
.replyInput {
margin-top: 10px;
width: 60%;
.publish {
padding: 5px 10px;
margin-top: 10px;
background: #7b8c9e;
color: #fff;
}
.replyCancel {
padding: 5px 10px;
margin-top: 10px;
background: #7b8c9e;
color: #fff;
}
}
}
.passwordBox {
/* background: #b3c0d1; */
width: 70%;
margin: 0 auto;
z-index: 99998 !important;
}
// 选择分享
.shareBox{
// border: 1px solid red;
display: flex;
flex-direction: column;
p{
width: 100%;
border: 1px solid rgba(0, 0, 0, 0.1);
height: 40px;
margin-top: 5px;
text-align: center;
line-height: 40px;
cursor: pointer;
}
p:hover{
color:cadetblue;
background: floralwhite;
}
}
.shareBtn{
// border: 1px solid red;
margin-top: 20px;
display: flex;
height: 30px;
justify-content: right;
.el-button{
// border: 1px solid red;
width: 80px;
}
}
.bird{
// border:1px solid red;
color:#1d9bf0;
font-size: 20px !important;
}
.facebook{
color:#1d9bf0;
font-size: 20px !important;
}
.Reddit{
color:#ff4500;
font-size: 20px !important;
}
</style>

View File

@@ -0,0 +1,126 @@
<template>
<div class="footerMain">
<el-row>
<el-col >
<button class="navButton" v-for="item in menuItem" :key="item.value">{{item.label}}</button>
</el-col>
</el-row>
<el-row>
<el-col>
<img class="footerImg" src="../../public/img/f2.png" alt="">
<img class="footerImg" src="../../public/img/f1.png" alt="">
<img class="footerImg" src="../../public/img/f3.png" alt="">
</el-col>
</el-row>
<el-row>
<el-col>
<span class="version">©2022</span>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data(){
return{
menuItem:[
{
value:1,
label:"Home"
},
{
value:2,
label:"Pricing"
},
{
value:3,
label:"Catalog"
},
{
value:4,
label:"Insights"
},
{
value:5,
label:"Forum"
},
{
value:6,
label:"Documentation"
},
{
value:7,
label:"Academy"
},
{
value:8,
label:"Status"
},
{
value:9,
label:"Changelog"
},
{
value:10,
label:"Careers"
},
{
value:11,
label:"Contact"
},
{
value:12,
label:"Privacy Notice"
},
{
value:13,
label:"Terms & Conditions"
},
{
value:14,
label:"Impressum"
},
]
}
}
};
</script>
<style lang="scss" scoped>
.footerMain {
width: 100%;
height: 100%;
// outline: 1px solid red;
display: flex;
flex-direction: column;
justify-content: space-evenly;
}
.el-col{
// outline: 1px solid red;
display: flex;
align-items: center;
height: 28px;
}
.navButton{
font-size: 12px;
margin-left: 10px;
background: #333333;
color: #fff;
border: none;
padding: 0px;
cursor: pointer;
}
.navButton:hover{
border-bottom: 1px solid #fff;
}
.footerImg{
width: 15px;
margin-left: 10px;
cursor: pointer;
}
.version{
font-size: 12px;
margin-left: 10px;
}
</style>

View File

@@ -0,0 +1,179 @@
<template>
<div class="dropdownBox">
<div
style="
height: 100%;
border-right: 1px solid #ccc;
display: flex;
align-items: center;
padding-right: 10px;
flex-direction: column;
"
>
<span
style="
font-size: 12px;
color: rgba(0, 0, 0, 0.8);
margin-bottom: 3px;
display: inline-block;
width: 100px;
padding-left: 10px;
box-sizing: border-box;
"
>Resolution</span
>
<el-dropdown @command="handleCommand" style="width: 120px">
<span
class="el-dropdown-link"
style="font-size: 12px; display: inline-block;margin-left: 18px;"
>
{{ $t(activeValue) }}
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<!-- :disabled="item.grade >= grade" -->
<el-dropdown-item
:disabled="item.disabled"
v-for="item in dataSelection" :key="item.label" :command="item.value" >{{ $t(item.label) }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</template>
<script>
export default {
props: {
dataSelection: {
type: Array,
required: true,
},
onSelect: {
type: Function,
required: true,
},
realTimeData: true,
},
data() {
return {
activeValue: "home.day1", //1天
roleKey: "",
grade: "",
};
},
watch: {
realTimeData(val) {
if (!val) {
this.activeValue = "home.day1";
}
},
roleKey(){
switch (this.roleKey) {
case "guest"|| undefined:
this.grade = 1;
break;
case "registered":
this.grade = 2;
break;
case "advance":
this.grade = 3;
break;
case "vip":
this.grade = 4;
break;
case "admin":
this.grade = 10;
break;
default:
break;
}
this.dataSelection.forEach(item => {
if (item.grade>this.grade) {
item.disabled =true
}else{
item.disabled =false
}
});
}
},
mounted() {
if (localStorage.getItem("identity")) {
this.roleKey = JSON.parse(localStorage.getItem("identity")).roleKey;
}
window.addEventListener("setItem", () => {
if (localStorage.getItem("identity")) {
this.roleKey = JSON.parse(localStorage.getItem("identity")).roleKey;
}
});
switch (this.roleKey) {
case "guest"|| undefined:
this.grade = 1;
break;
case "registered":
this.grade = 2;
break;
case "advance":
this.grade = 3;
break;
case "vip":
this.grade = 4;
break;
case "admin":
this.grade = 10;
break;
default:
break;
}
this.dataSelection.forEach(item => {
if (item.grade>this.grade) {
item.disabled =true
}else{
item.disabled =false
}
});
},
methods: {
handleCommand(command) {
this.onSelect(command);
this.activeValue = this.dataSelection.find(
(item) => item.value === command ).label;
this.$addStorageEvent(1, "sma", "");
if (command=="1d") {
this.$addStorageEvent(1, "timeDisable", false);
}else{
this.$addStorageEvent(1, "timeDisable", true);
}
},
},
};
</script>
<style lang="scss" scoped>
.dropdownBox {
outline: 1px solid rgba(0, 0, 0, 0.1);
width: 100%;
height: 50px;
display: flex;
align-items: center;
box-sizing: border-box;
// margin-left: -30px;
margin-top: 5px;
padding: 5px 50px;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,650 @@
<template>
<div>
<!-- 普通用户头部 identityLabel !== `admin` &&-->
<div
v-show="
identityLabel !== `support` &&
identityLabel !== `verifier` &&
identityLabel !== `admin` &&
identityLabel !== `accounting`
"
>
<ul class="headList2">
<!-- 首页 -->
<li @click="handelJump(`/`)">{{ $t(`menu.homePage`) }}</li>
<!-- 账户升级 -->
<li @click="handelJump(`/AccountUpgrade`)">
{{ $t("menu.upgrade") }}
</li>
<!-- 退出 -->
<li @click="handelExit">{{ $t("login.exit") }}</li>
<!-- 联系客服 -->
<li @click="handelHelp">{{ $t("login.customerService") }}</li>
<!-- 用户名 退出 -->
<li v-show="!loginstatus">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<!-- style="text-transform: none;" 用户名取消首字母大写 -->
<span class="el-dropdown-link" style="text-transform: none">
{{ userName }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<!-- 退出 -->
<!-- <el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelExit">
{{ $t("login.exit") }}</el-dropdown-item
>
</el-dropdown-menu> -->
<!-- 个人资料 -->
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelPeople">
{{ $t(`login.personalData`) }}</el-dropdown-item
>
<!-- 订阅中心 -->
<!-- <el-dropdown-item @click.native="handelJump(`/subscribe`)">
{{ $t(`login.subscribeCenter`) }}</el-dropdown-item
> -->
<!-- 支付历史改为转账记录 -->
<el-dropdown-item @click.native="handelJump(`/payHistories`)">
{{ $t(`login.payHistories`) }}</el-dropdown-item
>
<!-- 提现记录 -->
<el-dropdown-item
@click.native="handelJump(`/withdrawalRecords`)"
>
{{ $t(`pay.withdrawalRecords`) }}</el-dropdown-item
>
<!-- 消费记录 -->
<el-dropdown-item
@click.native="handelJump(`/ConsumptionRecords`)"
>
{{ $t(`pay.consumption`) }}</el-dropdown-item
>
<!-- 充值 -->
<el-dropdown-item
@click.native="handelJump(`/Recharge`)"
style="font-family: Arial, sans-serif; font-size: 13px"
>
{{ $t(`pay.Recharge1`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li>
<!-- 余额 -->
<!-- <li>{{ $t(`login.balance`) }} :<span>***</span> </li> -->
<!--充值 -->
<!-- <li>{{ $t(`login.Recharge`) }}</li> -->
<!-- 提现 -->
<!-- <li>{{ $t(`login.Withdrawal`) }} </li> -->
<!-- 用户名 退出 -->
<!-- <li v-show="!loginstatus">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ userName }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelExit">
{{ $t("login.exit") }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li> -->
<!-- 当前等级-->
<!-- <li>{{ $t(`login.currentLevel`) }} : L3<span></span> </li> -->
<!-- 个人中心 -->
<!-- <li>
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.personal")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelPeople">
{{ $t(`login.personalData`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/subscribe`)">
{{ $t(`login.subscribeCenter`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/payHistories`)">
{{ $t(`login.payHistories`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li> -->
<!-- 帮助 修改为联系客服-->
<!-- <li class="help">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.customerService")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelHelp">
{{ $t(`login.feedback`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li> -->
<!-- 后台页面 -->
<!-- <li class="help">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.backgroundPage")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item
v-show="
identityLabel == `support` ||
identityLabel == `verifier` ||
identityLabel == `admin`
"
@click.native="handelJump(`/HelpBackstage`)"
>
{{ $t(`login.backstage`) }}</el-dropdown-item
>
<el-dropdown-item
v-show="identityLabel == `verifier` || identityLabel == `admin`"
@click.native="handelJump(`/subscribeBoard`)"
>
{{ $t(`login.subscribeBoard`) }}</el-dropdown-item
>
<el-dropdown-item
v-show="
identityLabel == `accounting` || identityLabel == `admin`
"
@click.native="handelJump(`/payManagement`)"
>
{{ $t(`login.payManagement`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/BackendWithdrawal`)">
{{ $t(`login.backendWithdrawal`) }}</el-dropdown-item
>
<el-dropdown-item v-show=" identityLabel == `support`||identityLabel == `admin` " @click.native="handelJump(`/DataMonitoring`)"> {{ $t(`menu.dataMonitoring`) }}</el-dropdown-item
>
<el-dropdown-item
@click.native="handelJump(`/BackgroundAddress`)"
>
{{ $t(`login.backgroundAddress`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/BackendPayment`)">
{{ $t(`login.backendPayment`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/BackendRefund`)">
{{ $t(`login.backendRefund`) }}</el-dropdown-item
>
<el-dropdown-item @click.native="handelJump(`/messageBoard`)">
{{ $t("message.backstage") }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li> -->
<!-- 留言板后台 -->
<!-- <li
v-show="
identityLabel == `support` ||
identityLabel == `verifier` ||
identityLabel == `admin`
"
@click="handelJump(`/messageBoard`)"
>
{{ $t("message.backstage") }}
</li> -->
<!-- 语言 -->
<li class="langs" @click="handelSwitching">{{ langs }}</li>
<!-- <li >
<el-dropdown trigger="click" szie="small" class="loginMenu">
<span class="el-dropdown-link">
切换中英文<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelExit">
中文
</el-dropdown-item
>
<el-dropdown-item @click.native="handelExit">
中文
</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li> -->
</ul>
</div>
<!-- 技术人员登录后 头部 support、verifier-->
<div v-show="identityLabel == `support` || identityLabel == `verifier`">
<ul class="headList2">
<!-- 首页 -->
<li @click="handelJump(`/`)">{{ $t(`menu.homePage`) }}</li>
<!-- 退出 -->
<li @click="handelExit">{{ $t("login.exit") }}</li>
<!-- 联系客服 -->
<li @click="handelHelp">{{ $t("login.customerService") }}</li>
<!-- 用户名 退出 -->
<li v-show="!loginstatus">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link" style="text-transform: none">
{{ userName }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<!-- 个人资料 -->
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelPeople">
{{ $t(`login.personalData`) }}</el-dropdown-item
>
<!-- 订阅中心 -->
<!-- <el-dropdown-item @click.native="handelJump(`/subscribe`)">
{{ $t(`login.subscribeCenter`) }}</el-dropdown-item
> -->
<!-- 支付历史 -->
<el-dropdown-item @click.native="handelJump(`/payHistories`)">
{{ $t(`login.payHistories`) }}</el-dropdown-item
>
<!-- 提现记录 -->
<el-dropdown-item
@click.native="handelJump(`/withdrawalRecords`)"
>
{{ $t(`pay.withdrawalRecords`) }}</el-dropdown-item
>
<!-- 消费记录 -->
<el-dropdown-item
@click.native="handelJump(`/ConsumptionRecords`)"
>
{{ $t(`pay.consumption`) }}</el-dropdown-item
>
<!-- 充值 -->
<el-dropdown-item
@click.native="handelJump(`/Recharge`)"
style="font-family: Arial, sans-serif; font-size: 13px"
>
{{ $t(`pay.Recharge1`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li>
<!-- 后台页面 后台管理-->
<li class="help">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.backgroundPage")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<!-- 数据监控 改为数据统计后台 访问统计-->
<!-- <el-dropdown-item
@click.native="handelJump(`/DataMonitoring`)"
>
{{ $t(`menu.dataMonitoring`) }}</el-dropdown-item
> -->
<!-- 订阅管理后台 改为订阅后台页面 消息订阅-->
<!-- <el-dropdown-item
v-show="identityLabel == `verifier` || identityLabel == `admin`"
@click.native="handelJump(`/subscribeBoard`)"
>
{{ $t(`login.subscribeBoard`) }}</el-dropdown-item
> -->
<!-- 帮助中心后台改为客服后台 客服中心-->
<el-dropdown-item
v-show="
identityLabel == `support` ||
identityLabel == `verifier` ||
identityLabel == `admin`
"
@click.native="handelJump(`/HelpBackstage`)"
>
{{ $t(`login.backstage`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li>
<!-- 语言 -->
<li class="langs" @click="handelSwitching">{{ langs }}</li>
</ul>
</div>
<!-- 财务用户头部 accounting -->
<div v-show="identityLabel == `accounting`">
<ul class="headList2">
<!-- 首页 -->
<li @click="handelJump(`/`)">{{ $t(`menu.homePage`) }}</li>
<!-- 退出 -->
<li @click="handelExit">{{ $t("login.exit") }}</li>
<!-- 联系客服 -->
<li @click="handelHelp">{{ $t("login.customerService") }}</li>
<!-- 用户名 个人资料 -->
<li v-show="!loginstatus">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link" style="text-transform: none">
{{ userName }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<!-- 个人资料 -->
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelPeople">
{{ $t(`login.personalData`) }}</el-dropdown-item
>
<!-- 订阅中心 -->
<!-- <el-dropdown-item @click.native="handelJump(`/subscribe`)">
{{ $t(`login.subscribeCenter`) }}</el-dropdown-item
> -->
<!-- 支付历史 -->
<el-dropdown-item @click.native="handelJump(`/payHistories`)">
{{ $t(`login.payHistories`) }}</el-dropdown-item
>
<!-- 提现记录 -->
<el-dropdown-item
@click.native="handelJump(`/withdrawalRecords`)"
>
{{ $t(`pay.withdrawalRecords`) }}</el-dropdown-item
>
<!-- 消费记录 -->
<el-dropdown-item
@click.native="handelJump(`/ConsumptionRecords`)"
>
{{ $t(`pay.consumption`) }}</el-dropdown-item
>
<!-- 充值 -->
<el-dropdown-item
@click.native="handelJump(`/Recharge`)"
style="font-family: Arial, sans-serif; font-size: 13px"
>
{{ $t(`pay.Recharge1`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</li>
<!-- 财务管理 -->
<li class="help">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.finance")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro">
<!-- 支付管理后台 改为充值后台页面 数据中心-->
<!-- <el-dropdown-item
@click.native="handelJump(`/payManagement`)"
>
{{ $t(`login.paymentBackend`) }}</el-dropdown-item
> -->
<!-- 后台提现 改为提现后台页面 提现订单-->
<el-dropdown-item
@click.native="handelJump(`/BackendWithdrawal`)"
>
{{ $t(`login.backendWithdrawal`) }}</el-dropdown-item
>
<!-- 后台确认支付 转账确认 -->
<!-- <el-dropdown-item @click.native="handelJump(`/BackendPayment`)">
{{ $t(`login.backendPayment`) }}</el-dropdown-item
> -->
<!-- 后台退款 退款确认-->
<!-- <el-dropdown-item @click.native="handelJump(`/BackendRefund`)">
{{ $t(`login.backendRefund`) }}</el-dropdown-item
> -->
<!-- 后台地址管理 收款地址 -->
<el-dropdown-item
@click.native="handelJump(`/BackgroundAddress`)"
>
{{ $t(`login.backgroundAddress`) }}</el-dropdown-item
>
<!--充值记录 -->
<el-dropdown-item @click.native="handelJump(`/RechargeRecord`)">
{{ $t(`login.RechargeRecord`) }}</el-dropdown-item
>
</el-dropdown-menu>
<!-- -->
</el-dropdown>
</li>
<!-- 语言 -->
<li class="langs" @click="handelSwitching">{{ langs }}</li>
</ul>
</div>
<!-- 管理员登录 -->
<div v-show="identityLabel == `admin`">
<ul class="headList2">
<!-- 首页 -->
<!-- <li @click="handelJump(`/`)">{{ $t(`menu.homePage`) }}</li> -->
<!-- 账户升级 -->
<!-- <li @click="handelJump(`/AccountUpgrade`)">
{{ $t("menu.upgrade") }}
</li> -->
<!-- 退出 -->
<!-- <li @click="handelExit">{{ $t("login.exit") }}</li> -->
<!-- 联系客服 -->
<!-- <li @click="handelHelp">{{ $t("login.customerService") }}</li> -->
<!-- 用户名 退出 -->
<li v-show="!loginstatus">
<!-- <el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link" style="text-transform: none">
{{ userName
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span> -->
<!-- 退出 -->
<!-- <el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelExit">
{{ $t("login.exit") }}</el-dropdown-item
>
</el-dropdown-menu> -->
<!-- 个人资料 -->
<!-- <el-dropdown-menu slot="dropdown" class="header-new-dro">
<el-dropdown-item @click.native="handelPeople">
{{ $t(`login.personalData`) }}</el-dropdown-item
> -->
<!-- 站内信 -->
<!-- <el-dropdown-item @click.native="handelJump(`/subscriptionLetter`)">
{{ $t(`login.subscriptionLetter`) }}</el-dropdown-item
> -->
<!-- 订阅与告警 -->
<!-- <el-dropdown-item @click.native="handelJump(`/Alarm`)">
{{ $t(`login.Alarm`) }}</el-dropdown-item
> -->
<!-- 订阅中心 -->
<!-- <el-dropdown-item @click.native="handelJump(`/subscribe`)">
{{ $t(`login.subscribeCenter`) }}</el-dropdown-item
> -->
<!-- 支付历史 -->
<!-- <el-dropdown-item @click.native="handelJump(`/payHistories`)">
{{ $t(`login.payHistories`) }}</el-dropdown-item
> -->
<!-- 提现记录 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/withdrawalRecords`)"
>
{{ $t(`pay.withdrawalRecords`) }}</el-dropdown-item
> -->
<!-- 消费记录 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/ConsumptionRecords`)"
>
{{ $t(`pay.consumption`) }}</el-dropdown-item
> -->
<!-- 充值 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/Recharge`)"
style="font-family: Arial, sans-serif; font-size: 13px"
>
{{ $t(`pay.Recharge1`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown> -->
</li>
<!-- 后台管理 -->
<li class="help">
<!-- <el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.backgroundPage")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro"> -->
<!-- 数据监控 改为数据统计后台 访问统计-->
<!-- <el-dropdown-item
@click.native="handelJump(`/DataMonitoring`)"
>
{{ $t(`menu.dataMonitoring`) }}</el-dropdown-item
> -->
<!-- 发布观察报告-->
<!-- <el-dropdown-item
@click.native="handelJump(`/publishObservations`)"
>
{{ $t(`login.publishObservations`) }}</el-dropdown-item
> -->
<!-- 订阅管理后台 改为订阅后台页面 消息订阅-->
<!-- <el-dropdown-item
v-show="identityLabel == `verifier` || identityLabel == `admin`"
@click.native="handelJump(`/subscribeBoard`)"
>
{{ $t(`login.subscribeBoard`) }}</el-dropdown-item
> -->
<!-- 帮助中心后台改为客服后台 客服中心-->
<!-- <el-dropdown-item
v-show="
identityLabel == `support` ||
identityLabel == `verifier` ||
identityLabel == `admin`
"
@click.native="handelJump(`/HelpBackstage`)"
>
{{ $t(`login.backstage`) }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown> -->
</li>
<!-- 财务管理 -->
<!-- <li class="help">
<el-dropdown
trigger="click"
:modal-append-to-body="true"
szie="small"
class="loginMenu"
>
<span class="el-dropdown-link">
{{ $t("login.finance")
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="header-new-dro"> -->
<!-- 支付管理后台 改为充值后台页面 充值确认 数据中心 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/payManagement`)"
>
{{ $t(`login.paymentBackend`) }}</el-dropdown-item
> -->
<!-- 后台提现 改为提现后台页面 提现确认-->
<!-- <el-dropdown-item
@click.native="handelJump(`/BackendWithdrawal`)"
>
{{ $t(`login.backendWithdrawal`) }}</el-dropdown-item
> -->
<!-- 后台确认支付 转账确认 -->
<!-- <el-dropdown-item @click.native="handelJump(`/BackendPayment`)">
{{ $t(`login.backendPayment`) }}</el-dropdown-item
> -->
<!-- 后台退款 退款确认-->
<!-- <el-dropdown-item @click.native="handelJump(`/BackendRefund`)">
{{ $t(`login.backendRefund`) }}</el-dropdown-item
> -->
<!-- 后台地址管理 收款地址 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/BackgroundAddress`)"
>
{{ $t(`login.backgroundAddress`) }}</el-dropdown-item
> -->
<!--充值记录 -->
<!-- <el-dropdown-item
@click.native="handelJump(`/RechargeRecord`)"
>
{{ $t(`login.RechargeRecord`) }}</el-dropdown-item
> -->
<!-- </el-dropdown-menu>
</el-dropdown> -->
<!-- </li> -->
<!-- 语言 -->
<!-- <li class="langs" @click="handelSwitching">{{ langs }}</li> -->
</ul>
</div>
</div>
</template>
<script>
export default {};
</script>
<style>
</style>

View File

@@ -0,0 +1,98 @@
export const Bian_zh = {
bian: {
oneMinutes:"1分钟",
minutes3:"3分钟",
minutes5:"5分钟",
minutes15:"15分钟",
minutes30:"30分钟",
hours1:"1小时",
hours2:"2小时",
hours4:"4小时",
hours6:"6小时",
hours8:"8小时",
hours12:"12小时",
day:"1天",
day3:"3天",
weekly:"周线",
selectCycle:"选择周期",
month:"月线",
open:"开",
high:"高",
low:"低",
closed:"收",
volume:"成交量",
assets:"资产",
interval:"间隔",
month1:"1个月",
introduce:"介绍",
Real:"实时数据",
details:"每日交易详情 数据展示",
date:"日期",
buy:"买入数量",
sell:"卖出数量",
block:"块高度",
transaction:"交易价格",
income:"卖出收益",
goal:"目标",
cycle:"K线周期",
lines:"K线根数",
kLineCycle:"请选择K线周期",
scanning:"开始扫描",
please:"请选择",
trading:"交易对",
level:"等级",
serialNumber:"序号",
},
};
export const Bian_en = {
bian: {
oneMinutes:"1 min",
minutes3:"3 min",
minutes5:"5 min",
minutes15:"15 min",
minutes30:"30 min",
hours1:"1h",
hours2:"2h",
hours4:"4h",
hours6:"6h",
hours8:"8h",
hours12:"12h",
day:"1day",
day3:"3days",
weekly:"weekly",
selectCycle:"Select cycle",
month:"month",
open:"open",
high:"high",
low:"low",
closed:"closed",
volume:"volume",
assets:"assets",
interval:"interval",
month1:"1 month",
introduce:"introduce",
Real:"Real time data.",
details:"Daily trading details data display",
date:"date",
buy:"Buy the number",
sell:"Sell quantity",
block:"Block height",
transaction:"The transaction price",
income:"Sell income",
goal:"Goal",
cycle:"K line cycle",
lines:"The number of K line",
kLineCycle:"Please select the K-line period",
scanning:"Start scanning",
please:"Please select a",
trading:"Trading on",
level:"level",
serialNumber:"number",
},
};

View File

@@ -0,0 +1,73 @@
export const MessageBoard_zh = {
message:{
backstage:"留言板后台",
messageBoard:"留言板",
message:"我要留言",
said:"说点什么...",
publish:"发表",
building:"楼",
reply:"回复",
determine:"确定",
cancel:"取消",
help:"本页面对您是否有帮助?",
said1:"我也说一句...",
todayMessage:"今日留言数",
processedMessage:"已处理留言数",
unprocessedMessage:"未处理留言数",
historyChart:"留言每日历史图表",
unprocessedTabel:"未处理留言列表",
num:"编号",
userDate:"日期",
userName:"用户名",
msgPage:"留言页面",
userMsg:"留言内容",
operation:"操作",
inputContent:"输入内容",
submitReply:"提交回复",
processedTabel:"已处理留言列表",
responDate:"回复时间",
responser:"回复人",
respon:"回复内容",
unread:"未读留言标签",
unreadTabel:"未读留言列表",
submissionTime:"提交时间",
submittedTabel:"已提交留言列表",
}
}
export const MessageBoard_en = {
message:{
backstage:"Message board backstage",
messageBoard:"Message board",
message:"I'd like to leave a message.",
said:"Say something...",
publish:"publish",
building:"layer",
determine:"determine",
cancel:"cancel",
help:"This page is helpful to you?",
said1:"Let me say something...",
reply:"reply",
todayMessage:"Number of messages today",
processedMessage:"Number of messages processed",
unprocessedMessage:"Number of unprocessed messages",
historyChart:"Comment daily history chart",
unprocessedTabel:"The message list is not processed",
num:"number",
userDate:"date",
userName:"User name",
msgPage:"Message page",
userMsg:"Message content",
operation:"operation",
inputContent:"Input content",
submitReply:"Submit a reply",
processedTabel:"The message list has been processed",
responDate:"Recovery time",
responser:"responder",
respon:"Reply content",
unread:"Unread message label",
unreadTabel:"List of unread messages",
submissionTime:"Submission time",
submittedTabel:"A list of comments has been submitted",
}
}

View File

@@ -0,0 +1,46 @@
export const arh_zh = {
arh: {
graph:"arh999囤币及逃顶指标",
dayGraph:"最近24小时数据图",
jzr:"江卓尔60日累计涨幅",
ma370:"2年移动平均价格乘数",
ndaq:"纳斯达克日K",
btc:"BTC日K",
pleaseTrade:"请选择交易对",
contracts:"未平仓合约数",
trading:"交易对",
time:"时间",
pleaseInterval:"请选择时间间隔",
search:"搜索",
distribution:"持有者地址数分布( 按余额分段)",
ratio:"持有者地址数分布( 按余额分段)比率分布",
ratio1:" 持有者币数量分布(按余额分段)",
ratio2:" 持有者币数量分布(按余额分段)比率分布",
},
};
export const arh_en = {
arh: {
graph:"arh999 hoarding and escape top index",
dayGraph:"Data chart for the last 24 hours",
jzr:"Jiang Zhuoer 60-day Cumulative Increase And Decrease",
ma370:"2 year moving average price multiplier",
ndaq:"Nasdaq Daily K",
btc:"BTC Daily K",
pleaseTrade:"Please select a trade pair",
contracts:"Number of contracts open interest",
trading:"Trading on",
time:"time",
pleaseInterval:"Please select an interval",
search:"search",
distribution:"Balance - number of holders distribution",
ratio:"Balance to holder ratio distribution",
ratio1:"Balance - the distribution of the number of coins held",
ratio2:"The balance to holder ratio distribution",
},
};

654
yq/src/lang/aside/index.js Normal file
View File

@@ -0,0 +1,654 @@
export const aside_zh = {
menu: {
onchain: "链上数据",
onchain1: "大额交易",
onchain2: "地址统计",
onchain3: "区块实时交易量",
onchain4: "日交易详情",
onchain5: "地址数分布",
onchain5I:"(余额)地址数分布",
onchain6: "币数量分布",
onchain6I: "(余额)币数量分布",
onchain7: "地址数分布",
onchain7I: "(时间)地址数分布",
onchain8: "币数量分布",
onchain8I: "(时间)币数量分布",
onchain9: "地址数分布",
onchain9I: "(价格)地址数分布",
onchain10: "币数量分布",
onchain10I: "(价格)币数量分布",
onchain11: "地址数分布",
onchain11I: "(价差)地址数分布",
onchain12: "币数量分布",
onchain12I: "(价差)币数量分布",
onchain13: "地址数分布",
onchain13I: "(盈利)地址数分布",
onchain14: "币数量分布",
onchain14I: "(盈利)币数量分布",
onchain15: "巨鲸地址列表",
onchain16: "巨鲸交易监控",
onchain17: "币价当前市值排名",
coinmarketall: "币价当前市值排名",
onchain18: "地址对应标记持有者名称关系列表",
onchain19: "交易统计",
onchain20: "矿工余额",
onchain21: "矿工余额",
technology: "技术指标",
technology1: "MVRV Ratio",
mvrv: "MVRV Ratio",
technology2: "MVRV Z-Score",
technology3: "NVTRatio",
technology4: "NVTSignal",
technology5: "日K线",
technology6: "江卓尔60日累计涨幅",
jzr60: "江卓尔60日累计涨幅",
technology7: "arh999囤币及逃顶指标",
arh999: "arh999囤币及逃顶指标",
technology8: "天针",
technology9: "ETF持有比特币",
technology10: "ETF比特币变动",
technology11: "2年移动平均价格乘数",
ma730: "2年移动平均价格乘数",
technology12: "已实现流通市值",
technology13: "资金费率",
technology14: "未平仓合约数",
technology15: "合约主动买入量",
technology16: "每日已实现盈利交易占比",
technology17: "已花费输出盈利比",
SOPR: "已花费输出盈利比",
technology18: "已花费输出平均寿命",
asol: "已花费输出平均寿命",
technology19: "已花费输出休眠平均天数",
technology20: "币天销毁量年龄分布",
soag: "币天销毁量年龄分布",
technology21: "流通供应量",
technology22: "累计币天销毁量(流通供应量)",
technology23: "累计币天销毁量",
technology24: "活跃度",
technology25: "已实现盈利量",
technology26: "已实现亏损量",
technology27: "已实现净收益损失比",
technology28: "流通市值",
marketcap: "流通市值",
technology29: "已实现流通市值",
rcap: "已实现流通市值",
technology30: "长期持有者 MVRV Ratio",
lthmvrv: "长期持有者 MVRV Ratio",
technology31: "短期持有者 MVRV Ratio",
sthmvrv: "短期持有者 MVRV Ratio",
technology32: "未实现的净收益损失比",
nupl: "未实现的净收益损失比",
technology33: "未实现的净收益量",
technology34: "未实现的净亏损量",
technology35: "长持者未实现的净收益损失比",
lthnupl: "长持者未实现的净收益损失比",
technology36: "短持者未实现的净收益损失比",
sthnupl: "短持者未实现的净收益损失比",
technology37: "币天销毁量",
CDD: "币天销毁量",
macro: "宏观经济指标",
macro1: "纳斯达克指数",
macro2: "纳斯达克指数 vs BTC",
exchange: "交易所数据",
exchange1: "合约K线",
exchange2: "交易量",
address: "地址",
address1: "活动地址",
address2: "每日活跃地址数",
address3: "每日发起交易地址数",
address4: "每日收到交易地址数",
address5: "新增地址",
address6: "每日新增地址数",
address7: "地址总数",
transactions: "交易汇总",
transactions1: "交易规模",
transactions2: "每天交易规模",
transactions3: "每秒交易规模",
transactions4: "交易量",
transactions5: "成交次数",
transactions6: "日成交率",
Distribution: "分配数据",
Distribution1: "地址余额 ≥0.1",
Distribution2: "地址余额 ≥0.01",
Distribution3: "地址余额 ≥1",
Distribution4: "地址余额 ≥10 ",
Distribution5: "地址余额 ≥100",
Distribution6: "地址余额 ≥1000",
Distribution7: "地址余额 ≥10000 ",
derivatives: "主要交易所衍生数据",
derivatives1: "具体数据",
derivatives2: "交易所日交易量",
derivatives3: "交易所笔数变动",
// Currency: "持有者币龄地址数/币数量分布图", 删除
Currency1: "持有者地址数详细分布(按持有时间分段)",
Currency2: "余额<0.01",
Currency2I: "(地址)余额<0.01",
balanceData1: "余额<0.01",
Currency3: "余额>=0.01 & < 0.1",
Currency3I: "(地址)余额>=0.01 & < 0.1",
balanceData2: "余额>=0.01 & < 0.1",
Currency4: "余额>=0.1 & < 1",
Currency4I: "(地址)余额>=0.1 & < 1",
balanceData3: "余额>=0.1 & < 1",
Currency5: "余额>=1 & < 10",
Currency5I: "(地址)余额>=1 & < 10",
balanceData4: "余额>=1 & < 10",
Currency6: "余额>=10 & < 100",
Currency6I: "(地址)余额>=10 & < 100",
balanceData5: "余额>=10 & < 100",
Currency7: "余额>=100 & < 1000",
Currency7I: "(地址)余额>=100 & < 1000",
balanceData6: "余额>=100 & < 1000",
Currency8: "余额>=1000 & < 10000",
Currency8I: "(地址)余额>=1000 & < 10000",
balanceData7: "余额>=1000 & < 10000",
Currency9: "余额>=10000",
Currency9I: "(地址)余额>=10000",
balanceData8: "余额>=10000",
Currency10: "持有者币数量详细分布(按持有时间分段)",
Currency11: "余额<0.01",
Currency11I: "(币数量)余额<0.01",
balanceData9: "余额<0.01",
Currency12: "余额>=0.01 & < 0.1",
Currency12I: "(币数量)余额>=0.01 & < 0.1",
balanceData10: "余额>=0.01 & < 0.1",
Currency13: "余额>=0.1 & < 1",
Currency13I: "(币数量)余额>=0.1 & < 1",
balanceData11: "余额>=0.1 & < 1",
Currency14: "余额>=1 & < 10",
Currency14I: "(币数量)余额>=1 & < 10",
balanceData12: "余额>=1 & < 10",
Currency15: "余额>=10 & < 100",
Currency15I: "(币数量)余额>=10 & < 100",
balanceData13: "余额>=10 & < 100",
Currency16: "余额>=100 & < 1000",
Currency16I: "(币数量)余额>=100 & < 1000",
balanceData14: "余额>=100 & < 1000",
Currency17: "余额>=1000 & < 10000",
Currency17I: "(币数量)余额>=1000 & < 10000",
balanceData15: "余额>=1000 & < 10000",
Currency18: "余额>=10000",
Currency18I: "(币数量)余额>=10000",
balanceData16: "余额>=10000",
large: "大额交易数据",
large1: "USDT大额交易监控",
large2: "USDC大额交易监控",
large5: "BUSD大额监控",
large3: "USDT日交易量",
large4: "USDC日交易量",
interval: "1月",
interval1: "历史数据",
interval2: "1周",
interval3: "1天",
interval4: "5分钟",
interval5: "无",
interval6: "1周及实时数据",
interval7: "默认1天,可根据选择时间间隔查询",
interval8: "选择交易对查询",
interval9: "通过查询时间间隔显示数据,默认5分钟",
interva20: "折线图:1月数据,表格:2天",
interva21: "条件查询显示",
interva22: "折线图:1月数据,表格:1周",
interva23: "所有数据 无时间线",
interva24:"8小时",
technology38:"Puell Multiple",
market:"市场指标",
nonChain:"非链数据",
transactionMonitoring:"大额交易监控",
holders:"持有者分布",
circulation:"流通量",
profitAddress:"盈利地址数",
lossAddress:"亏损地址数",
profitRatio:"地址盈亏比",
lthSupply:"长期持有者供应量",
lthSupply2:"长期持有者供应量",
sthSupply:"短期持有者供应量",
sthSupply2:"短期持有者供应量",
realizedPrice:"已实现价格",
relativeLthSth:"长/短期持有者供应量盈亏比",
relativeLthSth2:"长/短期持有者供应量盈亏比",
lthProfitSupply:"长期持有者盈利供应量",
lthProfitSupply2:"长期持有者盈利供应量",
lthLossSupply:"长期持有者亏损总供应量",
lthLossSupply2:"长期持有者亏损总供应量",
sthProfitSupply:"短期持有者盈利供应量",
sthProfitSupply2:"短期持有者盈利供应量",
sthLossSupply:"短期持有者亏损供应量",
sthLossSupply2:"短期持有者亏损供应量",
sthProfitRatio:"短期持有者盈亏比",
sthProfitRatio2:"短期持有者盈亏比",
SLRVRatio:"短期到长期实现价值比率",
SLRVRatio2:"短期到长期实现价值比率",
lthProfitRatio:"长期持有者盈亏比",
lthProfitRatio2:"长期持有者盈亏比",
lthVolume:"长期持有者每日交易量",
lthVolume2:"长期持有者每日交易量",
frm:"交易汇率乘数",
cvdd:"累积价值-销毁天数比",
cvdd2:"累积价值-销毁天数比",
balancedPrice:"已平衡价格",
nvtRatio:"市盈率",
nvtRatio2:"市盈率",
velocity:"流通速度",
holderAddress:"持有者地址数分布",
upgrade:"升级账户",
PiCycleTopIndicator:"PI周期顶指标",
ssr:"稳定币供应比",
ssro:"稳定币供应比振荡器",
stfRatio:"库存/新发行比",
stfDeflection:"库存/新发行偏差",
goldenRatioMult:"黄金比例乘数",
Miners:"矿工",
Network:"网络",
LongShort:"长/短期持有者",
ProfitLoss:"盈亏",
Lifetime:"币龄",
Ratio:"比率",
Holder:"持有者分布",
balanceGroup:"按余额划分",
timeGroup:"按持有时间划分",
priceGroup:"按买入价格划分",
PriceDifference:"按买卖价差划分",
profitGroup:"按盈利划分",
addressGroup:"地址详细分布",
CoinQuantity:"币数量详细分布",
earcap:"已实现流通市值(找零消除)",
earcap2:"已实现流通市值(找零消除)",
btcBalance:"交易所余额",
tzbp:"时区购买力",
bobp:"买入大单挂单",
bosp:"卖出大单挂单",
volumeProfile:"成交量分布图",
exchange10:"交易所余额",
dataMonitoring:"访问统计",
quickNews:"市场快讯",
economics:"财经日历",
currencyBTC:"BTC",
currencyETH:"ETH",
Stablecoin:"稳定币",
mempool:"待交易池详情",
nvtSign:"NVT信号",
homePage:"首页",
USTreasuriesYields:"国债收益率",
MoneyStockMeasures:"货币供应量",
loanPsi:"私营部门贷款",
loanGdp:"私人债务占GDP比重",
wei:"每周经济指数",
distributionLthSth:"长/短期持有者供应量盈亏分布",
macroscopic:"宏观经济(美国)",
other:"其他",
BTCMenu:"BTC",
ETHMenu:"ETH",
stableMenu:"稳定币",
macroscopicMenu:"宏观经济指标",
exchangeRate:"实时汇率",
GDP:"GDP",
newAddress:"新地址数",
newAddressVolume:"新地址交易量",
TransactionVolume:"交易量",
adjusted:"交易量(找零消除)",
TransactionFee:"交易费",
totalAddress:"总地址数",
minerBalance:"矿工地址余额",
minerAddress:"矿工地址数",
TransactionCount:"交易内存池数量",
memoryPoolFees:"交易内存池费用",
saCDD:"币天销毁量(供应调整)",
sadormancy:"已花费输出休眠平均天数(供应量调整)",
sellRatio:"合约主动买入量(买卖比率)",
balanceGroup2:"按余额划分地址数分布",
currencyGroup:"按余额划分币数量分布",
addressBalance:"余额 < 0.01",
addressBalance1:"余额 >=0.01 & <0.1",
addressBalance2:"余额 >=0.1 & <1",
addressBalance3:"余额 >=1 & <10",
addressBalance4:"余额 >=10 & <100",
addressBalance5:"余额 >=100 & <1000",
addressBalance6:"余额 >=1000 & <10000",
addressBalance7:"余额 >=10000",
currencyGroup1:"余额 < 0.01",
currencyGroup2:"余额 >=0.01 & <0.1",
currencyGroup3:"余额 >=0.1 & <1",
currencyGroup4:"余额 >=1 & <10",
currencyGroup5:"余额 >=10 & <100",
currencyGroup6:"余额 >=100 & <1000",
currencyGroup7:"余额 >=1000 & <10000",
currencyGroup8:"余额 >=10000",
activeAddresses:"活跃地址数",
ReceiveAddresses:"接收地址数",
SendAddresses:"发送地址数",
USDCETH:"USDC On ETH大额交易",
USDTETH:"USDT On ETH大额交易",
vdd:"价值损毁天数倍数",
},
};
export const aside_en = {
menu: {
onchain: "Onchain",
onchain1: "Big Amount Transaction",
onchain2: "Address Statistics",
onchain3: "Block Real-time Trading Volume",
onchain4: "Daily Transaction Details",
onchain5: "Address Distribution of Holder",
onchain5I:"(balance)Address Distribution of Holder",
onchain6: "Supply Distribution of Holder",
onchain6I: "(balance)Supply Distribution of Holder",
onchain7: "Address Distribution of Holder",
onchain7I: "(time)Address Distribution of Holder",
onchain8: "Supply Distribution of Holder",
onchain8I: "(time)Supply Distribution of Holder",
onchain9: "Address Distribution of Holder",
onchain9I: "(price)Address Distribution of Holder",
onchain10: "Supply Distribution of Holder",//
onchain10I: "(price)Supply Distribution of Holder",//
onchain11: "Address Distribution of Holder",
onchain11I: "(Price difference)Address Distribution of Holder",
onchain12: "Supply Distribution of Holder",
onchain12I: "(Price difference)Supply Distribution of Holder",
onchain13: "Address Distribution of Holder",
onchain13I: "(profit)Address Distribution of Holder",
onchain14: "Supply Distribution of Holder",
onchain14I: "(profit)Supply Distribution of Holder",
onchain15: "Whale Address List",
onchain16: "Whale trade monitoring",
onchain17: "Makret Value of the Currency",
coinmarketall:"The current market value of the currency",
onchain18: "Addresses correspond to a relational list of tag holder names",
onchain19: "Transaction statistics",
onchain20: "Miner Balance",
onchain21: "Miner Balance",
technology: "Technical indicators",
technology1: "MVRV Ratio",
mvrv:"Market Value To Realized Value(MVRV) Ratio",
technology2: "MVRV Z-Score",
technology3: "NVTRatio",
technology4: "NVTSignal",
technology5: "day K line",
technology6: "Jiang Zhuoer 60-day Cumulative Gain",
jzr60:"Jiang Zhuoer 60-day Cumulative Increase and Decrease",
technology7: "ahr999 hoarding index",
arh999:"ahr999 Hoarding and Escape Top Index",
technology8: "Days needle",
technology9: "ETF hold bitcoins",
technology10: "ETF Bitcoin moves",
technology11: "2-Year MA Multiplier",
ma730:"2 Years Moving Average Price Multiplier",
technology12: "Realized capitalization",
technology13: "Funding Rate",
technology14: "Number of Open Interest",
technology15: "Perpetual By Active Buying",
technology16: "Daily Percent UTXOs in Profit",
technology17: "SOPR",
SOPR:"Spent Output Profit Ratio (SOPR)",
technology18: "ASOL",
asol:"Average Spent Output Lifespan(ASOL)",
technology19: "Dormancy",
technology20: "Age distribution of CDD",
soag:"Age distribution of Coin Days Destoryed(CDD)",
technology21: "Circulating Supply",
technology22: "Cumulative Circulating Supply",
technology23: "Cumulative Coin Days Destroyed",
technology24: "Liveliness",
technology25: "Realized Profit",
technology26: "Realized Loss",
technology27: "Realized Profit/Loss Ratio",
technology28: "Market Cap",
marketcap:"Market Cap [USD]",
technology29: "Realized Cap",
rcap:"Realized Cap [USD]",
technology30: "LTH MVRV",
lthmvrv:"Long-Term Holder(LTH) MVRV",
technology31: "STH MVRV",
sthmvrv:"Short-Term Holder (STH) MVRV",
technology32: "NUPL",
nupl:"Net Unrealized Profit/Loss(NUPL)",
technology33: "Unrealized Profit",
technology34: "Unrealized Loss",
technology35: "LTH NUPL",
lthnupl:"Long Term Holder NUPL",
technology36: "STH NUPL",
sthnupl:"Short Term Holder NUPL",
technology37: "CDD",
CDD:"Coin Days Destoryed(CDD)",
macro: "Macroeconomic Indicators",
macro1: "NDAQ index",
macro2: "NDAQ index Vs BTC",
exchange: "Exchange Data",
exchange1: "Contract K line",
exchange2: "Trading volume",
address: "Addresses",
address1: "Activities address",
address2: "Number of active addresses per day",
address3: "Number of address initiates per day",
address4: "Number of transaction addresses received per day",
address5: "The new address",
address6: "Number of newly added addresses per day",
address7: "The total number of addresses",
transactions: "The transactions",
transactions1: "deals The size of the ",
transactions2: "Daily trading size",
transactions3: "Transaction size per second",
transactions4: "Trading volume",
transactions5: "Clinch a deal the number",
transactions6: "Day of closing",
Distribution: "Distribution of data",
Distribution1: "Address the balance ≥0.1",
Distribution2: "Address the balance ≥0.01",
Distribution3: "Address the balance ≥1",
Distribution4: "Address the balance ≥10 ",
Distribution5: "Address the balance ≥100",
Distribution6: "Address the balance ≥1000",
Distribution7: "Address the balance ≥10000 ",
derivatives: "Major exchange derivatives data",
derivatives1: "The specific data",
derivatives2: "Daily exchange volume",
derivatives3: "Changes in the number of transactions",
Currency: "Distribution map of address number of holder coin age/coin quantity",
Currency1: "Detailed Distribution of Holder addresses (by time held)",
Currency2: "The balance of>=0 and <0.01",
Currency2I: "(address)The balance of>=0 and <0.01",
balanceData1:"Address Distribution(The balance of>=0 and <0.01)",
Currency3: "The balance of>=0.01 and <0.1",
Currency3I: "(address)The balance of>=0.01 and <0.1",
balanceData2:"Address Distribution(The balance of>=0.01 and <0.1)",
Currency4: "The balance of>=0.1 and <1",
Currency4I: "(address)The balance of>=0.1 and <1",
balanceData3:"Address Distribution(The balance of>=0.1 and <1)",
Currency5: "The balance of>=1 and <10",
Currency5I: "(address)The balance of>=1 and <10",
balanceData4:"Address Distribution(The balance of>=1 and <10)",
Currency6: "The balance of>=10 and <100",
Currency6I: "(address)The balance of>=10 and <100",
balanceData5:"Address Distribution(The balance of>=10 and <100)",
Currency7: "The balance of>=100 and <1000",
Currency7I: "(address)The balance of>=100 and <1000",
balanceData6:"Address Distribution(The balance of>=100 and <1000)",
Currency8: "The balance of>=1000 and <10000",
Currency8I: "(address)The balance of>=1000 and <10000",
balanceData7:"Address Distribution(The balance of>=1000 and <10000)",
Currency9: "The balance of>=10000",
Currency9I: "(address)The balance of>=10000",
balanceData8:"Address Distribution(The balance of>=10000)",
Currency10: "Detailed distribution of the number of holders' coins (by holding time)",
Currency11: "The balance of>=0 and <0.01",
Currency11I: "(Number of coins)The balance of>=0 and <0.01",
balanceData9:"Supply Distribution(The balance of>=0 and <0.01)",
Currency12: "The balance of>=0.01 and <0.1",
Currency12I: "(Number of coins)The balance of>=0.01 and <0.1",
balanceData10:"Supply Distribution(The balance of>=0.01 and <0.1)",
Currency13: "The balance of>=0.1 and <1",
Currency13I: "(Number of coins)The balance of>=0.1 and <1",
balanceData11:"Supply Distribution(The balance of>=0.1 and <1)",
Currency14: "The balance of>=1 and <10",
Currency14I: "(Number of coins)The balance of>=1 and <10",
balanceData12:"Supply Distribution(The balance of>=1 and <10)",
Currency15: "The balance of>=10 and <100",
Currency15I: "(Number of coins)The balance of>=10 and <100",
balanceData13:"Supply Distribution(The balance of>=10 and <100)",
Currency16: "The balance of>=100 and <1000",
Currency16I: "(Number of coins)The balance of>=100 and <1000",
balanceData14:"Supply Distribution(The balance of>=100 and <1000)",
Currency17: "The balance of>=1000 and <10000",
Currency17I: "(Number of coins)The balance of>=1000 and <10000",
balanceData15:"Supply Distribution(The balance of>=1000 and <10000)",
Currency18: "The balance of>=10000",
Currency18I: "(Number of coins)The balance of>=10000",
balanceData16:"Supply Distribution(The balance of>=10000)",
large: "Large transaction data",
large1: "USDT large transaction monitoring",
large2: "USDC large transaction monitoring",
large3: "Daily trading volume of USDT",
large4: "Daily trading volume of USDC",
interval: "Last month",
interval1: "The historical data",
interval2: "week",
interval3: "day",
interval4: "5 minutes",
interval5: "There is no",
interval6: "1 week and real-time data",
interval7: "The default is 1 day, which can be queried according to the selected time interval",
interval8: "Select transaction pair query",
interval9: "Display data through the query interval. Default is 5 minutes.",
interva20: "Line chart: January data, table: 2 days",
interva21: "Conditional query display",
interva22: "Line chart: January data, table: 1 week",
interva23: "All data has no time line",
interva24:"8 hours",
technology38:"Puell Multiple",
market:"Market Indicators",
nonChain:"Off link data",
transactionMonitoring:"Large transaction monitoring",
holders:"Distribution of holders",
circulation:"Flux Of Circulation",
profitAddress:"Address in Profit",
lossAddress:"Address in Loss",
profitRatio:"Percent of Address in Profit",
lthSupply:"Total Supply Held by LTH",
lthSupply2:"Total Supply Held by Long-Term Holders(LTH)",
sthSupply:"Total Supply Held by STH",
sthSupply2:"Total Supply Held by Short-Term Holders(STH)",
realizedPrice:"Realized Price",
lthProfitSupply:"Total Supply in Profit Held by LTH",
lthProfitSupply2:"Total Supply in Profit Held by Long-Term Holders(LTH)",
lthLossSupply:"Total Supply in Loss Held by LTH",
lthLossSupply2:"Total Supply in Loss Held by Long-Term Holders(LTH)",
sthProfitSupply:"Total Supply in Profit Held by STH",
sthProfitSupply2:"Total Supply in Profit Held by Short-Term Holders(STH)",
sthLossSupply:"Total Supply in Loss Held by STH",
sthLossSupply2:"Total Supply in Loss Held by Short-Term Holders(STH)",
sthProfitRatio:"STH Profit/Loss Ratio",
sthProfitRatio2:"Short-Term Holder (STH) Profit/Loss Ratio",
SLRVRatio:"SLRV Ratio",
SLRVRatio2:"Short to Long-Term Realized Value (SLRV) Ratio",
lthProfitRatio:"LTH Profit/Loss Ratio",
lthProfitRatio2:"Long-Term Holder (LTH) Profit/Loss Ratio",
relativeLthSth:"LTH/STH Supply in Profit/Loss",
relativeLthSth2:"Long- and Short-Term Holder Supply in Profit/Loss",
lthVolume:"LTH Daily Volume",
lthVolume2:"Long-Term Holder(LTH) Daily Volume",
frm:"Fee Ratio Multiple(FRM)",
cvdd:"CVDD",
cvdd2:"Cumulative Value-Days Destroyed (CVDD)",
balancedPrice:"Balanced Price",
nvtRatio:"NVT Ratio",
nvtRatio2:"Network Value to Transactions(NVT) Ratio",
velocity:"Velocity",
holderAddress:"Holder address number distribution",
upgrade:"Upgrade Plan",
piCycleTopIndicator:"Pi Cycle Top Indicator",
ssr:"Stablecoin Supply Ratio (SSR)",
ssro:"Stablecoin Supply Ratio (SSR) Oscillator",
stfRatio:"Stock-to-Flow Ratio",
stfDeflection:"Stock-to-Flow Deflection",
goldenRatioMult:"Golden Ratio Multiplier",
Miners:"Miners",
Network:"Network info",
LongShort:"Long/Short Term",
ProfitLoss:"Profit/Loss",
Lifetime:"Coin lifespan",
Ratio:"Ratio",
Holder:"Holder",
balanceGroup:"By Balance",
timeGroup:"By Holding Time",
priceGroup:"By Buying Price",
PriceDifference:"By Price Gap",
profitGroup:"By Profit",
addressGroup:"Address Detail",
CoinQuantity:"Supply Detail",
earcap:"Entity-adjusted Realized Cap",
earcap2:"Entity-adjusted Realized Cap [USD]",
btcBalance:"Exchange Balance (BTC)",
tzbp:"Buy Power for Time Zone",
bobp:"Buy Power for Big Order",
bosp:"Sell Power for Big Order",
volumeProfile:"Volume Profile",
PiCycleTopIndicator:"Pi Cycle Top Indicator",
exchange10:"Exchange Balance",
dataMonitoring:"Summary",
quickNews:"Market News",
economics:"Economic Calendar",
currencyBTC:"BTC",
currencyETH:"ETH",
Stablecoin:"Stablecoin",
mempool:"Mempool Transactions",
nvtSign:"Network Value to Transactions Signal",
homePage:"homePage",
USTreasuriesYields:"TreasuriesYields",
MoneyStockMeasures:"currency supply",
loanPsi:"loans to private sector",
loanGdp:"Private debt as a percentage of GDP",
wei:"Weekly Economic Index",
distributionLthSth:"LTH/STH Supply Distribution",
macroscopic:"Macroeconomics (United States)",
other:"other",
BTCMenu:"BTC",
ETHMenu:"ETH",
stableMenu:"Stable currency",
macroscopicMenu:"Macroeconomics",
exchangeRate:"Real time exchange rate",
GDP:"Gross Domestic Product",
newAddress:"New Addresses",
newAddressVolume:"New Addresses Volume",
TransactionVolume:"Transactions Volume",
adjusted:"Transactions Volume(Entity-Adjusted)",
TransactionFee:"Transactions Fee",
totalAddress:"Total Addresses",
minerBalance:"Miner Balance",
minerAddress:"Miner Addresses",
TransactionCount:"Mempool Transactions Count",
memoryPoolFees:"Mempool Transactions Fees",
saCDD:"Supply-Adjusted CDD",
sadormancy:"Supply-Adjusted Dormancy",
sellRatio:"Perpetual By Active Buying(Buy & Sell Ratio)",
balanceGroup2:"By Balance Address Distribution of Holder",
currencyGroup:"By Balance Supply Distribution of Holder",
addressBalance:"Balance < 0.01",
addressBalance1:"Balance >=0.01 and Balance <0.1",
addressBalance2:"Balance >=0.1 and Balance <1",
addressBalance3:"Balance >=1 and Balance <10",
addressBalance4:"Balance >=10 and Balance <100",
addressBalance5:"Balance >=100 and Balance <1000",
addressBalance6:"Balance >=1000 and Balance <10000",
addressBalance7:"Balance >=10000",
currencyGroup1:"Balance < 0.01",
currencyGroup2:"Balance >=0.01 and Balance <0.1",
currencyGroup3:"Balance >=0.1 and Balance <1",
currencyGroup4:"Balance >=1 and Balance <10",
currencyGroup5:"Balance >=10 and Balance <100",
currencyGroup6:"Balance >=100 and Balance <1000",
currencyGroup7:"Balance >=1000 and Balance <10000",
currencyGroup8:"Balance >=10000",
activeAddresses:"Active Addresses",
ReceiveAddresses:"Receive Addresses",
SendAddresses:"Send Addresses",
USDCETH:"USDC(ETH) Big Amount Transaction",
USDTETH:"USDT(ETH) Big Amount Transaction",
vdd:"Value Days Destroyed (VDD) Multiple",
},
};

View File

@@ -0,0 +1,272 @@
export const asideEth_zh = {
menu2: {
onchain: "链上数据",
onchain1: "大额交易",
onchain2: "巨鲸地址列表",
onchain18: "地址对应标记持有者名称关系列表",
onchain19: "交易统计",
technology: "技术指标",
technology5: "日K线",
technology8: "天针",
technology6: "江卓尔60日累计涨幅",
jzr60: "江卓尔60日累计涨幅",
technology7: "arh999指标",
technology11: "2年移动平均价格乘数",
ma730: "2年移动平均价格乘数",
address: "地址",
address1: "活动地址",
address2: "每日活跃地址数",
address3: "每日发起交易地址数",
address4: "每日收到交易地址数",
address5: "新增地址",
address6: "每日新增地址数",
address7: "地址总数",
transactions: "交易汇总",
transactions4: "交易量",
transactions5: "成交次数",
transactions6: "日成交率",
Distribution: "分配数据",
Distribution1: "地址余额 ≥0.1",
Distribution2: "地址余额 ≥0.01",
Distribution3: "地址余额 ≥1",
Distribution4: "地址余额 ≥10 ",
Distribution5: "地址余额 ≥100",
Distribution6: "地址余额 ≥1000",
Distribution7: "地址余额 ≥10000 ",
derivatives: "主要交易所衍生数据",
derivatives1: "具体数据",
derivatives2: "交易所日交易量",
derivatives3: "交易所笔数变动",
large5: "代币大额交易",
ercBigDeals: "代币大额交易",
large6: "代币交易量",
reward: "抵押奖励",
cnew: "新合约数",
newContract: "新合约地址",
ethTopAddrMonitorList: "巨鲸地址交易历史",
tronUSDTBigTx: "USDT on TRON大额交易",
tronUSDCBigTx: "USDC on TRON大额交易",
tronUsdtVolume: "USDT on TRON交易量",
tronUsdcVolume: "USDC on TRON交易量",
dailyTrading: "日交易量",
monitoring: "大额交易监控",
usdt: "USDT交易量",
usdt2: "USDT交易量",
usdc: "USDC交易量",
usdc2: "USDC交易量",
busd: "BUSD交易量",
busd2: "BUSD交易量",
csusdc: "USDC流通量",
csusdc2: "USDC流通量",
csusdt: "USDT流通量",
csbusd: "BUSD流通量",
cstotal: "总流通量",
PiCycleTopIndicator: "PI周期顶指标",
goldenRatioMult: "黄金比例乘数",
cdd: "币天销毁量",
cdd2: "币天销毁量",
dormancy: "已花费输出休眠平均天数",
asol: "已花费输出平均寿命",
asol2: "已花费输出平均寿命",
cddwave: "币天销毁量年龄分布",
cddwave2: "币天销毁量年龄分布",
distribution: "地址数分布",
supplyDistribution: "币数量分布",
profitPercent: "盈利地址百分比",
profit: "盈利地址数",
loss: "亏损地址数",
inflationRate: "通货膨胀率",
issuance: "新币发行量",
sopr: "已花费输出盈利比",
sopr2: "已花费输出盈利比",
velocity: "流通速度",
nvtRatio: "市盈率",
nvtRatio2: "市盈率",
liveliness: "活跃度",
frm: "交易费率乘数",
supplyprofitPercent: "盈利百分比",
supplyprofit: "盈利供应量",
supplyloss: "盈利亏损量",
nupl: "未实现的净收益损失比",
nupl2: "未实现的净收益损失比",
relativeUProfit: "未实现的净收益量",
relativeULoss: "未实现的净亏损量",
lthNUPL: "长持者未实现的净收益损失比",
lthNUPL2: "长持者未实现的净收益损失比",
sthNUPL: "短持者未实现的净亏损损失比",
sthNUPL2: "短持者未实现的净亏损损失比",
marketcap: "流通市值",
marketcap2: "流通市值",
rcap: "已实现流通市值",
rcap2: "已实现流通市值",
rprice: "已实现价格",
mvrvRatio: "MVRV Ratio",
mvrvRatio2: "MVRV Ratio",
burnedSupply: "燃烧量",
mintedSupply: "发行量",
Miners:"矿工",
Network:"网络",
LongShort:"长/短期持有者",
ProfitLoss:"盈亏",
Lifetime:"币龄",
Ratio:"比率",
Token:"代币",
balanceGroup:"按余额划分",
Holder:"持有者分布",
flux:"流通量",
casting:"铸造",
TradingVolume:"交易量",
Bulk:"大额交易监控",
USDTCasting:"USDT铸造量",
USDTCasting2:"USDT铸造量",
USDCCasting:"USDC铸造量",
USDCCasting2:"USDC铸造量",
BUSDCasting:"BUSD铸造量",
BUSDCasting2:"BUSD铸造量",
ethBalance:"交易所余额",
USDCMonitoring:"USDC大额交易",
USDCMonitoring2:"USDC大额交易",
USDTMonitoring:"USDT大额交易",
USDTMonitoring2:"USDT大额交易",
BUSDMonitoring:"BUSD大额交易",
BUSDMonitoring2:"BUSD大额交易",
},
};
export const asideEth_en = {
menu2: {
onchain1: "Big Amount Transaction",
onchain18: "Addresses correspond to a relational list of tag holder names",
onchain2: "Whales Address List",
onchain19: "Transaction Statistics",
technology: "Technical indicators",
technology5: "Day K line",
technology6: "Jiang Zhuoer 60-day Cumulative Gain",
jzr60:"Jiang Zhuoer 60-day Cumulative Increase and Decrease",
technology7: "Arh999 indicators",
technology8: "Days needle",
technology11: "2-Year MA Multiplier",
ma730:"2 Years Moving Average Price Multiplier",
address: "address",
address1: "Activities address",
address2: "Number of active addresses per day",
address3: "Number of address initiates per day",
address4: "Number of transaction addresses received per day",
address5: "The new address",
address6: "Number of newly added addresses per day",
address7: "The total number of addresses",
transactions: "The transactions",
transactions4: "Trading volume",
transactions5: "Clinch a deal the number",
transactions6: "Day of closing",
Distribution: "Distribution of data",
Distribution1: "Address the balance ≥0.1",
Distribution2: "Address the balance ≥0.01",
Distribution3: "Address the balance ≥1",
Distribution4: "Address the balance ≥10 ",
Distribution5: "Address the balance ≥100",
Distribution6: "Address the balance ≥1000",
Distribution7: "Address the balance ≥10000 ",
derivatives: "Major exchange derivatives data",
derivatives1: "The specific data",
derivatives2: "Daily exchange volume",
derivatives3: "Changes in the number of transactions",
large5: "ERC20 Token Big Amount Transaction",
ercBigDeals:"ERC20 Token Big Amount Transaction History",
large6: "ERC20 Token Daily Volume",
reward: "ETH2 Staking Rewards",
cnew: "Number of New Contract",
newContract: "New Contracts",
ethTopAddrMonitorList: "Top Address History",
tronUSDTBigTx: "USDT(tron) big amount transaction",
tronUSDCBigTx: "USDC(tron) big amount transaction",
tronUsdtVolume: "usdt(tron) volume",
tronUsdcVolume: "usdc(tron) volume",
dailyTrading: "Daily trading volume",
monitoring: "Large transaction monitoring",
usdt: "USDT Volume",
usdt2:"Onchain volume(USDT)",
usdc: "USDC Volume",
usdc2:"Onchain volume(USDC)",
busd: "BUSD Volume",
busd2:"Onchain volume(BUSD)",
csusdc: "USDC Supply",
csusdt: "USDT Supply",
csbusd: "BUSD Supply",
cstotal: "Total Supply",
PiCycleTopIndicator: "Pi Cycle Top Indicator",
goldenRatioMult: "Golden Ratio Multiplier",
cdd: "CDD",
cdd2:"Coin Days Destroyed(CDD)",
dormancy: "Dormancy",
asol: "ASOL",
asol2:"Average Spent Output Lifespan(ASOL)",
cddwave: "Age Distribution Of CDD",
cddwave2:"Age distribution of Coin Days Destoryed(CDD)",
distribution: "Address Distribution of Holder",
supplyDistribution: "Supply Distribution of Holder",
profitPercent: "Percent of Address in Profit",
profit: "Address in Profit",
loss: "Address in Loss",
inflationRate: "Inflation Rate",
issuance: "Issuance ",
sopr: "SOPR",
sopr2:"Spent Output Profit Ratio (SOPR)",
velocity: "Velocity",
nvtRatio: "NVT Ratio",
nvtRatio2:"Network Value To Transactions(NVT) Ratio",
liveliness: "Liveliness",
frm: "Fee Ratio Multiple(FRM)",
supplyprofitPercent: "Percent Supply In Profit",
supplyprofit: "Total Supply In Profit",
supplyloss: "Total Supply In Loss",
nupl: "NUPL",
nupl2:"Net Unrealized Profit/Loss(NUPL)",
relativeUProfit: "Unrealized Profit",
relativeULoss: "Unrealized Loss",
lthNUPL: "LTH NUPL",
lthNUPL2:"Long Term Holder NUPL",
sthNUPL: "STH NUPL",
sthNUPL2:"Short Term Holder NUPL",
marketcap: "Market Cap",
marketcap2:"Market Cap [USD]",
rcap: "Realized Cap",
rcap2:"Realized Cap [USD]",
rprice: "Realized Price",
mvrvRatio: "MVRV Ratio",
mvrvRatio2:"Market Value To Realized Value(MVRV) Ratio",
burnedSupply: "Burned Supply",
mintedSupply: "Minted Supply",
Miners:"Miners",
Network:"Network info",
LongShort:"Long Short",
ProfitLoss:"Profit/Loss",
Lifetime:"Coin Lifespan",
Ratio:"Ratio",
Token:"Token",
balanceGroup:"By Balance",
Holder:"Holder",
flux:"Circulating Supply",
casting:"Number of Minted",
TradingVolume:"Onchain Volume",
Bulk:"Big Amount Transaction",
USDTCasting:"USDT Minted",
USDTCasting2:"Number of Minted(USDT)",
USDCCasting:"USDC Minted",
USDCCasting2:"Number of Minted(USDC)",
BUSDCasting:"BUSD Minted",
BUSDCasting2:"Number of Minted(BUSD)",
ethBalance:"Exchange Balance (ETH)",
USDCMonitoring:"USDC transaction",
USDCMonitoring2:"Big Amount transaction(USDC)",
USDTMonitoring:"USDT transaction",
USDTMonitoring2:"Big Amount transaction(USDT)",
BUSDMonitoring:"BUSD transaction",
BUSDMonitoring2:"Big Amount transaction(BUSD)",
},
};

View File

@@ -0,0 +1,21 @@
export const asideMacroscopic_zh ={
Macroscopic:{
monetaryFinance:"货币金融",
loan:"贷款",
bond:"债券",
stockIndex:"股指",
GDP:"GDP",
info:"资讯",
}
}
export const asideMacroscopic_en ={
Macroscopic:{
monetaryFinance:"Monetary Finance",
loan:"loan",
bond:"bond",
stockIndex:"Stock index",
GDP:"GDP",
info:"information",
}
}

28
yq/src/lang/en.js Normal file
View File

@@ -0,0 +1,28 @@
export default {
message: {
userName:`user name`,
login:"login",
password:"password",
account:"There is no account?",
registered:"registered",
forgotPassword:"Forgot password?",
resetPassword:"To reset your password",
cancel:"cancel",
switchLanguages:"Switching between Chinese and English",
charts:"chart"
},
placeholder:{
data: 'select date'
},
login:{
data: 'login'
}
}

View File

@@ -0,0 +1,21 @@
export const formula_zh ={
formula:{
name:"名称",
updateTime:"更新时间",
updateInterval:"更新间隔",
queryTime:"查询时间",
state:"状态",
newData:"最新数据",
}
}
export const formula_en ={
formula:{
name:"name",
updateTime:"Update time",
updateInterval:"update interval",
queryTime:"Query time",
state:"state",
newData:"Latest data",
}
}

164
yq/src/lang/help/index.js Normal file
View File

@@ -0,0 +1,164 @@
export const help_zh = {
help:{
said:"说点什么...",
publish:"发表",
building:"楼",
reply:"回复",
determine:"确定",
cancel:"取消",
num:"编号",
userDate:"日期",
userName:"用户名",
msgPage:"留言页面",
userMsg:"留言内容",
operation:"操作",
inputContent:"输入内容",
submitReply:"提交回复",
responDate:"回复时间",
responser:"回复人",
respon:"回复内容",
submissionTime:"提交时间",
problem:"问题分类",
problemTitle:"问题标题",
dealWith:"处理状态",
details:"详情",
orderDetails:"工单详情",
orderNumber:"工单编号",
submitName:"提交用户名",
submitContent:"提交内容",
download:"下载附件",
uploaded:"文件上传中...",
sumWarning:"请确认数据填写完整在提交!",
resubmit:"请确认填写提交内容!",
recall:"撤回",
toAudit:"已经是待审核状态,不能重复提交!",
AuditContent:"审核内容:",
account:"账户",
time:"时间",
Continue:"继续提交",
SubmitToday:"今日提交工单数",
processed:"已处理工单数",
unprocessed:"未处理工单数",
beReviewed:"待审核工单数",
reviewed:"已审核工单数",
chart:"工单每日历史图表",
timeout:"超时工单列表",
beProcessed:"待处理工单列表",
processedTable:"已处理工单列表",
beReviewedTable:"待审核工单列表",
reviewedTable:"已审核工单列表",
withdrawTable:"已撤回工单列表",
processing:"工单处理",
requestReview:"请求审核",
AuditOpinion:"审核意见",
audit:"审核",
AuditUser:"审核用户",
AuditTime:"审核时间",
unreadWork:"未读工单汇总",
submittedWork:"已提交工单列表",
ReplyUnread:"已回复未读工单列表",
closedTable:"已关闭工单列表",
sameName:"不能上传相同名字的文件!",
fileType:"不支持的文件类型",
fileSize:"文件大小不能超过",
fileNum:"超出最大上传文件数量的限制!",
solve:"该工单问题已解决?",
end:"结束工单",
problemTitle1:"请确认填写标题内容!",
problem2:"请确认选择问题种类!",
describe:"请确认填写描述内容!",
historyTable:"工单提交历史列表",
}
}
export const help_en = {
help:{
backstage:"Message board backstage",
messageBoard:"Message board",
message:"I'd like to leave a message.",
said:"Say something...",
publish:"publish",
building:"layer",
determine:"determine",
cancel:"cancel",
help:"This page is helpful to you?",
said1:"Let me say something...",
reply:"reply",
todayMessage:"Number of messages today",
processedMessage:"Number of messages processed",
unprocessedMessage:"Number of unprocessed messages",
historyChart:"Comment daily history chart",
unprocessedTabel:"The message list is not processed",
num:"number",
userDate:"date",
userName:"User name",
msgPage:"Message page",
userMsg:"Message content",
operation:"operation",
inputContent:"Input content",
submitReply:"Submit a reply",
processedTabel:"The message list has been processed",
responDate:"Recovery time",
responser:"responder",
respon:"Reply content",
unread:"Unread message label",
unreadTabel:"List of unread messages",
submissionTime:"Submission time",
submittedTabel:"A list of comments has been submitted",
problem:"Problem classification",
problemTitle:"Question heading",
dealWith:"Processing state",
details:"details",
orderDetails:"Work order details",
orderNumber:"Work order number",
submitName:"Submit user name",
submitContent:"Submit content",
download:"Download attachment",
uploaded:"The file is uploaded...",
sumWarning:"Please confirm that the data is complete before submission!",
resubmit:"Please confirm to fill in the submission content!",
recall:"withdraw",
toAudit:"It is in the state to be reviewed and cannot be submitted again!",
AuditContent:"Content of review:",
account:"account",
time:"time",
Continue:"Continue to submit",
SubmitToday:"The number of jobs submitted today",
processed:"The number of processed jobs",
unprocessed:"Unprocessed number of workers",
beReviewed:"Number of workers to be audited",
reviewed:"The number of approved workers",
chart:"Daily history chart of work order",
timeout:"Overtime work order list",
beProcessed:"Waiting list of science and technology",
processedTable:"List of processed work orders",
beReviewedTable:"List of work order to be reviewed",
reviewedTable:"Audited work order list",
withdrawTable:"Retracted work order list",
processing:"Work order processing",
requestReview:"Request review",
AuditOpinion:"Audit opinion",
audit:"audit",
AuditUser:"Audit user",
AuditTime:"Audit time",
unreadWork:"Summary of unread work orders",
submittedWork:"Work order list has been submitted",
ReplyUnread:"The list of unread work orders has been returned",
closedTable:"Closed order list",
sameName:"You cannot upload files with the same name!",
fileType:"Unsupported file type!",
fileSize:"The file size cannot exceed",
fileNum:"The maximum number of uploaded files is exceeded!",
solve:"The issue with this work order has been resolved?",
end:"End Work Order",
problemTitle1:"Please confirm to fill in the title content!",
problem2:"Please confirm selecting the type of problem!",
describe:"Please confirm to fill in the description content!",
historyTable:"Historical work orders",
}
}

334
yq/src/lang/home/index.js Normal file
View File

@@ -0,0 +1,334 @@
export const home_zh = {
home: {
assets:"资产",
interval:"间隔",
introduce:"介绍",
tradingVolume:"最新大额交易",
tradingHours:"交易时间",
checkDetails:"查看详情",
details:"详情",
date:"日期",
number:"交易额",
address:"地址",
toAddress:"转入地址",
height:"区块高度",
outAddress:"转出地址",
transaction:"交易ID",
shutDown:"关闭",
startDate:"开始日期",
endDate:"结束日期",
no:"无",
Range:"范围选择查询",
search:"搜索 Address/amount/txid",
relationship:"地址对应标记持有者名称关系列表",
markName:"标记持有者姓名",
trading:"交易对",
currency:"币价",
dayCurrency:"24小时币价",
currencyName:"币名简称",
contractAddress:"合约地址",
aAddress:"发起地址",
targetAddress:"目标地址",
down:"关闭",
bigTable:"大额交易列表",
activeAddress:"合约地址",
searchs:"搜索 地址/余额/交易hash",
ethereum:"以太坊巨鲸地址余额列表",
balance:"您的账户余额信息",
searchAddress:"搜索 Address / value",
serialNumber:"序号",
aCurrency:"币数量",
notPage:"暂无此页面",
ascending:"升 序",
descending:"降 序",
voutn:"该笔交易索引号",
vouttype:"接收地址类型",
days:"持有天数",
buyPrice:"买入价格",
sellPrice:"卖出价格",
profit:"利润",
vout:"接收地址",
fromAbbr:"转入合约",
toAbbr:"转出合约",
fromTag:"转入地址标识",
toTag:"转出地址标识",
tag:"地址标识",
favorite:"喜欢",
compare:"",
switch:"线性/对数:",
switch1:"线性",
switch2:"对数",
hash:"交易hash",
compare:"比较",
create:"创建警报",
abbr:"请选择",
smaWarning:"请输入0-100之间的整数!",
PersonalInformation:"个人信息",
sex:"性别",
loginIp:"最近登录IP",
loginCount:"登录次数",
figure:"图1",
figure2:"图2",
figure3:"图3",
figure4:"图4",
table:"表1",
table2:"表2",
searchResults:"USDC大额交易监控表格",
loginDate:"登录时间",
open:"开盘",
highestPrice:"最高",
ndaqAmount:"成交量",
closePrice:"收盘",
lowestPrice:"最低",
clinch:"成交额",
amplitude:"振幅",
rise:"涨跌额",
picture:"涨跌幅",
copy:"复制成功",
copyTabel:"双击复制表格内容",
action:"行为",
NoData:"无数据",
formula:"计算公式",
topList:"巨鲸地址列表",
sopr:"已花费输出盈利比",
lthSopr:"长期持有者的已花费输出盈利比",
sthSopr:"短期持有者的已花费输出盈利比",
Increase:"当日涨幅",
tag1:"标签",
loadingData:"数据努力加载中...",
Destruction:"销毁",
casting:"铸造",
minutes5:"5分钟",
minutes15:"15分钟",
minutes30:"30分钟",
hour1:"1小时",
hour2:"2小时",
hour4:"4小时",
hour6:"6小时",
hour12:"12小时",
day1:"1天",
month1:"1月",
month3:"3月",
month6:"6月",
year1:"1年",
year2:"2年",
year5:"5年",
year10:"10年",
year20:"20年",
year30:"30年",
introduction:"指标介绍",
welcome:"欢迎使用coinbus指标文档介绍",
totalAmount:"总金额",
Adjusted:"经过季节性调整",
Unadjusted:"未经过季节性调整",
cash:"现金(流通中的纸币和硬币)",
deposit:"存款准备金",
cash2:"现金",
current:"活期存款",
check:"旅行支票账户",
depositCheck:"其他存款人存款支票账户",
savings:"储蓄存款",
regular:"定期存款",
otherDeposits:"其他存款人存款",
private:"私营部门贷款",
GDP:"全年GDP",
unit:"单位",
M1:"M1说明2020年5月之前M1由",
M1_1:"(1)美国财政部、联邦储备银行和存款机构金库以外的货币组成;",
M1_2:"(2)商业银行的活期存款(不包括存款机构、美国政府、外国银行和官方机构持有的金额)减去托收过程中的现金项目和美联储浮动资金;",
M1_3:"(3) 其他支票存款 (OCD),包括可转让提款指令 (NOW) 和自动转账服务 (ATS)、存款机构账户、信用社共享汇票账户以及储蓄机构活期存款。",
M1_4:"从 2020 年 5 月开始M1 包括",
M1_5:"(1) 美国财政部、联邦储备银行以外的货币,以及存款机构的金库;",
M1_6:"(2)商业银行的活期存款(不包括存款机构、美国政府、外国银行和官方机构持有的金额)减去托收过程中的现金项目和美联储浮动资金;",
M1_7:"(3) 其他流动性存款,包括强迫存款和储蓄存款(包括货币市场存款账户)。季节性调整后的 M1 是通过对货币、活期存款和 OCD2020 年 5 月之前或其他流动存款2020 年 5 月开始)求和得出的,每一项都单独进行季节性调整。",
M2:"M2说明2020年5月之前M2由M1加",
M2_1:"(1)储蓄存款(含货币市场存款账户)组成;",
M2_2:"(2)小面额定期存款金额低于10万美元的定期存款减去个人退休账户IRA和存款机构的基奥余额",
M2_3:"(3) 零售货币市场基金 (MMF) 余额减去 MMF 中的 IRA 和 Keogh 余额。",
M2_4:"从 2020 年 5 月开始M2 由 M1 加上",
M2_5:"(1) 小面额定期存款(金额低于 10 万美元的定期存款)减去存款机构的 IRA 和 Keogh 余额组成;",
M2_6:"(2) 零售 MMF 余额减去 IRA 和基奥 MMF 余额。季节性调整后的 M2 是通过将储蓄存款2020 年 5 月之前)、小面额定期存款和零售货币市场基金(分别经过季节性调整)相加,并将此结果添加到季节性调整后的 M1 中得出的。",
newContractSearch:"搜索地址/交易Hash",
ranking:"排名",
ethPrice:"价格曲线无数据",
GDPRemind:"注:时间查询按年返回数据",
loading:"加载 ",
ago:" 前的数据...",
after:" 后的数据...",
updateContent:"更新内容",
noPage:" 对不起您正在寻找的页面不存在。尝试检查URL的错误然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。",
canTFind:"找不到网页!",
realTimeData:"实时数据",
VPN:"请打开VPN稳定访问该表格",
},
};
export const home_en = {
home: {
assets:"assets",
interval:"interval",
introduce:"introduce",
tradingVolume:"Maximum trading volume",
tradingHours:"Trading hours",
checkDetails:"Check the details",
details:"details",
date:"date",
number:"Transaction volume",
address:"address",
toAddress:"To address",
height:"Block height",
outAddress:"Turns out the address",
transaction:"Transaction ID",
shutDown:"Shut down",
startDate:"Start date",
endDate:"End date",
no:"There is no",
Range:"selection query",
search:"search Address/amount/txid",
relationship:"Addresses correspond to a relational list of tag holder names",
markName:"Name of Mark Holder",
trading:"Trading on",
currency:"currency",
dayCurrency:"24-hour coin price",
currencyName:"Currency name for short",
contractAddress:"Contract address",
aAddress:"A address",
targetAddress:"The target address",
down:"Shut down",
bigTable:"Large Transaction Form",
activeAddress:"Address of contract",
searchs:"address/balance/Transaction hash",
ethereum:"Ethereum Whale address balance list",
balance:"Your account balance information",
searchAddress:"search Address / value",
serialNumber:"number",
aCurrency:"A currency",
notPage:"This page is not available",
ascending:"ascending",
descending:"Descending order",
voutn:"vout.n",
vouttype:"receive address type",
days:"holder days",
buyPrice:"buyin price",
sellPrice:"sellout price",
profit:"profit",
vout:"receive address",
fromAbbr:"Transfer to contract",
toAbbr:"Transfer contract",
fromTag:"Transfer address identification",
toTag:"Transfer out address identification",
tag:"Address label",
favorite:"Favorite",
switch:"Linear/logarithmic display:",
switch1:"Linear",
switch2:"Log",
hash:"transaction hash id",
compare:"Compare",
create:"Create Alert",
abbr:"Please select",
smaWarning:"The value cannot be greater than 100. Re-enter!",
PersonalInformation:"Personal information",
sex:"gender",
loginIp:"Last Login IP Address",
loginCount:"Number of logins",
figure:"Figure1",
figure2:"Figure2",
figure3:"Figure3",
figure4:"Figure4",
table:"table 1",
table2:"table 2",
searchResults:"USDC Bulk Transaction Monitoring form",
loginDate:"Login time",
open:"Opening",
highestPrice:"highest",
ndaqAmount:"Volume of trading",
closePrice:"closing",
lowestPrice:"lowest",
clinch:"Transaction forehead",
amplitude:"amplitude",
rise:"Up down amount",
picture:"Rise and fall",
copy:"Replication succeeded",
copyTabel:"Double-click to copy the table contents",
action:"behavior",
NoData:"No data",
formula:"Calculation formula",
topList:"Giant Whale Address List",
sopr:"Expended output profit ratio",
lthSopr:"Long-term holders' spent output profit ratio",
sthSopr:"Short term holders' spent output profit ratio",
Increase:"Intraday increase",
tag1:"tag",
loadingData:"Effort loading data...",
Destruction:"Destruction",
casting:"casting",
minutes5:"5 minutes",
minutes15:"15 minutes",
minutes30:"30 minutes",
hour1:"1 hour",
hour2:"2 hour",
hour4:"4 hour",
hour6:"6 hour",
hour12:"12 hour",
day1:"1 day",
introduction:"Introduction",
month1:"1 month",
month3:"3 months",
month6:"6 months",
year1:"1 year",
year2:"2 years",
year5:"5 years",
year10:"10 years",
year20:"20 years",
year30:"30 years",
welcome:"Welcome to the Coinbus metric document introduction",
totalAmount:"Total amount",
Adjusted:"Seasonally adjusted",
Unadjusted:"Not seasonally adjusted",
cash:"Cash (notes and coins in circulation)",
deposit:"Deposit reserve",
cash2:"cash",
current:"Demand deposit",
check:"Traveller's cheque account",
depositCheck:"Other depositors' deposit check accounts",
savings:"Savings account",
regular:"Fixed deposit",
otherDeposits:"Deposits from other depositors",
private:"loans to private sector",
GDP:"GDP",
unit:"unit",
M1:"M1 description:Before May 2020, M1 consists of ",
M1_1:"(1) currency outside the U.S. Treasury, Federal Reserve Banks, and the vaults of depository institutions;",
M1_2:"(2) demand deposits at commercial banks (excluding those amounts held by depository institutions, the U.S. government, and foreign banks and official institutions) less cash items in the process of collection and Federal Reserve float; and",
M1_3:"(3) other checkable deposits (OCDs), consisting of negotiable order of withdrawal, or NOW, and automatic transfer service, or ATS, accounts at depository institutions, share draft accounts at credit unions, and demand deposits at thrift institutions. ",
M1_4:" Beginning May 2020, M1 consists of ",
M1_5:"(1) currency outside the U.S. Treasury, Federal Reserve Banks, and the vaults of depository institutions;",
M1_6:"(2) demand deposits at commercial banks (excluding those amounts held by depository institutions, the U.S. government, and foreign banks and official institutions) less cash items in the process of collection and Federal Reserve float; and ",
M1_7:"(3) other liquid deposits, consisting of OCDs and savings deposits (including money market deposit accounts). Seasonally adjusted M1 is constructed by summing currency, demand deposits, and OCDs (before May 2020) or other liquid deposits (beginning May 2020), each seasonally adjusted separately.",
M2:"M2 description:Before May 2020, M2 consists of M1 plus",
M2_1:"(1) savings deposits (including money market deposit accounts);",
M2_2:"(2) small-denomination time deposits (time deposits in amounts of less than $100,000) less individual retirement account (IRA) and Keogh balances at depository institutions; and",
M2_3:"(3) balances in retail money market funds (MMFs) less IRA and Keogh balances at MMFs.",
M2_4:"Beginning May 2020, M2 consists of M1 plus",
M2_5:"(1) small-denomination time deposits (time deposits in amounts of less than $100,000) less IRA and Keogh balances at depository institutions; and ",
M2_6:"(2) balances in retail MMFs less IRA and Keogh balances at MMFs. Seasonally adjusted M2 is constructed by summing savings deposits (before May 2020), small-denomination time deposits, and retail MMFs, each seasonally adjusted separately, and adding this result to seasonally adjusted M1.",
newContractSearch:"Search Address/Transaction Hash",
ranking:"#",
ethPrice:"No data on price curve",
GDPRemind:"Note: Time query returns data by year",
loading:"loading ",
ago:" Previous data...",
after:" Subsequent data...",
updateContent:"Update content",
noPage:" Sorry, the page you are looking for does not exist. Try checking for errors in the URL, then press the refresh button on the browser or try to find other content in our application.",
canTFind:"Unable to find webpage!",
realTimeData:"realTimeData",
VPN:"Please open VPN to stably access this table",
},
};

33
yq/src/lang/index.js Normal file
View File

@@ -0,0 +1,33 @@
import Vue from 'vue'
import VueI18n from 'vue-i18n'
//import elementEnLocale from 'element-ui/lib/locale/lang/en'
//import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'
import locale from 'element-ui/lib/locale' // 引入elementui语言包模块
//import enLocale from './en.js' // 本地英文包
//import zhLocale from './zh.js' // 本地中文包
import messages from "./messages"
Vue.use(VueI18n) // vue使用i18n模块
// const messages = {
// en: {
// ...enLocale,
// ...elementEnLocale
// },
// zh: {
// ...zhLocale,
// ...elementZhLocale
// }
// }
// 使用选项创建VueI18n实例
const i18n = new VueI18n({
locale: localStorage.getItem('lang') || 'zh',
fallbackLocale:'zh', //首选语言缺少翻译时要使用的语言,
messages ,// 设置语言环境信息
silentTranslationWarn: true,//去掉页面警告
})
locale.i18n((key, value) => i18n.t(key, value)) // 在注册Element时设置i18n的处理方法
export default i18n

View File

@@ -0,0 +1,387 @@
export const introduction_zh = {
introduce:{
btcbigtxcount:"单位:千=KM=百万B=十亿 /// 记录链上交易价值>=100万USD的转账对于有地址标签的可以得出拥有地址的交易双方实体可以通过观察大额交易条数和金额来预测价格。当价格剧烈变化的时候通常有大额转账入或出交易所。",
address:"单位:千=KM=百万B=十亿 ///总地址数, 指示用户数增长状态, 不包含余额为0的地址, 地址数走高意味着更多新用户入场///新地址数:每日的新地址数, 指示用户短期参与状态,数值走高意味着更多新用户入场,数值走低意味着用户对买入币正在失去兴趣///活跃地址数:每日活跃地址数,指示用户当前参与状态,该指标需要结合其他指标分析,数值走高可能意味着用户的卖或买动作, 数值低 意味着当前链上转账不活跃///发送地址数:每日发送地址数,指示用户当前花费情况, 数值走高意味着用户可能的卖的动作,数值低意味着当前链上转账不活跃,需结合其他指标分析///接收地址数:每日接收地址数,指示用户当前买入情况,数值高意味着用户可能的买的动作,数值低意味着当前链上转账不活跃,需结合其他指标分析///新地址交易量:每日新地址的交易量,指示新用户的买入活动情况, 数值高意味着新用户可能买入了大量币,数值低意味着当前状态新用户买入意愿较低",
blockAmount:"单位:千=KM=百万B=十亿 ///区块实时交易量",
dailyBuySell:"单位:千=KM=百万B=十亿 ///BTC每日交易详情",
utxos:"单位:千=KM=百万B=十亿 ///持有者 余额分段及每段地址数分布",
utxos2nd:"单位:千=KM=百万B=十亿 ///余额-持有者币数量分布(按余额分段的地址数分布)",
holder:"单位:千=KM=百万B=十亿 ///该指标观察持有者的币龄分布及对应的地址数",
holderBalance:"单位:千=KM=百万B=十亿 ///X轴:持有者超过天数 /// 横轴: 持有天数 ///纵轴:持有地址数量",
getBuyData:"单位:千=KM=百万B=十亿 ///按买入价格分段的地址数分布 ///横轴: 购入价格范围 ///纵轴:对应价格范围内的地址数量",
getBuyAmountData:"单位:千=KM=百万B=十亿 ///按买入价格分段的币数量分布 /// 横轴: 购入价格范围 /// 纵轴:对应价格范围内的币数量",
getDiffData:"单位:千=KM=百万B=十亿 ///按买入卖出价格差的地址数分布 /// 横轴:当前价格-购入价格差值 /// 纵轴:数量分布数据",
getDiffAmountData:"单位:千=KM=百万B=十亿 ///按买入卖出价格差的地址数分布 /// 横轴:持有者当前收益币范围 /// 纵轴:数量分布数据",
getProfitData:"单位:千=KM=百万B=十亿 ///按盈利分段的地址数分布/// 横轴:当前收益范围 ///纵轴:收益范围的数量",
getProfitAmountData:"单位:千=KM=百万B=十亿 ///按盈利分段的币数量分布/// 横轴:持有者当前收益币范围 ///纵轴:数量分布数据",
getTopList:"巨鲸支持者观察,可以选择某一个余额范围及时间范围来观察巨鲸持有者变化状况, 有地址标签的可以观察该地址是谁持有,也可以搜索用户指定的地址进行持有变化的观察",
getTopListWatch:"单位:千=KM=百万B=十亿 ///巨鲸 币数量变动表",
coinmarketall:"单位:千=KM=百万B=十亿 ///每5分钟的币价按照市值排序只展示前100的值",
btcTags:"单位:千=KM=百万B=十亿 ///地址对应标记持有者名称关系列表",
BTCVolume:"单位:千=KM=百万B=十亿 ///Transaction Volume: 交易量 /// Transaction Fee:交易费///Transaction Volume (Entity-adjusted):(消除找零的交易量)即消除链上交易的找零部分,更真实的反应交易量情况///上述三个仅指示链上活动程度,数值走高意味着币可能买或卖,交易量或交易费低迷意味着链上活动少,市场处于观望状态,需结合其他指标一起分析",
minerAddress:"单位:千=KM=百万B=十亿 ///即矿工余额的变化情况,数值一直增长意味着矿工在囤币以获取更多的利润,数值走低意味着矿工在抛售他们手中的币止盈",
minerBalance:"单位:千=KM=百万B=十亿 ///矿工地址中的总供应量。",
MVRV:"单位:千=KM=百万B=十亿 /// 计算公式MVRV = Market Cap / Realized Cap ///该指标评估流通市值与实际市值的比率走高表明投资者收益开始积累当比率大于3.5 表明市场开始过热, 价格已经高风险, 投资者可能会抛出货币锁定收益。走低表明投资者收益开始释放可能进入熊市当比率小于1.0 后表明市场进入投降阶段,也预示着可能的熊市阶段。",
MVRVZ:"单位:千=KM=百万B=十亿 ///计算公式MVRV-Z Score =Market Cap - Realized Cap / Standard Deviation (Market Cap) /// 该评分评估币资产相对于其市值标准差当前价格是否被高估或低估, 当市场价值明显高于实际价值时, 表明可能到了市场顶部, 反之则表明到了市场底部。",
NVTRatio:"单位:千=KM=百万B=十亿 ///网络价值与交易 (NVT) 比率的计算方法是将市值除以以美元衡量的转移链上交易量。NVT 比率由 Willy Woo 创建。",
NVTSignal:"单位:千=KM=百万B=十亿 ///NVT信号(NVTS)是原NVT比率的改进版本。它在分母中使用日交易量的90天移动平均值,而不是原始的日交易量。该移动平均线提高了该比率,使其更好地发挥领先指标的作用。",
OHLCPrice:"单位:千=KM=百万B=十亿 ///OHLC以美元计价的资产价格烛台图。字段介绍:///closePrice:闭盘价///highestPrice:最高价///lowestPrice: 最低价///openPrice:开盘价",
jzr60:"单位:千=KM=百万B=十亿 ///该指标累计60天的涨幅短期币价涨幅超过新人新资金入场速度时即涨幅过高比如超过100%)将会导致投资者抛售币来锁定短期利润",
arh999:"单位:千=KM=百万B=十亿 ///ahr999 = (比特币价格/200日定投成本) * (比特币价格/指数增长估值)///指数增长估值= 10^[5.84 * log(币龄) - 17.01]///币龄 = 当前日期距离2009年1月3日的天数///当比特币价格同时低于短期定投成本和预期估值时增大投资额能增大用户收益的概率。根据指标回测当ahr999指标数据低于0.45时或许适合抄底在0.45和1.2区间内或许适合定投BTC高于该区间说明此时或许不是良好的定投时机///Ahr999x Index Ahr999逃顶指数///ahr999x=200日定投成本/比特币价格)*(指数增长估值/比特币价格)*3///该指标与arh999相反用来指示逃顶",
DaysNeedle:"单位:千=KM=百万B=十亿 ///天针",
Holding:"单位:千=KM=百万B=十亿 ///目的比特币ETF中的比特币数量。",
Flows:"单位:千=KM=百万B=十亿 ///从目的比特币ETF流入的比特币数量。",
ma730:"单位:千=KM=百万B=十亿 ///该指标突出了购买或出售比特币会产生超额回报的时期。当价格跌破2年均线绿线买入比特币在历史上产生了巨大的回报。当价格高于2年均线x5红线时卖出比特币历来都能有效地获取利润",
capReal:"单位:千=KM=百万B=十亿 ///已实现资本化(已实现上限)是市值的一种变化它根据每个UTXO最后一次移动时的价格对其进行估值而不是其当前价值。因此它代表了网络中所有硬币的实现价值而不是它们的市场价值。实现的上限减少了丢失和长期休眠的硬币的影响并根据硬币在给定链条经济中的实际存在来加权。当上一次以明显更便宜的价格移动的硬币被消费时它会将硬币重新估值为当前价格从而将已实现上限增加相应的金额。同样如果一枚硬币的价格低于上一次移动时的价格它将重新估值到更低的价格并相应减少已实现上限。鉴于上一次移动时每枚硬币的已实现上限价值它可以被视为资产中存储或保存的价值的代表。因此此指标可被视为网络总成本基础的估计并使其成为创建其他指标(例如MVRV和NUPL)的强大基线。",
CDD:"单位:千=KM=百万B=十亿 ///计算公式CDD = value . lifespan [days] (of all spent outputs ) ///计算公式Supply-Adjusted CDD = CDD / Total Supply///CDD是观察长期持有者和富有的投资者的消费行为的宝贵工具因为它同时考虑了寿命和硬币数量。它特别适合于观察宏观趋势即在以前的周期中积累的投资者开始花费他们的硬币。///高指标值可能表明长期投资者正在花费硬币来实现利润,利用市场的力量,或减少持有资产的信念。///持续的高位或趋势性的较高指标值为长期持有者消费行为的结论增加了砝码。在看涨的市场中CDD通常有走高的趋势因为长期持有者在市场强势中卖出并经常在当地价格顶点附近达到峰值。///低指标值发生在日常网络流量占主导地位,旧币保持休眠状态,以及持有资产的信念很高的时候。对该资产的兴趣减少的时期(如熊市)往往导致链上活动减少,因此指标值较低。///持续的低位或趋势性的较低指标值可能表明长期持有者的信心正在恢复,他们开始持有而不是花费他们的硬币。///供应量调整的CDD说明了总供应量的积累对CDD指标的影响。随着更多的币被发行更多的CDD被总网络积累CDD的下限将随着时间的推移而增加。",
fundingRate:"单位:千=KM=百万B=十亿 ///资金费率是指基于永续合约市场价格与现货价格之间的价差向多头或空头交易者支付的定期费用。因此取决于敞口头寸交易者可以是付款方也可以是收款方。资金费率可防止两个市场的价格持续出现偏差。它在一天之内会多次重新计算目前的重新计算间隔为8小时。当前仅包含币安数据",
openInterest:"单位:千=KM=百万B=十亿 ///未平仓和约数是指当前存在的未平仓的合约总数,包括未到期合约数、为未被执行(结清)合约数。未平仓合约数通常用来确认合约的趋势和趋势逆转。当前仅包含币安的数据",
takerlongshortRatio:"单位:千=KM=百万B=十亿 ///合约主动买入量指的是展示单位时间内合约主动性买盘的成交量taker吃挂单买入即资金流入量。通常来说合约主动买入量大说明市场看涨。当前仅包含币安的数据",
profitrate:"单位:千=KM=百万B=十亿 ///如果当前价格高于创建时的价格UTXO就处于盈利状态。反之如果当前价格低于创建时的价格则UTXO处于亏损状态///一般来说,较高的数值可能表明市场的顶部,而较低的数值可能是底部的信号。",
sopr:"单位:千=KM=百万B=十亿 ///SOPR指标反映了在链上移动的所有币的利润变现程度///SOPR值大于1意味着当天移动的币平均来说是盈利的卖出价格大于支付价格。///SOPR值小于1意味着当天移动的币平均来说是亏损的卖出价格小于支付价格。///SOPR值正好为1意味着当天移动的币平均来说是以收支平衡的方式出售硬币。///SOPR呈上升趋势意味着利润正在实现。///SOPR呈下降趋势意味着正在实现损失和/或盈利的币没有被使用。///LTH-SOPR反映了所有在链上移动的、寿命超过155天的币长期持有者的盈亏程度。在155天的过程中LTH阈值市场波动和价格通常会朝着一个方向解决要么高于要么低于UTXO创建时的价格假设成本基础。因此当LTH持有的币被花费时它往往会实现可观的利润或损失。LTH-SOPR经常达到相对较大>2.0)和较小的数值(<0.8)。///STH-SOPR反映了所有在链上移动的寿命小于155天的币短期持有者的变现盈亏程度。",
asol:"单位:千=KM=百万B=十亿 ///计算公式:ASOL = Mean{ lifespan [days] (of all spent outputs) }///ASOL在宏观层面上强调了当天每笔交易产出所花费的硬币寿命。这提供了对一段时间内短期年轻硬币和长期旧硬币消费行为之间平衡的洞察力。它往往随着市场波动和市场情绪及结构的变化而呈上升趋势因为旧的休眠硬币被花回流通。高数值通常表明网络流量中增加了旧币的使用比例通常与长期持有者利用高市场波动性活动有关。低值通常表示每天的流量主要由正在消费的年轻硬币组成通常与交易所和短期持有者有关。",
dormancy:"单位:千=KM=百万B=十亿 ///计算公式Dormancy =CDD / Transaction Volume/// 计算公式Supply-Adjusted Dormancy = Dormancy / Total Supply///币的平均休眠天数Dormancy描述了每个已花费的币在被移动之前的平均休眠天数。高休眠值意味着平均而言当天消费的硬币已经在非流动性状态下保存了较长的时间并可能被消费回流通循环。///低休眠值意味着当天花费的硬币相对较年轻,表明较老的硬币通常仍未被花费,链上的数量是更多日常流量的特征。",
soag:"单位:千=KM=百万B=十亿 ///该指标通过观察币龄分布长期持有者和短期持有者的出售状况可以结合CDD指标综合分析。",
csupply:"单位:千=KM=百万B=十亿 ///即已挖出或发行的货币供应总量,该指标指示有多少币已流通, 还剩多少待流通,当流通量占比较高时意味着一级发行已接近尾声,对于固定总发行量的币种以后主要靠交易费维护网络运行。",
Liveliness:"单位:千=KM=百万B=十亿 ///计算公式:Liveliness = Cumulative CDD / Cumulative Total Supply ///计算公式:Liveliness = value . lifespan [blocks](of all outputs ever spent) / value . lifespan [blocks] (of all outputs ever reated)///活跃度是一个指标,它提供了宏观上对持有者行为变化的洞察力,有助于识别长期持有人积累或消费的趋势。它突出了币龄的销毁速度比流通量的积累速度快的时期。///当高比例的硬币供应处于休眠状态(即保持持有行为),并且币龄的积累超过了链上活动所破坏的币龄时,活力将下降。///当销毁的币龄等于流通供应所积累的币龄时,活力将趋于平缓。///当长期持有者开始花费积累了大量硬币天数的旧币,超过币龄数积累的速度时,活力将增加。",
rprofit:"单位:千=KM=百万B=十亿 ///即当卖出大于买入价格在花费时实现的盈利,当持续走高到新高点时表明价格可能已经处于超买阶段,投资者可能选择抛售锁定利润。当持续走低到新低点时表明价格处于超卖阶段,可能是筑底状态。",
rloss:"单位:千=KM=百万B=十亿 ///即当卖出小于买入价格在花费时实现的亏损,当持续走高到新高点时表明价格可能已经处于超卖阶段,投资者可能选择买入进行积累。当持续走低到新低点时表明价格处于超买阶段,可能是牛市末期。",
rplRate:"单位:千=KM=百万B=十亿 ///计算公式Realized Profit/Loss = Realized Profit / Realized Loss///该比率观察已花费的币的盈亏状况,当比率走高时表明开始实现盈利,资金可能正在流入, 到达新高度时表明可能到达阶段性高点,投资者正在出售锁定利润。当比率走到新低时表明可能到达阶段性低点,投资者可以寻找适时的买入机会。",
marketcap:"单位:千=KM=百万B=十亿 /// 计算公式Market Cap = price [USD] . Total Supply /// 市值代表币的总资产价值,描述币的资产规模,走高需要评估该资产是否进入牛市或被高估, 走低需要评估该资产是否会进入熊市或归零,该指标通常用来对比其他币和其他非币资产。",
rcap:"单位:千=KM=百万B=十亿 ///已实现流通市值根据最后一次移动时的价格对每个UTXO进行估值。当市值交易高于已实现的上限时市场就处于总体盈利状态。当市值交易低于已实现的上限时市场就处于总体亏损状态。该指标的异常走高表明大量投资者可能在售卖币即移动了他们的硬币。",
earcap1:"单位:千=KM=百万B=十亿 ///Entity-adjusted Realized Cap:已实现上限的改进变体丢弃同一实体地址之间的交易“内部”交易。因此实体调整后的已实现上限仅考虑实际经济活动与基于原始UTXO的同行相比提供了更好的市场信号",
lthmvrv:"单位:千=KM=百万B=十亿 ///LTH Makret Cap 长期持有者流通市值 ///LTH Realized Cap 长期持有者已实现流通市值 ///计算公式LTH-MVRV= Market Cap (of all UTXOs where age≥155 days) /Realized Cap (of all UTXOs where age≥155 days)///长期持有者的市值与已实现市值的比率, 该比率开始走高表明长期持有者开始积累,市场开始向好,到一定新高度即长期持有者可能抛售他们的币来止盈,反之开始走低表明长期持有者正在出售他们的币。",
sthmvrv:"单位:千=KM=百万B=十亿 ///STH Market Cap 短期持有者流通市值 /// STH Realized Cap 短期持有者已实现流通市值///计算公式STH-MVRV = Market Cap (of all UTXOs where age < 155 days) / Realized Cap (of all UTXOs where age < 155 days)///短期持有者的市值与已实现市值的比率, 该比率开始走高表明短期持有者开始积累,高到一定新高度即短期持有者可能抛售他们的币来止盈,表明达到局部顶部,反之开始走低表明短期持有者正在出售他们的币, 价格可能还会有新低。",
nupl:"单位:千=KM=百万B=十亿 ///计算公式Net Unrealized Profit and Loss (NUPL) = Market Cap -Realixed Cap / Market Cap ///该指标表明投资者整体是处于盈利还是亏损状态。任何高于零的数值表明投资者处于净盈利状态,反之则表明处于净亏损状态,偏离零越远,市场越接近顶部和底部。",
uprofit:"单位:千=KM=百万B=十亿 ///未实现的利润是指在资产价格低于当前价格时创建的UTXO应计的总利润。",
uloss:"单位:千=KM=百万B=十亿 ///未实现的损失是指在资产价格高于当前价格时创建的UTXO应计的总损失。通过观察UTXO创建时的价格与资产的当前价格之间的delta我们可以确定该UTXO中的投资者价格上升还是损失价格下降的状态,以及程度如何。",
lthnupl:"单位:千=KM=百万B=十亿 ///该指标评估长期持有者的盈亏情况。长期投资者可能会因为该指标的新高来售出锁定盈利,也会以为该指标的新低来买入积累利润。",
sthnupl:"单位:千=KM=百万B=十亿 ///该指标评估短期持有者的盈亏情况。该指标走出新高表明局部顶部,短期投资者可能选择售出锁定盈利,如果该指标创出新低有可能局部价格还有下行空间。",
mintusd:"单位:千=KM=百万B=十亿 ///计算公式Puell Multiple = Daily Coin Issuance (USD) / MA365 (Daily Coin Issuance (USD))///即每日挖出的价值与365天平均挖出价值的比值///低数值意味着挖矿可能接近一年的关机价,矿工可能需要售出挖出的币来支付电费,也意味着价格底部///高数值意味着挖矿有可观的盈利,也意味着价格相对的顶部",
NDAQohlc:"单位:千=KM=百万B=十亿///MA5/MA10/MA20:分别代表5日移动平均线均价/10日移动平均线均价/20日移动平均线均价",
NDAQBTCPrice:"单位:千=KM=百万B=十亿 ///纳斯达克指数 vs BTC",
bian:"单位:千=KM=百万B=十亿 ///币安合约K线",
priceValue:"单位:千=KM=百万B=十亿 ///币安“K线”价格交易量",
activeAddress:"单位:千=KM=百万B=十亿 ///作为发送方或接收方活动的唯一地址的数目。只有在成功的交易中处于活动状态的地址才被计算在内。",
sendingAddress:"单位:千=KM=百万B=十亿 ///作为资金发送方活动的唯一地址的数目。只有在成功的非零传输中作为发送方活动的地址才被计数。",
receivingAddress:"单位:千=KM=百万B=十亿 ///活跃的作为资金接收者的唯一地址的数目。只有在成功的非零传输中作为接收者活动的地址才被计数。",
newAddress:"单位:千=KM=百万B=十亿 ///在网络中原生货币的一次交易中首次出现的唯一地址的数量。",
totalAddress:"单位:千=KM=百万B=十亿 ///网络中原生币交易中出现过的唯一地址的总数。",
transsizetotal:"单位:千=KM=百万B=十亿 ///时间段内所有事务的总大小(以字节为单位)。",
transsizemean:"单位:千=KM=百万B=十亿 ///一段时间内事务的平均大小(以字节为单位)。",
transactions:"单位:千=KM=百万B=十亿 ///交易总额。只计算成功的事务。",
transrate:"单位:千=KM=百万B=十亿 ///每秒的事务总数。只计算成功的事务。",
distribution:"单位:千=KM=百万B=十亿 ///持有至少0.1个硬币的唯一地址的数量。对于以太坊,只计算外部拥有地址(EOAs),合同不包括在内。",
distribution1:"单位:千=KM=百万B=十亿 ///持有至少0.01个硬币的唯一地址的数目。对于以太坊,只计算外部拥有地址(EOAs),合同不包括在内。",
distribution2:"单位:千=KM=百万B=十亿 ///持有至少1枚硬币的唯一地址的数目。对于以太坊只计算外部拥有地址(EOAs),合同不包括在内。”",
distribution3:"单位:千=KM=百万B=十亿 ///持有至少10个硬币的唯一地址的数目。对于以太坊只计算外部拥有地址(EOAs),合同不包括在内。",
distribution4:"单位:千=KM=百万B=十亿 ///持有至少100个硬币的唯一地址的数目。对于以太坊只计算外部拥有地址(EOAs),合同不包括在内。",
distribution5:"单位:千=KM=百万B=十亿 ///持有至少1000个硬币的唯一地址的数量。对于以太坊只计算外部拥有地址(EOAs),合同不包括在内。",
distribution6:"单位:千=KM=百万B=十亿 ///持有至少1万枚硬币的唯一地址的数量。对于以太坊只计算外部拥有地址(EOAs),合同不包括在内。",
dailyVolume:"单位:千=KM=百万B=十亿 ///过去24小时内每个交易所期货合约的总交易量。值每10分钟更新一次。对于所有支持的交换和最早可用的数据点的列表。",
getDayBalanceData:"单位:千=KM=百万B=十亿 ///横坐标:时间 /// 纵坐标:地址数量",
getDayBalanceAmountData:"单位:千=KM=百万B=十亿 ///横坐标:时间 /// 纵坐标:地址数量",
usdtbigtx:"单位:千=KM=百万B=十亿 ///USDT大额交易表",
usdcbigtx:"单位:千=KM=百万B=十亿 ///USDC大额交易表",
usdtVolume:"单位:千=KM=百万B=十亿 ///USDT每日总交易量",
usdcVolume:"单位:千=KM=百万B=十亿 ///USDC每日总交易量",
ethbigtxcount:"单位:千=KM=百万B=十亿 ///图1 是ETH大额交易每日交易数量, 表1是大额交易详情",
ethTags:"单位:千=KM=百万B=十亿 ///地址对应标记持有者名称关系列表",
ethTopAddrList:"单位:千=KM=百万B=十亿 ///以太坊巨鲸地址余额列表",
ETHVolume:"单位:千=KM=百万B=十亿 ///Transaction Volume:交易量///Transaction Fees:交易费///EIP1559 burnt fees:该指标表示自引入EIP-1559的伦敦硬分叉实施以来焚烧的ETH的累计总和。以太坊改进提案EIP-1559为交易设定了基本费用该费用用于减少ETH的总体供应。因此这个指标表明了以太坊面临的通缩压力。///上述三个仅指示链上活动程度,数值走高意味着币可能买或卖,交易量或交易费低迷意味着链上活动少,市场处于观望状态,需结合其他指标一起分析",
ETHTokenBigtx:"单位:千=KM=百万B=十亿 /// ERC20 token 大额交易跟踪///目前仅统计合约的transfer函数",
ETHTokenVolume:"单位:千=KM=百万B=十亿 ///观察代币的活跃情况,需结合其他指标一起分析",
ethAddress:"单位:千=KM=百万B=十亿 ///活跃地址数:指示用户当前参与状态,该指标需要结合其他指标分析,数值走高可能意味着用户的卖或买动作, 数值低 意味着当前链上转账不活跃///接收地址数:指示用户当前买入情况,数值高意味着用户可能的买的动作,数值低意味着当前链上转账不活跃,需结合其他指标分析///发送地址数:指示用户当前花费情况, 数值走高意味着用户可能的卖的动作,数值低意味着当前链上转账不活跃,需结合其他指标分析",
none:"单位:千=KM=百万B=十亿 ///无",
reward:"单位:千=KM=百万B=十亿 ///统计抵押奖励观察抵押者的盈利情况,变低可能导致抵押者退出抵押抛出币锁定利润, 变高可能导致抵押者买入币进行抵押积累利润",
cnew:"单位:千=KM=百万B=十亿 ///链上每天部署的新合约数,本身无特别意义,需结合其他指标一起分析",
newContract:"单位:千=KM=百万B=十亿 ///每日新创建的智能合约地址列表",
dayUsdc:"单位:千=KM=百万B=十亿 ///目前只统计了usdc在tron和ETH链上transfer函数的交易量",
dayUsdt:"单位:千=KM=百万B=十亿 ///目前只统计了usdt在tron和ETH链上transfer函数的交易量",
dayBusd:"单位:千=KM=百万B=十亿 ///目前只统计了busd在ETH链上transfer函数的交易量",
bigUsdc:"单位:千=KM=百万B=十亿 ///目前只记录了usdc在tron和ETH链上transfer函数相关的大额交易",
bigUsdt:"单位:千=KM=百万B=十亿 ///目前只记录了usdt在tron和ETH链上transfer函数相关的大额交易",
bigBusd:"单位:千=KM=百万B=十亿 ///目前只记录了busd在ETH链上transfer函数相关的大额交易",
profitAddress:"单位:千=KM=百万B=十亿 ///计算公式Address in Profit = total address where Price >= Price_ created///即在当前价格下相对创建价格处于盈利状态的地址个数,指示市场顶部, 越高代表大部分地址处于盈利状态,有抛售止盈风险",
lossAddress:"单位:千=KM=百万B=十亿 ///计算公式Address in Loss = total address where Price < Price_ created///即在当前价格下相对创建价格处于亏损状态的地址个数,指示市场底部,越低代表大部分地址处于亏损状态,可以适时买入",
profitRatio:"单位:千=KM=百万B=十亿///计算公式Percent of Address in Profit =Address in Profit / Total Address///即在当前价格下相对创建价格处于盈利状态的地址占总地址的百分比,指示市场顶部, 越高代表大部分地址处于盈利状态,有抛售止盈风险",
lthSupply:"单位:千=KM=百万B=十亿///即币龄超过155天的持有者的供应总量该指标观察长期持有者是否在卖出或积累币走高意味着当前价格是否被低估适合买入 走低意味着当前价格被高估,适合卖出",
sthSupply:"单位:千=KM=百万B=十亿///即币龄小于155天的持有者的供应总量该指标观察短期持有者是否在卖出或积累币走高意味着短期持有者在积累币走低表明短期持有者在出售手中的币用户需结合其他指标分析是否跟随",
realizedPrice:"单位:千=KM=百万B=十亿///计算公式Realized Price = Realized Cap / circulating supply///已实现价格指标表明币当前合理的价格,一般用于评估支撑价格,投资者可以参考该指标评估价格是否处于超买或超卖区间。",
relativeLthSth:"单位:千=KM=百万B=十亿///即波浪图指示长期和短期持有者盈亏供应量的分布方便用户观察4个指标与价格的对应关系。",
lthProfitSupply:"单位:千=KM=百万B=十亿///计算公式Profit for LTH = number of balance where Price > Price_created and Holder Time >= 155days",
lthLossSupply:"单位:千=KM=百万B=十亿///计算公式Loss for LTH = number of balance where Price <= Price_created and Holder Time >= 155days",
sthProfitSupply:"单位:千=KM=百万B=十亿///计算公式Profit for STH = number of balance where Price > Price_created and Holder Time < 155days",
sthLossSupply:"单位:千=KM=百万B=十亿///计算公式Loss for STH = number of balance where Price <= Price_created and Holder Time < 155days",
sthProfitRatio:"单位:千=KM=百万B=十亿///计算公式PL Ratio for STH = Profit for STH / Loss for STH ///短期持有者指持有少于155天的地址如果短期持有者绝大部分处于盈利状态短期内可能会选择出售止盈也可能价格会继续上行是跟进买入机会如果短期持有者绝大部分处于亏损状态短期内可能是买入机会 也可能价格底还未到,可能继续下行。如果短期持有者盈亏比处于极端的状态,比率出现新高或新低,意味着对应的售出和买入机会。该指标需要用户配合其他指标自行斟酌。",
SLRVRatio:"单位:千=KM=百万B=十亿/// 计算公式SLRV ratio = HOLDER in 24h / HOLDER in 6m~1y /// 即24小时持有者与6个月到1年的持有者的比率该指标用于测量短期持有者对比长期持有者的流通速度以检测是否是熊市。走高的SLRV比率表明短期持有者在网络上更加活跃意味着市场顶部即将到来 走低的SLRV比率表明短期持有者活动很少或者是长期持有者的基数大大增加需要结合其他指标分析是否是买入的机会。",
lthProfitRatio:"单位:千=KM=百万B=十亿///计算公式PL Ratio for LTH = Profit for LTH / Loss for LTH ///长期持有者指持有超过155天的地址如果长期持有者绝大部分处于盈利状态可能会选择出售止盈如果长期持有者绝大部分处于亏损状态可能是买入机会。如果长期持有者盈亏比处于极端的状态比率出现新高或新低意味着对应的售出和买入机会。",
null:"单位:千=KM=百万B=十亿///无",
frm:"单位:千=KM=百万B=十亿///计算公式Fee Ratio Multiple =miner revenue( blocks rewards + transaction fees ) / transaction fees///即矿工总收入与交易费的比率,属于衡量比特币网络安全性的指标,低数值意味着用户只需支付较低的交易费用同时有着较高的网络安全性,即矿工有可观盈利加大算力去维护网络,高数值意味着用户需支付较高交易费用来维护网络运行,导致其经济性降低,用户不活跃,总交易费会进一步降低即矿工可能关机导致算力变低,安全性降低.",
cvdd:"单位:千=KM=百万B=十亿///累积价值-已销毁天数是被销毁的硬币天数的累计美元价值与市场年龄(天数)的比。该指标用于探测市场底部。",
balancedPrice:"单位:千=KM=百万B=十亿///平衡价格是实现价格和交易价格之间的差。交易价格是以美元计算的被销毁的硬币天数的累积总和,由流通供应和比特币成立以来的总时间调整。平衡价格试图检测主要周期的底部。投资者可以参考该指标评估币的支撑价格。",
nvtRatio:"单位:千=KM=百万B=十亿///计算公式NVT Ratio =Market Cap [USD] / Transaction Volume [USD]///市值与交易值NVT比率描述了市值与交易量之间的关系。该指标类似于股票中的市盈率。走高或新高的比值表明投资者对比特币的定价是溢价的因为市值增长超过了链上交易量和价值结算的利用。从历史上看高NVT比率值与市场顶部和高估期相吻合。走低或新低的比值表明投资者对比特币的定价是有折扣的因为链上传输量和网络利用率超过了市值增长。从历史上看低NVT比率值是有利于积累的时期而且往往与市场底部和趋势性牛市相吻合。一个恒定的NVT比率或横向趋势表明目前市值和转让量的增长趋势都处于平衡状态表明目前的市场趋势是可持续的。这种状态往往是在看涨或看跌趋势的早期和中期达到的因为市场方向已经确定。",
velocity:"单位:千=KM=百万B=十亿///计算公式Velocity = 1 / NVT Ratio = Transaction Volume [USD] / Market Cap [USD] ///该指标衡量币在网络中流通的速度。走高表明用户采用该币可能变得活跃, 走低表明用户活动变得低迷, 通常需结合其他指标综合判断。",
PiCycleTopIndicator:"单位:千=KM=百万B=十亿///在历史上Pi Cycle Top指标在挑选市场周期高点的时间方面一直很有效可以达到3天之内。在过去的三个市场周期中当111DMA向上移动并穿过350DMA x 2时我们看到它与比特币的价格达到峰值相吻合",
ssr:"单位:千=KM=百万B=十亿///计算公式:SSR = Market Cap (of BTC) / Market Cap (of all Stablecoins )///当SSR较低时当前的稳定币供应有更多的 `购买力`来购买BTC",
ssro:"单位:千=KM=百万B=十亿///计算公式:SSR Oscillator = bollinger_bands(200,2) /// 稳定币震荡指标来自于稳定币供应比率SSR并量化SSR的200d SMA在布林线BB(200, 2)内的移动情况。当数值冲高时表明购买力正在消耗, 当数值新低时表明购买力正在累积",
stfRatio:"单位:千=KM=百万B=十亿///计算公式:S/F = circulating supply/newly mined bitcoins///库存与流量S/F比率是一个流行的模型它假定稀缺性驱动价值。它被定义为一种商品的现有库存和新生产的流量的比率",
stfDeflection:"单位:千=KM=百万B=十亿///计算公式:S/F Deflection = Price/( circulating supply/newly mined bitcoins)///稀缺性偏差是指一项资产的当前价格和其稀缺性的比率。它被用来确定一项资产在其稀缺性方面是被高估还是低估了///如果偏转≥1意味着根据S/F模型该资产被高估了。如果偏移量<1根据这个模型该资产被低估了",
goldenRatioMult:"单位:千=KM=百万B=十亿///黄金比例乘数探讨了比特币的价格对数曲线和市场周期以了解价格在中长期时间框架上可能的表现。它的市场周期高点碰到了350DMA的递减斐波那契序列倍数。这是因为随着时间的推移比特币在对数规模上的爆炸性增长正在放缓。随着它的市值增加同样的对数规模的增长速度变得更加困难",
distribution:"单位:千=KM=百万B=十亿///持有正数非零硬币的唯一地址的数量。合同被排除在外只有外部拥有的地址EOA被计算在内。注意到ERC-20资产1h分辨率每24小时更新一次。",
supplyDistribution:"单位:千=KM=百万B=十亿///具有特定平衡带的地址之间的相对供应分布。仅包括外部拥有地址(EOAs)的供应合同中的供应不包括在内。因此这些数字是相对于EOAs中持有的总供应量而言的。",
profitPercentEth:"单位:千=KM=百万B=十亿///其基金的平均买入价格低于当前价格的唯一地址的百分比。“买入价格”在这里被定义为硬币被转移到一个地址时的价格。仅计算外部拥有地址(EOAs),合同不包括在内。",
profitEth:"单位:千=KM=百万B=十亿///其基金的平均买入价格低于当前价格的唯一地址的数目。“买入价格”在这里被定义为硬币被转移到一个地址时的价格。仅计算外部拥有地址(EOAs),合同不包括在内。",
lossEth:"单位:千=KM=百万B=十亿///其基金的平均买入价格高于当前价格的唯一地址的数目。“买入价格”在这里被定义为硬币被转移到一个地址时的价格。仅计算外部拥有地址(EOAs),合同不包括在内。",
inflactionRateEth:"单位:千=KM=百万B=十亿///计算公式Inflation Rate = new coins issued / current supply///该指标表明币的通货膨胀情况,因为币未设定发行上限,且有燃烧费用,所以要通过该指标来观察是否进入通缩还是通胀阶段,一直通缩表明该币存在稀缺性, 一直通胀表明该币存在超发风险",
issuanceEth:"单位:千=KM=百万B=十亿///添加到当前供应中的新硬币总量,即铸造硬币或发布到网络的新硬币。",
soprEth:"单位:千=KM=百万B=十亿///SOPR指标反映了在链上移动的所有币的利润变现程度。///SOPR值大于1意味着当天移动的币平均来说是盈利的卖出价格大于支付价格。///SOPR值小于1意味着当天移动的币平均来说是亏损的卖出价格小于支付价格。///SOPR值正好为1意味着当天移动的币平均来说是以收支平衡的方式出售硬币。///SOPR呈上升趋势意味着利润正在实现。///SOPR呈下降趋势意味着正在实现损失和/或盈利的币没有被使用。",
velocityEth:"单位:千=KM=百万B=十亿///流通速度是衡量单位在网络中流通速度的指标,通过将链上交易量(以美元计)除以市值来计算即NVT比率的倒数。",
nvtRatioEth:"单位:千=KM=百万B=十亿///市值/交易价值比(NVT)是通过市值除以以美元衡量的转移链上交易量来计算的。NVT比率是由威利·吴创造的。",
livelinessEth:"单位:千=KM=百万B=十亿///活跃度被定义为被摧毁的硬币天数总和和所有被创造的硬币天数总和的比率。当长期持有者平仓时活跃度增加而当他们积累到HODL时活跃度下降。这个指标是由Tamas Blummer创建的。",
frmEth:"单位:千=KM=百万B=十亿///交易费率乘数(FRM)定义为矿工总收益(区块奖励+交易费用)与交易费用之间的比率。FRM是对区块链安全性的衡量并评估区块奖励消失后链的安全性。这个指标是由Matteo Leibowitz首先提出的",
supplyProfitPercentEth:"单位:千=KM=百万B=十亿///流通供给量占利润的百分比,即在上次移动时价格低于当前价格的现有硬币的百分比。",
supplyProfitEth:"单位:千=KM=百万B=十亿///以利润为单位的流通供应量,即上次移动时价格低于当前价格的硬币数量.",
supplyLossEth:"单位:千=KM=百万B=十亿///流通供应量的损失,即上次移动时价格高于当前价格的硬币数量。",
nuplEth:"单位:千=KM=百万B=十亿///未实现的净收益损失比是相对未实现利润和相对未实现亏损之间的差额。欲了解更多信息,请参阅本文。这一指标也可以通过从市值中减去已实现的市值,并将结果除以本文所述的市值来计算。",
relativeUProfitEth:"单位:千=KM=百万B=十亿///相对未实现利润定义为所有现有货币在变现时的价格低于当前市值规范化价格的美元利润总额",
relativeULossEth:"单位:千=KM=百万B=十亿///未实现的净亏损量定义为所有现有货币在变现时的价格高于当前市值规范化价格的美元总损失。",
lthNUPLEth:"单位:千=KM=百万B=十亿///长持者未实现的净收益量 (LTH-NUPL)是指净未实现利润/亏损仅考虑寿命至少为155天的UTXOs可作为评估长期投资者行为的指标。",
sthNUPLEth:"单位:千=KM=百万B=十亿///短持者未实现的净亏损量 (sb -NUPL)是指净未实现利润/亏损仅考虑小于155天的utxo并作为评估短期投资者行为的指标。",
marketcapEth:"单位:千=KM=百万B=十亿///流通市值(或网络价值)定义为当前供应量与当前美元价格的乘积。",
rcapEth:"单位:千=KM=百万B=十亿///已实现流通市值:已实现的上限以不同的价格对不同部分的供应进行估值(而不是使用当前的每日收盘价)。具体来说它是通过最后一次移动每个UTXO时的价格来计算的。",
rpriceEth:"单位:千=KM=百万B=十亿///实现价格是实现上限除以当前供应量。",
mvrvRatioEth:"单位:千=KM=百万B=十亿///流通市值-已实现流通市值比(MVRV)是市值与实现价值之间的比率。它表明交易价格何时低于“公允价值”。这个指标是由David Puell和Murad Muhmudov创建的。",
burnedSupplyEth:"单位:千=KM=百万B=十亿///统计燃烧费观察币的通缩情况,需结合其他指标一起分析",
mintedSupplyEth:"单位:千=KM=百万B=十亿///已发行ETH的总量。",
tzbp:"单位:千=K,M=百万,B=十亿///该指标显示各个工作时间内的价格变化即亚洲00:00-12:00 UTC、美洲12:00-0:00 UTC、欧洲06:00-18:00 UT。当前仅包含币安的数据",
lthVolume:"单位:千=K,M=百万,B=十亿///即币龄超过155天的持有者每日的交易量 该指标观察长期持有者是否在卖出币,交易量走高可以用来评估当前价格是否被高估",
bobp:"单位:千=K,M=百万,B=十亿///该指标统计指定时间间隔比如5分钟在各个分段价位上的潜在买入卖出挂单 表明资金的意向。当前仅包含币安的数据",
cddwave:"单位:千=K,M=百万,B=十亿///",
balanceDistribution:"单位:千=K,M=百万,B=十亿///该指标表明持有者的余额分布,通过大额地址的历史数量变化观察巨鲸是否在买入或卖出, 通过小额地址的历史占比变化,观察新用户的增长情况, 通过大额数量占总流通量的对比观察币的垄断程度。",
timeDivision:"单位:千=K,M=百万,B=十亿///该指标观察持有者的币龄分布及对应的币数量",
priceDivision:"单位:千=K,M=百万,B=十亿///该指标观察持有者在当前价格相对于买入价格的价差分布及对应的地址数量",
priceDivision1:"单位:千=K,M=百万,B=十亿///该指标观察持有者在当前价格相对于买入价格的价差分布及对应的币数量",
profitDistribution:"单位:千=K,M=百万,B=十亿///该指标表明持有者相对于当前价格的盈利分布情况, 通过盈利占比观察如果绝大部分持有者都处于盈利状态, 通常意味着顶部的到来, 如果绝大部分持有者处于亏损状态, 通常意味着底部的形成。",
detailedDistribution:"单位:千=K,M=百万,B=十亿///该指标将余额分成段并详细描述各个段的币龄,币数量分布,用户可以分析各个段的分布特点和历史变化结合其他指标一起分析网络整体特征。",
volumeProfile:"单位:千=K,M=百万,B=十亿///成交量分布图是一项高级图表研究,显示指定时间段内指定价格水平的交易活动。这项数据(考虑了用户定义的参数,例如行数和时间段)在图表上绘制了直方图,旨在显示基于数量的主要和/或重要价格水平。本质上,成交量分布图会获取指定时间段内以特定价格水平交易的总交易量,并将总交易量分为买入交易量或卖出交易量,然后使交易者可以轻松看到该信息。当前仅包含币安的数据",
exchange1:"单位:千=K,M=百万,B=十亿///交易所持有的ETH总币量,目前仅统计前10交易所,即Binance 、BinanceUS 、Bitfinex 、Bitstamp 、Bybit 、Coinbase 、Gate 、Kraken、KuCoin 、OKX ",
quickNews:"引用金十数据网站",
circulationTotalCSupply:"单位:千=K,M=百万,B=十亿///总流通量指标观察USDC,USDT,BUSD的流通量之和当该指标上升时通常表明更多的购买力反之则购买力下降",
circulationUSDC:"单位:千=K,M=百万,B=十亿///USDC流通量观察USDC的流通量变化",
circulationUSDT:"单位:千=K,M=百万,B=十亿///USDT流通量观察USDC的流通量变化",
circulationBUSD:"单位:千=K,M=百万,B=十亿///BUSD流通量观察USDC的流通量变化",
ethTopAddrMonitorList:"单位:千=K,M=百万,B=十亿///跟踪以太坊大额持有者的链上活动",
mempool:"单位:千=K,M=百万,B=十亿///通过观察待交易池里的交易数和交易费观察待交易情况,突然变高可能表明有用户需要售出币,需要结合其他指标一起分析",
nvtSign:"单位:千=K,M=百万,B=十亿///NVT Signal (NVTS)是NVT Ratio的改进版它使用每日转账量的90天移动平均值作为分母。高NVT Signal 通常意味着市场的顶部, 低NVT Signal通常意味着市场底部。///恒定的NVT信号或横向趋势表明当前市值和转移量的增长趋势处于平衡状态表明当前市场趋势是可持续的。这种状态通常出现在看涨或看跌趋势的初期至中期此时市场方向已经确立。",
USTreasuriesYields:"单位:千=K,M=百万,B=十亿///由一国政府(财政部)发行的中长期债务工具,一般采用面额发行,定期付息,到期偿付本金和最后一期利息///美国国债收益率是指美国政府债券的利率通常以10年期和30年期国债收益率最为广为关注。这些收益率在金融市场中被认为是重要的经济指标可以反映市场对美国经济状况和通胀预期的看法。///包含30年期政府债券收益率、20年期政府债券收益率、10年期政府债券收益率、5年期政府债券收益率、2年期政府债券收益率、1年期政府债券收益率、6月期政府债券收益率、3月期政府债券收益率、1月期政府债券收益率",
MoneyStockMeasures:"单位:千=K,M=百万,B=十亿///MB包括硬币、纸币在内的流通货币 (Currency in Circulation) 以及银行准备金余额 (Reserve Balances)///M1M1由///1美国财政部、联邦储备银行和存款机构金库以外的货币组成///2商业银行的活期存款不包括存款机构、美国政府、外国银行和官方机构持有的金额减去托收过程中的现金项目和美联储浮动资金///3其他流动存款包括其他支票存款或 OCD其中包括可转让提款指令或 NOW 和自动转账服务,或 ATS、存款机构账户、信用合作社的共享汇票账户以及活期存款储蓄机构和储蓄存款包括货币市场存款账户///M2M2 包括 M1 加上/// (1) 小额定期存款(金额低于 100,000 美元的定期存款)减去个人退休账户 (IRA) 和存款机构的 Keogh 余额;///(2) 零售货币市场基金 (MMF) 中的余额减去 MMF 中的 IRA 和 Keogh 余额///M3(已停止更新)M3是货币供应量中最宽泛的一指标包括M2以及更长期、更大额度的存款、大额时间存款、机构投资者的存款等。在2006年美国停止了对M3的官方统计因此M3的计算方法可能会有所不同但一些私人机构和研究机构可能会尝试估算M3但这些估算结果可能不同且缺乏官方认可。需要注意的是这些指标的具体定义和计算方法可能因不同的国家或机构而异。在美国这些指标由美联储美国联邦储备系统进行统计和发布。",
loanPsi:"单位:千=K,M=百万,B=十亿///私营部门又称“民营部门”英语private sector是经济的一部分有时被称为公民部门英语citizen sector由个人或私人团体拥有而不是由国家所有与之相对的是公共部门。 私营部门分为两个子部门:家庭部门和私营企业部门这里的私营部门贷款数据就是前面商业银行资产负债表中的“商业和工业贷款”数值。",
loanGdp:"单位:千=K,M=百万,B=十亿///",
wei:"单位:千=K,M=百万,B=十亿///纽约联储为因应 2020 年所爆发的新冠肺炎疫情,挑选了十项每日或每週更新等高频数据,并将这些数据组成综合指数,每週发布一次,以观察较即时的经济变化。该指数每週四更新上週数据,并于下週二修正前值。///这十项数据涵盖日常消费、就业市场、生产力三大面向,以下分别列出:///1. 红皮书报告同店零售销售Redbook ResearchSame-store retail sales average///2. 初次申请失业金人数///3. 连续申请失业金人数///4. ASA 僱佣指数The American Staffing Association Staffing Index///5. 拉斯穆森消费指数Rasmussen Consumer Index///6. 每週钢铁产量///7. 电力输出量///8. 每週燃料销售量///9. 美国铁路流量///10. 联邦预扣税数据///将上述数据组成纽约联储每週经济指数,可以观察到短线间美国实体经济的变化,为一项领先指标。当指标向上时,实体经济可能将转佳;而当指标向下时,则代表实体经济有转弱的迹象。",
USDCCasting:"单位:千=K,M=百万,B=十亿///USDC铸造量介绍USDC铸造星观察USDC每日铸造量的变化并记录在哪些链的哪些交易上被铸造目前仅观察eth,tron链",
USDTCasting:"单位:千=K,M=百万,B=十亿///USDT铸造量介绍USDT铸造星观察USDT每日铸造量的变化并记录在哪些链的哪些交易上被铸造目前仅观察eth,tron链",
BUSDCasting:"单位:千=K,M=百万,B=十亿///BUSD铸造量介绍BUSD铸造星观察BUSD每日铸造量的变化并记录在哪些链的哪些交易上被铸造目前仅观察eth链",
buyingPrice:"单位:千=K,M=百万,B=十亿///该指标表明持有者在什么价位购入了币,即持有成本。一般来说,某个价位积累的币为了盈利不会轻易抛售,故一般构成支撑点的判定。",
distributionLthSth:"单位:千=K,M=百万,B=十亿///通过对比长期持有者和短期持有者的盈利和亏损数据来观察当前市场处于顶部还是底部,市场是否还有增长潜力或处于下降通道。通常长期持有者处于大部分亏损状态意味着市场的相对底部, 反之则是顶部要注意抛售获利风险, 短期持有者处于大部分盈利状态意味着当前的相对顶部,有阶段性止盈需求。",
exchangeRate:"不同货币之间的兑换比率即为汇率。外汇交易市场决定了具体的汇率,进而决定了购买外国商品和金融资产的成本。///汇率的变化是连续的,并且受到全球外汇市场参与者的交易活动和供求关系的影响。市场参与者可以在交易时间内随时进行交易,这也是导致汇率变动的主要原因。商业银行、金融数据提供商和新闻机构也是获取实时汇率数据的重要来源。汇率是由市场上的交易活动决定的,市场参与者通常会根据各自的交易平台和数据源获取汇率数据。因此,选择可靠的数据提供商和数据来源是确保汇率数据准确性和可靠性的关键。",
GDP:"净出口 = 出口额 进口额///个人消费支出(PCE, Personal consumption expenditures)///国内私人投资总额(Gross private domestic investment)///商品和服务的净出口(Net exports of goods and services)///个人消费支出(PCE, Personal consumption expenditures):耐用消费品(Durable goods)、非耐用消费品(Nondurable goods)、服务(Services) /// 国内私人投资总额(Gross private domestic investment):固定投资、私人库存变动 ///商品和服务的净出口(Net exports of goods and services):出口、进口。///",
vdd:"Value Days DestroyedVDDMultiple旨在确定比特币价格何时可能出现泡沫并接近主要周期高点。///它使用了销毁硬币天数的原理Coin Days Destroyed是支出速度的代表它为长时间没有在链上移动的硬币提供了额外的权重。///销毁的价值天数乘以销毁的硬币天数乘以$BTC的价格从而随着$BTC价格的变化可以更好地比较一段时间内的消费活动。///Value Days Destroyed Multiple然后将30天的VDD平均值除以365的平均值将近期支出速度与年平均支出速度进行比较。///它能够突出显示旧硬币何时开始迅速进入市场销售。这种情况通常发生在长期参与者希望在主要牛市周期中随着价格加速上涨而获利时。///这种旧硬币进入市场的现象最终导致价格下跌,供不应求,牛市结束。",
}
}
export const introduction_en = {
introduce:{
btcbigtxcount:"Unit: thousands =K, M= millions, B= billion///Record transfers with a transaction value of>=1 million USD on the chain. For entities with address labels that can identify both parties to the transaction, the price can be predicted by observing the number and amount of large transactions. When prices fluctuate significantly, there are usually large transfers in or out of the exchange.",
address:"Unit: thousands =K, M= millions, B= billion///Total Address:Total number of addresses, indicating the growth status of user numbers, excluding addresses with a balance of 0. A higher number of addresses means more new users are entering///New Address:The daily number of new addresses indicates the short-term participation status of users. A higher value indicates more new users entering, while a lower value indicates that users are losing interest in buying coins///Active Address:The number of active addresses per day indicates the user's current participation status. This indicator needs to be analyzed in conjunction with other indicators. A higher value may indicate the user's selling or buying actions, while a lower value indicates that the current online transfer is not active///Send Address:The number of daily sending addresses indicates the user's current spending situation. A higher value indicates the user's possible selling actions, while a lower value indicates that the current on chain transfer is not active, which needs to be analyzed in conjunction with other indicators///Receive Address:The daily number of receiving addresses indicates the user's current buying situation. A high value indicates the user's possible buying actions, while a low value indicates that the current on chain transfer is not active, which needs to be analyzed in conjunction with other indicators///Transfer volume of new address:The daily transaction volume of new addresses indicates the buying activity of new users. A high value indicates that new users may have bought a large amount of coins, while a low value indicates that new users have a low willingness to buy in the current state",
blockAmount:"Unit: thousands =K, M= millions, B= billion///Block real-time trading volume",
dailyBuySell:"Unit: thousands =K, M= millions, B= billion///Daily transaction details of BTC",
utxos:"Unit: thousands =K, M= millions, B= billion///Segment of holder's balance and distribution of addresses per segment",
utxos2nd:"Unit: thousands =K, M= millions, B= billion///Balance-holder currency quantity distribution (distribution by number of addresses segmented by balance)",
holder:"Unit: thousands =K, M= millions, B= billion///This indicator observes the distribution of coin age and corresponding addresses of holders",
holderBalance:"Unit: thousands =K, M= millions, B= billion///X axis: the number of days the holder has exceeded /// holderBalance30: The holder has exceeded 30 days /// holderBalance10y: The holder has exceeded 10 years /// The specific number of Y axis",
getBuyData:"Unit: thousands =K, M= millions, B= billion///Distribution of number of addresses segmented by purchase price /// X axis: purchase price range ///Y axis: quantity of corresponding price range",
getBuyAmountData:"Unit: thousands =K, M= millions, B= billion///Quantity distribution of coins segmented by purchase price /// X axis: purchase price range /// Y axis: quantity of coins in corresponding price range",
getDiffData:"Unit: thousands =K, M= millions, B= billion///Address number distribution according to buy/sell price difference /// X axis: current price-purchase price difference /// Y axis: quantity distribution data",
getDiffAmountData:"Unit: thousands =K, M= millions, B= billion///Address number distribution according to buy/sell price difference /// X axis: holder's current earning coin range /// Y axis: quantity distribution data ",
getProfitData:"Unit: thousands =K, M= millions, B= billion///Number of addresses distributed by revenue segment /// X axis: current revenue range ///Y axis: number of revenue ranges",
getProfitAmountData:"Unit: thousands =K, M= millions, B= billion///Number distribution of coins segmented by profit /// X axis: current range of coins earned by the holder ///Y axis: number distribution data",
getTopList:"Giant whale supporters can observe the changes in the status of giant whale holders by selecting a certain balance range and time range. For those with an address tag, they can observe who holds the address or search for a user specified address to observe the changes in ownership",
getTopListWatch:"Unit: thousands =K, M= millions, B= billion///Table of changes in the number of giant whale coins",
coinmarketall:"Unit: thousands =K, M= millions, B= billion///Currency price every 5 minutes (sorted by market capitalization, only the top 100 values are shown)",
btcTags:"Unit: thousands =K, M= millions, B= billion///Address corresponding tag holder name relationship list",
BTCVolume:"Unit: thousands =K, M= millions, B= billion///Transaction Volume///Transaction Fees///Transaction Volume (Entity-adjusted):(Eliminating zero change trading volume) means eliminating the zero change portion of on chain transactions, reflecting the trading volume situation more realistically///The above three only indicate the degree of on chain activity. A higher value indicates that the currency may be bought or sold, while a lower transaction volume or fee indicates less on chain activity. The market is in a wait-and-see state, and needs to be analyzed in conjunction with other indicators",
minerAddress:"Unit: thousands =K, M= millions, B= billion///The change in the balance of miners means that a continuous increase in the value means that miners are hoarding coins to obtain more profits, while a decrease in the value means that miners are selling their coins to stop profits",
minerBalance:"Unit: thousands =K, M= millions, B= billion///Miner Balance:The total supply held in miner addresses .",
MVRV:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:MVRV = Market Cap / Realized Cap /// This indicator evaluates the ratio of circulating market value to actual market value. A rise indicates that investors have started to accumulate returns. When the ratio is greater than 3.5, it indicates that the market is starting to overheat, and the price is already high-risk. Investors may sell currency lock in returns. A decline indicates that investors' returns are beginning to release and may enter a bear market. When the ratio is less than 1.0, it indicates that the market has entered a surrender stage and also indicates a possible bear market stage.",
MVRVZ:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:MVRV-Z Score =Market Cap - Realized Cap / Standard Deviation (Market Cap)/// Whether the current price of the evaluated currency asset relative to its market value standard deviation is overvalued or undervalued. When the market value is significantly higher than the actual value, it indicates that it may have reached the top of the market, otherwise it indicates that it has reached the bottom of the market.",
NVTRatio:"Unit: thousands =K, M= millions, B= billion///The Network Value to Transactions (NVT) Ratio is computed by dividing the market cap by the transferred on-chain volume measured in USD. The NVT Ratio was created by Willy Woo.",
NVTSignal:"Unit: thousands =K, M= millions, B= billion///The NVT Signal (NVTS) is a modified version of the original NVT Ratio. It uses a 90 day moving average of the daily transaction volume in the denominator instead of the raw daily transaction volume. This moving average improves the ratio to better function as a leading indicator.",
OHLCPrice:"Unit: thousands =K, M= millions, B= billion///OHLC dollar-denominated asset price candlestick chart",
jzr60:"Unit: thousands =K, M= millions, B= billion///This indicator has accumulated a 60 day increase, and when the short-term currency price increases faster than the entry speed of new funds, i.e. the increase is too high (such as exceeding 100%), it will cause investors to sell coins to lock in short-term profits",
arh999:"Unit: thousands =K, M= millions, B= billion/// Ahr999=(Bitcoin price/200 day Fixed investment cost) * (Bitcoin price/exponential growth valuation)///Exponential growth valuation=10 ^ [5.84 * log (currency age) - 17.01]///Currency age=number of days from the current date to January 3, 2009///When the price of Bitcoin is both lower than the short-term fixed investment cost and expected valuation, increasing the investment amount can increase the probability of user returns.According to the indicator backtesting, when the ahr999 indicator data is below 0.45, it may be suitable for bottoming out, and between 0.45 and 1.2, it may be suitable for booking BTC. If it is higher than this range, it may not be a good timing for booking at this time///Ahr999x Index Escape Index///Ahr999x=(200 day fixed cost/Bitcoin price) * (exponential growth valuation/Bitcoin price) * 3///This indicator is opposite to arh999 and is used to indicate top flight",
DaysNeedle:"Unit: thousands =K, M= millions, B= billion///Celestial needle",
Holding:"Unit: thousands =K, M= millions, B= billion///The number of bitcoin in the Purpose Bitcoin ETF. Source: Purpose Investments",
Flows:"Unit: thousands =K, M= millions, B= billion///The number of bitcoin flowing from/to the Purpose Bitcoin ETF. Source: Purpose Investments",
ma730:"Unit: thousands =K, M= millions, B= billion///This indicator highlights the period during which buying or selling Bitcoin generates excess returns. Buying Bitcoin has historically generated huge returns when prices fall below the two-year moving average (green line). Selling Bitcoin when the price exceeds the 2-year moving average x5 (red line) has always been an effective way to generate profits",
capReal:"Unit: thousands =K, M= millions, B= billion///Realized capitalization (realized cap) is a variation of market capitalization that values each UTXO based on the price when it was last moved, as opposed to its current value. As such, it represents the realized value of all the coins in the network, as opposed to their market value.Realized cap reduces the impact of lost and long dormant coins, and weights coins according to their actual presence in the economy of a given chain. When a coin that was last moved at significantly cheaper prices is spent, it will re-value the coins to the current price, and thus increase realized cap by a corresponding amount. Similarly,/// if a coin is spent at a price lower than when it was last moved, it will re-value to a cheaper price and have a corresponding decrease on realized cap.Given realized cap values each coin at the time last moved, it can be considered a proxy for the value 'stored' or 'saved' in the asset. This metric can therefore be considered an estimate of the aggregate cost basis for the network and makes it a powerful baseline for the creation of additional metrics (e.g. MVRV and NUPL).",
CDD:"Unit: thousands =K, M= millions, B= billion///Calculation formula:CDD = value . lifespan [days] (of all spent outputs ) /// Calculation formula: Supply-Adjusted CDD = CDD / Total Supply///CDD is a valuable tool for observing the consumption behavior of long-term holders and wealthy investors, as it considers both lifespan and coin count. It is particularly suitable for observing macro trends, where investors who have accumulated in previous cycles begin to spend their coins.///High indicator values may indicate that long-term investors are spending coins to achieve profits, leveraging market forces, or reducing their belief in holding assets.///Continuous high or trendy high indicator values add weight to the conclusion of long-term holder consumption behavior. In bullish markets, CDD usually tends to rise as long-term holders sell during market strength and often peak near local price peaks.///Low indicator values occur when daily network traffic is dominant, old coins remain dormant, and the belief in holding assets is high. A period of reduced interest in the asset (such as a bear market) often leads to a decrease in on chain activity, resulting in lower indicator values.///Persistent low or trendy lower indicator values may indicate that long-term holders' confidence is recovering and they are starting to hold rather than spend their coins.///The CDD of supply adjustment indicates the impact of the accumulation of total supply on the CDD indicator. As more coins are issued and more CDD is accumulated by the total network, the lower limit of CDD will increase over time.",
fundingRate:"Unit: thousands =K, M= millions, B= billion///Capital rate refers to the periodic fee paid to long or short traders based on the price difference between the market price of the perpetual contract and the spot price. Therefore, depending on the open position, the trader can be either the payer or the payee.The fund rate can prevent sustained price deviations between the two markets. It will be recalculated multiple times within a day, and the current recalculation interval is 8 hours.Currently only data containing BINANCE",
openInterest:"Unit: thousands =K, M= millions, B= billion///Open positions and approximations refer to the total number of contracts that are currently open, including the number of unexpired contracts and the number of contracts that have not been executed (settled).The number of open positions is usually used to confirm the trend and reversal of the contract. Currently only data containing BINANCE",
takerlongshortRatio:"Unit: thousands =K, M= millions, B= billion///Contract active buying volume refers to the trading volume of contract active buying per unit of time displayed(taker Buy by eating a listed order),That is, the inflow of funds. Generally speaking, a large active buying volume of contracts indicates that the market is bullish. Currently, only data from Coin Security is included",
profitrate:"Unit: thousands =K, M= millions, B= billion///If the current price is higher than the price at the time of creation, UTXO is in a profitable state. On the contrary, if the current price is lower than the price at the time of creation, UTXO is in a loss state///Generally speaking, higher values may indicate the top of the market, while lower values may signal the bottom.",
sopr:"Unit: thousands =K, M= millions, B= billion///SOPR indicator reflects the degree of profit realization of all currencies moving on the chain.///SOPR value is greater than 1, it means that on average, the currency moving on that day is profitable (the selling price is greater than the payment price).///SOPR value is less than 1, it means that on average, the currency moving on that day is at a loss (the selling price is less than the payment price).///SOPR value is exactly 1, which means that on average, coins moving on the same day are sold in a breakeven manner.///SOPR is on the rise, indicating that profits are being realized.///SOPR shows a downward trend, indicating that the currency that is achieving losses and/or profits has not been used.///LTH-SOPR reflects the profitability of all coins (long-term holders) that move on the chain and have a lifespan of over 155 days. During the 155 day process (LTH threshold), market volatility and prices usually resolve in one direction, either above or below the price at the time of UTXO creation (assuming cost basis). Therefore, when the currency held by LTH is spent, it often achieves significant profits or losses. LTH-SOPR often reaches relatively large (>2.0) and small values (<0.8).///STH-SOPR reflects the degree of realization profit and loss of all coins (short-term holders) that have a lifespan of less than 155 days moving on the chain.",
asol:"Unit: thousands =K, M= millions, B= billion///Calculation formula:ASOL = Mean{ lifespan [days] (of all spent outputs) }///ASOL emphasizes at the macro level the lifespan of coins spent on each transaction output on that day. This provides insight into the balance between short-term (young coins) and long-term (old coins) consumption behavior over a period of time. It tends to rise with market fluctuations and changes in market sentiment and structure, because old dormant coins are spent back in circulation. A high value usually indicates an increase in the proportion of old currency usage in network traffic, which is usually related to long-term holders taking advantage of high market volatility activities. Low values usually indicate that daily traffic is mainly composed of young coins being consumed, usually related to exchanges and short-term holders.",
dormancy:"Unit: thousands =K, M= millions, B= billion///Calculation formula:Dormancy = CDD / Transaction Volume ///Calculation formula: Supply-Adjusted Dormancy = Dormancy / Total Supply ///The average number of dormancy days of a coin (Dormancy) describes the average number of dormancy days of each spent coin before it is moved A high dormancy value means that, on average, coins consumed on the same day have been stored in a non liquid state for a long time and may be consumed back into the circulation cycle. ///A low sleep value means that the coins spent on the day are relatively young, indicating that older coins are usually not yet spent, and the number of coins on the chain is a characteristic of more daily traffic.",
soag:"Unit: thousands =K, M= millions, B= billion///This indicator can be comprehensively analyzed in conjunction with the CDD indicator by observing the sales status of long-term and short-term holders of coin age distribution.",
csupply:"Unit: thousands =K, M= millions, B= billion///The total amount of money supply that has been excavated or issued, which indicates how much currency has been circulated and how much remains to be circulated. When the circulation proportion is relatively high, it means that the First level issuance is approaching the end. For currencies with a fixed total issuance volume, the maintenance network operation will mainly rely on transaction fees in the future.",
Liveliness:"Unit: thousands =K, M= millions, B= billion///Calculation formula:Liveliness = Cumulative CDD / Cumulative Total Supply ///Calculation formula:Liveliness = value . lifespan [blocks](of all outputs ever spent) / value . lifespan [blocks] (of all outputs ever reated)///Activity is an indicator that provides macro insight into changes in holder behavior and helps identify trends in long-term holder accumulation or consumption. It highlights the period when the destruction speed of coin age is faster than the accumulation speed of circulation.///When a high proportion of coin supply is in a dormant state (i.e. maintaining holding behavior) and the accumulation of coin age exceeds the age destroyed by on chain activities, vitality will decrease.///When the age of destroyed coins equals the accumulated age of circulating supply, the vitality will tend to flatten out.///When long-term holders start spending old coins that have accumulated a large number of coin days, exceeding the rate of coin age accumulation, vitality will increase.",
rprofit:"Unit: thousands =K, M= millions, B= billion///When the selling price is greater than the buying price, the profit achieved during the expenditure may indicate that the price is already in the overbought stage when it continues to rise to a new high, and investors may choose to sell to lock in profits. When the price continues to fall to a new low point, it indicates that it is in an oversold stage and may be in a bottoming state.",
rloss:"Unit: thousands =K, M= millions, B= billion///When the selling price is lower than the buying price and the loss is realized during the expenditure, it indicates that the price may have been in an oversold stage when it continues to rise to a new high, and investors may choose to buy to accumulate. When the price continues to fall to a new low, it indicates that it is in an overbought stage, possibly at the end of a bull market.",
rplRate:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Realized Profit/Loss = Realized Profit / Realized Loss///This ratio observes the profit and loss situation of the spent coins. When the ratio rises, it indicates the beginning of profitability, funds may be flowing in, and when reaching a new high, it indicates that it may reach a stage high point, and investors are selling to lock in profits. When the ratio reaches a new low, it indicates that it may reach a temporary low point, and investors can look for timely buying opportunities.",
marketcap:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Market Cap = price [USD] . Total Supply ///The market value represents the total asset value of a currency, describing the asset size of the currency. To increase, it is necessary to evaluate whether the asset will enter a bull market or be overvalued. To decrease, it is necessary to evaluate whether the asset will enter a bear market or return to zero. This indicator is usually used to compare other currencies and other non monetary assets.",
rcap:"Unit: thousands =K, M= millions, B= billion///The realized circulating market value is valued for each UTXO based on the price at the last movement. When the market value transaction exceeds the realized upper limit, the market is in an overall profitable state. When the market value transaction falls below the realized upper limit, the market is in an overall loss state. The abnormal increase in this indicator indicates that a large number of investors may be selling coins, i.e. moving their coins.",
lthmvrv:"Unit: thousands =K, M= millions, B= billion///LTH Makret Cap Long-term holder's circulating market value /// LTH Realized Cap Long term holders have achieved market value in circulation /// Calculation formula:LTH-MVRV= Market Cap (of all UTXOs where age≥155 days) /Realized Cap (of all UTXOs where age≥155 days)///The ratio of the market value of long-term holders to the realized market value. An increase in this ratio indicates that long-term holders are beginning to accumulate and the market is beginning to improve. At a certain new height, long-term holders may sell their coins to stop profits. Conversely, a decrease indicates that long-term holders are selling their coins.",
sthmvrv:"Unit: thousands =K, M= millions, B= billion/// STH Market Cap Short term holder's circulating market value /// STH Realized Cap Short term holders have achieved market value in circulation///Calculation formula:STH-MVRV = Market Cap (of all UTXOs where age < 155 days) / Realized Cap (of all UTXOs where age < 155 days)///The ratio of the market value of short-term holders to the realized market value. A rise in this ratio indicates that short-term holders are starting to accumulate, reaching a new high where short-term holders may sell their coins to stop profits, indicating a local peak. Conversely, a decrease indicates that short-term holders are selling their coins, and prices may also reach new lows .",
nupl:"Unit: thousands =K, M= millions, B= billion///Calculation formula:Net Unrealized Profit and Loss (NUPL) = Market Cap -Realixed Cap / Market Cap ///This indicator indicates whether investors are in a profit or loss state as a whole. Any value above zero indicates that the investor is in a net profit state, while the opposite indicates a net loss state. The further away from zero, the closer the market is to the top and bottom.",
uprofit:"Unit: thousands =K, M= millions, B= billion///Unrealized profit refers to the total profit accrued by UTXO created when the asset price is lower than the current price.",
uloss:"Unit: thousands =K, M= millions, B= billion///Unrealized losses refer to the total losses accrued by UTXO when the asset price is higher than the current price.By observing the delta between the price at the time of UTXO creation and the current price of the asset, we can determine whether the investors in the UTXO are in a state of (price increase) or loss (price decrease), and to what extent.",
lthnupl:"Unit: thousands =K, M= millions, B= billion///This indicator evaluates the profit and loss situation of long-term holders. Long term investors may sell and lock in profits due to the new high of the indicator, or buy and accumulate profits based on the new low of the indicator.",
sthnupl:"Unit: thousands =K, M= millions, B= billion///This indicator evaluates the profit and loss situation of short-term holders. This indicator has reached a new high, indicating a partial peak. Short term investors may choose to sell and lock in profits. If the indicator reaches a new low, there may be room for local prices to decline.",
mintusd:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Puell Multiple = Daily Coin Issuance (USD) / MA365 (Daily Coin Issuance (USD))///The ratio of the daily excavated value to the average excavated value over 365 days///A low value means that mining may approach a one-year shutdown price, miners may need to sell the excavated coins to pay for electricity bills, and it also means that the price is at a bottom///High numerical values mean significant profits from mining and also mean relatively high prices",
NDAQohlc:"Unit: thousands =K, M= millions, B= billion/// MA5/MA10/MA20: Represents 5-day moving average / 10-day moving average / 20-day moving average",
NDAQBTCPrice:"Unit: thousands =K, M= millions, B= billion///NDAQ Index VS BTC",
bian:"Unit: thousands =K, M= millions, B= billion///Binance contract K line",
priceValue:"Unit: thousands =K, M= millions, B= billion///Binance `K line` price trading volume",
activeAddress:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses that were active either as a sender or receiver. Only addresses that were active in successful transactions are counted.",
sendingAddress:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses that were active as a sender of funds. Only addresses that were active as a sender in successful non-zero transfers are counted.",
receivingAddress:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses that were active as a receiver of funds. Only addresses that were active as a receiver in successful non-zero transfers are counted.",
newAddress: "Unit: thousands =K, M= millions, B= billion///The number of unique addresses that appeared for the first time in a transaction of the native coin in the network.",
totalAddress:"Unit: thousands =K, M= millions, B= billion///The total number of unique addresses that ever appeared in a transaction of the native coin in the network.",
transsizetotal:"Unit: thousands =K, M= millions, B= billion///The total size of all transactions within the time period (in bytes).",
transsizemean:"Unit: thousands =K, M= millions, B= billion///The mean size of a transaction within the time period (in bytes).",
transactions:"Unit: thousands =K, M= millions, B= billion///The total amount of transactions. Only successful transactions are counted.",
transrate: "Unit: thousands =K, M= millions, B= billion///The total amount of transactions per second. Only successful transactions are counted.",
distribution:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 0.1 coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution1:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 0.01 coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution2:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 1 coin. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution3:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 10 coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution4:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 100 coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution5:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding at least 1k coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
distribution6:"Unit: thousands =K, M= millions, B= billion///he number of unique addresses holding at least 10k coins. For Ethereum only Externally Owned Addresses (EOAs) are counted, contracts are excluded.",
dailyVolume:"Unit: thousands =K, M= millions, B= billion///The total volume traded in futures contracts per exchange over the last 24 hours. Values are updated every 10 min. For a list of all supported exchanges and earliest available datapoints.",
getDayBalanceData:"Unit: thousands =K, M= millions, B= billion///X-coordinate: time /// y-coordinate: number of addresses",
getDayBalanceAmountData:"X-coordinate: time /// y-coordinate: number of addresses",
usdtbigtx:"Unit: thousands =K, M= millions, B= billion///USDT Table of large transactions",
usdcbigtx:"Unit: thousands =K, M= millions, B= billion///USDC Table of Large transactions",
usdtVolume:"Unit: thousands =K, M= millions, B= billion///USDT daily trading volume",
usdcVolume:"Unit: thousands =K, M= millions, B= billion///USDC daily trading volume",
ethbigtxcount:"Unit: thousands =K, M= millions, B= billion///Figure 1 shows the daily number of ETH large transactions, and Table 1 shows the details of large transactions",
ethTags:"Unit: thousands =K, M= millions, B= billion///Addresses correspond to a relational list of tag holder names",
ethTopAddrList:"Unit: thousands =K, M= millions, B= billion///Ethereum Whale address balance list",
ETHVolume:"Unit: thousands =K, M= millions, B= billion///Transaction Volume///Transaction Fees///EIP1559 burnt fees:This metric represents the cumulative sum of ETH incinerated since the implementation of the London Hard Fork, which introduced EIP-1559. The Ethereum Improvement Proposal (EIP-1559) established a base fee for transactions, which is burned to reduce the overall ETH supply. As a result, this metric indicates the deflationary pressure on Ethereum.///The above three only indicate the degree of on chain activity. A higher value indicates that the currency may be bought or sold, while a lower transaction volume or fee indicates less on chain activity. The market is in a wait-and-see state, and needs to be analyzed in conjunction with other indicators",
ETHTokenBigtx:"Unit: thousands =K, M= millions, B= billion///ERC20 token Large transaction tracking/// Currently, only the transfer function of the contract is counted",
ETHTokenVolume:"Unit: thousands =K, M= millions, B= billion///Observing the activity of tokens requires analysis in conjunction with other indicators",
ethAddress:"Unit: thousands =K, M= millions, B= billion///Active Address:The number of active addresses per day indicates the user's current participation status. This indicator needs to be analyzed in conjunction with other indicators. A higher value may indicate the user's selling or buying actions, while a lower value indicates that the current online transfer is not active///Receive Address:The daily number of receiving addresses indicates the user's current buying situation. A high value indicates the user's possible buying actions, while a low value indicates that the current on chain transfer is not active, which needs to be analyzed in conjunction with other indicators///Send Address:The number of daily sending addresses indicates the user's current spending situation. A higher value indicates the user's possible selling actions, while a lower value indicates that the current on chain transfer is not active, which needs to be analyzed in conjunction with other indicators",
none:"Unit: thousands =K, M= millions, B= billion///There is no",
reward:"Unit: thousands =K, M= millions, B= billion///Count mortgage rewards and observe the profitability of the mortgagor. Lowering the rewards may lead to the mortgagor withdrawing from the mortgage and selling coins to lock in profits, while increasing the rewards may lead to the mortgagor buying coins to accumulate profits from the mortgage",
cnew:"Unit: thousands =K, M= millions, B= billion///The number of new contracts deployed on the chain every day is not particularly meaningful and needs to be analyzed in conjunction with other indicators",
newContract:"Unit: thousands =K, M= millions, B= billion///A list of new smart contract addresses created daily",
dayUsdc:"Unit: thousands =K, M= millions, B= billion///At present, only the transaction volume of usdc transfer function on tron and ETH chain is counted",
dayUsdt:"Unit: thousands =K, M= millions, B= billion///At present, only the transaction volume of usdt transfer function on tron and ETH chains is counted",
bigUsdc:"Unit: thousands =K, M= millions, B= billion///Currently, only large transactions related to the transfer function of USDC on the tron and ETH chains have been recorded",
bigUsdt:"Unit: thousands =K, M= millions, B= billion///Currently, only large transactions related to the transfer function of USDT on the tron and ETH chains have been recorded",
dayBusd:"Unit: thousands =K, M= millions, B= billion///Currently, only the transaction volume of busd transfer function on the ETH chain is collected",
bigBusd:"Unit: thousands =K, M= millions, B= billion///Currently, only large transactions related to the transfer function of busd on the ETH chain have been recorded",
profitAddress:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Address in Profit = total address where Price >= Price_ created///That is, the number of addresses that are relatively profitable at the current price, indicating the top of the market. The higher the number, the more profitable the majority of addresses are, and there is a risk of selling and stopping profits",
lossAddress:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Address in Loss = total address where Price < Price_ created///The number of addresses that are relatively in a loss state at the current price, indicating the bottom of the market. The lower the number, the more addresses are in a loss state and can be bought in a timely manner",
profitRatio:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Percent of Address in Profit =Address in Profit / Total Address///The percentage of addresses that are relatively profitable at the current price, indicating the top of the market. The higher the percentage, the more profitable the majority of addresses are, and there is a risk of selling to stop profits",
lthSupply:"Unit: thousands =K, M= millions, B= billion///The total supply of holders with a coin age of over 155 days, this indicator observes whether long-term holders are selling or accumulating coins. A rise indicates whether the current price is undervalued and suitable for buying, while a decrease indicates that the current price is overvalued and suitable for selling",
sthSupply:"Unit: thousands =K, M= millions, B= billion///The total supply of holders with a coin age of less than 155 days. This indicator observes whether short-term holders are selling or accumulating coins. A higher indicator indicates that short-term holders are accumulating coins, while a lower indicator indicates that short-term holders are selling coins. Users need to analyze whether they are following other indicators",
realizedPrice:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Realized Price = Realized Cap / circulating supply///The realized price indicator indicates the current reasonable price of the currency, which is generally used to evaluate the supporting price. Investors can refer to this indicator to evaluate whether the price is in the overbought or oversold range.",
relativeLthSth:"Unit: thousands =K, M= millions, B= billion///The wave chart indicates the distribution of profit and loss supply of long-term and short-term holders, facilitating users to observe the corresponding relationship between the four indicators and prices.",
lthProfitSupply:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Profit for LTH = number of balance where Price > Price_created and Holder Time >= 155days",
lthLossSupply:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Loss for LTH = number of balance where Price <= Price_created and Holder Time >= 155days",
sthProfitSupply:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Profit for STH = number of balance where Price > Price_created and Holder Time < 155days",
sthLossSupply:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Loss for STH = number of balance where Price <= Price_created and Holder Time < 155days",
sthProfitRatio:"Unit: thousands =K, M= millions, B= billion/// Calculation formula: PL Ratio for STH = Profit for STH / Loss for STH ///Short term holders refer to those who hold addresses for less than 155 days. If the majority of short-term holders are in a profitable state, they may choose to sell to stop earning in the short term, or the price may continue to rise as a follow-up buying opportunity. If the majority of short-term holders are in a loss state, it may be a buying opportunity in the short term, or the price may continue to decline before the bottom is reached. If the short-term holder's profit to loss ratio is in an extreme state, and the ratio reaches a new high or low, it means corresponding selling and buying opportunities. This indicator needs to be considered by users in conjunction with other indicators.",
SLRVRatio:"Unit: thousands =K, M= millions, B= billion///Calculation formula: SLRV ratio = HOLDER in 24h / HOLDER in 6m~1y /// The ratio of 24-hour holders to holders aged 6 months to 1 year is used to measure the circulation speed of short-term holders compared to long-term holders to detect whether it is a bear market. A higher SLRV ratio indicates that short-term holders are more active online, indicating that the market top is approaching. A lower SLRV ratio indicates that short-term holders have little activity, or that the base of long-term holders has greatly increased. It is necessary to analyze whether it is a buying opportunity in conjunction with other indicators.",
lthProfitRatio:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:PL Ratio for LTH = Profit for LTH / Loss for LTH /// Long term holders refer to those who hold addresses for more than 155 days. If the majority of long-term holders are in a profitable state, they may choose to sell to stop earning. If the majority of long-term holders are in a loss state, it may be a buying opportunity. If the long-term holder's profit to loss ratio is in an extreme state, and the ratio reaches a new high or low, it means corresponding selling and buying opportunities.",
null:"Unit: thousands =K, M= millions, B= billion///There is no",
frm:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Fee Ratio Multiple =miner revenue( blocks rewards + transaction fees ) / transaction fees ///The ratio of miners' total income to transaction fees is a measure of Bitcoin network security. A low value means that users only need to pay lower transaction fees while maintaining high network security. This means that miners have considerable profits and increase their computing power to maintain the network. A high value means that users need to pay higher transaction fees to maintain network operation, resulting in reduced economic efficiency and user inactivity, The total transaction fee will further decrease, meaning that miners may shut down, resulting in lower computing power and reduced security",
cvdd:"Unit: thousands =K, M= millions, B= billion///Accumulated Value - The number of days destroyed is the ratio of the cumulative dollar value of the destroyed coins to their market age (days). This indicator is used to detect the bottom of the market.",
balancedPrice:"Unit: thousands =K, M= millions, B= billion///Balancing price is the difference between the realized price and the transaction price. The transaction price is the cumulative sum of the days of destroyed coins in US dollars, adjusted by the total time since the circulation supply and the establishment of Bitcoin. Balancing prices attempts to detect the bottom of major cycles. Investors can refer to this indicator to evaluate the support price of coins.",
nvtRatio:"Unit: thousands =K, M= millions, B= billion///Calculation formula:NVT Ratio =Market Cap [USD] / Transaction Volume [USD]///The Market Value to Trading Value (NVT) ratio describes the relationship between market value and trading volume. This indicator is similar to the P/E ratio in stocks. The higher or new high ratio indicates that investors are priced at a premium compared to the special currency, as market value growth exceeds the utilization of on chain trading volume and value settlement. From a historical perspective, high NVT ratio values are consistent with market tops and overvaluation periods. The ratio of a decline or new low indicates that investors have a discount on the pricing of Bitcoin, as the chain upload volume and network utilization exceed the market value growth. From a historical perspective, low NVT ratio values have been favorable periods for accumulation and often coincide with market bottoms and trending bull markets. A constant NVT ratio (or horizontal trend) indicates that the current growth trend of market value and transfer volume is in a balanced state, indicating that the current market trend is sustainable. This state is often reached in the early and middle stages of a bullish or bearish trend, as the market direction has already been determined.",
velocity:"Unit: thousands =K, M= millions, B= billion/// Calculation formula:Velocity = 1 / NVT Ratio = Transaction Volume [USD] / Market Cap [USD] /// This indicator measures the speed at which coins circulate in the network. A rise indicates that users may become active when using the currency, while a decrease indicates that user activity has become sluggish. It is usually necessary to combine other indicators to make a comprehensive judgment.",
PiCycleTopIndicator:"Unit: thousands =K, M= millions, B= billion///Throughout history, the Pi Cycle Top indicator has been very effective in selecting the timing of market cycle highs, reaching within 3 days. In the past three market cycles, when 111DMA moved up and passed through 350DMA x 2, we saw that it matched the peak price of Bitcoin",
ssr:"Unit: thousands =K, M= millions, B= billion///Calculation formula:SSR = Market Cap (of BTC) / Market Cap (of all Stablecoins )///When SSR is low, the current stable currency supply has more `purchasing power` to purchase BTC",
ssro:"Unit: thousands =K, M= millions, B= billion///Calculation formula:SSR Oscillator = bollinger_bands(200,2)///The stable currency volatility indicator comes from the stable currency supply ratio (SSR) and quantifies the movement of the 200d SMA of SSR within the BB (200,2) of the Bollinger Line. When the value rises, it indicates that purchasing power is being consumed, and when the value reaches a new low, it indicates that purchasing power is accumulating",
stfRatio:"Unit: thousands =K, M= millions, B= billion///Calculation formula:///The inventory to flow (S/F) ratio is a popular model, which assumes that scarcity drives value. It is defined as the ratio of existing inventory to newly produced flow of a commodity",
stfDeflection:"Unit: thousands =K, M= millions, B= billion///Calculation formula:S/F Deflection = Price/( circulating supply/newly mined bitcoins)///Scarcity deviation refers to the ratio between the current price of an asset and its scarcity. It is used to determine whether an asset is overvalued or undervalued in terms of its scarcity///If the deflection is ≥ 1, it means that the asset is overvalued according to the S/F model. If the offset is less than 1, according to this model, the asset is undervalued",
goldenRatioMult:"nit: thousands =K, M= millions, B= billion///The golden ratio multiplier explores the price logarithm curve and market cycle of Bitcoin to understand the possible performance of prices in the medium and long-term time frame. Its market cycle peak hit a decreasing Fibonacci sequence multiple of 350DMA. This is because over time, the explosive growth of Bitcoin on a logarithmic scale is slowing down. As its market value increases, the growth rate of the same logarithmic scale becomes more difficult",
distribution:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses holding a positive (non-zero) amount of coins. Contracts are excluded, only Externally Owned Addresses (EOAs) are counted. Note that ERC-20 Assets 1h resolution is being updated every 24 hours.",
supplyDistribution:"Unit: thousands =K, M= millions, B= billion///The relative supply distribution across addresses with specific balance bands. Only supply in Externally Owned Addresses (EOAs) is included, supply in contracts is excluded. Therefore the numbers are relative to the total supply held in EOAs.",
profitPercentEth:"Unit: thousands =K, M= millions, B= billion///The percentage of unique addresses whose funds have an average buy price that is lower than the current price. `Buy price` is here defined as the price at the time coins were transferred into an address. Only Externally Owned Addresses (EOAs) is are counted, contracts are excluded.",
profitEth:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses whose funds have an average buy price that is lower than the current price. `Buy price` is here defined as the price at the time coins were transferred into an address. Only Externally Owned Addresses (EOAs) is are counted, contracts are excluded.",
lossEth:"Unit: thousands =K, M= millions, B= billion///The number of unique addresses whose funds have an average buy price that is higher than the current price. `Buy price`is here defined as the price at the time coins were transferred into an address. Only Externally Owned Addresses (EOAs) is are counted, contracts are excluded.",
inflactionRateEth:"Unit: thousands =K, M= millions, B= billion///Calculation formula:Inflation Rate = new coins issued / current supply///This indicator shows the inflation of the currency. Since the currency has no issuance ceiling and has burning costs, it is necessary to observe whether it has entered the stage of deflation or inflation through this indicator. Constant deflation indicates that the currency is scarcity, and constant inflation indicates that the currency is at risk of over issuance",
issuanceEth:"Unit: thousands =K, M= millions, B= billion///The total amount of new coins added to the current supply, i.e. minted coins or new coins released to the network.",
soprEth:"Unit: thousands =K, M= millions, B= billion///The SOPR indicator reflects the degree of profit realization of all currencies moving on the chain.///A SOPR value greater than 1 means that on average, the currency moving on that day is profitable (the selling price is greater than the payment price).///If the SOPR value is less than 1, it means that on average, the currency moving on that day is at a loss (the selling price is less than the payment price).///The SOPR value is exactly 1, which means that on average, coins moving on the same day are sold in a breakeven manner.///The upward trend of SOPR indicates that profits are being realized.///The downward trend of SOPR indicates that the currency that is achieving losses and/or profits has not been used.",
velocityEth:"Unit: thousands =K, M= millions, B= billion///Velocity is a measure of how quickly units are circulating in the network and is calculated by dividing the on-chain transaction volume (in USD) by the market cap, i.e. the inverse of the NVT ratio.",
nvtRatioEth:"Unit: thousands =K, M= millions, B= billion///The Network Value to Transactions (NVT) Ratio is computed by dividing the market cap by the transferred on-chain volume measured in USD. The NVT Ratio was created by Willy Woo.",
livelinessEth:"Unit: thousands =K, M= millions, B= billion///Liveliness is defined as the ratio of the sum of Coin Days Destroyed and the sum of all coin days ever created. Liveliness increases as long term holder liquidate positions and decreases while they accumulate to HODL. This metric was created by Tamas Blummer.",
frmEth:"Unit: thousands =K, M= millions, B= billion///The Fee Ratio Multiple (FRM) is defined as the ratio between the total miner revenue (blocks rewards + transaction fees) and transaction fees. FRM is a measure of a blockchain's security and gives an assessment how secure a chain is once block rewards disappear. This metric was first introduced by Matteo Leibowitz",
supplyProfitPercentEth:"Unit: thousands =K, M= millions, B= billion///The percentage of circulating supply in profit, i.e. the percentage of existing coins whose price at the time they last moved was lower than the current price.",
supplyProfitEth:"Unit: thousands =K, M= millions, B= billion///The circulating supply in profit, i.e. the amount of coins whose price at the time they last moved was lower than the current price",
supplyLossEth:"Unit: thousands =K, M= millions, B= billion///The circulating supply in loss, i.e. the amount of coins whose price at the time they last moved was higher than the current price.",
nuplEth:"Unit: thousands =K, M= millions, B= billion///Net Unrealized Profit/Loss is the difference between Relative Unrealized Profit and Relative Unrealized Loss. For more information see this article. This metric can also be calculated by subtracting realised cap from market cap, and dividing the result by the market cap as described in this article.",
relativeUProfitEth:"Unit: thousands =K, M= millions, B= billion///Relative Unrealized Profit is defined as the total profit in USD of all coins in existence whose price at realisation time was lower than the current price normalized by the market cap",
relativeULossEth:"Unit: thousands =K, M= millions, B= billion///Relative Unrealized Loss is defined as the total loss in USD of all coins in existence whose price at realisation time was higher than the current price normalized by the market cap.",
lthNUPLEth:"Unit: thousands =K, M= millions, B= billion///Long Term Holder NUPL (LTH-NUPL) is Net Unrealized Profit/Loss that takes into account only UTXOs with a lifespan of at least 155 days and serves as an indicator to assess the behaviour of long term investors. ",
sthNUPLEth:"Unit: thousands =K, M= millions, B= billion///Short Term Holder NUPL (STH-NUPL) is Net Unrealized Profit/Loss that takes into account only UTXOs younger than 155 days and serves as an indicator to assess the behaviour of short term investors.",
marketcapEth:"Unit: thousands =K, M= millions, B= billion///The market capitalization (or network value) is defined as the product of the current supply by the current USD price.",
rcapEth:"Unit: thousands =K, M= millions, B= billion///Realized Cap values different part of the supplies at different prices (instead of using the current daily close). Specifically, it is computed by valuing each UTXO by the price when it was last moved.",
rpriceEth:"Unit: thousands =K, M= millions, B= billion///Realized Price is the Realized Cap divided by the current supply.",
mvrvRatioEth:"Unit: thousands =K, M= millions, B= billion///Market Value to Realized Value (MVRV) is the ratio between market cap and realised cap. It gives an indication of when the traded price is below a `fair value`. This metric was created by David Puell and Murad Muhmudov.",
burnedSupplyEth:"Unit: thousands =K, M= millions, B= billion///Statistics on combustion costs and observation of currency deflation need to be analyzed in conjunction with other indicators",
mintedSupplyEth:"Unit: thousands =K, M= millions, B= billion///The total amount of issued ETH.",
tzbp:"Unit: thousands =K, M= millions, B= billion///This indicator displays the price changes during various working hours, i.eAsia (00:00-12:00 UTC)、Americas (12:00-0:00 UTC)、Europe (06:00-18:00 UT).Currently only data containing BINANCE",
lthVolume:"Unit: thousands =K, M= millions, B= billion///The daily trading volume of holders with a coin age of over 155 days, which observes whether long-term holders are selling coins. The increase in trading volume can be used to evaluate whether the current price is overvalued",
earcap1:"Unit: thousands =K, M= millions, B= billion///Entity-adjusted Realized Cap is an improved variant of Realized Cap that discards transactions between addresses of the same entity (`in-house`transactions). Entity-adjusted Realized Cap therefore accounts for real economic activity only, and provides an improved market signal compared to its raw UTXO-based counterpart",
bobp:"Unit: thousands =K, M= millions, B= billion///This indicator calculates the potential buying and selling orders at various segmented prices within a specified time interval (such as 5 minutes), indicating the intention of the funds.Currently only data containing BINANCE",
cddwave:"Unit: thousands =K, M= millions, B= billion///",
balanceDistribution:"Unit: thousands =K, M= millions, B= billion///This indicator indicates the balance distribution of holders, observing whether giant whales are buying or selling through changes in the historical quantity of large addresses, observing the growth of new users through changes in the historical proportion of small addresses, and observing the degree of monopoly of coins through a comparison of large quantities to total circulation.",
timeDivision:"Unit: thousands =K, M= millions, B= billion///This indicator observes the distribution of coin age of holders and the corresponding number of coins",
priceDivision:"Unit: thousands =K, M= millions, B= billion///This indicator observes the distribution of the price difference between the current price and the buying price of the holder and the corresponding number of addresses",
priceDivision1:"Unit: thousands =K, M= millions, B= billion///This indicator observes the distribution of the price difference between the current price and the buying price of the holder and the corresponding number of coins",
profitDistribution:"Unit: thousands =K, M= millions, B= billion///This indicator indicates the profit distribution of holders relative to the current price. By observing the proportion of profits, if the majority of holders are in a profit state, it usually means the arrival of the top. If the majority of holders are in a loss state, it usually means the formation of the bottom.",
detailedDistribution:"Unit: thousands =K, M= millions, B= billion///This indicator divides the balance into segments and provides a detailed description of the currency age and quantity distribution for each segment. Users can analyze the distribution characteristics and historical changes of each segment, combined with other indicators, to analyze the overall characteristics of the network.",
volumeProfile:"Unit: thousands =K, M= millions, B= billion///The trading volume distribution chart is an advanced chart study that displays trading activities at a specified price level during a specified time period. This data (taking into account user-defined parameters such as number of rows and time period) is plotted as a histogram on the chart, aiming to display the main and/or important price levels based on quantity.Essentially, the trading volume distribution map captures the total trading volume at a specific price level during a specified time period, and divides the total trading volume into buying or selling volumes, making it easy for traders to see this information.Currently only data containing BINANCE",
exchange1:"Unit: thousands =K, M= millions, B= billion///The total amount of ETH currency held by the exchange is currently only counted for the top 10 exchanges, namely Binance 、BinanceUS 、Bitfinex 、Bitstamp 、Bybit 、Coinbase 、Gate 、Kraken、KuCoin 、OKX ",
quickNews:"Cite Jinshi Data website",
circulationTotalCSupply:"Unit: thousands =K, M= millions, B= billion///The total flow flux indicator observes the sum of the circulation volumes of USDC, USDT, and BUSD. When this indicator increases, it usually indicates more purchasing power, while conversely, purchasing power decreases.",
circulationUSDC:"Unit: thousands =K, M= millions, B= billion///Observation of changes in USDC circulation volume",
circulationUSDT:"Unit: thousands =K, M= millions, B= billion///Observation of changes in USDC circulation volume through USDT circulation volume",
circulationBUSD:"Unit: thousands =K, M= millions, B= billion///Observing the changes in USDC circulation volume through BUSD circulation volume",
ethTopAddrMonitorList:"Unit: thousands =K, M= millions, B= billion///Follow up the activities of Ethereum large value holders on the chain",
mempool:"Unit: thousands =K, M= millions, B= billion///By observing the number of transactions and transaction fees in the pending transaction pool, the situation of pending transactions may suddenly increase, indicating that there are users who need to sell coins and need to be analyzed in conjunction with other indicators",
nvtSign:"Unit: thousands =K, M= millions, B= billion///NVT Signal (NVTS) is an improved version of NVT Ratio that uses the 90 day moving average of daily transfer volume as the denominator. A high NVT signal usually means the top of the market, while a low NVT signal usually means the bottom of the market.///Constant NVT signal (or horizontal trend) indicates that the growth trend of current market value and transfer volume is in balance, indicating that the current Market trend is sustainable. This state usually occurs in the early to mid stages of a bullish or bearish trend, when the market direction has been established.",
USTreasuriesYields:"Unit: thousands =K, M= millions, B= billion///A medium to long-term debt instrument issued by a government (Ministry of Finance), usually issued in denomination, with regular interest payments, principal and final interest payments upon maturity.///The yield of US treasury bond bonds refers to the interest rate of US government bonds. Usually, the yield of 10-year and 30-year treasury bond is the most widely concerned. These returns are considered important economic indicators in the financial market, reflecting the market's views on the state of the US economy and inflation expectations.///contain:30-year government bond yield、20-year government bond yield、10-year government bond yield、5-year government bond yield、2-year government bond yield、1-year government bond yield、6-month government bond yield、3-month government bond yield、Yields on 1-month government bonds",
MoneyStockMeasures:"Unit: thousands =K, M= millions, B= billion///MBCurrency in circulation, including coins and paper currency (Currency in Circulation) And bank reserve balance (Reserve Balances)///M1M1 consists of/// (1) currencies other than the Treasury, Federal Reserve Bank, and depository institution vaults of the United States;///(2) The Demand deposit of commercial banks (excluding the amount held by depository institutions, the U.S. government, foreign banks and official institutions) minus the cash items in the process of collection and the floating funds of the Federal Reserve;///(3) Other current deposits, including other checking deposits (or OCDs, including transferable withdrawal instructions or NOW and automatic transfer services, or ATS, depository institution accounts, credit cooperatives' shared bill accounts, and Demand deposit savings institutions) and Savings account (including money market Deposit account)///M2M2 includes M1 plus///(1) Small term deposits (term deposits below $100000) minus individual retirement accounts (IRAs) and Keogh balances with depository institutions;///(2) Subtract IRA and Keogh balances from balances in retail money market funds (MMFs)///M3 (update stopped):///M3 is the broadest indicator of Money supply, including M2, longer term and larger amount deposits, large amount time deposits, institutional investors' deposits, etc. In 2006, the United States ceased official statistics on M3, so the calculation methods for M3 may vary. However, some private institutions and research institutions may attempt to estimate M3, but these estimates may differ and lack official recognition. It should be noted that the specific definitions and calculation methods of these indicators may vary depending on different countries or institutions. In the United States, these indicators are counted and released by the Federal Reserve (the Federal Reserve of the United States).",
loanPsi:"Unit: thousands =K, M= millions, B= billion///The private sector (also known as the `private sector` in English) is a part of the economy, sometimes referred to as the citizen sector, owned by individuals or private groups rather than the state, as opposed to the public sector. The private sector is divided into two sub sectors: the household sector and the private enterprise sector The private sector loan data here is the value of `commercial and industrial loans` in the previous balance sheet of commercial banks.",
loanGdp:"Unit: thousands =K, M= millions, B= billion///",
wei:"Unit: thousands =K, M= millions, B= billion///In response to the COVID-19 that broke out in 2020, the New York Federal Reserve selected ten high-frequency data such as daily or weekly updates, and composed these data into a composite index, which was released once a week to observe more immediate economic changes. The index updates last week's data every Thursday and corrects the previous value next Tuesday.///These ten data items cover three major aspects: daily consumption, job market, and productivity, and are listed below:///1.Redbook ResearchSame-store retail sales average///2. Number of initial applicants for unemployment benefits///3. Number of consecutive applicants for unemployment benefits///4.The American Staffing Association Staffing Index///5.Rasmussen Consumer Index///6. Weekly steel production///7. Power output///8. Weekly fuel sales volume///9. US Railway Traffic///10. Federal Withholding Tax Data///By combining the above data into the weekly economic index of the New York Fed, short-term changes in the US real economy can be observed, making it a leading indicator. When the indicators are upward, the real economy may improve; When the indicator goes down, it indicates signs of weakening in the real economy.",
USDCCasting:"Unit: thousands =K, M= millions, B= billion///Introduction to USDC Casting Quantity: USDC Casting Star observes the daily changes in USDC casting quantity and records which chains and transactions are being cast. Currently, only ETH and TRON chains are being observed",
USDTCasting:"Unit: thousands =K, M= millions, B= billion///Introduction to USDT Casting Quantity: USDT Casting Star observes the daily changes in USDT casting quantity and records which chains and transactions are being cast. Currently, only ETH and TRON chains are being observed",
BUSDCasting:"Unit: thousands =K, M= millions, B= billion///Introduction to BUSD Casting Quantity: BUSD Casting Star observes the daily changes in BUSD casting quantity and records which chains and transactions are being cast. Currently, only ETH chains are being observed",
buyingPrice:"Unit: thousands =K, M= millions, B= billion///This indicator indicates at what price point the holder purchased the currency, which is the holding cost. Generally speaking, coins accumulated at a certain price level will not be easily sold for profit, so it generally constitutes the determination of a support point.",
distributionLthSth:"Unit: thousands =K, M= millions, B= billion///By comparing the profit and loss data of long-term and short-term holders, observe whether the current market is at the top or bottom, and whether there is still growth potential or a downward trend in the market. Usually, long-term holders in a state of majority loss indicate a relative bottom in the market, while on the contrary, they should pay attention to the risk of selling profits at the top. Short term holders in a state of majority profit indicate a current relative top, with a phased demand for stopping profits.",
exchangeRate:"The exchange rate is the exchange rate between different currencies. The foreign exchange trading market determines the specific exchange rate, which in turn determines the cost of purchasing foreign goods and financial assets.///The changes in exchange rates are continuous and are influenced by the trading activities and supply demand relationships of global foreign exchange market participants. Market participants can trade at any time during trading hours, which is also the main reason for exchange rate fluctuations. Commercial banks, financial data providers, and news organizations are also important sources of real-time exchange rate data. Exchange rates are determined by trading activities in the market, and market participants typically obtain exchange rate data based on their respective trading platforms and data sources. Therefore, selecting reliable data providers and sources is the key to ensuring the accuracy and reliability of exchange rate data.",
GDP:"Net exports = Export volume - Import amount///PCE, Personal consumption expenditures///Gross private domestic investment///Net exports of goods and services///PCE, Personal consumption expenditures:Durable goods、Nondurable goods、Services///Gross private domestic investment:Fixed investment, changes in private inventory///Net exports of goods and services:Exports, imports.///",
vdd:"Value Days Destroyed (VDD) Multiple aims to identify when the price of Bitcoin may be becoming frothy and close to topping out at major cycle highs./// Coin Days Destroyed is a proxy for spending velocity that gives extra weighting to coins that have not moved onchain for longer periods of time.///Value Days Destroyed multiplies Coin Days Destroyed by $BTC price, thereby allowing for better comparisons of spending activity over time as the price of $BTC varies.///Value Days Destroyed Multiple then divides a 30-day average of VDD by a 365 average to compare near-term spending velocity with a yearly average of spending velocity.///It is able to highlight when older coins begin to rapidly enter the market to be sold. This typically happens when longer-term participants look to take profits as price accelerates up in major bull market cycles.///This phenomenon of old coins entering the market eventually causes price to drop as supply exceeds demand and the bull market is brought to an end.",
}
}

332
yq/src/lang/login/index.js Normal file
View File

@@ -0,0 +1,332 @@
export const login_zh = {
login: {
btn: "登录",
VerificationCode: "请输入验证码",
gainPhone: "获取手机验证码",
gainEmail: "获取邮箱验证码",
phone: "手机号",
email: "邮箱",
email2:"邮箱无法接收验证码?",
authCode: "验证码",
gain: "获取",
PleasePassword: "请输入密码",
PleaseEnterYourUserName: "请输入用户名 / 邮箱账号",
PleaseEnterTheVerificationCode: "请输入验证码",
PasswordLength: "密码长度不能小于6位",
changePassword: "修改密码",
oldPassword: "旧密码",
newPassword: "新密码",
ConfirmNewPassword: "确认新密码",
randomPassword: "获取随机密码",
userName: `用户名 / 邮箱`,
login: "登录",
password: "密码",
account: "没有账户?",
registered: "注册",
forgotPassword: "忘记密码?",
resetPassword: "重置密码",
cancel: "取消",
switchLanguages: "切换中英文",
charts: "图表",
agree: "必须勾选同意条款",
terms: "我同意条款与条件,并同意根据隐私声明接收加密货币市场见解和更新",
areAccount: "已拥有账户? ",
inputEmail: "请输入您的电子邮件地址",
sendEmail: "重新发送确认电子邮件",
submit: "提交",
dashboard: "仪表板",
workbench: "工作台",
transactionView: "交易视图",
alarm: "警报",
price: "价钱",
video: "视频",
insights: "见解",
BBS: "论坛",
resources: "资源",
exit: "退出",
mailbox: "邮箱",
help: "帮助",
title: "标题",
placeholderTitle: "请输入",
kinds: "问题种类",
description: "描述",
description1: "请输入问题详情,我们回尽快为您解决.",
attachment: "附件",
Upload: " 将文件拖到此处,或",
Upload1: "点击上传",
Upload2: "只能上传jpg/png文件,且不超过500kb",
home: "主页",
feedback: "提交工单",
smaPlaceholder: "请选择",
emailCode: "请输入邮箱收到验证码",
passwordValidation: "密码不能为空!",
registeredName: "用户名",
warningEmailCode: "请确认正确输入邮箱及用户名!",
sendEmailCode: "邮箱验证码已发送!",
newPassword: "新密码",
emailVerification: "获取邮箱验证码",
newPasswordCodeFail: "获取验证码失败,请稍后重试!",
newPasswordSuccess: "重置密码成功,请登录!",
getCode: "获取验证码",
sending: "发送中",
again: "重新获取",
newLogin: "请重新登录!",
personal: "个人中心",
loginMask: "请先登录或者注册,才能查看此页面。",
rewriteEmail: "邮箱已被注册,请重新输入。",
inconsistency: "密码输入不一致请重新输入!",
CodeFailNull: "验证码不能为空!",
checkVerification: "请先获取邮箱验证码后正确输入!",
PagePermission: "当前账户等级访问页面权限不足",
userPermission: "当前账号权限",
anonymousUser: "匿名用户",
registerUser: "注册用户",
advanceUser: "付费用户",
vipUser: "特邀付费用户,公司股东",
upgrade:"升级账户权限",
admin:"网站管理员",
support:"支持及维护人员, 审核者",
verifier:"审核",
accounting:"财会人员",
oldPassword:"旧密码",
oldEmail:"原邮箱",
newEmail:"新邮箱",
newEmail2:"填写新邮箱",
CustomerManagemen:"客服管理",
subscribe:"自定义订阅",
personalData:"个人资料",
subscribeCenter:"订阅中心",
payManagement:"充值确认",
payHistories:"转账记录",
subscribeBoard:"消息订阅",
server:"服务器错误!",
timeout:"请求超时,请尝试刷新网页!",
viewPage:"请先登录或者注册后查看页面!",
AccountLevel:"账户等级",
expense:"费用",
accountUpgrade:"账号升级",
monthlyPlay:"L3 月度付费用户",
yearsPlay:"L3 年度付费用户",
vipYearsPlay:"L4 vip年度付费用户",
navigation:"输入搜索导航名",
loginCheck:"请确认格式输入正确且不能为空!",
set:"设置",
backgroundAddress:"新增收款地址",
backendPayment:"转账确认",
backendRefund:"退款确认",
backendWithdrawal:"提现订单",
balance:"余额",
Recharge:"充值",
Withdrawal:"提现",
currentLevel:"当前等级",
backgroundPage:"后台管理",
customerService:"联系客服",
SMAwarning:"该指标SMA不能大于30天!",
finance:"财务管理",
userPrompt:"以字母开头,允许使用字母、数字、下划线长度不小于3不大于16位",
passwordPrompt:"应包含大小写字母、数字和特殊字符长度不小于8不大于32位",
paymentBackend:"数据中心",
RechargeRecord:"充值记录",
Statement:"申述",
userNamePrompt:"请确认用户名格式正确及内容不能为空!",
passwordPrompt1:"请确认密码格式正确及内容不能为空!",
check1:"请勾选同意条款!",
loginUpgrade:"请先注册登录!",
linkError:"后端接口连接异常,请刷新重试",
system:"系统接口异常",
subscriptionLetter:"站内信",
Alarm:"订阅与告警",
publishObservations:"发布观察报告",
Charts:"数据图表",
researchReport:"研究报告",
submitWork:"提交工单",
historicalWork:"历史工单",
onlineService:"在线客服",
HistoryRecord:"历史记录",
publishResearchReport:"发布研报",
dataStatistics:"数据统计",
registrationNotice:"新用户注册通知:",
registrationPrompt:"1.对于新注册的用户将自动获得30天的全部数据指标浏览权限(vip4等级,价值约$42)。",
registrationPrompt2:"2.如果您对本网站提供了重要的意见或建议我们会为您新增30天的vip4权限(价值约$42),您可以在 个人中心=》联系客服 =》提交工单 页面提出您的意见和建议。获得赠送的用户以通告为准。",
registrationPrompt3:"3.本网站所有数据仅作为参考,不构成投资建议。",
registrationPrompt4:"4.浏览和使用本网站数据时请遵守您所在地当地的法律。",
GoRegistered:"去注册",
},
placeholder: {
data: '选择日期'
},
logins: {
data: '登录'
},
// sidebar:{
// title:'你好'
// }
};
export const login_en = {
login: {
btn: "Log in",
VerificationCode: "Please enter the verification code",
gainPhone: "Phone verification code",
gainEmail: "Get email verification code",
phone: "Mobile phone",
email: "email",
authCode: "Verification code",
gain: "To obtain",
PleasePassword: "Please enter your password",
PleaseEnterYourUserName: "Please enter your user name / Email Account Number",
PleaseEnterTheVerificationCode: "Please enter the verification code",
PasswordLength: "Password length can not less than six",
changePassword: "Change the password",
oldPassword: "old Password",
newPassword: "new Password",
ConfirmNewPassword: "Confirm New Password",
randomPassword: " get random password",
userName: `user name / Email`,
login: "login",
password: "password",
account: "There is no account?",
registered: "Sign Up",
forgotPassword: "Forgot password?",
resetPassword: "To reset your password",
cancel: "cancel",
switchLanguages: "Switching between Chinese and English",
charts: "chart",
agree: "You have to check agree",
terms: "I agree to the terms and conditions and agree to receive cryptocurrency market insights and updates in accordance with the privacy statement",
areAccount: "Have an account? ",
inputEmail: "Please enter your email address",
sendEmail: "Resend the confirmation email",
submit: "submit",
dashboard: "The dashboard",
workbench: "The workbench",
transactionView: "Transaction view",
alarm: "The alarm",
price: "price",
video: "video",
insights: "insights",
BBS: "BBS",
resources: "resources",
exit: "Log out",
mailbox: "E-mail",
help: "Help",
title: "Title",
placeholderTitle: "Please enter",
kinds: "Types of questions",
description: "Description",
description1: "Please input the details of the problem, we will solve it for you as soon as possible.",
attachment: "The attachment",
Upload: " Drag the file here, or",
Upload1: "Click on the upload",
Upload2: "Only jpg/png files with a maximum size of 500kb can be uploaded",
home: "Home",
feedback: "Submit Work Order",
smaPlaceholder: "Please select",
emailCode: "Please enter the email to receive the verification code",
passwordValidation: "The password cannot be empty!",
registeredName: "User name",
warningEmailCode: "Please confirm the correct input email and user name!",
sendEmailCode: "Email verification code has been sent!",
newPassword: "New password",
emailVerification: "Get mailbox verification code",
newPasswordCodeFail: "Failed to get CAPTCHA, please try again later!",
newPasswordSuccess: "Password reset succeeded, please log in!",
getCode: "Access authentication code",
sending: "Sending",
again: "Obtain again",
newLogin: "Please log in again!",
personal: "Personal Center",
loginMask: "Please Login Or Register To View This Page。",
rewriteEmail: "Email has been registered, please re-enter.",
inconsistency: "Password input is inconsistent please re-enter!",
CodeFailNull: "The verification code cannot be empty!",
checkVerification: "Please first obtain the email verification code after the correct input!",
PagePermission: "Insufficient access permissions to the page at the current account level",
userPermission: "Permissions of current account",
anonymousUser: "Anonymous user",
registerUser: "Registered user",
advanceUser: "Paying subscriber",
vipUser: "VIP user",
upgrade:"Upgrade account permissions",
admin:"super administrator",
support:"Support and maintenance staff, auditors",
verifier:"audit",
accounting:"Financial and accounting personnel",
oldPassword:"Old password",
oldEmail:"Original mailbox",
newEmail:"New mailbox",
CustomerManagemen:"Customer management",
subscribe:"Custom subscription",
personalData:"Profile",
subscribeCenter:"Subscription",
payManagement:"Deposit",
payHistories:"Transfer records",
subscribeBoard:"Subscription",
server:"Server error!",
timeout:"Request timed out, please try refreshing the webpage!",
viewPage:"Please login or register to view the page!",
AccountLevel:"Account level",
expense:"expense",
accountUpgrade:"Account Upgrade",
monthlyPlay:"Monthly payer",
yearsPlay:"Annual payer",
vipYearsPlay:"vip annual paying user",
navigation:"Search navigation",
loginCheck:"Please confirm that the format input is correct and cannot be empty!",
set:"set",
backgroundAddress:"Add payment address",
backendPayment:"Transfer",
backendRefund:"Refund",
backendWithdrawal:"Withdrawal Order",
balance:"Balance",
Recharge:"Recharge",
Withdrawal:"Withdrawal",
currentLevel:"Current level",
backgroundPage:"Admin",
customerService:"Contact",
SMAwarning:"The SMA of this indicator cannot exceed 30 days!",
finance:"financial management",
userPrompt:"Start with letter Allow letters, numbers, and underscores Length not less than 3 but not more than 16 ",
passwordPrompt:"Contains uppercase and lowercase letters, numbers, and special characters,Length not less than 8 and not more than 32",
paymentBackend:"Data Center",
RechargeRecord:"Recharge Record",
email2:"Email cannot receive verification code?",
Statement:"Statement",
newEmail2:"fill in new Email",
userNamePrompt:"Please confirm that the username format is correct and the content cannot be empty!",
passwordPrompt1:"Please confirm that the password format is correct and the content cannot be empty!",
check1:"Please check the agree clause!",
loginUpgrade:"Please register and log in first!",
linkError:"Backend interface connection exception, please refresh and try again",
system:"System interface exception",
subscriptionLetter:"Subscription letter",
Alarm:"Subscription and Alarm",
publishObservations:"Release observation report",
Charts:"Charts",
researchReport:"research Report",
submitWork:"Submit Work Order",
historicalWork:"Historical Work",
onlineService:"Online Service",
HistoryRecord:"History",
publishResearchReport:"Publish research",
dataStatistics:"Data Statistics",
registrationNotice:"New user registration notification:",
registrationPrompt:"1. For newly registered users, you will automatically receive 30 days of all indicators browsing privileges (VIP level 4, value of approximately $42).",
registrationPrompt2:"2. If you provide important feedback or suggestions to us, we will add 30 days of VIP 4 privileges for you (value of approximately $42). You can provide your feedback and suggestions on the `Personal Center => Contact => Submit Work Order` page. Users who received gifts are subject to the announcement.",
registrationPrompt3:"3. All data on this website is for reference only and does not constitute investment advice.",
registrationPrompt4:"4. Please comply with the local laws of your location when browsing and using data on this website.",
GoRegistered:"Go Registered",
},
placeholder: {
data: 'select date'
},
logins: {
data: 'login'
},
// sidebar:{
// title:'hallo'
// }
};

66
yq/src/lang/messages.js Normal file
View File

@@ -0,0 +1,66 @@
import {login_en,login_zh} from "./login/index"
import {home_en,home_zh} from "./home/index"
import {arh_en,arh_zh} from "./arh999/index"
import {Bian_en,Bian_zh} from "./BiAnController/index"
import {aside_en,aside_zh} from "./aside/index"
import {help_en,help_zh} from "./help/index"
import {asideEth_en,asideEth_zh} from "./asideEth/index"
import {introduction_zh,introduction_en} from "./introduce/index"
import {MessageBoard_zh,MessageBoard_en} from "./MessageBoard/index"
import {subscribe_zh,subscribe_en} from "./subscribe/index"
import {formula_zh,formula_en} from "./formula/index"
import {pay_zh,pay_en} from "./pay/index"
import {asideMacroscopic_zh,asideMacroscopic_en} from "./asideMacroscopic/index"
import {seo_zh,seo_en} from "./seoText/index"
import elementEnLocale from 'element-ui/lib/locale/lang/en'
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'
export default {
zh: {
// 传入element相关模块
...elementZhLocale,
// 自定义国际化对象引入
...login_zh,
...home_zh,
...arh_zh,
...Bian_zh,
...aside_zh,
...asideEth_zh,
...introduction_zh,
...MessageBoard_zh,
...help_zh,
...pay_zh,
...subscribe_zh,
...formula_zh,
...asideMacroscopic_zh,
...seo_zh,
},
en: {
// 传入element相关模块
...elementEnLocale,
// 自定义国际化对象引入
...login_en,
...home_en,
...arh_en,
...Bian_en,
...aside_en,
...asideEth_en,
...introduction_en,
...MessageBoard_en,
...help_en,
...pay_en,
...subscribe_en,
...formula_en,
...asideMacroscopic_en,
...seo_en
},
};

387
yq/src/lang/pay/index.js Normal file
View File

@@ -0,0 +1,387 @@
export const pay_zh = {
pay:{
Payment:"支付详情",
AccountUpgrade:"账户升级",
AmountPaid:"支付金额",
currency:"支付币种",
network:"支付网络",
address:"支付地址",
PaymentID:"支付txid",
SubmitPayment:"提交支付",
Confirmation:"确认支付信息",
AccountLevel:"账户等级",
ConfirmationPayment:"确认支付",
cancel:"取 消",
L2users:"今日L2用户数",
L3users:"今日L3用户数",
L4users:"今日L4用户数",
AmountReceived:"今日收款金额",
addL2:"今日新增L2用户数",
addL3:"今日新增L3用户数",
addL4:"今日新增L4用户数",
TotalCollection:"总收款金额",
TotalCollectionL2:"L2用户总收款金额",
TotalCollectionL3:"L3用户总收款金额",
TotalCollectionL4:"L4用户总收款金额",
chart:"每日历史图表",
beConfirmedTable:"待确认支付列表",
confirmedTable:"已确认支付列表",
edit:"编辑历史",
number:"编号",
date:"日期",
user:"用户",
CausePayment:"支付原由",
CollectionAddress:"收款地址",
PaymentStatus:"支付状态",
edit1:"编辑",
EditingReason:"编辑原由",
submit:"提交",
ServiceStatus:"服务生效状态",
OriginalPayment:"原支付状态",
presentPaymentStatus:"当前支付状态",
EditUser:"编辑用户",
PaymentHistory:"支付历史",
PurchaseService:"购买服务",
userPlan:"用户计划",
AccountAuthority:"账户权限等级详情",
Refers:"指标标识",
WhetherPay:"是否需要付费",
authority:"权限",
granularity:"数据颗粒度",
expense:"费用",
AnonymousUser:"匿名用户",
technicalL1:"L1技术指标",
technicalL2:"L2技术指标",
technicalL3:"L3技术指标",
technicalL4:"L4技术指标",
RegisteredUser:"注册用户",
monthlyPay:"月度付费用户",
greatMessage:"日报,周报,重大消息订阅",
customizeMessage:"自定义指标消息订阅",
support:"技术支持",
annualPay:"年度付费用户",
vipAnnualPay:"VIP年度付费用户",
NewCurrency:"新币种及新技术指标优先使用",
Withdrawal:"提现金额",
none:"无",
confirmSubmission:"确认提交",
closeTransfer:"该笔交易已成功关闭!",
upgradeSuccessful:"账户升级成功!",
Withdrawal1:"提现",
Recharge1:"充值",
WithdrawalSuccess:"提现申请成功",
withdrawalRecords:"提现记录",
money:"金额",
currency:"币种",
network:"网络",
applicationAddress:"申请地址",
originatingAddress:"发起地址",
refundAmount:"实退金额",
refundAddress:"实退地址",
refundTime:"退款完成时间",
refundTxid:"实退交易hash",
Remarks:"备注",
pendingProcessing:"待处理订单",
withdrawalRecords:"提现记录",
successfulOrder:"成功订单",
withdrawalFailed:"失败订单",
placeholderAddress:"请输入邮箱查询",
operation:"操作",
confirm:"确定",
refuse:"拒绝",
cancel:"取消",
prompt:"提示",
rechargeAmount:"请确保输入金额格式正确,只能填写数字!",
Txid:"交易hash",
consumption:"消费记录",
paymentCurrency:"请检查币种填写内容!",
paymentNetwork:"请检查网络填写内容!",
paymentAddress:"请检查地址填写内容!",
paymentAmount:"请检查金额填写内容!",
paymentCode:"请检查验证码填写内容!",
AccountLevel_1:"当前账户等级",
withdrawal_1:"申请提现",
enterAmount:"请选择或输入",
receivingAddress:"收款地址",
input:"请输入",
Reminder:"提示",
Reminder_1:"1、提现需要通过人工审核人工审核通常不会超过24小时。",
Reminder_2:"2、提现时每种稳定币会单独计算请确保提现时您账户内相应的稳定币余额足够。",
Reminder_3:"3、提现所产生的手续费需由您自己承担该费用不同的区块网络会有所差异。",
Reminder_4:"4、您最终收到的金额以实际到账为准。",
Reminder_5:"1、您实际转账的网络和币种需与您提交的网络和币种一致否则会导致您的转账无法在相应的区块链中被查询到。",
Reminder_6:"2、本网站所有稳定币均视为等值即为1USDT=1USDC=1BUSD您的总余额为USDT余额+USDC余额+BUSD余额。",
Reminder_7:"3、当单一稳定币余额不足以全额支付消费订单时扣除顺序为USDT => USDC => BUSD即优先扣除USDTUSDT余额不足以全额支付时会继续扣除USDC当USDT+USDC的余额不足以全额支付时会继续扣除BUSD。",
Reminder_8:"4、您充值的稳定币可在本网站用于升级服务、订阅咨询等任何付费服务。",
Reminder_9:"5、转账后请妥善保管您的交易hash交易hash是您转账的唯一凭证。",
Reminder_10:"6、您在本网站的充值金额以我们实际收到的转账金额为准。",
Reminder_11:"7、请不要未提交本页面内容就开始转账该行为会导致我们无法对您的转账进行有效查询。",
Reminder_12:"8、如有提前转账操作请前往",
Reminder_13:"交易hash页面",
Reminder_14:"进行转账确认。",
accountBalance:"账户余额",
toRecharge:"去充值?",
toRecharge1:"去充值",
Reminder_16:"1、本网站所有稳定币均视为等值即为1USDT=1USDC=1BUSD您的总余额为USDT余额+USDC余额+BUSD余额。",
Reminder_17:"2、当单一稳定币余额不足以全额支付消费订单时扣除顺序为USDT => USDC => BUSD即优先扣除USDTUSDT余额不足以全额支付时会继续扣除USDC当USDT+USDC的余额不足以全额支付时会继续扣除BUSD。",
Reminder_18:"3、如果您的总余额不足以支付该笔消费请前往充值页面进行充值。",
Reminder_19:"1、请您收到转账的交易hash之后再点击确认转账按钮否则可能会因为网络延迟等原因导致我们无法在区块链上查询到您的转账。",
Reminder_20:"2、请您在30分钟内完成转账操作如果未在30分钟完成转账请回到",
Reminder_21:"充值页面",
Reminder_22:"重新提交订单。",
Reminder_23:"3、若因区块链网络原因导致充值未能及时到账请您在获取到转账的交易hash后进入提交",
Reminder_24:"提交您的交易hash此时请确保您提交的交易hash能在相应的区块链网络上被查询到。",
Reminder_25:"4、最终充值结果我们会以邮件形式通知您。",
transactions:"验证交易hash",
service:"联系客服",
Address:"地址",
waitFor:"等待确认",
confirmTransfer:"确认已转账",
closeTransfer:"关闭转账交易",
problem:"转账遇到问题",
rechargedSuccessfully:"充值成功!",
orderNumber:"订单号",
refundAmount:"退款金额",
applicationTime:"申请时间",
selectDate:"选择日期时间",
Refusal:"拒绝提现",
withdrawalDetails:"提现详情",
currencyBalance:"当前币种余额",
addAddress:"新增地址",
fillInNew:"填写新增地址:",
remind:"提示:每条新增地址须通过换行键单独放在一行",
confirmAddition:"确认新增",
confirmAddition2:"个收款地址",
rechargeRecord:"充值记录",
failedOrders:"支付失败订单",
Reminder_26:"提示该页面每4小时只能提交一次所以请您仔细阅读下方文字",
Reminder_27:"1、请仔细检查您填写的交易hash是否与区块链上的交易hash一致。",
Reminder_28:"2、请仔细检查该交易hash的收款方是否为我们提供的钱包地址。",
Reminder_29:"3、请仔细检查该交易hash的转账金额是否与您实际转账金额一致(手续费需由您自行支付)。",
Reminder_30:"4、请勿恶意提交交易hash否则可能会导致您的账号被封禁或其他处罚。如果您有多笔交易hash待处理请您联系我们的",
Reminder_31:"人工客服",
queryWasSuccessful:"查询成功!",
totalBalance:"当前总余额",
expirationTime:"到期时间",
consumptionInstructions:"消费说明",
status:"状态",
empty:"请确认新增地址数据填写正确!",
mailbox:"验证码已发送您邮箱!",
Insufficient:"余额不足!",
userEmail:"用户邮箱",
Disabled:"禁用",
renew:"等级续费",
userAddress:"绑定地址",
appliedAddress:"提现地址",
balance:"余额",
refund:"实退金额",
calculation:"计算中...",
hashError:"交易hash有误,请仔细检查!",
explain:"该时间为我们确认退款的时间,实际的退款时间以区块信息为准",
grade:"请确认选择账户升级等级!",
search:"请确认填写搜索内容!",
transferSuccessful:"转账成功",
transferFailed:"转账失败",
Pending:"待处理",
withdrawalSuccessful:"提现成功",
withdrawalFailed1:"提现失败",
hash1:"您还需",
hash2:"时",
hash3:"分",
hash4:"秒后才能提交",
}
}
export const pay_en = {
pay:{
Payment:"Payment details",
AccountUpgrade:"Account upgrade",
AmountPaid:"Amount",
currency:"Currency of payment",
network:"Payment network",
address:"Payment address",
PaymentID:"Pay txid",
SubmitPayment:"Submit payment",
Confirmation:"Confirm payment information",
AccountLevel:"Account level",
ConfirmationPayment:"Confirmation of payment",
cancel:"cancel",
L2users:"Number of L2 users today",
L3users:"Number of L3 users today",
L4users:"Number of L4 users today",
AmountReceived:"Amount received today",
addL2:"The number of L2 users was added today",
addL3:"The number of L3 users was added today",
addL4:"The number of L4 users was added today",
TotalCollection:"Total amount received",
TotalCollectionL2:"L2 Total amount received by a user",
TotalCollectionL3:"L3 Total amount received by a user",
TotalCollectionL4:"L4 Total amount received by a user",
chart:"Daily history chart",
beConfirmedTable:"Payment list to be confirmed",
confirmedTable:"Payment list confirmed",
edit:"Editing history",
number:"number",
date:"date",
user:"user",
CausePayment:"Cause of payment",
CollectionAddress:"Collection address",
PaymentStatus:"Payment status",
edit1:"edit",
EditingReason:"Editing reason",
submit:"submit",
ServiceStatus:"Service status",
OriginalPayment:"Original payment status",
presentPaymentStatus:"Current payment status",
EditUser:"Edit user",
PaymentHistory:"Payment history",
PurchaseService:"Purchase service",
AccountAuthority:"Details about the account permission level",
Refers:"index",
WhetherPay:"Whether to pay",
authority:"authority",
granularity:"Data granularity",
expense:"expense",
AnonymousUser:"Anonymous user",
technicalL1:"L1 technical index",
technicalL2:"L2 technical index",
technicalL3:"L3 technical index",
technicalL4:"L4 technical index",
RegisteredUser:"Registered user",
monthlyPay:"Monthly payer",
greatMessage:"Daily, weekly, major news subscriptions",
customizeMessage:"Custom indicator message subscriptions",
support:"Technical support",
annualPay:"Annual payer",
vipAnnualPay:"VIP Annual payer",
NewCurrency:"New currency types and new technical indicators are preferred",
Withdrawal:"Withdrawal amount",
userPlan:"User Plan",
none:"nothing",
confirmSubmission:"Submit",
closeTransfer:"This transaction has been successfully closed!",
upgradeSuccessful:"Account upgrade successful!",
Withdrawal1:"Withdrawal",
Recharge1:"Recharge",
withdrawalRecords:"withdrawal Records",
money:"Money",
currency:"Currency",
network:"Network",
applicationAddress:"Application address",
originatingAddress:"Originating address",
refundAmount:"Refund amount",
refundTime:"Return time",
refundTxid:"Return Transaction Hash",
Remarks:"Remarks",
pendingProcessing:"Pending orders",
withdrawalRecords:"Withdrawal records",
successfulOrder:"Successful order",
withdrawalFailed:"Failed orders",
placeholderAddress:"Please enter your email for query",
operation:"Operation",
confirm:"Confirm",
refuse:"Refuse",
cancel:"Cancel",
prompt:"Prompt",
rechargeAmount:"Please ensure that the input amount format is correct and only numbers can be filled in !",
Txid:"Transaction Hash",
consumption:"Consumption records",
paymentCurrency:"Please check the currency filling content!",
paymentNetwork:"Please check the network filling content!",
paymentAddress:"Please check the address information!",
paymentAmount:"Please check the amount filled in!",
paymentCode:"Please check the content of the verification code!",
AccountLevel_1:"Current account level",
withdrawal_1:"Apply for withdrawal",
enterAmount:"Please select or enter",
receivingAddress:"Receiving address",
input:"Please enter",
Reminder:"Reminder",
Reminder_1:"1、Withdrawal requires manual review, which usually does not exceed 24 hours。",
Reminder_2:"2、When withdrawing, each type of stable currency will be calculated separately. Please ensure that the corresponding stable currency balance in your account is sufficient when withdrawing。",
Reminder_3:"3、The handling fee generated by withdrawal must be borne by yourself, and this fee may vary depending on the blocknetwork。",
Reminder_4:"4、The amount you ultimately receive will be based on the actual receipt。",
Reminder_5:"1、The network and currency you actually transferred must be consistent with the network and currency you submitted, otherwise your transfer will not be able to be queried in the corresponding blockchain。",
Reminder_6:"2、All stable currencies on this website are considered equivalent, i.e. 1USDT=1USDC=1BUSSD. Your total balance is USDT balance+USDC balance+BUSD balance。",
Reminder_7:"3、When the balance of a single stable currency is insufficient to fully pay the consumption order, the deduction order is USDT=>USDC=>BUSD, which means that USDT will be deducted first. When the USDT balance is insufficient to fully pay, USDC will continue to be deducted. When the balance of USDT+USDC is insufficient to fully pay, BUSD will continue to be deducted。",
Reminder_8:"4、The stable currency you recharge can be used on this website for any paid services such as upgrade services, subscription consulting, etc。",
Reminder_9:"5、Please keep your transaction hash properly after the transfer. The transaction hash is the only voucher for your transfer。",
Reminder_10:"6、The amount you recharge on this website is based on the actual transfer amount we receive。",
Reminder_11:"7、Please do not start transferring funds without submitting the content on this page. This behavior may prevent us from effectively querying your transfer。",
Reminder_12:"8、If there is an advance transfer operation, please go to",
Reminder_13:"Transaction Hash page",
Reminder_14:"Confirm transfer。",
accountBalance:"Account balance",
toRecharge:"recharge?",
toRecharge1:"recharge",
Reminder_16:"1、All stable currencies on this website are considered equivalent, i.e. 1USDT=1USDC=1BUSSD. Your total balance is USDT balance+USDC balance+BUSD balance。",
Reminder_17:"2、When the balance of a single stable currency is insufficient to fully pay the consumption order, the deduction order is USDT=>USDC=>BUSD, which means that USDT will be deducted first. When the USDT balance is insufficient to fully pay, USDC will continue to be deducted. When the balance of USDT+USDC is insufficient to fully pay, BUSD will continue to be deducted。",
Reminder_18:"3、If your total balance is not enough to pay for the purchase, please go to the recharge page to recharge。",
transactions:"validate Transaction Hash",
service:"Contact customer service",
Address:"Address",
Reminder_19:"1、Please click the confirm transfer button after receiving the transaction hash of the transfer, otherwise we may not be able to query your transfer on the blockchain due to network delays and other reasons。",
Reminder_20:"2、Please complete the transfer operation within 30 minutes. If the transfer is not completed within 30 minutes, please return to",
Reminder_21:"Recharge page",
Reminder_22:"Resubmit Order。",
Reminder_23:"3、If the recharge is not received in a timely manner due to blockchain network reasons, please enter the submission after obtaining the transaction hash for the transfer",
Reminder_24:"Submit your transaction hash, please ensure that the transaction hash you submitted can be queried on the corresponding blockchain network at this time。",
Reminder_25:"4、We will notify you via email of the final recharge result。",
waitFor:"Waiting for confirmation",
confirmTransfer:"Confirm Transfer",
closeTransfer:"Close transfer",
problem:"Transfer problem",
rechargedSuccessfully:"Recharged successfully!",
orderNumber:"number",
refundAmount:"refund amount",
applicationTime:"Application time",
selectDate:"Select Date Time",
Refusal:"Refusal to withdraw",
withdrawalDetails:"Withdrawal details",
currencyBalance:"Current currency balance",
addAddress:"Add Address",
fillInNew:"Fill in the new address:",
remind:"Reminder: Each newly added address must be placed on a separate line using the newline key",
confirmAddition:"Confirm addition",
confirmAddition2:"payment addresses",
rechargeRecord:"Recharge Record",
failedOrders:"Payment failed order",
Reminder_26:"Reminder: This page can only be submitted once every 4 hours, so please read the text below carefully",
Reminder_27:"1、Please carefully check if the transaction hash you filled in matches the transaction hash on the blockchain。",
Reminder_28:"2、Please carefully check if the recipient of the transaction hash is the wallet address we provided。",
Reminder_29:"3、Please carefully check whether the transfer amount of the transaction hash is consistent with your actual transfer amount (the handling fee needs to be paid by you)。",
Reminder_30:"4、Please do not maliciously submit transaction hashes, as this may result in your account being banned or other penalties. If you have multiple transactions pending hash processing, please contact our",
Reminder_31:"Manual customer service",
queryWasSuccessful:"Query successful!",
totalBalance:"Current total balance",
expirationTime:"Expiration time",
consumptionInstructions:"explain",
status:"state",
empty:"Please confirm that the new address data is filled in correctly!",
mailbox:"The verification code has been sent to your email!",
Insufficient:"Insufficient balance!",
userEmail:"User email",
Disabled:"Disabled",
renew:"Level renewal",
userAddress:"Bind Address",
appliedAddress:"Withdrawal address",
balance:"balance",
refund:"Actual refund amount",
calculation:"Calculating...",
hashError:"Transaction hash error, please carefully check!",
explain:"This is the time we confirm the refund, and the actual refund time is based on the block information",
refundAddress:"refund Address",
grade:"Please confirm selecting the account upgrade level!",
search:"Please confirm to fill in the search content!",
transferSuccessful:"Transfer successful",
transferFailed:"Transfer failed",
Pending:"Pending",
withdrawalSuccessful:"Withdrawal successful",
withdrawalFailed1:"Withdrawal failed",
hash1:"You still need to",
hash2:"Hour",
hash3:"branch",
hash4:"Seconds before submitting",
}
}

View File

@@ -0,0 +1,55 @@
export const seo_zh = {
seo: {
Web: "coinbus 数据分析平台,涵盖 BTC、ETH、稳定币、宏观经济等多方面的区块链数据。提供链上数据、市场指标、交易所数据、交易量、大额交易监控、流通量、债券等众多板块的精准分析助您洞察加密货币市场趋势",
privilegeLevel: "coinbus 提供不同会员等级账号权限,明确各等级对应的指标查看权限及服务内容。该页面详细介绍不同等级账号权限详情与资费标准,助您选择适合的账号等级。",
WorkOrderDetails: "用户可在此页面查看提交工单的详细情况及处理记录,也能继续提交相关问题后续,随时跟进问题处理进度。",
personal: "Coinbus 个人中心页面,用户可查看账号等级情况、进行账号升级,查询账户余额信息,汇总未读工单及查看权限等级资费详情。",
subscribe: "Coinbus 支持区块链分析相关日报、周报及重大消息订阅。用户可自定义选择订阅内容及通知方式,该页面还包含订阅操作历史及消息历史。",
payHistories: "Coinbus 支付历史页面,用户可在此查询转账记录,涵盖待处理转账、转账成功及转账失败的所有记录。",
AccountUpgrade: "Coinbus 账户升级页面,用户可根据自身账号情况选择升级权限并提交支付,享受更高权限的服务。",
IndexIntroduce: "Coinbus 指标解释页面,详细记录了网站所有区块链指标的解释,用户可通过该文档了解链上指标含义及计算方式。",
Recharge: "Coinbus 充值页面,为用户提供方便快捷的充值渠道,可选择币种及支付网络,输入充值金额进行账户充值。",
TXID: "Coinbus 用户提交充值的 txid 页面,用于后台审核充值订单。",
Withdrawal: "Coinbus 申请提现页面,用户可根据当前账户余额选择相关币种、金额、网络并填写收款地址提交提现申请。",
withdrawalRecords: "Coinbus 申请提现历史记录页面,用于统计用户提现的历史记录,包括待处理提现、提现成功及失败的记录,方便用户查询",
withdrawalDetails: "Coinbus 提现订单详情页面,可查看提现订单的详细信息,包括时间、金额、状态、收款地址等。",
ConsumptionRecords: "Coinbus 消费记录页面,用户可查询消费记录,包括待处理订单、成功订单及失败订单,以及消费详情如日期、金额、消费说明等。",
Alarm: "Coinbus 订阅与告警页面,用户可选择需要告警提示的指标,设置周期及通知方式进行订阅,以便更好地了解链上指标变化情况。",
publishObservations: "Coinbus 发布观察报告页面,用于编写周报、月报、重大消息、活动通知等报告相关内容并提交发布,还可查询发布历史记录。",
dataDisplay: "本页面全面介绍 coinbus 区块链数据分析平台。详细阐述了该网站的主要功能,包括实时监控交易数据、深入分析市场指标、大额交易监控等。突出了网站的优点,如精准的数据来源、直观的可视化展示、个性化订阅服务和强大的后台管理。解释了为什么用户应该选择该网站,强调专业团队、持续更新、用户友好界面和优质客户服务。明确了网站的用途,帮助用户理解加密货币市场和区块链技术,以制定明智的投资决策和风险管理策略。还列举了涵盖的数据分析内容,包括链上数据、市场指标、交易所数据、宏观经济数据和大额交易监控。",
metaDescription:"coinbus 是专业的区块链数据分析平台,为您提供精准的比特币、以太坊等加密货币链上数据指标与深入的市场洞察。凭借可靠的数据来源、专业的分析团队以及实时更新,助力您在加密货币领域做出明智决策。",
metaKeywords:"coinbus,BTC,ETH,稳定币分析,宏观经济,区块链数据分析,加密货币链上分析,比特币分析,以太坊分析链上数据加密货币市场洞察加密货币分析平台区块链数据研究Blockchain",
appTitle:"coinbus - 一个专业的区块链数据分析平台",
help:"Coinbus 区块链分析平台为用户提供完善的帮助中心。在使用过程中遇到问题可提交工单,我们会及时回复处理,提升用户使用体验。",
}
}
export const seo_en = {
seo: {
help:"Coinbus blockchain analysis platform provides users with a perfect help center. If you encounter problems in the process of using the platform, you can submit a work order, and we will reply in time to deal with them and improve the user experience.",
metaDescription:"coinbus is a professional blockchain data analytics platform that provides you with accurate on-chain data metrics and in-depth market insights on Bitcoin, Ether and other cryptocurrencies. With reliable data sources, a professional analyst team and real-time updates, it helps you make informed decisions in the cryptocurrency space.",
metaKeywords:"coinbus,BTC,ETH,stablecoin analysis,macroeconomics,blockchain data analysis,cryptocurrency on-chain analysis,bitcoin analysis,ethereum analysis,on-chain data,cryptocurrencies,market insights,cryptocurrency analytics platforms,blockchain data research,Blockchain",
appTitle:"coinbus - A professional blockchain data analysis platform",
"Web":"Coinbus data analysis platform, covering BTC ETH、 Blockchain data from various aspects such as stablecoins and macroeconomics. Provide precise analysis of on chain data, market indicators, exchange data, trading volume, monitoring of large transactions, liquidity, bonds, and many other sectors to help you gain insights into cryptocurrency market trends","privilegeLevel":"Coinbus provides different membership level account permissions, clarifying the corresponding indicator viewing permissions and service content for each level. This page provides detailed information on the permissions and tariff standards for different levels of accounts, helping you choose the appropriate account level.","WorkOrderDetails":"Users can view detailed information and processing records of submitted work orders on this page, as well as continue to submit related issues and follow up on the progress of problem resolution at any time.","personal":"On the Coinbus personal center page, users can view account level information, upgrade their accounts, check account balance information, summarize unread work orders, and view permission level tariff details.","subscribe":"Coinbus supports subscriptions to daily, weekly, and major news related to blockchain analysis. Users can customize the subscription content and notification methods, and this page also includes subscription operation history and message history.","payHistories":"The Coinbus payment history page allows users to check transfer records, including all records of pending transfers, successful transfers, and failed transfers.","AccountUpgrade":"On the Coinbus account upgrade page, users can choose to upgrade their account permissions and submit payments based on their own account situation to enjoy higher privilege services.","IndexIntroduce":"The Coinbus Indicator Explanation page provides detailed explanations of all blockchain indicators on the website, allowing users to understand the meaning and calculation methods of on chain indicators through this document.","Recharge":"The Coinbus recharge page provides users with a convenient and fast recharge channel, allowing them to choose their currency and payment network, and input the recharge amount to recharge their account.","TXID":"The txid page submitted by Coinbus users for recharging is used for backend review of recharge orders.","Withdrawal":"On the Coinbus withdrawal application page, users can select the relevant currency, amount, and network based on their current account balance, and fill in the receiving address to submit the withdrawal application.","withdrawalRecords":"The Coinbus withdrawal history page is used to track the withdrawal history of users, including records of pending withdrawals, successful withdrawals, and failed withdrawals, making it convenient for users to query","withdrawalDetails":"The Coinbus withdrawal order details page allows you to view detailed information about the withdrawal order, including time, amount, status, and payment address.","ConsumptionRecords":"The Coinbus consumption record page allows users to query consumption records, including pending orders, successful orders, and failed orders, as well as consumption details such as date, amount, and consumption instructions.","Alarm":"The Coinbus subscription and alert page allows users to select the indicators that require alert prompts, set the subscription period and notification method, in order to better understand the changes in on chain indicators.","publishObservations":"Coinbus releases observation report page, which is used to write weekly reports, monthly reports, major news, event notifications and other report related content and submit them for publication. It can also query the publication history.","dataDisplay":"This page provides a comprehensive introduction to the Coinbus blockchain data analysis platform. The main functions of the website were elaborated in detail, including real-time monitoring of transaction data, in-depth analysis of market indicators, and monitoring of large transactions. Highlighting the advantages of the website, such as precise data sources, intuitive visual displays, personalized subscription services, and powerful backend management. Explained why users should choose this website, emphasizing professional team, continuous updates, user-friendly interface, and high-quality customer service. Clarify the purpose of the website to help users understand the cryptocurrency market and blockchain technology, in order to make informed investment decisions and risk management strategies. It also lists the data analysis content covered, including on chain data, market indicators, exchange data, macroeconomic data, and monitoring of large transactions."
}
}

View File

@@ -0,0 +1,187 @@
export const subscribe_zh = {
subscribe: {
dayReport: "今日报告数量",
greatReport: "重大消息报告数量",
customizeMessage: "自定义消息数量",
unauditedReport: "未审核报告数量",
reviewedReport: "已审核报告数量",
chart: "每日历史图表",
ReportRelease: "报告发布",
beReviewedRelease: "待审核报告",
number: "编号",
date: "日期",
ReportType: "报告类型",
state: "状态",
publisher: "发布人",
auditor: "审核人",
Subscriber: "订阅者组",
MessageTitle: "消息标题",
operation: "操作",
audit: "审核",
rejectedRelease: "已拒绝报告",
correction: "订正",
publishedRelease: "已发布报告历史",
details: "详情",
customizeHistory: "自定义消息历史",
subscriber1: "订阅者",
subscriber1Email: "订阅邮箱",
subscriber1Type: "订阅类型",
subscribe2: "订阅",
DailySubscription: "日报订阅",
WeeklySubscription: "周报订阅",
MajorSubscription: "重大消息订阅",
ConfirmSubscription: "确认订阅",
SubscriptionHistory: "订阅操作历史",
user: "用户",
OperationContent: "操作内容",
MessageHistory: "消息历史",
receiveEmail: "接收邮箱",
MessageDetails: "消息详情",
customizeSubscription: "自定义订阅",
customizeIndex: "自定义订阅指标",
IndexName: "指标名",
CurrentValue: "当前值",
ConditionalSelection: "条件选择(涨跌幅或门限值)",
increase: "涨幅百分比",
increaseValue: "涨幅值",
decline: "跌幅百分比",
declineValue: "跌幅值",
SMA: "SMA选择",
alarm: "告警周期选择",
unreadMessage: "未读消息详情",
time: "时间",
MessageContent: "消息内容",
Please: "请输入",
selectAlarm: "选择告警指标",
subscriptionReport: "订阅观察报告",
monthlyReport: "月报订阅",
Unsubscribed: "退订",
indicatorSelection: "指标选择",
alarmType: "告警类型",
addressFilling: "地址填写",
addressPrompt: "指定地址(最多5个地址)",
addressWarning: "2.每个地址请分别用 / 符号隔开,最多指定5个地址,超出将默认取值前5个地址",
addressWarning2: "1.请仔细确认地址填写正确,否则将导致订阅消息无法推送",
notificationMethod: "通知方式",
confirmSubmission: "确认提交",
subscribedMetrics: "已订阅指标",
subscriptionTime: "订阅时间",
subscribedChannels: "订阅频道",
subscriptionMetrics: "订阅指标",
alarmThreshold: "告警阈值",
alarmCycle: "告警周期",
unsubscribeReminder: "确认退订该项指标?",
alarmAcknowledgement: "告警信息确认",
Cancel: "取 消",
Confirm: "确 定",
address:"地址",
numericalValue:"数值",
ratio:"比值",
day:"1天",
realTimeData:"实时数据",
addressVerification:"地址不能为空或输入中文字符!",
noticeVerification:"请至少选择一种通知方式!",
repeatSubscription:"该指标已订阅,不能重复订阅!",
}
}
export const subscribe_en = {
subscribe: {
dayReport: "Quantity reported today",
greatReport: "Number of major news reports",
customizeMessage: "Customize the number of messages",
unauditedReport: "Number of unaudited reports",
reviewedReport: "Number of audited reports",
chart: "Daily history chart",
ReportRelease: "Report release",
beReviewedRelease: "Report to be reviewed",
number: "number",
date: "date",
ReportType: "Report type",
state: "state",
publisher: "publisher",
auditor: "auditor",
Subscriber: "Subscriber group",
MessageTitle: "Message title",
operation: "operation",
audit: "audit",
rejectedRelease: "Rejected report",
correction: "correction",
publishedRelease: "A report history has been published",
details: "details",
customizeHistory: "Customize the message history",
subscriber1: "subscriber",
subscriber1Email: "Subscribe to email",
subscriber1Type: "Subscription type",
subscribe2: "subscribe",
DailySubscription: "Daily subscription",
WeeklySubscription: "Weekly subscription",
MajorSubscription: "Major news subscription",
ConfirmSubscription: "Confirm subscription",
SubscriptionHistory: "Subscription operation history",
user: "user",
OperationContent: "Operation content",
MessageHistory: "Message history",
receiveEmail: "Receiving mailbox",
MessageDetails: "Message details",
customizeSubscription: "Custom subscription",
customizeIndex: "Customize subscription metrics",
IndexName: "Index name",
CurrentValue: "Current value",
ConditionalSelection: "Condition selection (rise or fall or threshold)",
increase: "Percentage increase",
increaseValue: "Value of increase",
decline: "Percentage decline",
declineValue: "Decline value",
SMA: "SMA selection",
alarm: "Alarm cycle selection",
unreadMessage: "Message details not read",
time: "time",
MessageContent: "Message content",
Please: "Please enter",
selectAlarm: "Select alarm indicators",
subscriptionReport: "Subscription observation report",
monthlyReport: "Monthly report subscription",
Unsubscribed: "Unsubscribe",
indicatorSelection: "selection",
alarmType: "Alarm Type",
addressFilling: "Address",
addressPrompt: "Specify addresses (up to 5 addresses)",
addressWarning: "2.Please separate each address with a / symbol, and specify a maximum of 5 addresses. If exceeded, the default value will be the top 5 addresses",
notificationMethod: "Notifications",
confirmSubmission: "Confirm submission",
subscribedMetrics: "Subscribed metrics",
subscriptionTime: "Subscription time",
subscribedChannels: "Subscribed Channels",
subscriptionMetrics: "Subscription metrics",
alarmThreshold: "Alarm threshold",
alarmCycle: "Alarm cycle",
unsubscribeReminder: "Are you sure to unsubscribe from this indicator?",
alarmAcknowledgement: "Alarm information confirmation",
Cancel: "Cancel",
Confirm: "Confirm",
address:"address",
numericalValue:"numerical Value",
ratio:"ratio",
day:"day",
realTimeData:"RealTime",
addressWarning2: "1.Please carefully confirm that the address is filled in correctly, otherwise it will result in subscription messages not being pushed",
addressVerification:"The address cannot be empty or input Chinese characters!",
noticeVerification:"Please select at least one notification method!",
repeatSubscription:"This indicator is subscribed and cannot be subscribed again!",
}
}

23
yq/src/lang/zh.js Normal file
View File

@@ -0,0 +1,23 @@
export default {
message: {
userName:`用户名`,
login:"登录",
password:"密码",
account:"没有账户?",
registered:"注册",
forgotPassword:"忘记密码?",
resetPassword:"重置密码",
cancel:"取消",
switchLanguages:"切换中英文",
charts:"图表",
},
placeholder:{
data: '选择日期'
},
login:{
data: '登录'
}
}

129
yq/src/main.js Normal file
View File

@@ -0,0 +1,129 @@
import Vue from 'vue'
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import router from './router'
import store from './store'
import "./assets/icon/iconfont.css"
import ElementUI from 'element-ui';
import axios from "axios";
// 引入VueI18n
import i18n from './lang/index'
import API from "./api/api"
import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import './assets/style.css' //全局单词首字母大写
import Dropdown from './components/dropdownBox.vue';
import MetaInfo from 'vue-meta-info'
Vue.use(MetaInfo)
Vue.component('Dropdown', Dropdown);
Vue.use(VueQuillEditor) // 注册富文本编辑器
// Vue.config.productionTip =false
//el-tabel 使用千分位格式
import {stateFormat,handleScopeFormat,stateFormat2} from './util/thousands'
import {$addStorageEvent} from '../src/util/processingData'
Vue.prototype.stateFormat = stateFormat
Vue.prototype.stateFormat2 = stateFormat2
Vue.prototype.handleScopeFormat = handleScopeFormat
// element-ui 为了兼容vue-i18n@6.x
Vue.use(ElementUI, {
i18n: (key, value) => i18n.t(key, value)
})
Vue.prototype.$axios = axios
Vue.prototype.$API = API
Vue.use(ElementUI);
Vue.config.productionTip = false
// //监听localstorage
Vue.prototype.$addStorageEvent = $addStorageEvent
console.log = ()=>{} //全局关闭打印
window.a = Vue
window.vm = new Vue({
router,
store,
i18n,
render: h => h(App),
created() {
this.$watch(
() => this.$i18n.locale,
(newLocale) => {
this.updateMetaAndTitle();
}
);
this.updateMetaAndTitle();
this.updateCanonicalUrl(); // 添加这行
},
mounted () {
document.dispatchEvent(new Event('render-event'))
},
methods: {
updateMetaAndTitle() {
document.title = this.$i18n.t('seo.appTitle');
const descriptionMeta = document.querySelector('meta[name="description"]');
const keywordsMeta = document.querySelector('meta[name="keywords"]');
if (descriptionMeta) {
descriptionMeta.content = this.$i18n.t('seo.metaDescription');
}
if (keywordsMeta) {
keywordsMeta.content = this.$i18n.t('seo.metaKeywords');
}
},
updateCanonicalUrl() {//更新index。html的canonical 确保每个页面都有正确的规范链接
const canonicalLink = document.querySelector('link[rel="canonical"]');
if (canonicalLink) {
// 根据当前路由更新 canonical URL
const path = this.$route.path;
const baseUrl = 'https://coinbus.cc';
// 如果是首页使用基础URL
if (path === '/') {
canonicalLink.href = baseUrl;
} else {
// 其他页面添加路径
canonicalLink.href = `${baseUrl}${path}`;
}
}
},
},
watch: {
// 监听路由变化
'$route'() {
this.updateCanonicalUrl();
}
}
}).$mount('#app')
// 初次加载和DOM加载完成时更新
document.addEventListener('DOMContentLoaded', () => {
window.vm.updateMetaAndTitle();
});

501
yq/src/router/index.js Normal file
View File

@@ -0,0 +1,501 @@
import Vue from 'vue'
import { $addStorageEvent } from '../util/processingData'
import VueRouter from 'vue-router'
import noPage from '../views/noPage.vue'
import Web from '../views/web.vue'
import i18n from '../lang/index'
Vue.use(VueRouter)
const routes = [
{
// path: '/Web',
path: '/',
name: 'Web',
component: Web,
meta:{
title:"首页",
description:i18n.t(`seo.Web`),
keywords:"区块链分析、加密货币数据、Coinbus、链上数据指标、市场洞察,Blockchain Analytics, Cryptocurrency Data, Coinbus, On-Chain Data Metrics, Market Insights",
},
children: [
// {
// path: '/NDAQ',
// name: 'NDAQ',
// component: () => import('../views/NDAQ.vue'),
// },
// {
// path: 'ETH',
// name: 'ETH',
// component: () => import('../views/ETH.vue'),
// meta:{
// title:"",
// description:"",
// keywords:"",
// }
// }
]
},
// {
// path: '/Home',
// name: 'Home',
// component: () => import('../views/Home/index.vue'),
// meta:{
// title:"",
// description:"",
// keywords:"",
// }
// },
{
path: '/privilegeLevel',
name: 'PrivilegeLevel',
component: () => import('../views/privilegeLevel/index.vue'),
meta:{
roleKey: [`registered`, `advance`, `vip`, `support`, "verifier", `admin`] ,//可以访问人员
title:"账户权限等级详情",
description:i18n.t(`seo.privilegeLevel`),
keywords:"Coinbus, 权限等级,账号权限,会员等级资费, Privilege Levels, Account Privileges, Membership Level Rates",
}
},
// {
// path: '/Bian',
// name: 'Bian',
// component: () => import('../views/BiAnController.vue'),
// meta:{
// title:"",
// description:"",
// keywords:"",
// }
// },
{//帮助中心
path: '/help',
name: 'help',
component: () => import('../views/help/index.vue'),
meta: {//财会人员和匿名人员不能访问
inaccessible: "accounting",
roleKey: [`registered`, `advance`, `vip`, `support`, "verifier", `admin`] ,//可以访问人员
title:"帮助中心",
description:i18n.t(`seo.help`),
keywords:"coinbus 帮助中心,工单提交,问题处理,Work order submission, problem handling",
},
},
{//帮助中心历史工单点击跳出详情
path: '/WorkOrderDetails',
name: 'WorkOrderDetails',
meta: {//财会人员和匿名人员不能访问
inaccessible: "accounting",
roleKey: [`registered`, `advance`, `vip`, `support`, "verifier", `admin`], //可以访问人员
title:"工单详情",
description:i18n.t(`seo.WorkOrderDetails`),
keywords:"Coinbus 工单详情、用户工单、问题跟进,User work orders, problem follow-up",
},
component: () => import('../views/WorkOrderDetails/index.vue'),
},
{//帮助中心后台管理页面
path: '/HelpBackstage',
name: 'HelpBackstage',
meta: {
roleKey: [`support`, `verifier`, `admin`], //可以访问人员
// title:"后台管理",
// description:"Coinbus 帮助中心后台管理页面,供管理员查看工单提交情况分析,包括工单历史图表、超时工单列表、待处理及已处理工单等,高效管理用户问题。",
// keywords:"Coinbus 后台管理、工单分析、工单处理",
},
component: () => import('../views/helpBackstage/index.vue'),
},
{//帮助中心后台管理页面的详情页面
path: '/HelpDetails',
name: 'HelpDetails',
meta: {
roleKey: [`support`, `verifier`, `admin`], //可以访问人员
// title:"工单详情",
// description:"后台管理人员在此查看工单详情及处理历史记录,以便对用户回复处理情况,确保问题妥善解决。",
// keywords:"Coinbus 后台工单详情、管理回复、问题处理历史",
},
component: () => import('../views/helpDetails/index.vue'),
},
{//个人中心
path: '/personal',
name: 'personal',
alias: '/',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"个人中心",
description:i18n.t(`seo.personal`),
keywords:"Coinbus 个人中心、账号管理、余额查询,Personal center, account management, balance inquiry",
},
// component: Web,
component: () => import('../views/personal/index.vue'),
},
{//留言板后台 WorkOrderDetails
path: '/messageBoard',
name: 'messageBoard',
meta: {
roleKey: [`support`, `verifier`, `admin`],
// title:"留言板后台",
// description:"Coinbus 留言板后台供管理人员监控用户留言情况,包含留言历史图表、未处理留言列表、已处理留言列表,及时回应用户反馈。",
// keywords:"Coinbus 留言板管理、用户反馈、后台监控",
},
component: () => import('../views/MessageBoard/index.vue'),
},
{//自定义订阅 subscribe
path: '/subscribe',
name: 'subscribe',
meta: {
roleKey: [`advance`, `vip`, `support`, `verifier`, `admin`], //可以访问人员
title:"自定义订阅",
description:i18n.t(`seo.subscribe`),
keywords:"Coinbus 自定义订阅、消息订阅、通知方式,Custom subscriptions, message subscriptions, notification methods",
},
component: () => import('../views/subscribe/index.vue'),
},
// {//自定义订阅 、订阅详情页面subscribeDetails
// path: '/subscribeDetails',
// name: 'subscribeDetails',
// meta: {
// roleKey: [`advance`, `vip`, `support`, `verifier`, `admin`], //可以访问人员
// title:"",
// description:"",
// keywords:"",
// },
// component: () => import('../views/subscribeDetails/index.vue'),
// },
{//订阅管理后台 subscribeBoard
path: '/subscribeBoard',
name: 'subscribeBoard',
meta: {
roleKey: [`verifier`, `admin`], //可以访问人员
// title:"订阅管理后台",
// description:"Coinbus 订阅管理后台供管理人员统计查看订阅报告数量,管理报告发布及待审核、已拒绝、已发布报告历史和自定义消息历史的相关信息分析统计。",
// keywords:"Coinbus 订阅管理、报告统计、后台分析",
},
component: () => import('../views/subscribeBoard/index.vue'),
},
{//订阅发布 报告发布 subscribeRelease
path: '/subscribeRelease',
name: 'subscribeRelease',
meta: {
roleKey: [`admin`], //可以访问人员
// title:"报告发布",
// description:"Coinbus 报告发布页面,仅供后台管理员使用。包含报告类型、预计发出时间、标题及内容,确保高质量的订阅报告发布",
// keywords:"Coinbus 报告发布、管理员操作、订阅报告",
},
component: () => import('../views/subscribeRelease/index.vue'),
},
{//订阅 审核页面 subscribAaudit
path: '/subscribAaudit',
name: 'subscribAaudit',
meta: {
roleKey: [`verifier`, `admin`], //可以访问人员
// title:"订阅审核",
// description:"Coinbus 的发布报告审核页面,展示报告相关详情信息。审核人员可依据这些信息回复审核意见,决定通过或拒绝审核报告。",
// keywords:"Coinbus 订阅审核、报告审核、审核意见",
},
component: () => import('../views/subscribAaudit/index.vue'),
},
{//支付管理后台 payManagement payHistories
path: '/payManagement',
name: 'payManagement',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"支付管理后台",
// description:"Coinbus 支付管理后台,供管理人员管理用户信息。包括新增用户数量、日新增数量、转账、提现相关信息及消费金额,还有每日历史分析图。",
// keywords:"Coinbus 支付管理、用户信息管理、历史分析",
},
component: () => import('../views/payManagement/index.vue'),
},
{//支付历史 payHistories AccountUpgrade
path: '/payHistories',
name: 'payHistories',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"支付历史",
description:i18n.t(`seo.payHistories`),
keywords:"Coinbus 支付历史、转账记录查询,Payment history, transfer history inquiry",
},
component: () => import('../views/payHistories/index.vue'),
},
{//账户升级页面 AccountUpgrade
path: '/AccountUpgrade',
name: 'AccountUpgrade',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"账户升级",
description:i18n.t(`seo.AccountUpgrade`),
keywords:"Coinbus 账户升级,权限提升、支付升级,Account Upgrade, Privilege Upgrade, Payment Upgrade",
},
component: () => import('../views/AccountUpgrade/index.vue'),
},
{//后台地址管理页面 管理员 财务可看
path: '/BackgroundAddress',
name: 'BackgroundAddress',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"新增收款地址",
// description:"Coinbus 后台地址管理页面,供后台财务和管理人员添加收款地址。",
// keywords:"Coinbus 后台地址管理、收款地址添加",
},
component: () => import('../views/backgroundAddress/index.vue'),
},
{//后台确认支付 管理员 财务可看
path: '/BackendPayment',
name: 'BackendPayment',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"转账确认",
// description:"Coinbus 后台确认支付页面,供后台财务和管理人员确认处理用户提交的转账申请。",
// keywords:"Coinbus 后台支付确认、转账处理",
},
component: () => import('../views/backendPayment/index.vue'),
},
{//后台退款确认 管理员 财务可看
path: '/BackendRefund',
name: 'BackendRefund',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"退款确认",
// description:"Coinbus 后台退款确认页面,供后台财务和管理人员及时处理用户的退款申请。",
// keywords:"Coinbus 后台退款确认、退款处理",
},
component: () => import('../views/backendRefund/index.vue'),
},
{//后台提现 管理员 财务可看
path: '/BackendWithdrawal',
name: 'BackendWithdrawal',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"提现订单",
// description:"Coinbus 后台提现页面,供后台财务和管理人员处理用户提交的提现订单,并查询提现成功及失败的相关订单记录。",
// keywords:"Coinbus 后台提现管理、提现订单处理",
},
component: () => import('../views/backendWithdrawal/index.vue'),
},
// {//数据监控 支持及维护人员, 审核者可看 admin后期取消
// path: '/DataMonitoring',
// name: 'DataMonitoring',
// meta: {
// roleKey: [`support`, `admin`] ,//可以访问人员
// title:"",
// description:"",
// keywords:"",
// },
// component: () => import('../views/dataMonitoring/index.vue'),
// },
{//指标解释页面
path: '/IndexIntroduce',
name: 'IndexIntroduce',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"指标文档介绍",
description:i18n.t(`seo.IndexIntroduce`),
keywords:"Coinbus 指标解释、链上指标含义,Interpretation of indicators, meaning of chained indicators",
},
component: () => import('../views/indexIntroduce/index.vue'),
},
{//充值页面
path: '/Recharge',
name: 'Recharge',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"充值",
description:i18n.t(`seo.Recharge`),
keywords:"Coinbus 充值、币种选择、支付网络,Top-ups, currency selection, payment networks",
},
component: () => import('../views/Recharge/index.vue'),
},
{//提交txid页面
path: '/TXID',
name: 'TXID',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"交易Hash",
description:i18n.t(`seo.TXID`),
keywords:"Coinbus 提交 txid、充值审核,Submit txid, recharge audit",
},
component: () => import('../views/TXID/index.vue'),
},
{//申请提现
path: '/Withdrawal',
name: 'Withdrawal',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"申请提现",
description:i18n.t(`seo.Withdrawal`),
keywords:"Coinbus 申请提现、提现设置,Application for withdrawal, withdrawal settings",
},
component: () => import('../views/Withdrawal/index.vue'),
},
{//申请提现历史记录
path: '/withdrawalRecords',
name: 'withdrawalRecords',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"申请提现历史记录",
description:i18n.t(`seo.withdrawalRecords`),
keywords:"Coinbus 提现历史、记录查询,Withdrawal history, record search",
},
component: () => import('../views/withdrawalRecords/index.vue'),
},
{//提现订单详情
path: '/withdrawalDetails',
name: 'withdrawalDetails',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"提现订单详情",
description:i18n.t(`seo.withdrawalDetails`),
keywords:"Coinbus 提现详情、订单信息,Withdrawal details, order information",
},
component: () => import('../views/withdrawalDetails/index.vue'),
},
{//充值记录
path: '/RechargeRecord',
name: 'RechargeRecord',
meta: {
roleKey: [`accounting`, `admin`], //可以访问人员
// title:"充值记录管理",
// description:"Coinbus 充值记录管理页面,供后台管理人员和财务查看充值订单的详细信息,包括待处理订单、成功订单及失败订单。",
// keywords:"Coinbus 充值记录管理、订单详情",
},
component: () => import('../views/rechargeRecord/index.vue'),
},
{//消费记录 subscriptionLetter
path: '/ConsumptionRecords',
name: 'ConsumptionRecords',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"消费记录",
description:i18n.t(`seo.ConsumptionRecords`),
keywords:"Coinbus 消费记录、消费查询,Consumption records, consumption inquiry",
},
component: () => import('../views/consumptionRecords/index.vue'),
},
// {//站内信
// path: '/subscriptionLetter',
// name: 'SubscriptionLetter',
// meta: {
// roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
// title:"",
// description:"",
// keywords:"",
// },
// component: () => import('../views/subscriptionLetter/index.vue'),
// },
{//订阅与告警
path: '/Alarm',
name: 'Alarm',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"订阅与告警",
description:i18n.t(`seo.Alarm`),
keywords:"Coinbus 订阅告警、指标变化,Subscribe to alerts, indicator changes",
},
component: () => import('../views/Alarm/index.vue'),
},
{//发布观察报告
path: '/publishObservations',
name: 'PublishObservations',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"发布观察报告 ",
description:i18n.t(`seo.publishObservations`),
keywords:"Coinbus 观察报告、发布历史,Observation reports, release history",
},
component: () => import('../views/publishObservations/index.vue'),
},
{//seo 数据展示
path: '/dataDisplay',
name: 'DataDisplay',
meta: {
roleKey: [`registered`, `advance`, `vip`, `support`, `verifier`, `accounting`, `admin`], //可以访问人员
title:"coinbus 区块链数据分析平台介绍",
description:i18n.t(`seo.dataDisplay`),
keywords:"Coinbus、区块链数据分析、加密货币、交易数据、市场指标、大额交易监控、精准数据、可视化展示、订阅服务、专业团队、客户服务、投资决策、风险管理,Blockchain data analytics, cryptocurrencies, trading data, market metrics, large transaction monitoring, accurate data, visualization, subscription services, professional team, customer service, investment decisions, risk management",
},
component: () => import('../views/dataDisplay/index.vue'),
},
{
path: '*',//404
name: 'noPage',
component: noPage
},
]
const router = new VueRouter({
// hash history
mode: "history",
routes
})
// 全局前置守卫 在每次路由跳转前执行一些逻辑
// router.beforeEach((to, from, next) => {
// $addStorageEvent(1, "permissionMask", JSON.stringify(false))
// // 想要进入个人中心页面 必须有token
// let token = localStorage.getItem("token");
// //当前用户等级
// let identity = JSON.parse(localStorage.getItem("identity"));
// // console.log(to.path,3333);
// //返回首页关闭遮罩
// if (to.path == "/" || to.path == "/web") {
// //判断跳转的动态组件还是其他路由页面存不同的显示旗帜
// $addStorageEvent(1, "routerPage", JSON.stringify("web"))
// $addStorageEvent(1, "permissionMask", JSON.stringify(false))
// next();
// } else if (to.path == `/IndexIntroduce`) {
// $addStorageEvent(1, "routerPage", JSON.stringify("IndexIntroduce"))
// } else { //指标介绍和组件页面可以同时存在
// $addStorageEvent(1, "routerPage", JSON.stringify("noWeb"))
// }
// next();
// });
// const originalPush = VueRouter.prototype.push
// VueRouter.prototype.push = function push(location) {
// return originalPush.call(this, location).catch(err => err)
// }
// const VueRouterPush = VueRouter.prototype.push//处理重复跳转一个页面报错问题
// VueRouter.prototype.push = function push(to) {
// return VueRouterPush.call(this, to).catch(err => err)
// }
// 处理重复路由导航
const originalPush = VueRouter.prototype.push
const originalReplace = VueRouter.prototype.replace
// 重写push方法
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => {
if (err.name !== 'NavigationDuplicated') {
return Promise.reject(err)
}
return Promise.resolve(false)
})
}
// 同样处理replace方法
VueRouter.prototype.replace = function replace(location) {
return originalReplace.call(this, location).catch(err => {
if (err.name !== 'NavigationDuplicated') {
return Promise.reject(err)
}
return Promise.resolve(false)
})
}
export default router

15
yq/src/store/bigDEals.js Normal file
View File

@@ -0,0 +1,15 @@
export default {
state: {
tableData:[]
},
mutations: {
handelTableData(state,val){
state.tableData =val
},
},
actions: {
},
}

21
yq/src/store/index.js Normal file
View File

@@ -0,0 +1,21 @@
import Vue from 'vue'
import Vuex from 'vuex'
import tab from './tab'
import user from './user'
import bigDEals from './bigDEals'
import createPersistedState from 'vuex-persistedstate';
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
tab,//引入模块
user,
bigDEals,
},
plugins: [//持久化保存vuex数据
createPersistedState()
],
})

24
yq/src/store/tab.js Normal file
View File

@@ -0,0 +1,24 @@
export default {
state: {
menu:[],//全部菜单
currentMenu:{label:"menu.profitAddress"},//选择的菜单
chooseTime:{
start:"",
end:""
}
},
mutations: {
selectMenu(state,val){
state.currentMenu =val
},
handelTime(state,val){
state.chooseTime.start =val[0]
state.chooseTime.end=val[1]
}
},
actions: {
},
}

27
yq/src/store/user.js Normal file
View File

@@ -0,0 +1,27 @@
export default {
state: {
userName:"",//用户名
identity:{},
},
mutations: {
handelName(state,val){
state.userName =val
console.log("存名字",state.userName);
},
handelIdentity(state,val){
state.identity =val
console.log("存权限",state.identity);
}
},
actions: {
},
}

View File

@@ -0,0 +1,36 @@
import * as echarts from "echarts";
import Vue from 'vue';
import elementResizeDetectorMaker from "element-resize-detector"
export var version = '0.0.1';
var compatible = (/^2\./).test(Vue.version);
if (!compatible) {
Vue.util.warn('vue echarts resize directive ' + version + ' only supports Vue 2.x, and does not support Vue ' + Vue.version);
}
let HANDLER = "_vue_echarts_resize_handler"
function bind(el) {
unbind(el);
el[HANDLER] = function () {
let chart = echarts.getInstanceByDom(el);
if (!chart) {
return;
}
chart.resize();
}
//监听window窗体变化更新echarts大小
//window.addEventListener("resize", el[HANDLER])
//监听绑定的div大小变化更新echarts大小
elementResizeDetectorMaker().listenTo(el,el[HANDLER])
}
function unbind(el) {
//window.removeEventListener("resize", el[HANDLER]);
elementResizeDetectorMaker().removeListener(el,el[HANDLER])
delete el[HANDLER];
}
var directive = {
bind: bind,
unbind: unbind
};
Vue.directive("on-echart-resize", directive)

366
yq/src/util/demo.js Normal file
View File

@@ -0,0 +1,366 @@
// <!--底部操作区域-->
// <template>
// <div class="foot_main">
// <div class="foot_sidebar">
// <div v-for="item in sidebarList" :key="item.id" class="sidebar_content" @click="switchComponents(item.content)">
// {{ item.name }}
// </div>
// </div>
// <div class="foot_content">
// <div class="left">
// <div class="topOperation">
// <div @click="onOrderSwitching(0)" :class="{'active':tabIndex === 0}">闪电手下单</div>
// <div @click="onOrderSwitching(1)" :class="{'active':tabIndex === 1}">三键下单</div>
// </div>
// <div class="left_content">
// <div v-if="tabIndex === 0" class="lightning">
// <div class="lightning_top">
// <div class="lightning_contract">
// <div class="name">合约</div>
// <n-select v-model:value="contract" :options="contractSelectionList" class="lightning_contract_selection"
// disabled size="tiny"/>
// <div>富时A50 2211</div>
// </div>
// <div class="lightning_position">
// <n-radio-group v-model:value="position" name="radiogroup">
// <n-space>
// <n-radio v-for="song in binList" :key="song.value" :value="song.value">
// {{ song.label }}
// </n-radio>
// </n-space>
// </n-radio-group>
// </div>
// <div class="quantity">
// <div class="quantity_left">
// <div class="name">数量</div>
// <n-input-number v-model:value="purchaseQuantity" :min="1" class="input_number"
// placeholder="请输入购买数量"
// size="tiny"/>
// </div>
// <div class="business">
// <div class="top">
// <div class="name">买:</div>
// <div class="open">可开&lt;=9</div>
// <div class="flat">可平/0</div>
// </div>
// <div class="bottom">
// <div class="name two">卖:</div>
// <div class="open">可开&lt;=9</div>
// <div class="flat">可平/0</div>
// </div>
// </div>
// </div>
// <div class="price">
// <div class="name">价格</div>
// <n-select v-model:value="price" :options="priceList" class="price_selection" size="tiny"/>
// </div>
// </div>
// <div class="lightning_bottom">
// <div class="cha_ke_kai btn">查可开</div>
// <div class="reset btn">复位</div>
// <div class="condition btn">条件单</div>
// <div class="purchase buyBtn one">
// <div class="name">0.6347</div>
// <div>买入</div>
// </div>
// <div class="sell_out buyBtn two">
// <div class="name">0.6347</div>
// <div>卖出</div>
// </div>
// </div>
// </div>
// <div v-if="tabIndex === 1" class="tripleBond">
// <div class="tripleBond_contract">
// <div>合约</div>
// <n-select v-model:value="lightningContractSelection" :options="lightningContractSelectionList"
// class="tripleBond_contract_selection" size="tiny"/>
// <div>澳元2212</div>
// </div>
// <div class="quantity_price">
// <div class="number_tripleBond">
// <div>数量</div>
// <n-input-number v-model:value="tripleBondQuantity" :min="1" class="input_number_tripleBond"
// placeholder="请输入购买数量" size="tiny"/>
// </div>
// <div class="tripleBond_price">
// <div>价格</div>
// <n-select v-model:value="tripleBondPrice" :options="tripleBondPriceList"
// class="tripleBond_price_selection" size="tiny"/>
// </div>
// </div>
// <div class="flash_sale">
// <div class="flash_sale_buy">
// <div class="name one">买</div>
// <div class="open">可开&lt;=14</div>
// <div>可平/0</div>
// </div>
// <div class="flash_sale_sell">
// <div class="name two">卖</div>
// <div class="open">可开&lt;=14</div>
// <div>可平/0</div>
// </div>
// </div>
// <div class="order_button">
// <div class="btn">
// <div class="name">0.666</div>
// <div class="title">买多</div>
// </div>
// <div class="btn">
// <div class="name">0.666</div>
// <div class="title">卖空</div>
// </div>
// <div class="btn">
// <div class="name">先开先平</div>
// <div class="title">平仓</div>
// </div>
// </div>
// <div class="btns">
// <div>查可开</div>
// <div>复位</div>
// <div>条件单</div>
// </div>
// </div>
// </div>
// </div>
// <div class="right">
// <component :is="dynamicComponents" class="right"></component>
// </div>
// </div>
// </div>
// </template>
// <script lang="ts" setup>
// import {computed, ref, shallowRef} from "vue";
// //交易页面
// import Transaction from '@/views/bottomContent/transaction/index.vue'
// //当日委托
// import Entrust from '@/views/bottomContent/entrust/index.vue'
// //导航栏
// const sidebarList = computed(() => {
// return [
// {
// id: 0,
// name: '交易',
// path: '',
// content: Transaction
// },
// {
// id: 1,
// name: '当日委托',
// path: '',
// content: Entrust
// },
// {
// id: 2,
// name: '当日成交',
// path: ''
// },
// {
// id: 3,
// name: '持仓',
// path: ''
// },
// {
// id: 4,
// name: '查询',
// path: ''
// },
// {
// id: 5,
// name: '条件单',
// path: ''
// },
// {
// id: 6,
// name: '帮助及说明',
// path: ''
// },
// {
// id: 7,
// name: '银期转账',
// path: ''
// },
// {
// id: 8,
// name: '交易统计',
// path: ''
// },
// {
// id: 9,
// name: '修改密码',
// path: ''
// }
// ]
// })
// // 动态组件
// const dynamicComponents = shallowRef<any>(Transaction)
// //切换组件
// const switchComponents = (components: any) => {
// dynamicComponents.value = components
// }
// /*下单区域*/
// //切换下单
// const tabIndex = ref<number>(0)
// const onOrderSwitching = (n:number)=>{
// tabIndex.value = n
// }
// /*闪电下单*/
// //选中的合约
// const contract = ref('暂无数据')
// //合约展示数据
// const contractSelectionList = ref([])
// /*是否开仓*/
// //选中仓位
// const position = ref(null)
// //仓位选择列表
// const binList = ref([
// {
// value: "开仓",
// label: "开仓"
// }, {
// value: '平仓',
// label: '开仓'
// }
// ])
// /*数量*/
// const purchaseQuantity = ref<number>(1)
// /*价格*/
// //当前选中
// const price = ref<string>('市价')
// //可选列表
// const priceList = ref([])
// /*三键下单*/
// //合约选择
// const lightningContractSelection = ref(null)
// //合约选择列表
// const lightningContractSelectionList = ref([])
// //数量
// const tripleBondQuantity = ref(0)
// //价格
// const tripleBondPrice = ref(0)
// //价格选择
// const tripleBondPriceList = ref([])
// // 语言设置
// export class language{
// //获取语言
// static getLang():string{
// //浏览语言
// const language = (navigator.language || 'zh').toLocaleLowerCase();
// const localLanguage = localStorage.getItem('lang');
// return localLanguage || language.split('-')[0]
// }
// //设置语言
// static setLang(name:'zh'|'en'){
// //修改当前数据
// il8n.global.locale = name
// //修改本地数据
// localStorage.setItem('lang',name)
// }
// }
// 不论点击多少次,只执行最后一次
// //函数防抖
// export const Debounce = (fn:any, t?:number) => {
// let delay = t || 500
// let timer:any
// return function () {
// let args = arguments
// if (timer) {
// clearTimeout(timer)
// }
// timer = setTimeout(() => {
// timer = null
// // @ts-ignore
// fn.apply(this, args)
// }, delay)
// }
// }
//不论点击多少次 都是根据传入的t值进行执行
// //函数节流
// export const Throttle = (fn:any, t:number) => {
// let last:any
// let timer:any
// let interval = t || 1000
// return function () {
// let args = arguments
// let now = +new Date()
// if (last && now - last < interval) {
// clearTimeout(timer)
// timer = setTimeout(() => {
// last = now
// // @ts-ignore
// fn.apply(this, args)
// }, interval)
// } else {
// last = now
// // @ts-ignore
// fn.apply(this, args)
// }
// }
// }
//保留小数
// export const format = (num:number, i = 2, isZero = false) => {
// if (!isNaN(num) && (typeof num === 'number' || Object.prototype.toString.call(num) === '[object String]')) {
// let a = num.toString()
// let b = a.split('.')
// let c = b[1] || '0'
// let d = c.length
// if (d === i) {
// return `${b[0]}.${c}`
// } else {
// if (d > i) {
// let e = c.toString().substring(0, i)
// return `${b[0]}.${e}`
// } else {
// let e = c
// if (isZero) {
// e = e.padEnd(i, '0')
// }
// return `${b[0]}.${e}`
// }
// }
// } else {
// throw new Error(`${num}应是字符串或字符串!`)
// }
// }
// </script>

303
yq/src/util/echarts.js Normal file
View File

@@ -0,0 +1,303 @@
//折线图
export const line = {
tooltip: {
trigger: "axis",
position: function (pt) {
return [pt[0], "10%"];
},
},
legend: {},
xAxis: {
// type: "time",
data: [],
// boundaryGap: false,
// axisLabel: {
// formatter: `{yyyy}-{MM}-{dd}`,
// },
},
yAxis: [
{
type: "value",
// boundaryGap: [0, "100%"],
// axisLabel: {
// formatter: function (e) {
// let value;
// if (e > 1000000) {
// value = e / 100000;
// } else if (e > 100000) {
// value = e / 1000;
// } else {
// value = e / 100;
// }
// return value;
// },
// },
},
{
type: "value",
// boundaryGap: [0, "100%"],
show: false,
},
],
dataZoom: [
{
type: "inside",
start: 0,
end: 100,
},
{
start: 0,
end: 100,
},
],
series: [
{
name: "1",
type: "line",
smooth: false,
symbol: "circle",
showSymbol: false,
symbolSize: 5,
// areaStyle: {},
itemStyle: {
color: "#f7931a",
borderColor: "rgba(221,220,107,0.1)",
borderWidth: 12,
},
lineStyle: {
//线条样式
color: "#f7931a",
width: "1",
},
data: [],
},
{
name: "发送地址数",
type: "line",
smooth: false,
symbol: "circle",
symbolSize: 5,
showSymbol: false,
// areaStyle: {},
itemStyle: {
color: "#008acc",
borderColor: "rgba(221,220,107,0.1)",
borderWidth: 12,
},
lineStyle: {
//线条样式
color: "#008acc",
width: "1",
},
yAxisIndex: 1,
data: [],
//绘制右侧Y轴
markLine: {
symbol: ["none", "none"], //去掉箭头
itemStyle: {
normal: {
lineStyle: { type: "solid", color: "rgba(0,0,0,0.01)" },
},
},
// lineStyle:{
// color:"red"
// },
label: {
formatter: "{b}",
fontSize: 10,
color: "rgba(0,0,0,0.8)",
align: "left",
},
data: [
{
name: "0",
yAxis: 0,
},
// {
// name: "$40W",
// yAxis: 400000,
// },
{
name: "$70W",
yAxis: 700000,
},
{
name: "$40W",
yAxis: 400000,
},
{
name: "$10W",
yAxis: 100000,
},
{
name: "$100W",
yAxis: 1000000,
// position: ['100%', '50'],
},
],
},
},
{
name: "日交易量",
type: "line",
smooth: false,
symbol: "circle",
symbolSize: 5,
showSymbol: false,
// areaStyle: {},
itemStyle: {
color: "#666666",
borderColor: "rgba(221,220,107,0.1)",
borderWidth: 12,
},
lineStyle: {
//线条样式
color: "#666666",
width: "1",
},
data: [],
},
],
}
//小折线图
export const minLine = {
xAxis: {
boundaryGap: false,
show:false,
axisLine: { onZero: false },
axisTick: { show: false },
axisLabel: { show: false, interval: 0 },
data: [],
},
yAxis: {
// type:"value",
show:false,
scale: true,
position: 'right',
axisLine: { show: false },
axisTick: { show: false },
splitLine: { show: false},
axisLabel: { inside: false,interval: 0 }
},
dataZoom: [
{
type: "inside",
start: 0,
end: 100,
},
],
grid:{
top:1,
bottom:3,
left:3,
right:3,
},
series: [
{
name: 'Fake Data',
type: 'line',
showSymbol: false,
lineStyle: {
color: "#d84d65"
},
data: []
}
]
}
//柱状图
export const bar = {
title: {
text: "",
left: "center",
textStyle: {
fontSize: 15,
fontWeight: "normal"
},
},
tooltip: {
trigger: "axis",
textStyle: {
align: "left",
},
axisPointer: {
type: "cross",
crossStyle: {
color: "#999",
},
},
// formatter: function (params) {
// var res = params[0].axisValueLabel;
// for (let i = 0; i <= params.length - 1; i++) {
// res += `</br>${params[i].marker} <span style="font-weight: bold">${params[i].value[1]}</span> ${params[i].seriesName}`;
// }
// return "111";
// },
},
legend: {
right: 100,
formatter: function (name) {
return name;
},
},
xAxis: [
{
type: "category",
data: [],
},
],
yAxis: [
{
type: "value",
// name: "Precipitation",
// min: 0,
// max: 250,
// interval: 50,
axisLabel: {
formatter: function (value) {
let label = value / 1000000
return `${label}M`
},
},
},
],
series: [
{
type: "bar",
colorBy: "data",
// tooltip: {
// valueFormatter: function (value) {
// return value + " ml";
// },
// },
data: [],
itemStyle: {
color: "#fdaa56",
},
},
{
name: "",
type: "bar",
itemStyle: {
color: "#607d8b",
},
data: [],
},
],
}

20
yq/src/util/fun.js Normal file
View File

@@ -0,0 +1,20 @@
import JSEncrypt from "jsencrypt"; //引入模块
const publicKey = `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA05Wt7Jqv+fQFS4ND2sqY
XAMnn7iZYCThxe5zfXjqZ27Q3bIC0NIIgKAcrox3Ke5mb+hJ4D5pYFbnRdaRC6X1
64QDMLMxNd2jgVrSVwJbEIJaBNeLIzcS6ZzozVEMgIquOBfurwt8il070eFczoBL
iFXnfLlmTpx0fSem4pTBLIRPuM0fQQAeD419Pu/p067EuYBMOy19c6pf0QQnUVbd
PZjDvZb8WLXXtpKhAWT/9o6CjJkieTmkjslP479fk/ImRXbmALwoByVpY+kX6NTX
6gBEy53svi7arlC1IK+Pp9nX/RbUkLRoXH2he6dgd5F/8QCV4eHMJ6CeLuUORVx2
FQIDAQAB`
export const encryption = (str) => {
//创建实例
const jse = new JSEncrypt()
//添加秘钥 秘钥放过来
jse.setPublicKey(publicKey)
//加密
let data = jse.encrypt(str)
return data
}

164
yq/src/util/index.js Normal file
View File

@@ -0,0 +1,164 @@
import store from '@/store/index'
import {NotificationBackend} from '@/api/index'
class webscoketUtill {
constructor(url = '') {
//连接地址
this.url = url
//连接器
this.ws = null
//避免重复连接
this.is_open_scoket = false
//心跳时间
this.timeout = 9000
//心跳定时器
this.heartbeatInterval = null
//重连次数
this.reconnectionTimes = 9
//多久重连一次
this.reconnectionTimeout = null
//连接次数
this.numberConnections = 0
try {
this.init()
} catch (e) {
throw new Error(e)
}
}
init() {
//创建webscoket
this.ws = new WebSocket(this.url)
//监听链接是否成功
this.ws.onopen = (e) => {
this.is_open_scoket = true
this.numberConnections = 0
clearInterval(this.heartbeatInterval)
clearTimeout(this.reconnectionTimeout)
this.heartbeat()
this.onmessage()
this.onclose()
}
this.onerror()
}
//接收后端信息
onmessage() {
this.ws.onmessage = (e) => {
if (this.isJSON(e.data)) {
let data = JSON.parse(e.data)
if (data.code === 201) {
NotificationBackend({
symbol: store.state.currency,
time: '30s',
client_id: data.data.client_id
})
}
if (data.code === 202) {
let arr = []
data.data.history.forEach(item => {
arr.push(JSON.parse(item))
})
store.commit({
type: 'on_K_line_array',
data: arr
})
}
if (data.code === 203) {
store.commit({
type: 'onSecondData',
data: JSON.parse(data.data)
})
}
if (data.code === 204) {
store.commit({
type: 'onBranchData',
data: data.data || false
})
}
}
}
}
//发送消息
send(val) {
let str = ''
if (typeof val === 'string') {
str = val
} else {
str = JSON.stringify(val)
}
this.ws.send(str)
}
//检测心跳
heartbeat() {
this.heartbeatInterval = setInterval(() => {
this.send({
code: 1,
msg: '狗哥摆烂了'
})
}, this.timeout)
}
//重连
reconnection() {
clearInterval(this.heartbeatInterval)
clearTimeout(this.reconnectionTimeout)
if (!this.is_open_scoket) {
if (this.numberConnections < this.reconnectionTimes) {
this.close()
this.init()
this.numberConnections++
this.reconnectionTimeout = setTimeout(() => {
this.reconnection()
}, 3000)
}
}
}
//后端连接断开
onclose() {
this.ws.onclose = (e) => {
this.is_open_scoket = false
this.reconnection()
}
}
close() {
this.send({
code: 2,
data: '我已关闭!'
})
this.ws.close()
}
//连接失败
onerror() {
this.ws.onerror = (e) => {
this.is_open_scoket = false
this.reconnection()
}
}
//判断是否是json
isJSON(str) {
if (typeof str === 'string') {
try {
let obj = JSON.parse(str)
if (typeof obj === 'object' && obj) {
return true
} else {
return false
}
} catch (e) {
return false
}
}
}
}
export default webscoketUtill

3073
yq/src/util/menu.js Normal file

File diff suppressed because it is too large Load Diff

65
yq/src/util/ndqaMethod.js Normal file
View File

@@ -0,0 +1,65 @@
//获取最近三个月时间
export function getTimeMonth() {
// var end = new Date();
// var year = end.getFullYear();
// var month = end.getMonth() + 1; //0-11表示1-12月
// var day = end.getDate();
// var dateObj = {};
// dateObj.end = year + "-" + month + "-" + day;
// var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
// if (month - 2 <= 0) {
// //如果是1月年数往前推一年<br>
// dateObj.start = year - 1 + "-" + 12 + "-" + day;
// } else {
// var startMonthDay = new Date(year, parseInt(month) - 1, 0).getDate();
// if (startMonthDay < day) {
// //1个月前所在月的总天数小于现在的天日期
// if (day < endMonthDay) {
// //当前天日期小于当前月总天数
// dateObj.start =
// year +
// "-" +
// (month - 1) +
// "-" +
// (startMonthDay - (endMonthDay - day));
// } else {
// dateObj.start = year + "-" + (month - 1) + "-" + startMonthDay;
// }
// } else {
// dateObj.start = year + "-" + (month - 1) + "-" + day;
// }
// }
// // console.log(JSON.stringify(dateObj));
// return dateObj
var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1;//0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + '-' + month + '-' + day;
var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
if (month - 3 <= 0) { //如果是1、2、3月年数往前推一年
var start3MonthDay = new Date((year - 1), (12 - (3 - parseInt(month))), 0).getDate(); //3个月前所在月的总天数
if (start3MonthDay < day) { //3个月前所在月的总天数小于现在的天日期
dateObj.start = (year - 1) + '-' + (12 - (3 - month)) + '-' + start3MonthDay;
} else {
dateObj.start = (year - 1) + '-' + (12 - (3 - month)) + '-' + day;
}
} else {
var start3MonthDay = new Date(year, (parseInt(month) - 3), 0).getDate(); //3个月前所在月的总天数
if (start3MonthDay < day) { //3个月前所在月的总天数小于现在的天日期
if (day < endMonthDay) { //当前天日期小于当前月总天数,2月份比较特殊的月份
dateObj.start = year + '-' + (month - 3) + '-' + (start3MonthDay - (endMonthDay - day));
} else {
dateObj.start = year + '-' + (month - 3) + '-' + start3MonthDay;
}
} else {
dateObj.start = year + '-' + (month - 3) + '-' + day;
}
}
// console.log(JSON.stringify(dateObj))
return dateObj
}

File diff suppressed because it is too large Load Diff

67
yq/src/util/request.js Normal file
View File

@@ -0,0 +1,67 @@
/*
对 axios 进行二次封装
*/
import axios from "axios";
const server = axios.create({
//创建一个axios实例
baseURL: "/", // 往后面发请求的路径
timeout: 60000, //超时时间
// headers: {
// //所有的请求都会带
// client: "web",
// },
});
/*
拦截器:
*/
/*
需求用户的登录token信息
*/
// 添加请求拦截器
// server.interceptors.request.use(
// function (config) {
// // 在发送请求之前做些什么
// console.log(config);
// //if(!getToken()) return config;
// // console.log(getToken());
// config.headers.Authorization = `Bearer werwerwerwer`;
// return config;
// },
// function (error) {
// // 对请求错误做些什么
// return Promise.reject(error);
// }
// );
// 添加响应拦截器
// server.interceptors.response.use(
// function (res) {
// // 对响应数据做点什么来做统一的code判断
// console.log(res);
// switch (res.data.code) {
// case -1:
// console.log("服务器错误");
// break;
// case -2:
// console.log("访问被拒绝");
// break;
// default:
// break;
// }
// return res;
// },
// function (error) {
// // 对响应错误做点什么
// return Promise.reject(error);
// }
// );
export default server;

83
yq/src/util/rsa.js Normal file
View File

@@ -0,0 +1,83 @@
/* 产引入jsencrypt实现数据RSA加密 */
import JSEncrypt from 'jsencrypt' // 处理长文本数据时报错 jsencrypt.js Message too long for RSA
/* 产引入encryptlong实现数据RSA加密 */
import Encrypt from 'encryptlong' // encryptlong是基于jsencrypt扩展的长文本分段加解密功能。
// 密钥对生成 http://web.chacuo.net/netrsakeypair
// 公钥key
const publicKey = `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzf8shQ65PrbUWFor3orc
FOTN8eerzE1eoL/2xBbog0z2nn0nXNELDrZxuOfeN3+w6DX5IxKEo0l0hSFUKjtK
6Rkv9Wp/+R6O9rPtSXprtvxsU9FYAkQJid6FJreS8kL/ulYV/CRTeh+o18i4FFKC
puH97pIgWgNaF8sTVzrj9VFpWpXZLa3mFXffSprOhwswnT4SukZ6FZfaGw85gmTB
1hty//RuSj3FYVbkDrVFl2pzzl2yw0twKN59tCVhXfJlRiaA9M4/lsanOjS+Avhf
zN3F5z2N+sZTCxSjDvCjkCY1sm8cSJMIUBkezOUf0cOISLDTIOIJ8MUe4Au1JpYw
JQIDAQAB`
// 私钥key
const privateKey = `MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDN/yyFDrk+ttRY
WiveitwU5M3x56vMTV6gv/bEFuiDTPaefSdc0QsOtnG45943f7DoNfkjEoSjSXSF
IVQqO0rpGS/1an/5Ho72s+1Jemu2/GxT0VgCRAmJ3oUmt5LyQv+6VhX8JFN6H6jX
yLgUUoKm4f3ukiBaA1oXyxNXOuP1UWlaldktreYVd99Kms6HCzCdPhK6RnoVl9ob
DzmCZMHWG3L/9G5KPcVhVuQOtUWXanPOXbLDS3Ao3n20JWFd8mVGJoD0zj+Wxqc6
NL4C+F/M3cXnPY36xlMLFKMO8KOQJjWybxxIkwhQGR7M5R/Rw4hIsNMg4gnwxR7g
C7UmljAlAgMBAAECggEAfT6WLNgE3RKADK/WWFoI8VMju95lX7Pywr20JQjgmWQj
1by2QAKBPJLEle2z9/5U6vpV3XMW3ch9Zawb5glixFKiDA6SfD6OIYTH0pLyBrF2
k4eGgOoo+oAmaKHYYB9IKFzKxSC4+FljaL8K3KBF+30PzQtfTBsZnbnEqpaNnsqn
ZNM3XDH4WL6eoAa4EzasJ89ihWngPueoeRG8bnGqOQWf5/Fj58LB6V6Cgp3GjmGd
l7Y1SzSntQqUf5asDc0/QEAh++Ya3UH24hBpt3pWLMHD9Da2nMDBZJ68SENnV7gq
CxM8YzIE5XMSEOkd7263Ysf90L0O+2xofIHxqCerQQKBgQDtQV69FV/EPCqEIVqu
lFyv4B48+KNVRKP9hMrRgv1a9YCwvLg4GJpF/wgpXmfO1CnvLSAgt2bPl+dcq5gN
P2+8oiEh2nFlAH6RPIOZQmb3izaBq7g1oemddp13HJ7RL77Stm7h97c/zEgLgOaw
2QPDlrryiW9zfLMCC5KmEFkJiQKBgQDeRZSggzRJ2Dq9w4nNkgk2Gx8F+a8icmgj
+VXVVSkhCTxL4hxOtAsunIaZenltYa9VA5d1fGCu2A9DZ5eSaQ393JNRblIReKHt
seJ2E8SaDdGqS8VrjDMo20cy5Eb0I0TtB/fnoHIOppZrsEAtxRpWyLVA5Mhv0yXc
4pd4+o12vQKBgQCbQxREmSA6w0TvgwRdCyo8zmX7cJsyyeCnn6c6xIYYaGD3SAkm
bLNI60TkDavRZnaq1tUXk+3sHHSD6Kdww/rTbyZPiSx79H7ffMKCITpQ9QGOilna
f0LqkR0rPceRDbXLHyghKIL7dSwQmyJcySf1b0aYQeh1oz1iMUCe/EPIQQKBgQCv
CMo/ELNnh4DSmR52pQ7d7cOjd/lDviZmVd4S7kpCOryh4UB7dersXNTeHgVrbqac
4wQtv7F/XqO+Z+CDqnkbNc1JLgAww/d4cEGuzGhhDIrUeXDQ/Yn4HZ3W5M8/SFrp
8gF2BPJsuSDxUs1nfbT9LHcX0FJLRVKmvEWePmiSXQKBgGGGMqTPBgkMUbXOU0DI
DfHyST52/8xK75K8p0j3A4ZJQOSO+biFF4NgeqYDoo6qww2f4gJCyvGHPtwWLeJz
vc/8uKxB+heqCf+htBT3RvMSlARikkLXv/AmeTaNiLaOin+MUfjBcqmfS+ihpkbE
jxDnSlsKpAqMdeunX/nImzC6`
/* JSEncrypt加密 */
export function rsaPublicData(data) {
let jsencrypt = new JSEncrypt()
jsencrypt.setPublicKey(publicKey)
// 如果是对象/数组的话需要先JSON.stringify转换成字符串
let result = jsencrypt.encrypt(data)
return result
}
/* JSEncrypt解密 */
export function rsaPrivateData(data) {
let jsencrypt = new JSEncrypt()
jsencrypt.setPrivateKey(privateKey)
// 如果是对象/数组的话需要先JSON.stringify转换成字符串
let result = jsencrypt.encrypt(data)
return result
}
/* 加密 */
export function encrypt(data) {
const PUBLIC_KEY = publicKey
let encryptor = new Encrypt()
encryptor.setPublicKey(PUBLIC_KEY)
// 如果是对象/数组的话需要先JSON.stringify转换成字符串
const result = encryptor.encryptLong(data)
return result
}
/* 解密 - PRIVATE_KEY - 验证 */
export function decrypt(data) {
const PRIVATE_KEY = privateKey
let encryptor = new Encrypt()
encryptor.setPrivateKey(PRIVATE_KEY)
// 如果是对象/数组的话需要先JSON.stringify转换成字符串
let result = encryptor.decryptLong(data)
return result
}
let datas = rsaPublicData('你好')
let a = `MMeI6N/ZWwsfe92XEfmRNWxe7WXVBz4uZz052Wo4NdvIlMNl/ag/9tKs0A1/8l8cgF5558yLs+Ql+3QPKvy8gay5hB18htMnkLTpkpAxclntS3Vpr7NtdSaoW1nz3P2OgHZ+ww22zcyox0MvCkLpge/20+KcomD/fxtiEK6NZ/PPQB5kNi2Uj3kJMhDz39tvdP9zytK3Po5QNGkw+CyoYPbQi80wplmurxQ/g0l9FBsqHuoCmBs7ZNtVLlG9pE4UkG8MmyV3tQTpIStEaF4TVHwb5XdlP3e9RQ+6rx2DLaunzzeBtNR1JGiNB9nrC5ImO77wzipdbuydCY8ZkILYlA==`
console.log(datas == a)
console.log(datas)
console.log('加密',datas)
console.log('解密',rsaPrivateData(datas))

View File

@@ -0,0 +1,142 @@
export const subscriptionConfiguration = [
{
value: 'BTC',
label: 'BTC',
channel: "BTCOnChain",
children: [
{
value: '链上数据',
label: 'menu.onchain',
id: "ls",
children: [
{
value: '网络',
label: 'menu.Network',
id: "ls-1",
children: [
{
value: '交易量',
label: 'menu.TransactionVolume',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-1-1",
},
{
value: '交易费',
label: 'menu.TransactionFee',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-1-2",
},
{
value: '交易量(找零消除)',
label: 'menu.adjusted',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-1-3",
},
],
},
{
value: '地址',
label: 'menu.address',
id: "ls-2",
children: [
{
value: '地址统计',
label: 'menu.onchain2',
children: [{
value: '活跃地址数',
label: 'menu.activeAddresses',
alarmType: [`subscribe.numericalValue`,],//数值
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-2-1",
},
{
value: '发送地址数',
label: 'menu.SendAddresses',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-2-2",
},
{
value: '接收地址数',
label: 'menu.ReceiveAddresses',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-2-3",
},
]
},
{
value: '巨鲸地址列表',
label: 'menu2.onchain2',
alarmType: [`subscribe.address`,],//地址
alarmInterval: [`subscribe.day`,],//1天
channel: "BTCOnChain",
id: "ls-2-4",
},
],
},
{
value: '币龄',
label: 'menu2.Lifetime',
id: "ls-3",
children: [
{
value: '已花费输出平均寿命',
label: 'menu2.asol',
alarmType: [`subscribe.ratio`,],//比值
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-3-1",
},
{
value: '币天销毁量',
label: 'menu.technology37',
alarmType: [`subscribe.numericalValue`,],
alarmInterval: [`realTime`,],
channel: "BTCOnChain",
id: "ls-3-2",
},
],
},
],
},
]
},
]

65
yq/src/util/thousands.js Normal file
View File

@@ -0,0 +1,65 @@
// 不带插槽的 保留两位小数
export function stateFormat(row, column,number) {
let num = Number(row[column["property"]]);
let n=2
// if (number) {
// n = number;
// }else{
// n = 2
// }
let symbol = ",";
if(typeof num!=='number')throw new TypeError('num参数应该是一个number类型');
if(n<0)throw new Error('参数n不应该小于0');
var hasDot=parseInt(num)!=num;//这里检测num是否为小数true表示小数
var m=(n!=undefined&&n!=null)?n:1;
num=m==0?num.toFixed(m)+'.':hasDot?(n?num.toFixed(n):num):num.toFixed(m);
symbol=symbol||',';
num=num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function(match, p1,p2) {
return p1 + symbol;
});
if(n==0||(!hasDot&&!n)){//如果n为0或者传入的num是整数并且没有指定整数的保留位数则去掉前面操作中的小数位
num=num.substring(0,num.indexOf('.'));
}
return num;6
}
export function stateFormat2(row, column,number) {
let num = Number(row[column["property"]]);
let n=0
let symbol = ",";
if(typeof num!=='number')throw new TypeError('num参数应该是一个number类型');
if(n<0)throw new Error('参数n不应该小于0');
var hasDot=parseInt(num)!=num;//这里检测num是否为小数true表示小数
var m=(n!=undefined&&n!=null)?n:1;
num=m==0?num.toFixed(m)+'.':hasDot?(n?num.toFixed(n):num):num.toFixed(m);
symbol=symbol||',';
num=num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function(match, p1,p2) {
return p1 + symbol;
});
if(n==0||(!hasDot&&!n)){//如果n为0或者传入的num是整数并且没有指定整数的保留位数则去掉前面操作中的小数位
num=num.substring(0,num.indexOf('.'));
}
return num;6
}
//带插槽的
export function handleScopeFormat(num,n=2,symbol) {
// 保证为number类型
num = Number(num)
if(typeof num!=='number')throw new TypeError('num参数应该是一个number类型');
if(n<0)throw new Error('参数n不应该小于0');
var hasDot=parseInt(num)!=num;//这里检测num是否为小数true表示小数
var m=(n!=undefined&&n!=null)?n:1;
num=m==0?num.toFixed(m)+'.':hasDot?(n?num.toFixed(n):num):num.toFixed(m);
symbol=symbol||',';
num=num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function(match, p1,p2) {
return p1 + symbol;
});
if(n==0||(!hasDot&&!n)){//如果n为0或者传入的num是整数并且没有指定整数的保留位数则去掉前面操作中的小数位
num=num.substring(0,num.indexOf('.'));
}
return num;
}

View File

@@ -0,0 +1,217 @@
import { LevelUp, GetNeedFunding } from "../../api/pay"
import { GetUserAccount } from "../../api/help"
export default {
data() {
return {
upgradeList: {
amount: "",
network: "TRX(Tron TRC20)",
address: "copy 地址",
id: "",
label: ""
},
AccountUpgradeLoading: false,
accounts: [{//L3 月度付费用户
id: "advance",
label: "login.monthlyPlay",
charges: "10(USDT、USDC、BUSD)",
amount: "10",
value: 0,
disabled: false,
},
{//L3 年度付费用户
id: "advance",
label: "login.yearsPlay",
charges: "100(USDT、USDC、BUSD)",
amount: "100",
value: 1,
disabled: false,
},
{//L4 vip年度付费用户
id: "vip",
label: "login.vipYearsPlay",
charges: "500(USDT、USDC、BUSD)",
amount: "500",
value: 2,
disabled: false,
},],
options: [{
value: 'USDT',
label: 'USDT'
}, {
value: 'USDC',
label: 'USDC'
}, {
value: 'BUSD',
label: 'BUSD'
}],
value: "",
dialogVisible: false,
account: "",
params: {
type: "",
amount: "0"
},
ConfirmationPaymentLoading: false,
balances: {
total: "",
usdc: "",
usdt: "",
userId: "",
userName: ""
},
balanceDialog: false,
memberBalances: [{
},],//等级对应金额
formula: "",
bthDisabled:""
}
},
mounted() {
this.fetchUserAccount()//请求当前余额
this.fetchNeedFunding()//获取对应等级所需金额
if (this.$route.params.amount) {
// this.params.type = this.$route.params.amount.value
this.params.type = this.accounts.find(item => item.amount == this.$route.params.amount.amount).value
}
this.level = JSON.parse(localStorage.getItem("identity")).level
//判断等级 禁用相应按钮
if (this.level == "L3") {
this.bthDisabled = 1
} else if (this.level == "L4") {
this.bthDisabled = 2
} else if (this.level == "L2" || this.level == "L1") {
this.bthDisabled = -1
} else if(!this.level) {
this.bthDisabled = -2
}else{
this.bthDisabled = 10
}
},
methods: {
//获取对应等级所需金额
async fetchNeedFunding(params) {
const { data } = await GetNeedFunding(params)
this.memberBalances = data.data
this.params.amount = this.memberBalances.find(item => item.type == this.params.type).value
this.formula = this.memberBalances.find(item => item.type == this.params.type).formula
},
//请求当前余额
async fetchUserAccount(params) {
const { data } = await GetUserAccount(params)
this.balances = data.data
},
//请求升级账户
async fetchLevelUp(params) {
this.ConfirmationPaymentLoading = true
const { data } = await LevelUp(params)
if (data.code == 200) {//升级成功提示 更新token 并跳转至个人中心
this.$message({
type: 'success',
message: this.$t(`pay.upgradeSuccessful`)
});
this.dialogVisible = false
this.$addStorageEvent(1, "token", data.data.access_token);
this.$addStorageEvent(1, "identity",JSON.stringify(data.data.role));
this.$addStorageEvent(1, "loginTime",data.data.expires_in);
setTimeout(() => {
this.$router.push(`/personal`)
}, 10)
}
this.ConfirmationPaymentLoading = false
},
//提交支付
handelPay() {
// if (!this.params.type || !this.params.amount) {//判空
// this.$message({
// message: this.$t(`help.resubmit`),
// type: "error",
// });
// return
// }
console.log( this.params,"就覅哦附加费");
for (let key in this.params) {
if (this.params.hasOwnProperty(key)) {
if (this.params[key] === null || this.params[key] === undefined || this.params[key] === '') {
this.$message({
message: this.$t(`pay.grade`),
type: "error",
});
return // 属性值为空
}
}
}
//判断总金额是否足够
if (this.balances.total - this.params.amount <= 0) {
this.balanceDialog = true
return
} else {
this.dialogVisible = true
}
},
//选择账户升级
handelAccounts(a) {
// this.upgradeList.amount = this.account
// this.upgradeList.label = this.accounts.find(item=>{ return item.amount == this.account }).label //确认支付弹窗显示账户等级
if (this.memberBalances[0]) {
this.params.amount = this.memberBalances.find(item => item.type == a).value
this.formula = this.memberBalances.find(item => item.type == a).formula
}
},
//处理对应等级label显示
handelLevel(value) {
if (value) {
return this.$t(this.accounts.find(item => item.value == value).label)
}
},
//点击弹窗的确认支付
handelConfirmPayment() {
this.fetchLevelUp(this.params)
},
//点击去充值
handelRecharge() {
this.$router.push(`/Recharge`)
}
}
}

Some files were not shown because too many files have changed in this diff Show More