Skip to content

Commit ba9faaa

Browse files
committed
deploy
1 parent 064c548 commit ba9faaa

File tree

18 files changed

+1021
-588
lines changed

18 files changed

+1021
-588
lines changed

.vitepress/config.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,10 @@ _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
154154
text: 'Go-Ldap-Admin openLDAP后台管理项目',
155155
link: 'https://ldapdoc.eryajf.net',
156156
},
157+
{
158+
text: 'TOPIAM 单点登录与统一身份认证平台',
159+
link: 'https://topiam.cn',
160+
},
157161
{
158162
text: '交换友链 ?',
159163
link: '/links',
@@ -163,14 +167,16 @@ _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
163167
],
164168
socialLinks: [
165169
{
166-
icon: {
167-
svg: '<svg t="1663266323098" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2880" width="200" height="200"><path d="M512 1024C230.4 1024 0 793.6 0 512S230.4 0 512 0s512 230.4 512 512-230.4 512-512 512z m259.2-569.6H480c-12.8 0-25.6 12.8-25.6 25.6v64c0 12.8 12.8 25.6 25.6 25.6h176c12.8 0 25.6 12.8 25.6 25.6v12.8c0 41.6-35.2 76.8-76.8 76.8h-240c-12.8 0-25.6-12.8-25.6-25.6V416c0-41.6 35.2-76.8 76.8-76.8h355.2c12.8 0 25.6-12.8 25.6-25.6v-64c0-12.8-12.8-25.6-25.6-25.6H416c-105.6 0-188.8 86.4-188.8 188.8V768c0 12.8 12.8 25.6 25.6 25.6h374.4c92.8 0 169.6-76.8 169.6-169.6v-144c0-12.8-12.8-25.6-25.6-25.6z" p-id="2881"></path></svg>',
168-
},
170+
icon: 'github',
171+
link: 'https://github.com/fantastic-admin/basic',
172+
},
173+
{
174+
icon: 'gitee',
169175
link: 'https://gitee.com/fantastic-admin/basic',
170176
},
171177
{
172-
icon: 'github',
173-
link: 'https://github.com/fantastic-admin/basic',
178+
icon: 'gitcode',
179+
link: 'https://gitcode.com/fantastic-admin/basic',
174180
},
175181
],
176182
sidebar: {
@@ -294,6 +300,7 @@ _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
294300
{ text: 'FaCheckbox 复选框', link: '/components/fa-checkbox' },
295301
{ text: 'FaCodePreview 代码预览', link: '/components/fa-code-preview' },
296302
{ text: 'FaCode 代码块', link: '/components/fa-code' },
303+
{ text: 'FaCollapsible 折叠面板', link: '/components/fa-collapsible' },
297304
{ text: 'FaCountTo 计数到', link: '/components/fa-count-to' },
298305
{ text: 'FaDigitalCard 数字卡片', link: '/components/fa-digital-card' },
299306
{ text: 'FaDivider 分割线', link: '/components/fa-divider' },
@@ -332,6 +339,7 @@ _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
332339
{ text: 'FaSearchBar 搜索面板', link: '/components/fa-search-bar' },
333340
{ text: 'FaSelect 选择器', link: '/components/fa-select' },
334341
{ text: 'FaSlider 滑块', link: '/components/fa-slider' },
342+
{ text: 'FaSmoothSwipe 平滑滑动', link: '/components/fa-smooth-swipe' },
335343
{ text: 'FaSparklesText 闪烁文字', link: '/components/fa-sparkles-text' },
336344
{ text: 'FaSparkline 迷你图', link: '/components/fa-sparkline' },
337345
{ text: 'FaSpotlightCard 聚光卡片', link: '/components/fa-spotlight-card' },
@@ -342,6 +350,7 @@ _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
342350
{ text: 'FaTimeAgo 可阅读时间', link: '/components/fa-time-ago' },
343351
{ text: 'FaTimeline 时间线', link: '/components/fa-timeline' },
344352
{ text: 'FaTooltip 文字提示', link: '/components/fa-tooltip' },
353+
{ text: 'FaTree 树形控件', link: '/components/fa-tree' },
345354
{ text: 'FaToast 轻提示', link: '/components/fa-toast' },
346355
{ text: 'FaTrend 趋势标记', link: '/components/fa-trend' },
347356
],

.vitepress/theme/components/ActivityCountdown.vue

Lines changed: 60 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,20 @@
22
import { onMounted, ref } from 'vue'
33
44
const isVisible = ref(false)
5+
const isCountdownToStart = ref(false) // 是否为活动开始倒计时
6+
const isClickable = ref(true) // 是否可以点击跳转
7+
8+
const start = new Date('2025/09/17').getTime()
9+
const deadline = new Date('2025/10/18').getTime()
10+
const preStartTime = start - (5 * 24 * 60 * 60 * 1000) // 活动开始前5天的时间
511
6-
const start = new Date('2024/10/17').getTime()
7-
const deadline = new Date('2024/11/18').getTime()
812
const text = ref('')
913
const countdownInterval = ref()
1014
1115
function clickBanner() {
12-
location.href = '/buy-4yr'
16+
if (isClickable.value) {
17+
location.href = '/buy-anniversary'
18+
}
1319
}
1420
1521
function closeBanner() {
@@ -18,31 +24,58 @@ function closeBanner() {
1824
document.documentElement.classList.remove('mirror-site-menu-fixed')
1925
}
2026
27+
function formatTime(distance: number) {
28+
const days = Math.floor(distance / (1000 * 60 * 60 * 24))
29+
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
30+
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60))
31+
const seconds = Math.floor((distance % (1000 * 60)) / 1000)
32+
return `${days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒`
33+
}
34+
2135
onMounted(() => {
22-
isVisible.value = new Date().getTime() > start && new Date().getTime() < deadline
23-
if (isVisible.value) {
36+
const now = new Date().getTime()
37+
38+
// 判断是否在显示时间范围内(活动开始前7天到活动结束)
39+
const shouldShow = now >= preStartTime && now < deadline
40+
41+
if (shouldShow) {
42+
isVisible.value = true
43+
isCountdownToStart.value = now < start
44+
isClickable.value = now >= start // 只有在活动开始后才能点击
45+
2446
countdownInterval.value = setInterval(() => {
25-
const distance = deadline - new Date().getTime()
26-
isVisible.value = distance > 0
27-
if (distance < 0) {
47+
const currentTime = new Date().getTime()
48+
49+
if (currentTime >= deadline) {
50+
// 活动结束
2851
closeBanner()
52+
return
53+
}
54+
55+
if (currentTime < start) {
56+
// 活动开始前倒计时
57+
isCountdownToStart.value = true
58+
isClickable.value = false
59+
const distance = start - currentTime
60+
text.value = `Fantastic-admin 五周年庆即将开始<i style="margin-left: 20px; font-size: 0.75em;">距离活动开始还有 ${formatTime(distance)}</i>`
2961
}
3062
else {
31-
const days = Math.floor(distance / (1000 * 60 * 60 * 24))
32-
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
33-
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60))
34-
const seconds = Math.floor((distance % (1000 * 60)) / 1000)
35-
text.value = `Fantastic-admin 四周年庆,全年最低价,点击查看<i style="margin-left: 20px; font-size: 0.75em;">距离活动结束还有 ${days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒</i>`
63+
// 活动进行中倒计时
64+
isCountdownToStart.value = false
65+
isClickable.value = true
66+
const distance = deadline - currentTime
67+
text.value = `Fantastic-admin 五周年庆,全年最低价,点击查看<i style="margin-left: 20px; font-size: 0.75em;">距离活动结束还有 ${formatTime(distance)}</i>`
3668
}
3769
}, 1000)
70+
3871
document.documentElement.classList.add('mirror-site-menu-fixed')
3972
}
4073
})
4174
</script>
4275

4376
<template>
4477
<div v-if="isVisible" class="banner-wrapper" role="banner">
45-
<div id="banner" @click="clickBanner">
78+
<div id="banner" :class="{ 'clickable': isClickable, 'non-clickable': !isClickable }" @click="clickBanner">
4679
<div class="content" v-html="text" />
4780
<button id="banner-close" @click.stop="closeBanner">
4881
<span class="close">&times;</span>
@@ -78,9 +111,22 @@ onMounted(() => {
78111
justify-content: center;
79112
align-items: center;
80113
overflow: hidden;
114+
transition: all 0.3s ease;
115+
}
116+
117+
#banner.clickable {
81118
cursor: pointer;
82119
}
83120
121+
#banner.clickable:hover {
122+
background: rgba(255, 255, 255, 0.05);
123+
}
124+
125+
#banner.non-clickable {
126+
cursor: default;
127+
opacity: 0.8;
128+
}
129+
84130
#banner .content {
85131
margin: 0;
86132
padding: 0;

buy-anniversary.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<script setup>
2+
import { withBase } from 'vitepress'
3+
</script>
4+
5+
# 五周年庆
6+
7+
**全年最低价**,优惠力度**低至8折**
8+
9+
> 自 2020/10/17 发布以来,Fantastic-admin 一直致力于为开发者提供舒适的开发体验。
10+
>
11+
> 为了庆祝发布五周年,我们将在 **2025/09/17** - **2025/10/17** 期间推出一系列优惠,助您提升工作效率,体验更优质的服务。
12+
>
13+
> 注:已经在使用基础版的用户,购买专业版后可以将业务代码直接拷贝至专业版,实现无缝升级。
14+
15+
## 个人优惠
16+
17+
### 优惠 1️⃣
18+
19+
个人购买 Fantastic-admin 专业版,在原有优惠力度上(原899元),再享 8 折优惠
20+
21+
周年庆特价 **719** 元(立减 **180** 元)
22+
23+
### 优惠 2️⃣
24+
25+
个人购买 Fantastic-admin 专业版 + Fantastic-mobile 专业版,在原有优惠力度上(原1099元),再享 9 折优惠
26+
27+
周年庆特价 **989** 元(立减 **110** 元)
28+
29+
### 优惠 3️⃣
30+
31+
个人购买 Fantastic-admin 专业版 + One-step-admin 专业版,在原有优惠力度上(原1299元),再享 9 折优惠
32+
33+
周年庆特价 **1169** 元(立减 **130** 元)
34+
35+
### 优惠 4️⃣
36+
37+
个人购买 Fantastic-admin 专业版 + One-step-admin 专业版 + Fantastic-mobile 专业版,在原有优惠力度上(原1499元),再享 9 折优惠
38+
39+
周年庆特价 **1349** 元(立减 **150** 元)
40+
41+
## 企业优惠
42+
43+
> 周年庆价格不提供开票
44+
45+
企业购买 Fantastic-admin 专业版,在原有优惠力度上(原3599元),再享 8 折优惠
46+
47+
周年庆特价 **2879** 元(立减 **720** 元)
48+
49+
## 老客优惠
50+
51+
> 补差价升级不提供开票
52+
53+
已购买过 Fantastic-admin 专业版的个人用户,可以以企业周年庆特价进行补差价升级到企业用户,补差价金额为:
54+
55+
补差价 **1980** 元(2879 元 - 899 元)
56+
57+
## 购买请直接联系作者
58+
59+
<p align="center"><img :src="withBase('/friend-wechat.png')" width="300" /></p>

0 commit comments

Comments
 (0)