diff --git a/src/views/order/intention/search.vue b/src/views/order/intention/search.vue index 906dec3..e842f75 100644 --- a/src/views/order/intention/search.vue +++ b/src/views/order/intention/search.vue @@ -1979,25 +1979,37 @@ const buildFieldConditionsPayload = () => { : index; const queryType = preciseIndexSet.has(originalIndex) ? "EXACT" : "FUZZY"; - if (condition.valid && condition.field) { + // 1)字段 + 值:结构化查询 + if (condition.valid && condition.field && condition.value) { return { fieldName: condition.field, - fieldValue: condition.value || "", + fieldValue: condition.value, keyword: "", queryType, }; } - // 如果有字段名但没有值(如 "车型:"),使用字段名作为 keyword - if (condition.fieldLabel && !condition.value) { + // 2)只有字段(如 "车型:"):fieldName 为字段 key,fieldValue 为空 + if (condition.valid && condition.field && !condition.value) { return { - fieldName: "", + fieldName: condition.field, fieldValue: "", - keyword: condition.fieldLabel, + keyword: "", queryType, }; } + // 3)只有值(如直接选了某个值,没有字段) + if (!condition.field && condition.value && !condition.fieldLabel) { + return { + fieldName: "", + fieldValue: condition.value, + keyword: "", + queryType, + }; + } + + // 4)其它情况(例如纯手输、无法识别字段),作为关键字查询 const keyword = condition.fieldLabel ? `${condition.fieldLabel}:${condition.value}`.replace(/:$/, "") : condition.value;