Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dexfilter-web-nuxt3
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haojie
dexfilter-web-nuxt3
Commits
2f1274d6
Commit
2f1274d6
authored
Feb 20, 2023
by
lei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
97864cc3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
175 additions
and
126 deletions
+175
-126
app/router.options.ts
+47
-39
components/SwitchLanguage.vue
+19
-13
middleware/index.global.ts
+13
-0
views/Private/CoinFilter/index.vue
+15
-1
views/token/CustomTokenList.vue
+0
-0
views/token/RightDetail.vue
+66
-66
views/token/index.vue
+15
-7
No files found.
app/router.options.ts
View file @
2f1274d6
import
type
{
RouterConfig
}
from
'@nuxt/schema'
;
import
type
{
RouterConfig
}
from
"@nuxt/schema"
;
// https://router.vuejs.org/api/interfaces/routeroptions.html
// https://router.vuejs.org/api/interfaces/routeroptions.html
export
default
<
RouterConfig
>
{
export
default
<
RouterConfig
>
{
routes
:
(
_routes
)
=>
[
routes
:
(
_routes
)
=>
[
{
{
name
:
'tokenIndex'
,
name
:
"tokenIndex"
,
path
:
'/'
,
path
:
"/"
,
component
:
()
=>
import
(
'@/views/token/index.vue'
),
component
:
()
=>
import
(
"@/views/token/index.vue"
),
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
},
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
},
children
:
[
children
:
[
{
{
name
:
'tokenlistDefault'
,
name
:
"tokenlistDefault"
,
path
:
'/'
,
path
:
"/"
,
component
:
()
=>
import
(
'~/views/token/CustomTokenList.vue'
),
component
:
()
=>
import
(
"~/views/token/CustomTokenList.vue"
),
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
},
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
,
},
},
},
{
{
name
:
'tokenList'
,
name
:
"tokenList"
,
path
:
'/:chain?/:page(
\\
d+)?'
,
path
:
"/:chain?/:page(
\\
d+)?"
,
component
:
()
=>
import
(
'~/views/token/CustomTokenList.vue'
),
component
:
()
=>
import
(
"~/views/token/CustomTokenList.vue"
),
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
},
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
true
,
},
},
},
],
],
},
},
{
{
name
:
'tokenDetail'
,
name
:
"tokenDetail"
,
path
:
'/:chain/:tb([a-zA-Z0-9_]{10,100})'
,
path
:
"/:chain/:tb([a-zA-Z0-9_]{10,100})"
,
component
:
()
=>
import
(
'@/views/detail/index.vue'
),
component
:
()
=>
import
(
"@/views/detail/index.vue"
),
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
false
},
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
false
},
},
},
{
{
path
:
'/analysis/:chain/:tb'
,
path
:
"/analysis/:chain/:tb"
,
name
:
'tokenAnalysis'
,
name
:
"tokenAnalysis"
,
component
:
()
=>
import
(
'@/views/analysis/index.vue'
),
component
:
()
=>
import
(
"@/views/analysis/index.vue"
),
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
false
},
meta
:
{
hasSearch
:
true
,
hasRollToken
:
true
,
footer
:
false
},
},
},
{
{
path
:
'/login/:code?'
,
path
:
"/login/:code?"
,
name
:
'login'
,
name
:
"login"
,
component
:
()
=>
import
(
'@/views/login/index.vue'
),
component
:
()
=>
import
(
"@/views/login/index.vue"
),
},
},
{
{
path
:
'/user'
,
path
:
"/user"
,
name
:
'userInfo'
,
name
:
"userInfo"
,
component
:
()
=>
import
(
'@/views/user/index.vue'
),
component
:
()
=>
import
(
"@/views/user/index.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
children
:
[
children
:
[
{
{
path
:
'/user/personal'
,
path
:
"/user/personal"
,
name
:
'personal'
,
name
:
"personal"
,
component
:
()
=>
import
(
'@/views/user/PersonalCenter.vue'
),
component
:
()
=>
import
(
"@/views/user/PersonalCenter.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
},
},
{
{
path
:
'/user/member'
,
path
:
"/user/member"
,
name
:
'member'
,
name
:
"member"
,
component
:
()
=>
import
(
'@/views/user/memberCenter.vue'
),
component
:
()
=>
import
(
"@/views/user/memberCenter.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
},
},
// 账单明细
// 账单明细
{
{
path
:
'/user/Billing'
,
path
:
"/user/Billing"
,
name
:
'Billing'
,
name
:
"Billing"
,
component
:
()
=>
import
(
'@/views/user/Billing.vue'
),
component
:
()
=>
import
(
"@/views/user/Billing.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
},
},
{
{
path
:
'/user/InviteWelfare'
,
path
:
"/user/InviteWelfare"
,
name
:
'InviteWelfare'
,
name
:
"InviteWelfare"
,
component
:
()
=>
import
(
'@/views/user/invitation.vue'
),
component
:
()
=>
import
(
"@/views/user/invitation.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
},
},
],
],
},
},
// 价值币筛选
// 价值币筛选
{
{
path
:
'/CoinFilter'
,
path
:
"/CoinFilter"
,
name
:
'CoinFilter'
,
name
:
"CoinFilter"
,
component
:
()
=>
import
(
'@/views/Private/CoinFilter/index.vue'
),
component
:
()
=>
import
(
"@/views/Private/CoinFilter/index.vue"
),
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
meta
:
{
hasSearch
:
false
,
hasRollToken
:
false
,
footer
:
false
},
},
},
],
],
...
...
components/SwitchLanguage.vue
View file @
2f1274d6
...
@@ -12,39 +12,45 @@
...
@@ -12,39 +12,45 @@
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
useI18n
}
from
'vue-i18n'
;
import
{
useI18n
}
from
"vue-i18n"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
type
:
{
type
:
{
type
:
String
,
type
:
String
,
default
:
'home'
,
default
:
"home"
,
},
},
});
});
const
{
locale
}
=
useI18n
();
const
{
locale
}
=
useI18n
();
// 回到客户端修改获取浏览器语言
// 回到客户端修改获取浏览器语言
if
(
process
.
client
)
{
if
(
process
.
client
)
{
let
lan
=
localStorage
.
getItem
(
'lang'
);
let
lan
=
localStorage
.
getItem
(
"lang"
);
if
(
navigator
.
language
===
'zh-CN'
||
navigator
.
language
===
'zh-TW'
)
{
if
(
navigator
.
language
===
"zh-CN"
||
navigator
.
language
===
"zh-TW"
)
{
lan
=
'cn'
;
lan
=
"cn"
;
}
else
if
(
navigator
.
language
==
'en'
)
{
}
else
if
(
navigator
.
language
==
"en"
)
{
lan
=
'en'
;
lan
=
"en"
;
}
}
if
(
lan
)
{
if
(
lan
)
{
locale
.
value
=
lan
;
locale
.
value
=
lan
;
}
}
}
}
watch
(
()
=>
locale
.
value
,
(
v
)
=>
{
console
.
log
(
v
);
}
);
const
languageOptions
=
[
const
languageOptions
=
[
{
{
label
:
'中文简体'
,
label
:
"中文简体"
,
value
:
'cn'
,
value
:
"cn"
,
},
},
{
{
label
:
'English'
,
label
:
"English"
,
value
:
'en'
,
value
:
"en"
,
},
},
];
];
const
changeLanguage
=
(
v
:
string
)
=>
{
const
changeLanguage
=
(
v
:
string
)
=>
{
locale
.
value
=
v
;
locale
.
value
=
v
;
localStorage
.
setItem
(
'lang'
,
v
);
localStorage
.
setItem
(
"lang"
,
v
);
};
};
</
script
>
</
script
>
...
@@ -58,7 +64,7 @@ const changeLanguage = (v: string) => {
...
@@ -58,7 +64,7 @@ const changeLanguage = (v: string) => {
:deep(.t-input__inner)
{
:deep(.t-input__inner)
{
font-weight
:
700
;
font-weight
:
700
;
font-size
:
15px
;
font-size
:
15px
;
font-family
:
'bold'
;
font-family
:
"bold"
;
}
}
}
}
</
style
>
</
style
>
middleware/index.global.ts
0 → 100644
View file @
2f1274d6
export
default
defineNuxtRouteMiddleware
(()
=>
{
if
(
process
.
client
)
{
let
lan
=
localStorage
.
getItem
(
"lang"
);
if
(
navigator
.
language
===
"zh-CN"
||
navigator
.
language
===
"zh-TW"
)
{
lan
=
"cn"
;
}
else
if
(
navigator
.
language
==
"en"
)
{
lan
=
"en"
;
}
if
(
lan
)
{
window
.
localStorage
.
setItem
(
"lang"
,
lan
);
}
}
});
views/Private/CoinFilter/index.vue
View file @
2f1274d6
...
@@ -4,6 +4,20 @@
...
@@ -4,6 +4,20 @@
</div>
</div>
</
template
>
</
template
>
<
script
lang=
"ts"
setup
></
script
>
<
script
lang=
"ts"
setup
>
const
{
data
}
=
await
useAsyncData
(
"hello"
,
()
=>
$fetch
(
"http://156.247.9.93:9501/v1/eth/indexV1"
),
{
// 在这里修改数据
transform
:
(
input
)
=>
{
// 这里的 input 就是从服务器请求获取的数据
console
.
log
(
input
);
// { status: 200, message: 'Success', list: [ 1, 2, 3 ] }
return
input
;
},
lazy
:
true
,
}
);
</
script
>
<
style
lang=
"less"
></
style
>
<
style
lang=
"less"
></
style
>
views/token/CustomTokenList.vue
View file @
2f1274d6
This diff is collapsed.
Click to expand it.
views/token/RightDetail.vue
View file @
2f1274d6
<
template
>
<
template
>
<div
class=
"right-detail-wrapper"
>
<
!--
<
div
class=
"right-detail-wrapper"
>
<div
class=
"right-header"
>
<div
class=
"right-header"
>
<template
v-for=
"item in headerBtns"
:key=
"item.value"
>
<template
v-for=
"item in headerBtns"
:key=
"item.value"
>
<t-button
<t-button
...
@@ -89,7 +89,6 @@
...
@@ -89,7 +89,6 @@
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 收藏 -->
<
template
v-if=
"CollectionOnload"
>
<
template
v-if=
"CollectionOnload"
>
<div
v-show=
"defaBtn == 'collection'"
>
<div
v-show=
"defaBtn == 'collection'"
>
<Collection></Collection>
<Collection></Collection>
...
@@ -106,26 +105,27 @@
...
@@ -106,26 +105,27 @@
></details-echarts>
></details-echarts>
</div>
</div>
</
template
>
</
template
>
</div>
</div>
-->
<div></div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
request
from
'@/utils/request'
;
import
request
from
"@/utils/request"
;
import
{
parsePercent
,
parseCoinAmount
}
from
'@/utils/tool'
;
import
{
parsePercent
,
parseCoinAmount
}
from
"@/utils/tool"
;
import
TimeTab
from
'./TimeTab.vue'
;
import
TimeTab
from
"./TimeTab.vue"
;
import
SecurityCheck
from
'./SecurityCheck.vue'
;
import
SecurityCheck
from
"./SecurityCheck.vue"
;
import
TokenInfo
from
'./TokenInfo.vue'
;
import
TokenInfo
from
"./TokenInfo.vue"
;
import
TokenPool
from
'./TokenPool.vue'
;
import
TokenPool
from
"./TokenPool.vue"
;
import
TokenSocialList
from
'./TokenSocialList.vue'
;
import
TokenSocialList
from
"./TokenSocialList.vue"
;
import
*
as
Cache
from
'@/utils/cache'
;
import
*
as
Cache
from
"@/utils/cache"
;
import
{
MessagePlugin
}
from
'tdesign-vue-next'
;
import
{
MessagePlugin
}
from
"tdesign-vue-next"
;
import
DetailsEcharts
from
'../analysis/detailsEcharts.vue'
;
import
DetailsEcharts
from
"../analysis/detailsEcharts.vue"
;
import
Detailsicon
from
'/public/images/svg/rightDetail/detailsicon.svg'
;
import
Detailsicon
from
"/public/images/svg/rightDetail/detailsicon.svg"
;
import
Favo
from
'/public/images/svg/rightDetail/favo.svg'
;
import
Favo
from
"/public/images/svg/rightDetail/favo.svg"
;
import
CollectionSvg
from
'/public/images/svg/rightDetail/colection.svg'
;
import
CollectionSvg
from
"/public/images/svg/rightDetail/colection.svg"
;
import
{
useI18n
}
from
'vue-i18n'
;
import
{
useI18n
}
from
"vue-i18n"
;
import
RightDetailHeader
from
'./rightDetailHeader'
;
import
RightDetailHeader
from
"./rightDetailHeader"
;
import
SubmitSocialInfo
from
'./SubmitSocialInfo'
;
import
SubmitSocialInfo
from
"./SubmitSocialInfo"
;
import
Collection
from
'./collection'
;
import
Collection
from
"./collection"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
{
t
,
locale
}
=
useI18n
();
const
{
t
,
locale
}
=
useI18n
();
// 通知表格收藏图表取消收藏
// 通知表格收藏图表取消收藏
...
@@ -134,16 +134,16 @@ const CollectionDe = CollectionDelete();
...
@@ -134,16 +134,16 @@ const CollectionDe = CollectionDelete();
// const initEchart = computed(() => store.getters['echart/gethasInit']);
// const initEchart = computed(() => store.getters['echart/gethasInit']);
const
headerBtns
=
computed
(()
=>
[
const
headerBtns
=
computed
(()
=>
[
{
{
label
:
t
(
'securityCheck.details'
),
label
:
t
(
"securityCheck.details"
),
value
:
'details'
,
value
:
"details"
,
},
},
{
{
label
:
t
(
'filter.Collection'
),
label
:
t
(
"filter.Collection"
),
value
:
'collection'
,
value
:
"collection"
,
},
},
{
{
label
:
t
(
'securityCheck.analysis'
),
label
:
t
(
"securityCheck.analysis"
),
value
:
'echart'
,
value
:
"echart"
,
},
},
]);
]);
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -155,52 +155,52 @@ const props = defineProps({
...
@@ -155,52 +155,52 @@ const props = defineProps({
mt
:
String
,
mt
:
String
,
up
:
Number
,
up
:
Number
,
});
});
const
emit
=
defineEmits
([
'update:setPool'
,
'SettwitterRul'
]);
const
emit
=
defineEmits
([
"update:setPool"
,
"SettwitterRul"
]);
const
r24h
=
ref
(
''
);
const
r24h
=
ref
(
""
);
const
numR24h
=
ref
(
''
);
const
numR24h
=
ref
(
""
);
// 收藏列表是否首次加载
// 收藏列表是否首次加载
const
CollectionOnload
=
ref
(
false
);
const
CollectionOnload
=
ref
(
false
);
// 判断当前路由,隐藏右侧详情box中的折线图模块
// 判断当前路由,隐藏右侧详情box中的折线图模块
const
currentRouter
=
router
.
currentRoute
.
value
.
name
;
const
currentRouter
=
router
.
currentRoute
.
value
.
name
;
const
currentTab
=
ref
(
'info'
);
const
currentTab
=
ref
(
"info"
);
const
isInCollection
=
ref
(
false
);
const
isInCollection
=
ref
(
false
);
// 默认选择detail按钮
// 默认选择detail按钮
const
defaBtn
=
ref
(
'details'
);
const
defaBtn
=
ref
(
"details"
);
const
ifDetails
=
ref
(
false
);
const
ifDetails
=
ref
(
false
);
const
WatchEcharts
=
useWatchEcharts
();
const
WatchEcharts
=
useWatchEcharts
();
// 传给详情折线图的tbname
// 传给详情折线图的tbname
const
tb
=
ref
(
''
);
const
tb
=
ref
(
""
);
// 点击pool才加载
// 点击pool才加载
const
isPool
=
ref
(
false
);
const
isPool
=
ref
(
false
);
const
PoolAddress
=
ref
(
''
);
const
PoolAddress
=
ref
(
""
);
// 当前链
// 当前链
const
chain
=
useChain
();
const
chain
=
useChain
();
const
tokenInfo
:
any
=
ref
({
const
tokenInfo
:
any
=
ref
({
avatar
:
''
,
avatar
:
""
,
token
:
''
,
token
:
""
,
pool
:
[],
pool
:
[],
});
});
const
getPriceRange
=
()
=>
{
const
getPriceRange
=
()
=>
{
const
{
up
,
r24h
:
proR24h
}
=
props
;
const
{
up
,
r24h
:
proR24h
}
=
props
;
if
((
proR24h
+
''
)[
0
]
==
'-'
)
{
if
((
proR24h
+
""
)[
0
]
==
"-"
)
{
// -,跌
// -,跌
let
newR24h
=
parseFloat
((
proR24h
+
''
).
replace
(
'-'
,
''
));
let
newR24h
=
parseFloat
((
proR24h
+
""
).
replace
(
"-"
,
""
));
// 原价
// 原价
let
oldPrice
=
props
.
up
/
(
1
-
newR24h
);
let
oldPrice
=
props
.
up
/
(
1
-
newR24h
);
numR24h
.
value
=
oldPrice
-
props
.
up
;
numR24h
.
value
=
oldPrice
-
props
.
up
;
numR24h
.
value
=
'-'
+
parseCoinAmount
(
numR24h
.
value
);
numR24h
.
value
=
"-"
+
parseCoinAmount
(
numR24h
.
value
);
}
else
if
(
proR24h
==
0
)
{
}
else
if
(
proR24h
==
0
)
{
numR24h
.
value
=
'+0'
;
numR24h
.
value
=
"+0"
;
}
else
{
}
else
{
// +,涨
// +,涨
// 原价
// 原价
let
oldPrice
=
props
.
up
/
(
proR24h
+
1
);
let
oldPrice
=
props
.
up
/
(
proR24h
+
1
);
numR24h
.
value
=
props
.
up
-
oldPrice
;
numR24h
.
value
=
props
.
up
-
oldPrice
;
numR24h
.
value
=
'+'
+
parseCoinAmount
(
numR24h
.
value
);
numR24h
.
value
=
"+"
+
parseCoinAmount
(
numR24h
.
value
);
}
}
r24h
.
value
=
parsePercent
(
proR24h
+
''
);
r24h
.
value
=
parsePercent
(
proR24h
+
""
);
if
(
r24h
.
value
[
0
]
!==
'-'
)
{
if
(
r24h
.
value
[
0
]
!==
"-"
)
{
r24h
.
value
=
'+'
+
r24h
.
value
;
r24h
.
value
=
"+"
+
r24h
.
value
;
}
}
};
};
watch
(
watch
(
...
@@ -214,13 +214,13 @@ watch(
...
@@ -214,13 +214,13 @@ watch(
watch
(
watch
(
()
=>
props
.
r24h
,
()
=>
props
.
r24h
,
(
v
)
=>
{
(
v
)
=>
{
if
(
typeof
v
!==
'undefined'
)
{
if
(
typeof
v
!==
"undefined"
)
{
getPriceRange
();
getPriceRange
();
}
}
}
}
);
);
const
btnLoad
=
(
value
:
string
)
=>
{
const
btnLoad
=
(
value
:
string
)
=>
{
if
(
currentRouter
==
'tokenAnalysis'
&&
value
==
'echart'
)
{
if
(
currentRouter
==
"tokenAnalysis"
&&
value
==
"echart"
)
{
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
@@ -236,7 +236,7 @@ watch(
...
@@ -236,7 +236,7 @@ watch(
);
);
// 流动池tab改变
// 流动池tab改变
const
changeTab
=
(
value
)
=>
{
const
changeTab
=
(
value
)
=>
{
if
(
value
===
'pool'
)
{
if
(
value
===
"pool"
)
{
isPool
.
value
=
true
;
isPool
.
value
=
true
;
}
}
};
};
...
@@ -250,31 +250,31 @@ const getTokenInfo = async () => {
...
@@ -250,31 +250,31 @@ const getTokenInfo = async () => {
},
},
});
});
result
.
marketCap
=
parseFloat
(
result
.
supply
*
result
.
up
+
''
).
toFixed
(
1
);
result
.
marketCap
=
parseFloat
(
result
.
supply
*
result
.
up
+
""
).
toFixed
(
1
);
result
.
tokenSub
=
''
;
result
.
tokenSub
=
""
;
if
(
result
.
token
)
{
if
(
result
.
token
)
{
result
.
tokenSub
=
result
.
tokenSub
=
result
.
token
.
substr
(
0
,
6
)
+
result
.
token
.
substr
(
0
,
6
)
+
'...'
+
"..."
+
result
.
token
.
substr
(
result
.
token
.
length
-
4
,
4
);
result
.
token
.
substr
(
result
.
token
.
length
-
4
,
4
);
}
}
// tbname-掩码
// tbname-掩码
result
.
tbnameSub
=
''
;
result
.
tbnameSub
=
""
;
result
.
n_tb
=
''
;
result
.
n_tb
=
""
;
if
(
props
.
tb
)
{
if
(
props
.
tb
)
{
// 先将d去掉
// 先将d去掉
result
.
n_tb
=
result
.
n_tb
=
props
.
tb
[
0
]
==
'd'
?
props
.
tb
.
slice
(
1
,
props
.
tb
.
length
)
:
props
.
tb
;
props
.
tb
[
0
]
==
"d"
?
props
.
tb
.
slice
(
1
,
props
.
tb
.
length
)
:
props
.
tb
;
result
.
tbnameSub
=
result
.
tbnameSub
=
result
.
n_tb
.
substr
(
0
,
6
)
+
result
.
n_tb
.
substr
(
0
,
6
)
+
'...'
+
"..."
+
result
.
n_tb
.
substr
(
result
.
n_tb
.
length
-
4
,
4
);
result
.
n_tb
.
substr
(
result
.
n_tb
.
length
-
4
,
4
);
}
}
isInCollection
.
value
=
Cache
.
hasSet
(
props
.
tb
);
isInCollection
.
value
=
Cache
.
hasSet
(
props
.
tb
);
Object
.
assign
(
tokenInfo
.
value
,
result
);
Object
.
assign
(
tokenInfo
.
value
,
result
);
// 如果有推特链接,提交给twitter组件解析
// 如果有推特链接,提交给twitter组件解析
if
(
'chat'
in
result
)
{
if
(
"chat"
in
result
)
{
emit
(
'SettwitterRul'
,
result
.
chat
.
twitter
);
emit
(
"SettwitterRul"
,
result
.
chat
.
twitter
);
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
);
console
.
log
(
e
);
...
@@ -284,7 +284,7 @@ const getTokenInfo = async () => {
...
@@ -284,7 +284,7 @@ const getTokenInfo = async () => {
watch
(
watch
(
()
=>
locale
.
value
,
()
=>
locale
.
value
,
(
v
)
=>
{
(
v
)
=>
{
if
(
defaBtn
.
value
==
'echart'
)
{
if
(
defaBtn
.
value
==
"echart"
)
{
WatchEcharts
.
value
+=
1
;
WatchEcharts
.
value
+=
1
;
}
}
}
}
...
@@ -292,16 +292,16 @@ watch(
...
@@ -292,16 +292,16 @@ watch(
// 点击查看token详情信息
// 点击查看token详情信息
// v-if v-show同时使用,折线图第一次加载后,不在使用v-if,减少请求
// v-if v-show同时使用,折线图第一次加载后,不在使用v-if,减少请求
const
gotoDetail
=
(
value
)
=>
{
const
gotoDetail
=
(
value
)
=>
{
if
(
value
==
'collection'
&&
!
CollectionOnload
.
value
)
{
if
(
value
==
"collection"
&&
!
CollectionOnload
.
value
)
{
CollectionOnload
.
value
=
true
;
CollectionOnload
.
value
=
true
;
}
}
// 先判断是否有token,没有则禁止打开折线图模块
// 先判断是否有token,没有则禁止打开折线图模块
if
(
!
props
.
tb
&&
value
===
'echart'
)
{
if
(
!
props
.
tb
&&
value
===
"echart"
)
{
MessagePlugin
.
closeAll
();
MessagePlugin
.
closeAll
();
MessagePlugin
.
warning
(
t
(
'MessagePlugin.plToken'
));
MessagePlugin
.
warning
(
t
(
"MessagePlugin.plToken"
));
return
;
return
;
}
}
if
(
value
===
'echart'
)
{
if
(
value
===
"echart"
)
{
tb
.
value
=
props
.
tb
;
tb
.
value
=
props
.
tb
;
ifDetails
.
value
=
true
;
ifDetails
.
value
=
true
;
}
}
...
@@ -316,14 +316,14 @@ const monitor = computed((value) => {
...
@@ -316,14 +316,14 @@ const monitor = computed((value) => {
// 接收右侧详情流动池address
// 接收右侧详情流动池address
const
changePool
=
(
PoolValue
)
=>
{
const
changePool
=
(
PoolValue
)
=>
{
PoolAddress
.
value
=
PoolValue
;
PoolAddress
.
value
=
PoolValue
;
emit
(
'update:setPool'
,
PoolValue
);
emit
(
"update:setPool"
,
PoolValue
);
};
};
watch
(
watch
(
()
=>
props
.
token
,
()
=>
props
.
token
,
(
v
)
=>
{
(
v
)
=>
{
if
(
v
)
{
if
(
v
)
{
//如果折线图为隐藏状态,需注销折线图模块
//如果折线图为隐藏状态,需注销折线图模块
if
(
defaBtn
.
value
!=
'echart'
)
{
if
(
defaBtn
.
value
!=
"echart"
)
{
ifDetails
.
value
=
false
;
ifDetails
.
value
=
false
;
}
}
tb
.
value
=
props
.
tb
;
tb
.
value
=
props
.
tb
;
...
@@ -333,8 +333,8 @@ watch(
...
@@ -333,8 +333,8 @@ watch(
);
);
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
@import
'@/style/flex.less'
;
@import
"@/style/flex.less"
;
@import
'@/style/variables.less'
;
@import
"@/style/variables.less"
;
.right-detail-wrapper
{
.right-detail-wrapper
{
height
:
calc
(
100vh
-
70px
);
height
:
calc
(
100vh
-
70px
);
flex
:
1
;
flex
:
1
;
...
@@ -362,7 +362,7 @@ watch(
...
@@ -362,7 +362,7 @@ watch(
font-size
:
14px
;
font-size
:
14px
;
margin
:
0
;
margin
:
0
;
padding
:
0
;
padding
:
0
;
font-family
:
'Regular'
;
font-family
:
"Regular"
;
.details-icon-cl
{
.details-icon-cl
{
width
:
30px
;
width
:
30px
;
fill
:
var
(
--td-search-btn-back-1
);
fill
:
var
(
--td-search-btn-back-1
);
...
@@ -438,7 +438,7 @@ watch(
...
@@ -438,7 +438,7 @@ watch(
border-bottom-left-radius
:
@
border-radius
;
border-bottom-left-radius
:
@
border-radius
;
border-bottom-right-radius
:
@
border-radius
;
border-bottom-right-radius
:
@
border-radius
;
.t-tabs__nav-item-text-wrapper
{
.t-tabs__nav-item-text-wrapper
{
font-family
:
'Medium'
;
font-family
:
"Medium"
;
}
}
.t-tabs__header
{
.t-tabs__header
{
background-color
:
var
(
--td--right-back-color-2
);
background-color
:
var
(
--td--right-back-color-2
);
...
...
views/token/index.vue
View file @
2f1274d6
<!--
* @Author: lei 2897821407@qq.com
* @Date: 2023-02-20 19:44:54
* @LastEditors: lei 2897821407@qq.com
* @LastEditTime: 2023-02-20 20:00:08
* @FilePath: \dexfilter-web-nuxt3\views\token\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<
template
>
<
template
>
<MyLayout>
<MyLayout>
<template
#
content
>
<template
#
content
>
...
@@ -29,24 +37,24 @@
...
@@ -29,24 +37,24 @@
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
MyLayout
from
'@/views/layout/layout.vue'
;
import
MyLayout
from
"@/views/layout/layout.vue"
;
import
RightDetail
from
'@/views/token/RightDetail.vue'
;
import
RightDetail
from
"@/views/token/RightDetail.vue"
;
import
TokenFilter
from
'@/views/token/TokenFilter.vue'
;
import
TokenFilter
from
"@/views/token/TokenFilter.vue"
;
import
RollToken
from
'@/views/layout/rollToken.vue'
;
import
RollToken
from
"@/views/layout/rollToken.vue"
;
const
route
=
useRoute
();
const
route
=
useRoute
();
const
token
=
ref
();
const
token
=
ref
();
const
TbName
=
ref
();
const
TbName
=
ref
();
const
r24h
=
ref
();
const
r24h
=
ref
();
const
up
=
ref
();
const
up
=
ref
();
const
chain
=
useChain
();
const
chain
=
useChain
();
const
currentPath
=
ref
(
''
);
const
currentPath
=
ref
(
""
);
const
getUa
=
()
=>
{
const
getUa
=
()
=>
{
if
(
if
(
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i
.
test
(
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i
.
test
(
navigator
.
userAgent
navigator
.
userAgent
)
)
)
{
)
{
window
.
location
.
href
=
'http://m.dexfilter.com'
;
window
.
location
.
href
=
"http://m.dexfilter.com"
;
}
}
};
};
onBeforeMount
(()
=>
{
onBeforeMount
(()
=>
{
...
@@ -68,7 +76,7 @@ const changeChain = (chain) => {
...
@@ -68,7 +76,7 @@ const changeChain = (chain) => {
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
@import
'@/style/variables.less'
;
@import
"@/style/variables.less"
;
.home-wrapper
{
.home-wrapper
{
width
:
100vw
;
width
:
100vw
;
display
:
flex
;
display
:
flex
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment