Files
akmon/COMPANY_CONFIG_GUIDE.md
2026-01-20 08:04:15 +08:00

5.7 KiB
Raw Permalink Blame History

公司信息全局配置系统使用指南

概述

comindex.uvue 页面现在支持从全局配置表 ak_global_config 中动态获取公司信息,支持多语言展示。

特性

1. 多语言支持

支持以下语言:

  • 简体中文 (zh-CN)
  • 英文 (en)
  • 繁体中文 (zh-TW)
  • 日文 (ja)

2. 配置项目

从全局配置表获取的信息包括:

公司基础信息

  • company_name_*: 公司名称
  • company_slogan_*: 公司标语
  • company_address_*: 公司地址
  • company_phone: 公司电话
  • company_email: 公司邮箱
  • company_icp: ICP备案号
  • company_logo_url: 公司LOGO地址

社交媒体链接

  • social_wechat_url: 微信链接
  • social_weibo_url: 微博链接
  • social_qq_url: QQ链接
  • social_linkedin_url: LinkedIn链接
  • social_twitter_url: Twitter链接

热门搜索关键词

  • hot_search_1_*hot_search_5_*: 热门搜索关键词

注:带 * 的配置项支持多语言,后缀为 _zh, _en, _tw, _ja

新设计说明 (推荐)

表结构优化

新设计采用主表+翻译表模式,解决了原有设计的冗余问题:

主配置表 (ak_global_config)

CREATE TABLE public.ak_global_config (
    id UUID PRIMARY KEY,
    config_key VARCHAR(100) UNIQUE,     -- 如: company_name (不再有语言后缀)
    config_category VARCHAR(50),        -- 配置分类: company, social, search等
    is_translatable BOOLEAN,            -- 是否需要多语言翻译
    default_value TEXT,                 -- 默认值(用于不需翻译的配置)
    sort_order INTEGER,                 -- 排序
    is_active BOOLEAN
);

翻译表 (ak_global_config_translations)

CREATE TABLE public.ak_global_config_translations (
    config_id UUID REFERENCES ak_global_config(id),
    language_code VARCHAR(10),          -- zh, en, tw, ja
    translated_value TEXT,              -- 翻译值
    UNIQUE(config_id, language_code)
);

新设计优势

  • 结构清晰: 主表存元数据,翻译表存多语言值
  • 易于维护: 新增语言只需在翻译表添加记录
  • 分类管理: 通过 config_category 实现配置分组
  • 类型区分: 通过 is_translatable 区分是否需要翻译
  • 默认回退: 支持默认值回退机制

便捷查询

新设计提供了视图和函数简化查询:

-- 获取指定语言的所有配置
SELECT * FROM get_config_by_language('zh');

-- 获取热门搜索关键词
SELECT * FROM get_hot_searches('zh');

-- 查看多语言配置视图
SELECT * FROM vw_global_config_multilingual WHERE language_code = 'zh';

原有设计说明 (兼容)

注:为保持兼容性,以下内容保留作为参考

部署步骤

1. 执行数据库初始化

-- 运行初始化脚本
\i init_company_global_config.sql

2. 验证配置

-- 查看所有配置
SELECT * FROM public.vw_active_global_config;

-- 查看特定语言的公司名称
SELECT config_key, config_value 
FROM public.ak_global_config 
WHERE config_key LIKE 'company_name_%' 
AND is_active = true;

3. 自定义配置

更新配置值:

-- 更新公司名称
UPDATE public.ak_global_config 
SET config_value = '您的公司名称'
WHERE config_key = 'company_name_zh';

-- 更新社交媒体链接
UPDATE public.ak_global_config 
SET config_value = 'https://your-wechat-link'
WHERE config_key = 'social_wechat_url';

页面功能

1. 自动加载

页面初始化时自动从配置表加载公司信息。

2. 语言切换

用户切换语言时,页面会自动更新为对应语言的公司信息。

3. 加载状态

在公司LOGO旁边显示加载指示器用户体验更友好。

4. 错误处理

如果配置加载失败,使用默认值保证页面正常展示。

代码结构

主要函数

  • loadCompanyConfig(): 加载全局配置
  • updateCompanyInfoByLanguage(): 根据语言更新信息
  • updateSocialMediaLinks(): 更新社交媒体链接
  • updateHotSearchKeywords(): 更新热门搜索关键词

数据类型

type CompanyConfig = {
  id?: string
  config_key: string
  config_value: string
  config_type: string
  description?: string
  language?: string
  is_active?: boolean
  created_at?: string
  updated_at?: string
}

最佳实践

1. 配置管理

  • 定期备份配置数据
  • 使用版本控制管理配置变更
  • 在更新配置前先测试

2. 多语言内容

  • 确保所有语言版本的内容长度适中
  • 注意文化差异,调整内容表达
  • 定期检查翻译质量

3. 性能优化

  • 配置数据会在页面初始化时一次性加载
  • 语言切换时只更新显示,无需重新请求
  • 使用Map结构快速查找配置项

扩展指南

添加新语言

  1. 在数据库中添加新的配置项(如 company_name_fr 法语)
  2. 更新 loadCompanyConfig() 函数的配置key列表
  3. 更新 getLanguageSuffix() 函数支持新语言
  4. availableLanguages 中添加新语言选项

添加新配置项

  1. 在数据库中插入新的配置记录
  2. 更新配置获取列表
  3. 在对应的更新函数中处理新配置

故障排除

常见问题

  1. 配置不生效: 检查 is_active 字段是否为 true
  2. 多语言显示错误: 确认配置key的命名规范
  3. 加载失败: 检查数据库连接和表结构

调试方法

// 在浏览器控制台查看配置数据
console.log('配置映射:', companyConfigMap.value)
console.log('当前语言:', currentLanguageCode.value)
console.log('公司名称:', companyDisplayName.value)

更新日志

v1.0.0 (2025-01-07)

  • 初始版本
  • 支持4种语言的公司信息配置
  • 实现动态加载和语言切换
  • 添加加载状态和错误处理