feat: add provider autocomplete to service form
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
@ -161,9 +161,14 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="服务商" prop="provider_name">
|
||||
<el-input
|
||||
<el-autocomplete
|
||||
v-model="form.provider_name"
|
||||
placeholder="请输入服务商名称"
|
||||
:fetch-suggestions="querySearchProvider"
|
||||
placeholder="输入或选择服务商"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
:trigger-on-focus="true"
|
||||
@select="handleProviderSelect"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="简介" prop="description">
|
||||
@ -199,6 +204,8 @@ import {
|
||||
updateService,
|
||||
deleteService,
|
||||
searchMaterialBase,
|
||||
getProviderSuggestions,
|
||||
getUserSuggestions,
|
||||
type ServiceItem,
|
||||
type ServiceQueryParams,
|
||||
type ServiceCreateRequest,
|
||||
@ -305,6 +312,30 @@ const onMaterialSelected = (val: number) => {
|
||||
}
|
||||
}
|
||||
|
||||
// 服务商建议
|
||||
const fetchProviderSuggestions = async (query: string, cb: any) => {
|
||||
if (!form.base_id) {
|
||||
cb([])
|
||||
return
|
||||
}
|
||||
try {
|
||||
const res: any = await getProviderSuggestions({ base_id: form.base_id })
|
||||
if (res.code === 200) {
|
||||
const providers = res.data.map((name: string) => ({ value: name }))
|
||||
const filtered = query ? providers.filter((item: any) => item.value.toLowerCase().includes(query.toLowerCase())) : providers
|
||||
cb(filtered)
|
||||
} else {
|
||||
cb([])
|
||||
}
|
||||
} catch (e) {
|
||||
cb([])
|
||||
}
|
||||
}
|
||||
const querySearchProvider = (qs: string, cb: any) => fetchProviderSuggestions(qs, cb)
|
||||
const handleProviderSelect = (item: any) => {
|
||||
form.provider_name = item.value
|
||||
}
|
||||
|
||||
// 弹窗相关
|
||||
const dialogVisible = ref(false)
|
||||
const dialogTitle = ref('')
|
||||
|
||||
Reference in New Issue
Block a user