|
|
|
|
@ -8,8 +8,27 @@
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>企业名称:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-input v-model="form.company_name" placeholder="请输入企业名称" clearable style="width: 100%;"></el-input>
|
|
|
|
|
<!-- @input="searchCompany" @clear="clearCompanySearch" -->
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="form.company_name"
|
|
|
|
|
filterable
|
|
|
|
|
remote
|
|
|
|
|
reserve-keyword
|
|
|
|
|
allow-create
|
|
|
|
|
default-first-option
|
|
|
|
|
placeholder="请输入企业名称搜索"
|
|
|
|
|
:remote-method="searchCompany"
|
|
|
|
|
:loading="companySearchLoading"
|
|
|
|
|
clearable
|
|
|
|
|
style="width: 100%;"
|
|
|
|
|
@change="onCompanyChange"
|
|
|
|
|
@create="onCreateCompany">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in companySearchResults"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
:label="item.enterpriseName"
|
|
|
|
|
:value="item.enterpriseName">
|
|
|
|
|
</el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
@ -236,23 +255,46 @@
|
|
|
|
|
this.form = this.base.requestToForm(res, this.form)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
async searchCompany() {
|
|
|
|
|
const keyword = (this.form.company_name || '').trim()
|
|
|
|
|
if (!keyword) {
|
|
|
|
|
async searchCompany(query) {
|
|
|
|
|
if (query !== '') {
|
|
|
|
|
this.companySearchLoading = true
|
|
|
|
|
try {
|
|
|
|
|
const res = await search({ company_name: query })
|
|
|
|
|
// 使用 enterpriseName 字段
|
|
|
|
|
this.companySearchResults = res || []
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('企业搜索失败:', error)
|
|
|
|
|
this.companySearchResults = []
|
|
|
|
|
} finally {
|
|
|
|
|
this.companySearchLoading = false
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.companySearchResults = []
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.companySearchLoading = true
|
|
|
|
|
try {
|
|
|
|
|
const res = await search({ company_name: keyword})
|
|
|
|
|
// 假设返回结构为 { data: [...] } 或 { list: [...] }
|
|
|
|
|
this.companySearchResults = res.data || res.list || []
|
|
|
|
|
} catch (e) {
|
|
|
|
|
},
|
|
|
|
|
onCompanyChange(value) {
|
|
|
|
|
if (!value) {
|
|
|
|
|
this.form.company_name = ''
|
|
|
|
|
this.companySearchResults = []
|
|
|
|
|
} finally {
|
|
|
|
|
this.companySearchLoading = false
|
|
|
|
|
} else {
|
|
|
|
|
// 可以在这里添加其他逻辑,比如自动填充企业相关信息
|
|
|
|
|
const selectedCompany = this.companySearchResults.find(item => item.enterpriseName === value)
|
|
|
|
|
if (selectedCompany) {
|
|
|
|
|
// 如果选中的企业有额外信息,可以自动填充到表单中
|
|
|
|
|
// 例如:this.form.company_attribute = selectedCompany.attribute
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onCreateCompany(query) {
|
|
|
|
|
// 处理创建新条目的情况
|
|
|
|
|
console.log('Creating new company:', query);
|
|
|
|
|
// 例如,你可以将新创建的企业添加到搜索结果中
|
|
|
|
|
this.companySearchResults.push({
|
|
|
|
|
id: Math.random().toString(36).substr(2, 9), // 生成一个临时ID
|
|
|
|
|
enterpriseName: query
|
|
|
|
|
});
|
|
|
|
|
this.form.company_name = query; // 更新表单的值
|
|
|
|
|
},
|
|
|
|
|
clearCompanySearch() {
|
|
|
|
|
this.companySearchResults = []
|
|
|
|
|
}
|
|
|
|
|
|