需要做的功能是输入框输入内容、获取数据、然后点击数据、进行一些表单数据渲染、由于非常规需求、于是就自己手动在输入框下方写了一个下拉框、但是下拉框点击选择某个数据的时候、和输入框的focus事件冲突、解决办法就是使用mousedown替换click事件来解决事件冲突问题。具体代码如下:
<div class="template-wrap">
<!-- 输入框 -->
<a-input
v-model:value="model[field]"
style="flex: 1"
:disabled="isUpdate"
:autocomplete="'off'"
@input="handleChange"
@blur="handelBlur"
placeholder="请输入物料编码"
@focus="hadleFocus"
/>
<!-- 下拉框 -->
<div class="template-content" v-if="templateMaterialCodeData.length > 0 && showMaterial">
<div class="main-text" v-for="(item, index) in templateMaterialCodeData" :key="index" @mousedown="setTemplateData(item)">
{{ item.label }}
</div>
</div>
</div>