export const ipSchema = { key: 'extensions.ip', title: 'IP归属地', icon: 'fas fa-map-marker-alt', description: '配置 IP 数据源、缓存策略和前台归属地展示。', defaults: { ip_geo_enabled: false, ip_addr_sdk: 'null', ip_geo_cache_ttl: 86400, ip_geo_display: ['comment', 'user_home', 'user_center', 'post'], ip_geo_format: 'province_city', ip_geo_fallback_text: '', ip_addr_sdk_qq_appkey: '', ip_addr_sdk_qq_secretkey: '', ip_addr_sdk_amap_appkey: '', ip_addr_sdk_amap_secretkey: '', }, groups: [ { key: 'basic', title: '基础配置', icon: 'fas fa-globe', fields: [ { key: 'ip_geo_enabled', label: '启用 IP 归属地', type: 'switch', default: false, help: '开启后将在评论、用户主页等位置显示 IP 归属地信息' }, { key: 'ip_addr_sdk', label: 'IP 接口服务商', type: 'radio', default: 'null', options: [ { label: '轮流查询', value: 'polling' }, { label: '腾讯位置服务', value: 'qq' }, { label: '高德位置服务', value: 'amap' }, { label: '太平洋公共接口', value: 'null' }, ], dependsOn: { key: 'ip_geo_enabled', value: true }, help: '优先使用国内接口,轮流查询会按腾讯→高德→公共接口顺序回退。', }, { key: 'ip_geo_cache_ttl', label: '缓存时间 (秒)', type: 'number', default: 86400, min: 3600, max: 604800, dependsOn: { key: 'ip_geo_enabled', value: true }, help: 'IP 查询结果缓存时长,避免频繁请求外部接口' }, ], }, { key: 'providers', title: '接口凭据', icon: 'fas fa-key', fields: [ { key: 'ip_addr_sdk_qq_appkey', label: '腾讯 AppKey', type: 'input', default: '', dependsOn: { key: 'ip_addr_sdk', value: 'qq' } }, { key: 'ip_addr_sdk_qq_secretkey', label: '腾讯 SecretKey', type: 'input', default: '', dependsOn: { key: 'ip_addr_sdk', value: 'qq' } }, { key: 'ip_addr_sdk_amap_appkey', label: '高德 AppKey', type: 'input', default: '', dependsOn: { key: 'ip_addr_sdk', value: 'amap' } }, { key: 'ip_addr_sdk_amap_secretkey', label: '高德 SecretKey', type: 'input', default: '', dependsOn: { key: 'ip_addr_sdk', value: 'amap' } }, ], }, { key: 'display', title: '展示设置', icon: 'fas fa-eye', fields: [ { key: 'ip_geo_display', label: '展示位置', type: 'checkbox', default: ['comment', 'user_home', 'user_center', 'post'], options: [ { label: '评论区', value: 'comment' }, { label: '用户主页', value: 'user_home' }, { label: '用户中心', value: 'user_center' }, { label: '文章详细页', value: 'post' }, ], dependsOn: { key: 'ip_geo_enabled', value: true }, help: '用户主页/用户中心还需在「用户 → 用户功能」开启「显示城市」;评论区还需在评论设置开启「评论城市」。', }, { key: 'ip_geo_format', label: '显示格式', type: 'radio', default: 'province_city', options: [ { label: '省份+城市', value: 'province_city' }, { label: '仅省份', value: 'province' }, { label: '国家+省份', value: 'country_province' }, ], dependsOn: { key: 'ip_geo_enabled', value: true }, }, { key: 'ip_geo_fallback_text', label: '查询失败时文案', type: 'input', default: '', placeholder: '留空则不显示', dependsOn: { key: 'ip_geo_enabled', value: true } }, ], }, ], }