Commit ce8fdd9f3363fd91ef819707ae1216c5665381a9
1 parent
e4a39cc8
为前端搜索输入框的自动补全(suggest)功能添加 tenant_id 参数,并实现配置化映射。
修改内容 1. 在 tenant_facets_config.js 中添加映射配置 添加 TENANT_ID_MAPPING 配置对象,包含映射关系: 170 → 170 171 → 170 162 → 0 添加 getMappedTenantId() 函数,用于获取映射后的 tenant_id
Showing
2 changed files
with
48 additions
and
0 deletions
Show diff stats
frontend/index.html
| ... | ... | @@ -235,6 +235,25 @@ |
| 235 | 235 | }; |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | + // 获取映射后的 tenant_id(用于 suggest API) | |
| 239 | + function getMappedTenantIdForSuggest(tenantId) { | |
| 240 | + if (!tenantId) { | |
| 241 | + return null; | |
| 242 | + } | |
| 243 | + // 使用 tenant_facets_config.js 中的映射函数(如果已加载) | |
| 244 | + if (typeof getMappedTenantId === 'function') { | |
| 245 | + return getMappedTenantId(tenantId); | |
| 246 | + } | |
| 247 | + // 如果函数未加载,使用内联映射逻辑 | |
| 248 | + const tenantIdStr = String(tenantId); | |
| 249 | + const mapping = { | |
| 250 | + "170": "170", | |
| 251 | + "171": "170", | |
| 252 | + "162": "0" | |
| 253 | + }; | |
| 254 | + return mapping[tenantIdStr] !== undefined ? mapping[tenantIdStr] : tenantIdStr; | |
| 255 | + } | |
| 256 | + | |
| 238 | 257 | // 获取建议 |
| 239 | 258 | async function fetchSuggestions(query) { |
| 240 | 259 | if (!query || query.trim().length === 0) { |
| ... | ... | @@ -249,10 +268,21 @@ |
| 249 | 268 | abortController = new AbortController(); |
| 250 | 269 | |
| 251 | 270 | try { |
| 271 | + // 获取当前 tenant_id 并应用映射 | |
| 272 | + let tenantId = null; | |
| 273 | + if (typeof getTenantId === 'function') { | |
| 274 | + tenantId = getTenantId(); | |
| 275 | + } | |
| 276 | + const mappedTenantId = getMappedTenantIdForSuggest(tenantId); | |
| 277 | + | |
| 252 | 278 | const url = new URL(SUGGEST_API); |
| 253 | 279 | url.searchParams.set('query', query); |
| 254 | 280 | url.searchParams.set('lang', getSelectedLang()); |
| 255 | 281 | url.searchParams.set('limit', '40'); |
| 282 | + // 添加 tenant_id 参数 | |
| 283 | + if (mappedTenantId) { | |
| 284 | + url.searchParams.set('tenant_id', mappedTenantId); | |
| 285 | + } | |
| 256 | 286 | |
| 257 | 287 | const response = await fetch(url.toString(), { |
| 258 | 288 | signal: abortController.signal, | ... | ... |
frontend/static/js/tenant_facets_config.js
| ... | ... | @@ -139,3 +139,21 @@ function getAvailableTenantIds() { |
| 139 | 139 | } |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | +// tenant_id 映射配置(用于 suggest API) | |
| 143 | +// 格式:{ 原始tenant_id: 映射后的tenant_id } | |
| 144 | +const TENANT_ID_MAPPING = { | |
| 145 | + "170": "170", | |
| 146 | + "171": "170", | |
| 147 | + "162": "0" | |
| 148 | +}; | |
| 149 | + | |
| 150 | +// 获取映射后的 tenant_id(用于 suggest API) | |
| 151 | +function getMappedTenantId(tenantId) { | |
| 152 | + if (!tenantId) { | |
| 153 | + return null; | |
| 154 | + } | |
| 155 | + const tenantIdStr = String(tenantId); | |
| 156 | + // 如果配置中有映射,返回映射后的值;否则返回原值 | |
| 157 | + return TENANT_ID_MAPPING[tenantIdStr] !== undefined ? TENANT_ID_MAPPING[tenantIdStr] : tenantIdStr; | |
| 158 | +} | |
| 159 | + | ... | ... |