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

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

效果图

el-table-column写法

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

changeProduct写法

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

  • 清空选择的数据
  • 获取选择的数据
  • 字段读取并展示对应的数据
javascript 复制代码
// 选择货品
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接口
javascript 复制代码
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

相关推荐
Dwzun6 分钟前
基于SpringBoot+Vue的二手书籍交易平台系统【附源码+文档+部署视频+讲解)
java·vue.js·spring boot·后端·spring·计算机毕业设计
小明记账簿21 分钟前
JavaScript浮点数精度问题及解决方案
开发语言·javascript·ecmascript
北辰alk34 分钟前
Vue3 事件修饰符深度解析:从基础到高级应用的完整指南
vue.js
北辰alk36 分钟前
Vue3 服务端渲染 (SSR) 深度解析:从原理到实践的完整指南
vue.js
1024肥宅1 小时前
JavaScript性能与优化:手写实现关键优化技术
前端·javascript·面试
一字白首1 小时前
Vue 项目实战,从注册登录到首页开发:接口封装 + 导航守卫 + 拦截器全流程
前端·javascript·vue.js
北辰alk1 小时前
Vue3 组件懒加载深度解析:从原理到极致优化的完整指南
vue.js
沐浴露z2 小时前
详解Javascript精度丢失以及解决方案
java·javascript
今天不要写bug2 小时前
基于qrcode前端实现链接转二维码的生成与下载
前端·javascript·typescript·vue
JIngJaneIL2 小时前
基于Java + vue干洗店预约洗衣系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot