Files
Situation-Awareness-Platfor…/src/views/Jyh/Pricing/index.vue

385 lines
9.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="pricing">
<div class="pricing-container">
<header class="page-header">
<h1 class="page-title">定价</h1>
<p class="page-subtitle">查看我们的个人Business Enterprise 套餐定价</p>
</header>
<div class="pricing-grid">
<div
v-for="(plan, index) in plans"
:key="index"
class="plan-card"
>
<div class="card-header">
<h2 class="plan-name">{{ plan.name }}</h2>
<p class="plan-desc">{{ plan.description }}</p>
</div>
<div class="plan-price-wrapper">
<div class="price-line" v-if="plan.price !== null">
<span class="currency">US${{ plan.price }}</span>
<span class="unit" v-if="plan.unit">{{ plan.unit }}</span>
</div>
<div class="price-line" v-else>
<span class="contact-text"> &nbsp; </span>
</div>
</div>
<button class="action-btn">
{{ plan.buttonText }}
<span class="arrow-icon"></span>
</button>
<div class="features-list">
<p v-if="plan.featuresTitle" class="features-title">{{ plan.featuresTitle }}</p>
<ul>
<li v-for="(feature, fIndex) in plan.features" :key="fIndex" class="feature-item">
<svg class="check-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20 6L9 17L4 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span v-html="feature"></span>
</li>
</ul>
</div>
<div class="card-footer" v-if="plan.footerLink">
<a href="#">{{ plan.footerLink }}</a>
</div>
</div>
</div>
<PricingComparisonTable />
<PricingFAQ />
<div class="page-footer-link">
<p>Have an existing plan? See <a href="#">billing help</a></p>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import PricingComparisonTable from './component/PricingComparisonTable.vue';
import PricingFAQ from './component/PricingFAQ.vue';
// 定义数据结构
interface Plan {
name: string;
description: string;
price: number | null; // null 用于企业版
unit?: string;
buttonText: string;
featuresTitle?: string;
features: string[];
footerLink?: string;
}
// 模拟数据:根据截图内容填充
const plans = ref<Plan[]>([
{
name: '免费版',
description: '日常任务的智能辅助方案',
price: 0,
unit: '/月',
buttonText: '获取免费版本',
features: [
'有限使用高级模型',
'判断和上传的数据有限',
'回答生成速度:标准速度',
'有限的记忆深入研究',
'记忆与上下文支持受限'
],
footerLink: '已有账号?登录以继续'
},
{
name: 'Plus',
description: '更多先进智能模型权限',
price: 20,
unit: '/月',
buttonText: '获取 Plus 版本',
featuresTitle: '免费版中的全部内容,以及:',
features: [
'使用 GPT-4, GPT-4o, GPT-4o mini',
'判断和上传的数据更高',
'图片生成DALL·E 3',
'更深入的记忆与高级数据分析功能',
'记忆与上下文支持增强',
'联网、语音和自定义 GPT',
'抢先体验新功能'
],
footerLink: '查看适用范围'
},
{
name: 'Pro',
description: '全面运用 ChatGPT 的最佳功能',
price: 200,
unit: '/月',
buttonText: '获取 Pro 版本',
featuresTitle: 'Plus 中的全部功能,以及:',
features: [
'使用 GPT-4o Pro 进行专业推理',
'判断和上传数据无上限',
'无限制的高级图片生成',
'深度思考和复杂任务的最大支持',
'最大记忆与上下文支持',
'扩展限制、任务和自定义 GPT',
'o1 (原 o1-preview) 的高级推理能力',
'扩展的代码解释器',
'更深层的研究浏览'
],
footerLink: '无限制、突发情况下的算力等,了解更多'
},
{
name: 'Business Free',
description: 'A secure way to try ChatGPT at work',
price: 0,
unit: '/month',
buttonText: 'Get Business Free',
features: [
'Limited access to our best model for work',
'Privacy built in; data never used for training',
'Limited video and image creation',
'Tools for teams like projects, custom GPTs',
'Unlimited collaborator invites',
'Integration with select business apps'
]
},
{
name: 'Business 版',
description: '一个安全、协作的工作空间,专为初创企业和成长中的企业而设计',
price: 25,
unit: '/每位用户/每月 (按年计费)',
buttonText: '购买订阅',
featuresTitle: '包含 Plus 版套餐中的所有功能,并含:',
features: [
'无限制使用 GPT-4o 模型功能,并扩大使用 GPT-4 Turbo以及对 GPT-4... 的访问',
'企业级环境,提供更长久的历史记录与 Slack, Google Drive... 等工具集成',
'安全的企业工作空间拥有基本的管理控制、SAML SSO 和 MFA',
'数据不会用于训练模型',
'分享聊天、记录模式、Canvas、共享快捷指令和自定义工作区 GPT 等业务功能'
],
footerLink: '无限制、团队协作功能等,了解更多'
},
{
name: '企业',
description: '企业级 AI安全与全面支持',
price: null, // 代表联系销售
buttonText: '联系销售人员',
featuresTitle: 'Business 中的全部功能,以及:',
features: [
'扩展的上下文窗口,支持更长的输入和更大的文件',
'企业级安全控制,包括 SCIM、EIKM、用户分级、域验证和更精细的权限控制',
'高级数据分析:支持自定义数据保留策略、日志与保留审计功能...',
'在多个地区支持数据驻留',
'7x24 小时的优先支持、服务等级协议 (SLA)...',
'按量计费,专属折扣'
]
}
]);
</script>
<style scoped>
/* 引入通用字体,模仿 OpenAI 风格 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
.pricing {
width: 100%;
background-color: white;
}
.pricing-container {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 1200px;
margin: 0 auto;
padding: 60px 20px;
color: #0d0d0d;
background-color: white;
}
/* 头部样式 */
.page-header {
text-align: center;
margin-bottom: 60px;
}
.page-title {
font-size: 3rem; /* 48px */
font-weight: 600; /* Semi-bold */
margin-bottom: 16px;
letter-spacing: -0.02em;
}
.page-subtitle {
font-size: 1.125rem;
color: #6e6e80; /* 次级文本颜色 */
}
/* 网格布局 */
.pricing-grid {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 3列 */
gap: 24px;
}
/* 响应式小于1024px变2列小于768px变1列 */
@media (max-width: 1024px) {
.pricing-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.pricing-grid {
grid-template-columns: 1fr;
}
}
/* 卡片样式 */
.plan-card {
border: 1px solid #e5e5e5;
border-radius: 12px;
padding: 24px;
display: flex;
flex-direction: column;
background-color: #fff;
transition: border-color 0.2s;
height: 100%;
}
.plan-card:hover {
border-color: #999;
}
/* 卡片头部 */
.card-header {
min-height: 80px; /* 保持对齐 */
margin-bottom: 10px;
}
.plan-name {
font-size: 1.25rem;
font-weight: 600;
margin: 0 0 8px 0;
}
.plan-desc {
font-size: 0.875rem;
color: #6e6e80;
line-height: 1.4;
margin: 0;
}
/* 价格区域 */
.plan-price-wrapper {
margin-bottom: 24px;
min-height: 42px; /* 保持对齐 */
}
.price-line {
display: flex;
align-items: baseline;
}
.currency {
font-size: 2rem;
font-weight: 600;
letter-spacing: -0.03em;
}
.unit {
font-size: 0.875rem;
color: #6e6e80;
margin-left: 4px;
}
/* 按钮样式 */
.action-btn {
width: 100%;
background-color: #0d0d0d;
color: #fff;
border: none;
padding: 12px 16px;
border-radius: 999px; /* 胶囊圆角 */
font-size: 1rem;
font-weight: 500;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
transition: background-color 0.2s;
margin-bottom: 32px;
}
.action-btn:hover {
background-color: #333;
}
.arrow-icon {
margin-left: 6px;
font-size: 1.1em;
line-height: 1;
}
/* 功能列表 */
.features-list {
flex-grow: 1; /* 让内容撑开,使 footer 对齐底部 */
}
.features-title {
font-size: 0.875rem;
font-weight: 600;
margin-bottom: 12px;
color: #0d0d0d;
}
.features-list ul {
list-style: none;
padding: 0;
margin: 0;
}
.feature-item {
display: flex;
align-items: flex-start;
font-size: 0.875rem;
color: #0d0d0d;
margin-bottom: 12px;
line-height: 1.5;
}
.check-icon {
width: 16px;
height: 16px;
margin-right: 10px;
color: #0d0d0d;
flex-shrink: 0;
margin-top: 3px;
}
/* 底部链接 */
.card-footer {
margin-top: 24px;
font-size: 0.75rem;
padding-top: 16px;
border-top: 1px solid transparent; /* 占位,如果需要分隔线可改为 #e5e5e5 */
}
.card-footer a, .page-footer-link a {
color: #0d0d0d;
text-decoration: underline;
text-underline-offset: 2px;
}
.page-footer-link {
text-align: left;
margin-top: 40px;
font-size: 0.875rem;
color: #6e6e80;
}
</style>