export const useCertApplyStore = defineStore('cert-apply-store', () => { // -------------------- 状态定义 -------------------- const test = ref('证书申请') // 当前激活的主标签 const activeMainTab = ref<'commercial' | 'free'>('commercial') // 当前激活的子标签 const activeTab = ref<'dv' | 'ov' | 'ev'>('dv') // 主标签选项 const mainTabOptions = ref([ { key: 'commercial', title: '商业证书', desc: '品牌SSL证书,安全保障,全球兼容' }, { key: 'free', title: '免费证书', desc: '适用于个人博客、测试环境的免费SSL证书' }, ]) // 证书类型选项 const typeOptions = ref({ dv: '域名型(DV)', ov: '企业型(OV)', ev: '增强型(EV)', }) // SSL证书类型列表 const sslTypeList = ref([ { type: 'dv', title: '个人(DV 证书)', explain: '个人博客、个人项目等
可选择DV SSL证书。' }, { type: 'ov', title: '传统行业(OV 证书)', explain: '企业官网、电商、教育、医疗、公共
部门等,可选择OV SSL证书。', }, { type: 'ev', title: '金融机构(EV 证书)', explain: '银行、金融、保险、电子商务、中大型企
业、政府机关等,可选择EV SSL证书。', }, ]) // SSL证书类型详细说明 const sslTypeDescriptions = ref({ dv: { title: '域名型SSL证书 (DV SSL)', features: [ '适用场景: 个人网站、博客、论坛等', '验证方式: 仅验证域名所有权', '签发时间: 最快5分钟', '安全级别: 基础级', ], advantages: '优势: 价格低廉,签发速度快,适合个人使用', disadvantages: '劣势: 仅显示锁形图标,不显示企业信息', recommendation: '推荐指数: ★★★☆☆', }, ov: { title: '企业型SSL证书 (OV SSL)', features: [ '适用场景: 企业官网、电商网站、教育医疗网站等', '验证方式: 验证域名所有权和企业真实性', '签发时间: 1-3个工作日', '安全级别: 中级', ], advantages: '优势: 兼顾安全和价格,适合一般企业使用', disadvantages: '劣势: 签发时间较DV长', recommendation: '推荐指数: ★★★★☆', }, ev: { title: '增强型SSL证书 (EV SSL)', features: [ '适用场景: 银行、金融机构、政府网站、大型企业', '验证方式: 最严格的身份验证流程', '签发时间: 5-7个工作日', '安全级别: 最高级', ], advantages: '优势: 提供最高级别安全认证,浏览器地址栏显示企业名称', disadvantages: '劣势: 价格较高,签发时间最长', recommendation: '推荐指数: ★★★★★', }, }) // 产品数据类型定义 type ProductItem = { pid: number brand: string type: string add_price: number other_price: number title: string code: string num: number price: number discount: number state: number install_price: number src_price: number } type ProductsType = { dv: ProductItem[] ov: ProductItem[] ev: ProductItem[] } // 商业证书产品数据 const products = ref({ dv: [ { pid: 8001, brand: 'Positive', type: '域名型(DV)', add_price: 0, other_price: 398, title: 'PositiveSSL 单域名SSL证书', code: 'comodo-positivessl', num: 1, price: 159, discount: 1, state: 1, install_price: 150, src_price: 159, }, { pid: 8002, brand: 'Positive', type: '域名型(DV)', add_price: 98, other_price: 1194, title: 'PositiveSSL 多域名SSL证书', code: 'comodo-positive-multi-domain', num: 3, price: 589, discount: 1, state: 1, install_price: 200, src_price: 589, }, { pid: 8008, brand: 'Positive', type: '域名型(DV)', add_price: 0, other_price: 2100, title: 'PositiveSSL 通配符SSL证书', code: 'comodo-positivessl-wildcard', num: 1, price: 1289, discount: 1, state: 1, install_price: 200, src_price: 1289, }, { pid: 8009, brand: 'Positive', type: '域名型(DV)', add_price: 880, other_price: 4500, title: 'PositiveSSL 多域名通配符SSL证书', code: 'comodo-positive-multi-domain-wildcard', num: 2, price: 3789, discount: 1, state: 1, install_price: 200, src_price: 3789, }, ], ov: [ { pid: 8303, brand: 'Sectigo', type: '企业型(OV)', add_price: 0, other_price: 1880, title: 'Sectigo OV SSL证书', code: 'sectigo-ov', num: 1, price: 1388, discount: 1, state: 1, install_price: 500, src_price: 1388, }, { pid: 8304, brand: 'Sectigo', type: '企业型(OV)', add_price: 880, other_price: 5640, title: 'Sectigo OV多域名SSL证书', code: 'sectigo-ov-multi-san', num: 3, price: 3888, discount: 1, state: 1, install_price: 500, src_price: 3888, }, { pid: 8305, brand: 'Sectigo', type: '企业型(OV)', add_price: 0, other_price: 6980, title: 'Sectigo OV通配符SSL证书', code: 'sectigo-ov-wildcard', num: 1, price: 4888, discount: 1, state: 1, install_price: 500, src_price: 4888, }, { pid: 8307, brand: 'Sectigo', type: '企业型(OV)', add_price: 3680, other_price: 2094, title: 'Sectigo OV多域名通配符SSL证书', code: 'comodo-multi-domain-wildcard-certificate', num: 3, price: 15888, discount: 1, state: 1, install_price: 500, src_price: 15888, }, ], ev: [ { pid: 8300, brand: 'Sectigo', type: '企业增强型(EV)', add_price: 0, other_price: 3400, title: 'Sectigo EV SSL证书', code: 'comodo-ev-ssl-certificate', num: 1, price: 2788, discount: 1, state: 1, install_price: 500, src_price: 2788, }, { pid: 8302, brand: 'Sectigo', type: '企业增强型(EV)', add_price: 1488, other_price: 10200, title: 'Sectigo EV多域名SSL证书', code: 'comodo-ev-multi-domin-ssl', num: 3, price: 8388, discount: 1, state: 1, install_price: 500, src_price: 8388, }, { pid: 8520, brand: '锐安信', type: '企业增强型(EV)', add_price: 0, other_price: 3480, title: '锐安信EV SSL证书', code: 'ssltrus-ev-ssl', num: 1, price: 2688, discount: 1, state: 1, install_price: 500, src_price: 2688, }, { pid: 8521, brand: '锐安信', type: '企业增强型(EV)', add_price: 2380, other_price: 10440, title: '锐安信EV多域名SSL证书', code: 'ssltrus-ev-multi', num: 3, price: 9096, discount: 1, state: 1, install_price: 500, src_price: 9096, }, ], }) // 免费证书数据 type FreeProductItem = { pid: number brand: string type: string title: string code: string num: number valid_days: number features: string[] } const freeProducts = ref([ { pid: 9001, brand: "Let's Encrypt", type: '域名型(DV)', title: "Let's Encrypt 单域名SSL证书", code: 'letsencrypt-single', num: 1, valid_days: 90, features: ['90天有效期', '自动续期', '单域名', '全球认可'], }, ]) // -------------------- 派生状态 -------------------- // 根据当前活动标签筛选产品 const filteredProducts = computed(() => { if (activeMainTab.value === 'commercial') { return products.value[activeTab.value] || [] } else { return [] // 免费证书不通过这个计算属性获取 } }) // -------------------- 工具方法 -------------------- const handleTest = () => { test.value = '点击了证书申请' } return { test, handleTest, activeMainTab, activeTab, mainTabOptions, typeOptions, sslTypeList, sslTypeDescriptions, products, freeProducts, filteredProducts, } }) /** * useStore * @description 组合式API使用store * @returns {object} store - 返回store对象 */ export const useStore = () => { const store = useCertApplyStore() return { ...store, ...storeToRefs(store) } }