Avue 远程搜索输入框,联动赋值其他组件 v2.7.10及以下

2023-11-17

Avue版本:v2.7.10及以下适用本文,v2.8.0及以上版本点这里


《 Avue 远程搜索输入框,联动赋值》

效果图
在这里插入图片描述


前言

在很多情况下需要联动赋值给输入框,本文基于avue框架分别从avue与element-ui两方面进行远程搜索输入框联动赋值给其他输入框。

  • 需求
    • 1、后台接受模糊查询参数,从 编码 字段的输入值进行后台模糊匹配并返回json数据。(接口已经实现,传值调用即可)
    • 2、根据 编码 的选择,将数据行自带的值匹配到 描述1 、描述2中。

提示:以下是本篇文章正文内容,下面案例可供参考;
本文是基于对avue基本的表单结构熟悉后进行的操作,基础步骤不详的,可联系作者交流学习。

一、基于avue自带属性实现(效果差)

示例:avue 是基于element-ui封装的一种工具,该工具是为了解决数据表单任务而创建的。

Option属性

export const tableOption = {
  "border": true,
  "index": true,
  "indexLabel": "序号",
  "stripe": true,
  "menuAlign": "center",
  "align": "center",
  "searchMenuSpan": 6,
  "searchslot": true,
  "selection":true,
  "column": [
    {
      "type": "select",
      "label": "编码",
      "prop": "Number",
      "remote": true,  //开启远程访问
      "dicFlag":false,  //初次获得焦点不下拉
      "dicUrl": "/admin/version/vp?num={{key}}",  //key为当前输入值
      "props": {   //下拉列表的选项值,对应编码
        lable: 'Part',
        value: 'Part',
      },
      "cascaderItem": ['desc1', 'desc2'],  //联动两个属性
      "search": true,    //远程搜索
      "span": 12,
    }, {
      "type": "input",
      "label": "描述1",
      "prop": "desc1",
      "dicFlag":false,
      "dicUrl": "/admin/version/vp?num={{Number}}",  //联动时 获取productNumber的值
      "props": {     //描述1
        lable: 'Desc1',
        value: 'Desc1',
      },
      "cascaderIndex": 0,  //默认联动
      "span": 12,
    }, {
      "type": "input",
      "label": "描述2",
      "prop": "desc2",
      "dicFlag":false,
      "dicUrl": "/admin/craftversion/vp?num={{Number}}", //联动时 获取productNumber的值
      "props": {  //描述2
        lable: 'Desc2',
        value: 'Desc2',
      },
      "cascaderIndex": 0,
      "span": 12,
    }, {
      "type": "input",
      "label": "版本",
      "prop": "Verion",
      "span": 12
    }
  ],
}

基于avue属性方法的效果如下:
在这里插入图片描述
在联动描述1、描述2 输入框时,存在明显卡顿(GIF经过加速,卡顿可能不明显)

二、基于element-ui实现(效果好)

Option属性

export const tableOption = {
  "border": true,
  "index": true,
  "indexLabel": "序号",
  "stripe": true,
  "menuAlign": "center",
  "align": "center",
  "searchMenuSpan": 6,
  "searchslot": true,
  "selection":true,
  "column": [
    {
      "type": "select",
      "label":"编码",
      "prop": "Number",
      "formslot":true,   //开启自定义插槽,引入element-ui
      "search": true,    //设置搜索项
      "span": 12,
    }, {
      "type": "input",
      "label": "描述1",
      "prop": "desc1",
      "span": 12,
    }, {
      "type": "input",
      "label": "描述2",
      "prop": "desc2",
      "span": 12,
    }, {
      "type": "input",
      "label": "版本",
      "prop": "Verion",
      "span": 12
    }
  ],
}


index.vue中在 avue-crud 组件中添加自定义插槽

 <template slot-scope="scope" slot="NumberForm">
          <el-autocomplete
            v-model="scope.row.Number"
            :trigger-on-focus="false"   
            :fetch-suggestions="querySearchAsync"
            placeholder="请输入内容"
            @select="handleSelect($event,scope.row)">
          </el-autocomplete>
</template>


index.vue中的 methods对象中的方法

      //远程搜索
      querySearchAsync(queryString, cb) {
        let res = []   //定义数组,存储暂时的下拉数据
        queryNum(queryString).then(response =>{   //queryNum 为定义的路由方法
          response.data.data.forEach(item=>{
            res.push({
              value:item.Part,
              desc1:item.Desc1,
              desc2:item.Desc2
            })
          })
          cb(res)  //数据返回,value为下拉可见项
        }).catch(e =>{
          this.$message.error("请检查网络")
        })
      },
      
      //选择下拉项时
      handleSelect(item,row) {
        //为描述1、描述2 联动赋值
        row.desc1 = item.desc1,
          row.desc2 = item.desc2
      },



路由中添加的方法(接口后端已写好,前端只是调用,本文不讨论后端实现)
export function queryNum(num) {
  return request({
    url: '/admin/version/vp/',   //后台监听的路径,模糊匹配返回
    method: 'get',   //get请求
    params: {
      "num":num    //监听的属性值
      }
  })
}

element-ui 方法效果如下:
在这里插入图片描述
在联动描述1、描述2 输入框时,几乎同步联动。


总结

1、element-ui方法效果最好,只发送一次请求,响应快;
2、avue属性方法每联动一次就需要发生一次请求,导致响应慢。
3、avue属性方法较简单,适合测试接口使用。
4、element-ui方法简单,适合实际开发使用,适合开发者了解其运行原理,提升开发思维。
5、如果你有疑问或者有更好的实现方法请留言,交流学习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Avue 远程搜索输入框,联动赋值其他组件 v2.7.10及以下 的相关文章

随机推荐

  • 机器学习之有监督学习

    监督学习的目标 利用一组带有标签的数据 学习从输入到输出的映射 然后将这种映射关系应用到未知数据上 达到分类或回归的目的 分类 当输出是离散的 学习任务为分类任务 回归 当输出是连续的 学习任务为回归任务 分类学习 输入 一组有标签的训练数
  • python 3.9 Building wheel for opencv-contrib-python (PEP 517)

    问题 python3 9安装airetest 一直卡在 Building wheel for opencv contrib python PEP 517 解决办法 降低opencv contrib python版本先安装opencv con
  • 华为OD机试 -身高排序(Java)

    题目描述 小明今年升学到了小学一年级 来到新班级后 发现其他小朋友身高参差不齐 然后就想基于各小朋友和自己的身高差 对他们进行排序 请帮他实现排序 输入描述 第一行为正整数H和N 0 lt H lt 200 为小明的身高 0 lt N lt
  • 大脚战场插件怎么关闭_魔兽战场插件 capping插件怎么关闭

    魔兽世界怎么取消战场插件 字符选择屏幕的左下角有一个插件选项 单击下面的 战场 并单击以禁用它们 它不在游戏中 死亡模式你是说死后的黑白 如果是 点击游戏界面下方的系统选项 进入视频设置 关闭显示设置中的死亡效果 WOW战场capping插
  • Docker Postgres 安装部署指南1.0

    以下为实验版本 Docker version 18 09 2 Postgres 11 4 内容目录 1 确定需要安装的版本 2 获取指定版本镜像 3 指定数据挂载目录 4 启动Postgres服务 5 创建数据库 用户 5 1 进入容器内部
  • 【前后端】将代码上传到gitee

    文章目录 前台 gitee建立仓库 步骤A 如果是双人 则有步骤B 后台 gitee建立仓库 复制链接 代码拷贝 提交 小记录一波 前台 gitee建立仓库 步骤A 初始化 commit 后面单引号随便写 git init git add
  • VLAN划分及配置注意事项

    VLAN Virtual Local Area Network 即虚拟局域网 是将一个物理的LAN在逻辑上划分成多个广播域的通信技术 VLAN内的主机间可以直接通信 而VLAN间不能直接通信 从而将广播报文限制在一个VLAN内 VLAN之间
  • Spark Streaming VS Flink

    架构对比 运行角色 Spark Streaming 运行时的角色 standalone 模式 主要有 Master 主要负责整体集群资源的管理和应用程序调度 Worker 负责单个节点的资源管理 driver 和 executor 的启动等
  • MT6701磁编码器使用指南,14Bit单圈绝对值,I2C stm32 HAL库读角度,兼容AS5600

    MT6701是麦歌恩 MagnTek 公司的磁性角度传感器芯片 提供14Bit 0 360 单圈绝对角度检测 拥有 ABZ PWM 模拟量 I2C SSI 等多种信息输出方式 还可根据磁场强度的瞬时变化提供非接触式按压检测功能 能够以较低的
  • ENVI 5.3 分类后类别合并

    想把粉色的云层合并到林地 选择 Combine Classes 输出为 白云类别与林地合并
  • iOS支付功能

    文章转载自 https www jianshu com p 8eb14edca8fb 1 简介 iOS支付主要分两类 第三方支付和应用内支付 内购 其中第三方支付包括有 支付宝支付 微信支付 银联支付 百度钱包支付 京东支付等 应用内支付
  • 高性能javascript--算法和流程控制

    for while和do while性能相当 避免使用for in循环 除非遍历一个属性量未知的对象 es5 for in 遍历的对象便不局限于数组 还可以遍历对象 原因 for in每次迭代操作会同时搜索实例或者原型属性 for in 循
  • Linux系统:centos7.2忘记密码怎么办?

    在使用centos系统的时候有时候太久没用忘记登录密码了 这时候该怎么办呢 下面就来教教大家怎么重置root管理员的密码 1 启动系统 在GRUB2引导画面 按E键 编辑引导项 2 删除linux16这一行最后的 rhgb和 quiet参数
  • vue3中如何以函数的形式创建组件并挂载

    在日常开发中 我们可能会遇到一种情况 组件太灵活 且无法预先定义 那么我们就需要能够创建组件的能力 并且能组合到我们现有的界面中 基础API javascript 创建 app component name 组合
  • Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作

    Uniapp零基础开发学习笔记 4 顶部导航栏titleNView的制作 制作顶部导航栏titleNView的过程 1 官网上关于顶部导航栏的介绍 https uniapp dcloud net cn collocation pages h
  • sqlserver转换时间为字符串

    convert varchar 8 getdate 112 把
  • 文件预览:使用xlsx预览excel文件

    文件预览系列 mavon editor预览Markdown文件 xlsx预览excel文件 注意事项 多sheet页的情况需要自己手动处理 一 安装插件 xlsx 我目前使用的是0 17 5版本 之前有一次升级后报错 如果xlsx内部报错
  • C++deque容器deque 排序

    C deque容器deque 排序 功能描述 利用算法实现对deque容器进行排序 include
  • 关于BMC ipmi oem cmd和redfish

    ipmi是一个适用于bmc的标准协议 开发者可以通过ipmi oem cmd和bmc交互 oem cmd的实现与组成 均为unsigned char类型 NetFunction Cmd Request data Response data
  • Avue 远程搜索输入框,联动赋值其他组件 v2.7.10及以下

    Avue版本 v2 7 10及以下适用本文 v2 8 0及以上版本点这里 文章目录 Avue 远程搜索输入框 联动赋值 前言 一 基于avue自带属性实现 效果差 二 基于element ui实现 效果好 总结 Avue 远程搜索输入框 联