Merge branch 'main' of repo.leafdev.top:Leaf/amber-ui
All checks were successful
Build / build (push) Successful in 1m32s
All checks were successful
Build / build (push) Successful in 1m32s
This commit is contained in:
commit
71cfbb722a
@ -68,6 +68,9 @@
|
|||||||
"onWatcherCleanup": true,
|
"onWatcherCleanup": true,
|
||||||
"useId": true,
|
"useId": true,
|
||||||
"useModel": true,
|
"useModel": true,
|
||||||
"useTemplateRef": true
|
"useTemplateRef": true,
|
||||||
|
"DirectiveBinding": true,
|
||||||
|
"MaybeRef": true,
|
||||||
|
"MaybeRefOrGetter": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ spec:
|
|||||||
- name: leaf
|
- name: leaf
|
||||||
containers:
|
containers:
|
||||||
- name: amber
|
- name: amber
|
||||||
image: leafdev.top/leaf/amber-ui:dbdc39f
|
image: leafdev.top/leaf/amber-ui:7fc0dac
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
7
src/auto-imports.d.ts
vendored
7
src/auto-imports.d.ts
vendored
@ -3,6 +3,7 @@
|
|||||||
// @ts-nocheck
|
// @ts-nocheck
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
// Generated by unplugin-auto-import
|
// Generated by unplugin-auto-import
|
||||||
|
// biome-ignore lint: disable
|
||||||
export {}
|
export {}
|
||||||
declare global {
|
declare global {
|
||||||
const EffectScope: typeof import('vue')['EffectScope']
|
const EffectScope: typeof import('vue')['EffectScope']
|
||||||
@ -67,7 +68,7 @@ declare global {
|
|||||||
// for type re-export
|
// for type re-export
|
||||||
declare global {
|
declare global {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
|
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
||||||
import('vue')
|
import('vue')
|
||||||
}
|
}
|
||||||
// for vue template auto import
|
// for vue template auto import
|
||||||
@ -105,6 +106,7 @@ declare module 'vue' {
|
|||||||
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
|
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
|
||||||
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
|
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
|
||||||
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
|
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
|
||||||
|
readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
|
||||||
readonly provide: UnwrapRef<typeof import('vue')['provide']>
|
readonly provide: UnwrapRef<typeof import('vue')['provide']>
|
||||||
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
|
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
|
||||||
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
|
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
|
||||||
@ -122,9 +124,12 @@ declare module 'vue' {
|
|||||||
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
||||||
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
|
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
|
||||||
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
|
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
|
||||||
|
readonly useId: UnwrapRef<typeof import('vue')['useId']>
|
||||||
|
readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
|
||||||
readonly useRoute: UnwrapRef<typeof import('vue-router/auto')['useRoute']>
|
readonly useRoute: UnwrapRef<typeof import('vue-router/auto')['useRoute']>
|
||||||
readonly useRouter: UnwrapRef<typeof import('vue-router/auto')['useRouter']>
|
readonly useRouter: UnwrapRef<typeof import('vue-router/auto')['useRouter']>
|
||||||
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
||||||
|
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
|
||||||
readonly watch: UnwrapRef<typeof import('vue')['watch']>
|
readonly watch: UnwrapRef<typeof import('vue')['watch']>
|
||||||
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
|
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
|
||||||
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
|
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
|
||||||
|
1
src/components.d.ts
vendored
1
src/components.d.ts
vendored
@ -9,7 +9,6 @@ declare module 'vue' {
|
|||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
AccountSettings: typeof import('./components/settings/AccountSettings.vue')['default']
|
AccountSettings: typeof import('./components/settings/AccountSettings.vue')['default']
|
||||||
AssistantMenu: typeof import('./components/AssistantMenu.vue')['default']
|
AssistantMenu: typeof import('./components/AssistantMenu.vue')['default']
|
||||||
AssistantPublistSettings: typeof import('./components/settings/AssistantPublistSettings.vue')['default']
|
|
||||||
AssistantSettings: typeof import('./components/settings/AssistantSettings.vue')['default']
|
AssistantSettings: typeof import('./components/settings/AssistantSettings.vue')['default']
|
||||||
Chat: typeof import('./components/chat/Chat.vue')['default']
|
Chat: typeof import('./components/chat/Chat.vue')['default']
|
||||||
ChatMenu: typeof import('./components/ChatMenu.vue')['default']
|
ChatMenu: typeof import('./components/ChatMenu.vue')['default']
|
||||||
|
23
src/main.ts
23
src/main.ts
@ -5,21 +5,23 @@ document.head.appendChild(meta);
|
|||||||
import "./styles/style.css";
|
import "./styles/style.css";
|
||||||
import "./styles/color.less";
|
import "./styles/color.less";
|
||||||
import "animate.css";
|
import "animate.css";
|
||||||
import { registerPlugins } from "./plugins";
|
|
||||||
|
import { createApp } from 'vue'
|
||||||
|
import App from './App.vue'
|
||||||
|
|
||||||
|
import naive from 'naive-ui'
|
||||||
|
|
||||||
import router from "./router";
|
import router from "./router";
|
||||||
|
import { registerPlugins } from "./plugins";
|
||||||
|
|
||||||
|
const app = createApp(App)
|
||||||
|
|
||||||
import App from "./App.vue";
|
app.use(naive)
|
||||||
import { createApp } from "vue";
|
|
||||||
|
|
||||||
const app = createApp(App);
|
|
||||||
|
|
||||||
|
|
||||||
registerPlugins(app);
|
registerPlugins(app);
|
||||||
|
|
||||||
app.use(router);
|
app.use(router);
|
||||||
|
|
||||||
|
|
||||||
// @ts-ignore ...
|
|
||||||
if (process.env.NODE_ENV === "production") {
|
if (process.env.NODE_ENV === "production") {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const appContainer = document.getElementById("app");
|
const appContainer = document.getElementById("app");
|
||||||
@ -28,7 +30,6 @@ if (process.env.NODE_ENV === "production") {
|
|||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const defaultLoader = document.getElementById("default-loader");
|
const defaultLoader = document.getElementById("default-loader");
|
||||||
// remove
|
|
||||||
defaultLoader?.remove();
|
defaultLoader?.remove();
|
||||||
}, 300);
|
}, 300);
|
||||||
|
|
||||||
@ -36,7 +37,9 @@ if (process.env.NODE_ENV === "production") {
|
|||||||
app.mount("#app");
|
app.mount("#app");
|
||||||
}, 300);
|
}, 300);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
appContainer!.style.opacity = "1";
|
if (appContainer) {
|
||||||
|
appContainer.style.opacity = "1";
|
||||||
|
}
|
||||||
}, 300);
|
}, 300);
|
||||||
}, 200);
|
}, 200);
|
||||||
} else {
|
} else {
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- Spotlight 区域 -->
|
<!-- Spotlight 区域 -->
|
||||||
<n-card class="spotlight" :bordered="false">
|
<n-card class="spotlight" :bordered="false">
|
||||||
<div class="background-pattern"></div>
|
|
||||||
<div class="background-text">
|
|
||||||
Leaflow <span class="background-amber">Amber</span>
|
|
||||||
</div>
|
|
||||||
<div class="spotlight-content">
|
<div class="spotlight-content">
|
||||||
<h1 class="title">Leaflow <span class="amber-text">Amber</span></h1>
|
<h1 class="title break-normal">
|
||||||
|
Leaflow <span class="amber-text">Amber</span>
|
||||||
|
</h1>
|
||||||
<p class="subtitle">
|
<p class="subtitle">
|
||||||
下一代智能体平台,为您的数字生活带来革命性变化
|
下一代智能体平台,为您的数字生活带来革命性变化
|
||||||
<br class="mobile-break" />
|
<br class="mobile-break" />
|
||||||
<a href="#" class="cta-link">立即体验 🚀</a>
|
<a @click="gotoLogin" class="cta-link cursor-pointer"
|
||||||
|
>立即体验 🚀</a
|
||||||
|
>
|
||||||
</p>
|
</p>
|
||||||
<div
|
<div
|
||||||
class="stats"
|
class="stats"
|
||||||
@ -85,17 +85,18 @@
|
|||||||
<!-- 功能特点展示 -->
|
<!-- 功能特点展示 -->
|
||||||
<div class="features-section">
|
<div class="features-section">
|
||||||
<h2 class="section-title">Amber 核心特性</h2>
|
<h2 class="section-title">Amber 核心特性</h2>
|
||||||
<n-grid :cols="3" :x-gap="24" :y-gap="24" responsive="screen">
|
<n-grid
|
||||||
<n-gi
|
cols="1 m:2 l:3 xl:3 2xl:3"
|
||||||
span="3 m:1"
|
:x-gap="24"
|
||||||
v-for="(feature, index) in features"
|
:y-gap="24"
|
||||||
:key="index"
|
responsive="screen"
|
||||||
>
|
>
|
||||||
|
<n-gi v-for="(feature, index) in features" :key="index">
|
||||||
<div
|
<div
|
||||||
class="feature-card"
|
class="feature-card"
|
||||||
@click="toggleFeatureDescription(feature)"
|
@click="toggleFeatureDescription(feature)"
|
||||||
>
|
>
|
||||||
<div class="feature-content">
|
<div>
|
||||||
<div class="feature-icon">{{ feature.icon }}</div>
|
<div class="feature-icon">{{ feature.icon }}</div>
|
||||||
<div class="feature-title">{{ feature.title }}</div>
|
<div class="feature-title">{{ feature.title }}</div>
|
||||||
<transition name="fade-height" mode="out-in">
|
<transition name="fade-height" mode="out-in">
|
||||||
@ -156,13 +157,17 @@ import {
|
|||||||
} from "naive-ui";
|
} from "naive-ui";
|
||||||
import { SchemaSiteUsageResponse } from "@/api";
|
import { SchemaSiteUsageResponse } from "@/api";
|
||||||
import getApi from "@/plugins/api";
|
import getApi from "@/plugins/api";
|
||||||
import grouppng from "@/assets/images/group.png";
|
import router from "@/router";
|
||||||
|
|
||||||
const osTheme = useOsTheme();
|
const osTheme = useOsTheme();
|
||||||
const theme = computed(() => (osTheme.value === "dark" ? darkTheme : null));
|
const theme = computed(() => (osTheme.value === "dark" ? darkTheme : null));
|
||||||
|
|
||||||
const siteUsage = ref<SchemaSiteUsageResponse>({});
|
const siteUsage = ref<SchemaSiteUsageResponse>({});
|
||||||
|
|
||||||
|
const gotoLogin = () => {
|
||||||
|
router.push("/auth/login");
|
||||||
|
};
|
||||||
|
|
||||||
const features = ref([
|
const features = ref([
|
||||||
{
|
{
|
||||||
icon: "💬",
|
icon: "💬",
|
||||||
@ -219,8 +224,7 @@ const partners = ref([
|
|||||||
name: "HiMCBBS 我的世界中文论坛",
|
name: "HiMCBBS 我的世界中文论坛",
|
||||||
logo: "https://www.himcbbs.com/data/assets/logo/wxmc_logo_text_blue.svg",
|
logo: "https://www.himcbbs.com/data/assets/logo/wxmc_logo_text_blue.svg",
|
||||||
link: "https://www.himcbbs.com/",
|
link: "https://www.himcbbs.com/",
|
||||||
description:
|
description: "中国我的世界玩家社区,提供游戏资讯、模组下载和创意分享。",
|
||||||
"中国最大的我的世界玩家社区,提供游戏资讯、模组下载和创意分享。",
|
|
||||||
},
|
},
|
||||||
// 可以在这里添加更多合作伙伴
|
// 可以在这里添加更多合作伙伴
|
||||||
]);
|
]);
|
||||||
@ -266,7 +270,6 @@ body {
|
|||||||
'theme ? "rgba(0, 0, 0, 0.5)" : "rgba(78, 187, 192, 0.1)"'
|
'theme ? "rgba(0, 0, 0, 0.5)" : "rgba(78, 187, 192, 0.1)"'
|
||||||
);
|
);
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
height: 70vh;
|
|
||||||
min-height: 500px;
|
min-height: 500px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
Loading…
Reference in New Issue
Block a user