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>
|
||||||
<el-form-item label="服务商" prop="provider_name">
|
<el-form-item label="服务商" prop="provider_name">
|
||||||
<el-input
|
<el-autocomplete
|
||||||
v-model="form.provider_name"
|
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>
|
||||||
<el-form-item label="简介" prop="description">
|
<el-form-item label="简介" prop="description">
|
||||||
@ -199,6 +204,8 @@ import {
|
|||||||
updateService,
|
updateService,
|
||||||
deleteService,
|
deleteService,
|
||||||
searchMaterialBase,
|
searchMaterialBase,
|
||||||
|
getProviderSuggestions,
|
||||||
|
getUserSuggestions,
|
||||||
type ServiceItem,
|
type ServiceItem,
|
||||||
type ServiceQueryParams,
|
type ServiceQueryParams,
|
||||||
type ServiceCreateRequest,
|
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 dialogVisible = ref(false)
|
||||||
const dialogTitle = ref('')
|
const dialogTitle = ref('')
|
||||||
|
|||||||
Reference in New Issue
Block a user