欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Vue3的el-table-column下拉输入实时查询API数据选择的实现方法

Vue3的el-table-column下拉输入实时查询API数据选择的实现方法

2025/2/5 15:59:34 来源:https://blog.csdn.net/weixin_45807466/article/details/145394227  浏览:    关键词:Vue3的el-table-column下拉输入实时查询API数据选择的实现方法

由于本人对el-table-column有下拉输入选择的要求,根据网上搜索的资料及本人优化,推出我比较满意的方法,供各位读者参考使用。

效果图

在这里插入图片描述

el-table-column写法

<el-table-columnlabel="货品编号"align="center"prop="productCode"width="180"
><template #default="scope"><el-selectv-model="scope.row.productCode"placeholder="请输入货品编号"@change="changeProduct(scope.$index, scope.row)"filterableremote:remote-method="remoteProductCode":loading="loading"remote-show-suffix><el-optionv-for="item in productOptions":key="item.productId":label="item.productCode":value="item.productId"></el-option></el-select></template>
</el-table-column>

changeProduct写法

选择货品编号,展示接口提供的信息

  • 清空选择的数据
  • 获取选择的数据
  • 字段读取并展示对应的数据
// 选择货品
function changeProduct(index, row) {form.value.details[index] = {productCode: null,productName: null,};let lists = [];productOptions.value.forEach((item) => {lists = item;});form.value.details[index] = {productCode: lists.productCode,productName: lists.productName,};form.value.details = [...form.value.details];
}

remoteProductCode写法

查询货品编号信息

原理:if有指定内容查询则显示对应信息,else显示全部

  • optionReset重置下拉框表单
  • listProduct调用API接口
function remoteProductCode(query) {optionReset();if (query) {loading.value = true;setTimeout(() => {option.value.productCode = query;listProduct(option.value).then((response) => {productOptions.value = response.rows;});loading.value = false;productOptions.value = list.value.filter((item) => {return item.label.toLowerCase().includes(query.toLowerCase());});}, 200);} else {listProduct(option.value).then((response) => {productOptions.value = response.rows;});}
}

源码分析

关于源码取自铠思进销存系统的ks-vue3/src/views/system/purchase/paymentDocumentProcessing.vue

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com