Commit e8094c7a by lei

1

parent 5a05cab1
...@@ -76,6 +76,8 @@ export default defineNuxtConfig({ ...@@ -76,6 +76,8 @@ export default defineNuxtConfig({
}, },
// rollupOptions: { // rollupOptions: {
// output: { // output: {
// // 最小包体积--实验性的,目前还不稳定
// experimentalMinChunkSize:10000,
// manualChunks: { // manualChunks: {
// CustomEcharts: ["echarts"], // CustomEcharts: ["echarts"],
// }, // },
......
import { defineNuxtPlugin } from "#app"; import { defineNuxtPlugin } from "#app";
import { import {
Button as TButton, Button as TButton,
Content as TContent,
Layout as Tlayout,
Input as TInput, Input as TInput,
Loading as TLoading, Loading as TLoading,
TabPanel as TTabPanel, TabPanel as TTabPanel,
Tabs as TTabs,
Tooltip as TTooltip, Tooltip as TTooltip,
Select as TSelect, Select as TSelect,
Popup as TPopup, Popup as TPopup,
...@@ -19,12 +16,9 @@ import { ...@@ -19,12 +16,9 @@ import {
} from "tdesign-vue-next"; } from "tdesign-vue-next";
const components = [ const components = [
TButton, TButton,
TContent,
Tlayout,
TInput, TInput,
TLoading, TLoading,
TTabPanel, TTabPanel,
TTabs,
TTooltip, TTooltip,
TSelect, TSelect,
TPopup, TPopup,
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<HomeLogo v-if="mode !== 'dark'" class="home-logo"></HomeLogo> <HomeLogo v-if="mode !== 'dark'" class="home-logo"></HomeLogo>
<HomeLogo2 v-else class="home-logo"></HomeLogo2> <HomeLogo2 v-else class="home-logo"></HomeLogo2>
</NuxtLink> </NuxtLink>
<div class="header-operate-left" v-if="true"> <div class="header-operate-left">
<Search v-if="route.meta.hasSearch"></Search> <Search v-if="route.meta.hasSearch"></Search>
</div> </div>
<a class="join-us" :href="tgUrl" target="_blank"> <a class="join-us" :href="tgUrl" target="_blank">
...@@ -29,12 +29,14 @@ ...@@ -29,12 +29,14 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import LoginDropdown from "./LoginDropdown.vue";
import Foxwallet from "./Foxwallet.vue"; import Foxwallet from "./Foxwallet.vue";
import Search from "./Search.vue";
import HomeLogo from "/public/images/svg/header/homeLogoLight.svg"; import HomeLogo from "/public/images/svg/header/homeLogoLight.svg";
import HomeLogo2 from "/public/images/svg/header/homeLogoDark.svg"; import HomeLogo2 from "/public/images/svg/header/homeLogoDark.svg";
import { tgUrl } from "@/utils/open"; import { tgUrl } from "@/utils/open";
import ChangeTheme from "@/views/CustomComponent/changeTheme.vue";
import { HeadMenu as THeadMenu } from "tdesign-vue-next";
const Search = defineAsyncComponent(() => import("./Search.vue"));
const LoginDropdown = defineAsyncComponent(() => import("./LoginDropdown.vue"));
const mode = useCurTheme(); const mode = useCurTheme();
const route = useRoute(); const route = useRoute();
</script> </script>
......
...@@ -19,7 +19,11 @@ ...@@ -19,7 +19,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import Header from "./Header.vue"; import Header from "./Header.vue";
import Footer from "./Footer.vue"; import Footer from "./Footer.vue";
import { Header as THeader } from "tdesign-vue-next"; import {
Header as THeader,
Content as TContent,
Layout as TLayout,
} from "tdesign-vue-next";
const route = useRoute(); const route = useRoute();
</script> </script>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<span v-else @click="goHome"> <span v-else @click="goHome">
<leftLogoDarkSvg></leftLogoDarkSvg> <leftLogoDarkSvg></leftLogoDarkSvg>
</span> </span>
<div class="home" @click="goHome">{{ $t('login.goHome') }}</div> <div class="home" @click="goHome">{{ $t("login.goHome") }}</div>
</div> </div>
<div class="login-block"> <div class="login-block">
<register <register
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<ChangeTheme></ChangeTheme> <ChangeTheme></ChangeTheme>
</div> </div>
<div class="right-box"> <div class="right-box">
<p>{{ $t('login.h2') }}</p> <p>{{ $t("login.h2") }}</p>
<span v-if="mode === 'light'"> <span v-if="mode === 'light'">
<rightLogoLightSvg></rightLogoLightSvg> <rightLogoLightSvg></rightLogoLightSvg>
</span> </span>
...@@ -42,26 +42,27 @@ ...@@ -42,26 +42,27 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Login from '@/views/login/Login.vue'; import Login from "@/views/login/Login.vue";
import Register from '@/views/login/Register.vue'; import Register from "@/views/login/Register.vue";
import ResetPassword from '@/views/login/ResetPassword.vue'; import ResetPassword from "@/views/login/ResetPassword.vue";
import leftLogoLightSvg from '/public/images/svg/login/homeLogo.svg'; import leftLogoLightSvg from "/public/images/svg/login/homeLogo.svg";
import leftLogoDarkSvg from '/public/images/svg/login/leftdarkLogo.svg'; import leftLogoDarkSvg from "/public/images/svg/login/leftdarkLogo.svg";
import rightLogoLightSvg from '/public/images/svg/login/favicon-light.svg'; import rightLogoLightSvg from "/public/images/svg/login/favicon-light.svg";
import rightLogoDarkSvg from '/public/images/svg/login/rightdarkLogo.svg'; import rightLogoDarkSvg from "/public/images/svg/login/rightdarkLogo.svg";
import { webLogo } from '@/constants/logo'; import { webLogo } from "@/constants/logo";
import ChangeTheme from "@/views/CustomComponent/changeTheme.vue";
useHead({ useHead({
title: 'Dexfilter | Login', title: "Dexfilter | Login",
link: [webLogo], link: [webLogo],
}); });
const route = useRoute(); const route = useRoute();
// 当前主题 // 当前主题
const mode = useCurTheme(); const mode = useCurTheme();
const InvitCode = route.params.code + ''; const InvitCode = route.params.code + "";
// 如果链接中带了邀请码,切换到注册页面 // 如果链接中带了邀请码,切换到注册页面
onMounted(() => { onMounted(() => {
if (InvitCode) { if (InvitCode) {
type.value = 'register'; type.value = "register";
} }
}); });
const type = ref(route.query.type); const type = ref(route.query.type);
...@@ -72,13 +73,13 @@ const goBtn = (val: string) => { ...@@ -72,13 +73,13 @@ const goBtn = (val: string) => {
const goHome = () => { const goHome = () => {
router.push({ router.push({
path: '/', path: "/",
}); });
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '@/style/variables.less'; @import "@/style/variables.less";
@import '@/style/flex.less'; @import "@/style/flex.less";
.login-wrapper { .login-wrapper {
background-color: var(--td-bg-color-page); background-color: var(--td-bg-color-page);
display: flex; display: flex;
......
...@@ -117,7 +117,7 @@ import TokenInfo from "./TokenInfo.vue"; ...@@ -117,7 +117,7 @@ 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, Tabs as TTabs } from "tdesign-vue-next";
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";
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
</div> </div>
<div class="userinfo-vip"> <div class="userinfo-vip">
<span style="font-size: 20px"> <span style="font-size: 20px">
{{ userInfo.name ?? '---' }} {{ userInfo.name ?? "---" }}
</span> </span>
<p>{{ userInfo.vip_type ?? '免费会员' }}</p> <p>{{ userInfo.vip_type ?? "免费会员" }}</p>
</div> </div>
</div> </div>
<div style="display: none"> <div style="display: none">
...@@ -40,32 +40,33 @@ ...@@ -40,32 +40,33 @@
</template> </template>
<script lang="tsx" setup> <script lang="tsx" setup>
import MyLayout from '@/views/layout/layout.vue'; import MyLayout from "@/views/layout/layout.vue";
import PersonalCenter from '@/views/user/PersonalCenter.vue'; import PersonalCenter from "@/views/user/PersonalCenter.vue";
import MemberCenter from '@/views/user/memberCenter.vue'; import MemberCenter from "@/views/user/memberCenter.vue";
import Invitation from '@/views/user/invitation.vue'; import Invitation from "@/views/user/invitation.vue";
import Billing from '@/views/user/Billing.vue'; import Billing from "@/views/user/Billing.vue";
import Logout from '@/views/user/logout.vue'; import Logout from "@/views/user/logout.vue";
import userTwoSvg from '/public/images/svg/header/userTwo.svg'; import userTwoSvg from "/public/images/svg/header/userTwo.svg";
import vipSvg from '/public/images/svg/header/vip.svg'; import vipSvg from "/public/images/svg/header/vip.svg";
import collectSvg from '/public/images/svg/header/collect.svg'; import collectSvg from "/public/images/svg/header/collect.svg";
import BillSvg from '/public/images/svg/header/Bill.svg'; import BillSvg from "/public/images/svg/header/Bill.svg";
import logoutSvg from '/public/images/svg/header/logout.svg'; import logoutSvg from "/public/images/svg/header/logout.svg";
import request from '@/utils/request'; import request from "@/utils/request";
import { useI18n } from 'vue-i18n'; import { useI18n } from "vue-i18n";
import { webLogo } from '@/constants/logo'; import { webLogo } from "@/constants/logo";
import { Tabs as TTabs } from "tdesign-vue-next";
useHead({ useHead({
title: 'Dexfilter | User', title: "Dexfilter | User",
meta: [ meta: [
{ {
name: 'description', name: "description",
content: 'Dexfilter-用户中心,可管理自己的账户', content: "Dexfilter-用户中心,可管理自己的账户",
}, },
], ],
link: [webLogo], link: [webLogo],
}); });
const route = useRoute(); const route = useRoute();
const Cookie = useCookie('userCookie'); const Cookie = useCookie("userCookie");
const router = useRouter(); const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const tableValue = ref(route.name); const tableValue = ref(route.name);
...@@ -86,55 +87,55 @@ const tabList = [ ...@@ -86,55 +87,55 @@ const tabList = [
label: () => ( label: () => (
<div class="tab-label"> <div class="tab-label">
<userTwoSvg /> <userTwoSvg />
<p>{t('user.IndividualCenter')}</p> <p>{t("user.IndividualCenter")}</p>
</div> </div>
), ),
value: 'personal', value: "personal",
panel: () => <PersonalCenter></PersonalCenter>, panel: () => <PersonalCenter></PersonalCenter>,
}, },
{ {
label: () => ( label: () => (
<div class="tab-label"> <div class="tab-label">
<vipSvg /> <vipSvg />
<p>{t('user.MemberCenter')}</p> <p>{t("user.MemberCenter")}</p>
</div> </div>
), ),
value: 'member', value: "member",
panel: () => <MemberCenter></MemberCenter>, panel: () => <MemberCenter></MemberCenter>,
}, },
{ {
label: () => ( label: () => (
<div class="tab-label"> <div class="tab-label">
<collectSvg /> <collectSvg />
<p>{t('user.InvitationCenter')}</p> <p>{t("user.InvitationCenter")}</p>
</div> </div>
), ),
value: 'InviteWelfare', value: "InviteWelfare",
panel: () => <Invitation></Invitation>, panel: () => <Invitation></Invitation>,
}, },
{ {
label: () => ( label: () => (
<div class="tab-label"> <div class="tab-label">
<BillSvg /> <BillSvg />
<p>{t('user.BillingDetails')}</p> <p>{t("user.BillingDetails")}</p>
</div> </div>
), ),
value: 'Billing', value: "Billing",
panel: () => <Billing></Billing>, panel: () => <Billing></Billing>,
}, },
{ {
label: () => ( label: () => (
<div class="tab-label"> <div class="tab-label">
<logoutSvg /> <logoutSvg />
<p>{t('user.Logout')}</p> <p>{t("user.Logout")}</p>
</div> </div>
), ),
value: 'logout', value: "logout",
panel: () => <Logout></Logout>, panel: () => <Logout></Logout>,
}, },
]; ];
const tabchange = (value: string) => { const tabchange = (value: string) => {
if (value === 'logout') { if (value === "logout") {
return; return;
} }
tableValue.value = value; tableValue.value = value;
...@@ -154,7 +155,7 @@ onMounted(() => { ...@@ -154,7 +155,7 @@ onMounted(() => {
getUserInfo(); getUserInfo();
}); });
const getUserInfo = async () => { const getUserInfo = async () => {
const result: any = await request.get('/api/user/info', { const result: any = await request.get("/api/user/info", {
headers: { headers: {
authorization: `Bearer ${Cookie.value}`, authorization: `Bearer ${Cookie.value}`,
}, },
...@@ -167,8 +168,8 @@ const getUserInfo = async () => { ...@@ -167,8 +168,8 @@ const getUserInfo = async () => {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import '@/style/variables.less'; @import "@/style/variables.less";
@import '@/style/flex.less'; @import "@/style/flex.less";
.user-info-box { .user-info-box {
background: @td--right-back-color-2; background: @td--right-back-color-2;
box-sizing: border-box; box-sizing: border-box;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment