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,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 | async function fetchSuggestions(query) { | 258 | async function fetchSuggestions(query) { |
| 240 | if (!query || query.trim().length === 0) { | 259 | if (!query || query.trim().length === 0) { |
| @@ -249,10 +268,21 @@ | @@ -249,10 +268,21 @@ | ||
| 249 | abortController = new AbortController(); | 268 | abortController = new AbortController(); |
| 250 | 269 | ||
| 251 | try { | 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 | const url = new URL(SUGGEST_API); | 278 | const url = new URL(SUGGEST_API); |
| 253 | url.searchParams.set('query', query); | 279 | url.searchParams.set('query', query); |
| 254 | url.searchParams.set('lang', getSelectedLang()); | 280 | url.searchParams.set('lang', getSelectedLang()); |
| 255 | url.searchParams.set('limit', '40'); | 281 | url.searchParams.set('limit', '40'); |
| 282 | + // 添加 tenant_id 参数 | ||
| 283 | + if (mappedTenantId) { | ||
| 284 | + url.searchParams.set('tenant_id', mappedTenantId); | ||
| 285 | + } | ||
| 256 | 286 | ||
| 257 | const response = await fetch(url.toString(), { | 287 | const response = await fetch(url.toString(), { |
| 258 | signal: abortController.signal, | 288 | signal: abortController.signal, |
frontend/static/js/tenant_facets_config.js
| @@ -139,3 +139,21 @@ function getAvailableTenantIds() { | @@ -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 | + |