Skip to content

Commit eaf473d

Browse files
committed
pricing page
1 parent d356901 commit eaf473d

File tree

11 files changed

+219
-5
lines changed

11 files changed

+219
-5
lines changed

docs/.vuepress/components/Pricing.vue

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<script lang="ts" setup>
2+
import { NButton, NCard, NGrid, NGridItem, NH1, NIcon, NSpace, NText } from "naive-ui";
3+
import Check from './icon/Check.vue'
4+
const data = {
5+
pricing: [
6+
{
7+
title: "Open Source",
8+
price: "Free",
9+
features: [
10+
"All platforms supported",
11+
"All features supported",
12+
"More than 30 drivers",
13+
"No ads",
14+
"No restrictions",
15+
"..."
16+
],
17+
btns: [{
18+
text: 'Download',
19+
link: 'https://github.com/alist-org/alist/releases'
20+
},
21+
{
22+
text: "Sponsor",
23+
link: "/guide/sponsor.html",
24+
secondary: false,
25+
type: "success"
26+
}
27+
]
28+
},
29+
{
30+
title: 'Technical Support',
31+
price: 'Pay as you go',
32+
features: [
33+
'All Open Source features',
34+
'In view of the specific case analysis',
35+
'Assist in deployment and debugging',
36+
'Secondary development according to specific requirements',
37+
'...'
38+
],
39+
btns: [
40+
{
41+
text: 'Contact',
42+
link: 'mailto:[email protected]'
43+
}
44+
]
45+
}
46+
],
47+
};
48+
49+
function openLink(link: string) {
50+
window.open(link, "_blank");
51+
}
52+
53+
</script>
54+
<template>
55+
<NGrid cols="1 700:2" x-gap="8" y-gap="8">
56+
<NGridItem v-for="item in data.pricing">
57+
<NCard class="card" :title="item.title" hoverable>
58+
<NH1>{{ item.price }}</NH1>
59+
<NSpace vertical size="large" class="list">
60+
<NSpace v-for="feature in item.features" :key="feature" :wrap="false" align="center">
61+
<NIcon style="display: inherit;" color="#1ba0d8" :component="Check" size="20" />
62+
<NText style="font-size: medium;">{{ feature }}</NText>
63+
</NSpace>
64+
</NSpace>
65+
<template #action>
66+
<NSpace size="large" class="space">
67+
<NButton v-for="btn in item.btns" :key="btn.link" :secondary="btn.secondary" size="large"
68+
:type="btn.type as any ?? 'info'" block @click="openLink(btn.link)">
69+
{{ btn.text }}</NButton>
70+
</NSpace>
71+
</template>
72+
</NCard>
73+
</NGridItem>
74+
</NGrid>
75+
</template>
76+
77+
<style scoped>
78+
.list {
79+
min-height: 300px;
80+
}
81+
82+
.space>>>div {
83+
flex-grow: 1;
84+
}
85+
</style>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<template>
2+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
3+
<path
4+
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zM9.29 16.29L5.7 12.7a.996.996 0 1 1 1.41-1.41L10 14.17l6.88-6.88a.996.996 0 1 1 1.41 1.41l-7.59 7.59a.996.996 0 0 1-1.41 0z"
5+
fill="currentColor"></path>
6+
</svg>
7+
</template>
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<script lang="ts" setup>
2+
import { NButton, NCard, NGrid, NGridItem, NH1, NIcon, NSpace, NText } from "naive-ui";
3+
import Check from '../icon/Check.vue'
4+
const data = {
5+
pricing: [
6+
{
7+
title: "开源",
8+
price: "免费",
9+
features: [
10+
"支持所有平台",
11+
"支持所有功能",
12+
"支持超过30种驱动",
13+
"无广告",
14+
"没有限制",
15+
"..."
16+
],
17+
btns: [{
18+
text: '下载',
19+
link: 'https://github.com/alist-org/alist/releases',
20+
}, {
21+
text: "赞助",
22+
link: "/guide/sponsor.html",
23+
secondary: false,
24+
type: "success"
25+
}]
26+
},
27+
{
28+
title: '技术支持',
29+
price: '按需付费',
30+
features: [
31+
'所有开源功能',
32+
'针对具体案例分析解答',
33+
'协助部署和调试',
34+
'根据具体需求进行二次开发',
35+
'...'
36+
],
37+
btns: [{
38+
text: '联系',
39+
link: 'mailto:[email protected]'
40+
}]
41+
}
42+
],
43+
};
44+
45+
function openLink(link: string) {
46+
window.open(link, "_blank");
47+
}
48+
49+
</script>
50+
51+
<template>
52+
<NGrid cols="1 700:2" x-gap="8" y-gap="8">
53+
<NGridItem v-for="item in data.pricing">
54+
<NCard class="card" :title="item.title" hoverable>
55+
<NH1>{{ item.price }}</NH1>
56+
<NSpace vertical size="large" class="list">
57+
<NSpace v-for="feature in item.features" :key="feature" :wrap="false" align="center">
58+
<NIcon style="display: inherit;" color="#1ba0d8" :component="Check" size="20" />
59+
<NText style="font-size: medium;">{{ feature }}</NText>
60+
</NSpace>
61+
</NSpace>
62+
<template #action>
63+
<NSpace size="large" class="space">
64+
<NButton v-for="btn in item.btns" :key="btn.link" :secondary="btn.secondary" size="large"
65+
:type="btn.type as any ?? 'info'" block @click="openLink(btn.link)">
66+
{{ btn.text }}</NButton>
67+
</NSpace>
68+
</template>
69+
</NCard>
70+
</NGridItem>
71+
</NGrid>
72+
</template>
73+
74+
<style scoped>
75+
.list {
76+
min-height: 300px;
77+
}
78+
79+
.space>>>div {
80+
flex-grow: 1;
81+
}
82+
</style>

docs/.vuepress/config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,7 @@ export default defineUserConfig({
126126
__dirname,
127127
"./components/aliyundrive/Callback.vue"
128128
),
129+
"@Pricing": path.resolve(__dirname, "./components/Pricing.vue"),
130+
"@zh/Pricing": path.resolve(__dirname, "./components/zh/Pricing.vue"),
129131
},
130132
});

docs/.vuepress/navbar/en.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ export const en = navbar([
55
{ text: "Guide", icon: "creative", link: "/guide/" },
66
{ text: "Config", icon: "config", link: "/config/" },
77
{ text: "FAQ", icon: "question", link: "/faq/" },
8-
{ text: "Tool", icon: "tool", link: "/tool/" },
8+
{ text: "Pricing", icon: "tag", link: "/pricing" },
9+
// { text: "Tool", icon: "tool", link: "/tool/" },
910
{
1011
text: "Community",
1112
icon: "community",

docs/.vuepress/navbar/zh.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ export const zh = navbar([
55
{ text: "使用指南", icon: "creative", link: "/zh/guide/" },
66
{ text: "配置", icon: "config", link: "/zh/config/" },
77
{ text: "常见问题", icon: "question", link: "/zh/faq/" },
8-
{ text: "工具", icon: "tool", link: "/tool/" },
8+
{ text: "定价", icon: "tag", link: "/zh/pricing" },
9+
// { text: "工具", icon: "tool", link: "/tool/" },
910
{
1011
text: "社区",
1112
icon: "community",

docs/.vuepress/sidebar/en.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export const en = sidebar({
1717
text: "Config",
1818
icon: "config",
1919
prefix: "config/",
20-
children: ["config"],
20+
children: ["", "configuration"],
2121
},
2222
{
2323
text: "FAQ",

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ heroImage: /logo.svg
66
heroText: ALIST
77
tagline: 🗂️ A file list program that supports multiple storage, powered by Gin and Solidjs.
88
actions:
9-
- text: How to Use💡
9+
- text: Get started💡
1010
link: /guide/
1111
type: primary
1212

docs/pricing.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Pricing"
3+
toc: false
4+
sidebar: false
5+
breadcrumb: false
6+
editLink: false
7+
pageInfo: false
8+
comment: false
9+
# containerClass: fancy-container
10+
---
11+
12+
<NaiveClient>
13+
<Pricing />
14+
</NaiveClient>
15+
16+
<script setup lang="ts">
17+
import Pricing from "@Pricing";
18+
</script>

docs/zh/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ heroImage: /logo.svg
66
heroText: AList
77
tagline: 🗂️ 一个支持多种存储的文件列表程序,使用 Gin 和 Solidjs。
88
actions:
9-
- text: 如何使用💡
9+
- text: 开始💡
1010
link: /zh/guide/
1111
type: primary
1212

0 commit comments

Comments
 (0)