vue-treeselect的基本用法以及解决点击无法出现拉下菜单


Posted in Vue.js onApril 30, 2022

vue-treeselect无法点击

问题原因

样式冲突(使用了elementui)

场景:在el-form标签中,如果使用了标签,并且父标签不是的话,就会出现无法点击的问题。(没有严格按elementui的标签嵌套)

可正常点击

<el-row>
   <el-col :span="24"  v-if="form.parentId !== 0">
     <el-form-item   label="上级字典" prop="parentId">
       <treeselect v-model="parentId" :options="dictOptions"  />
     </el-form-item>
   </el-col>
 </el-row>

不能正常点击

<el-col :span="24" >
  <el-form-item   label="上级字典" prop="parentId">
    <treeselect v-model="parentId" :options="dictOptions"  />
  </el-form-item>
</el-col>

其他场景下,应该也是样式冲突的问题。

vue-treeselect的基本一些用法

1.首先需要先安装

@riophae/vue-treeselect":"^0.0.37

这是vue官方的中文文档可以参考 https://www.vue-treeselect.cn/#node

vue-treeselect的基本用法以及解决点击无法出现拉下菜单

2.需要引入至vue页面使用

import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  components: {
    Loadding,
    Treeselect,
  },

3.需要在页面中写入

<div class="search_row_label">单位管理范围:</div>
              <div class="search_row_content">
                <treeselect
                 noResultsText="暂无结果" 
                 v-model="dwgxfw"
                  clearValueText="删除"     	//“×”按钮的标题
                  :searchable="false"           //是否启用搜索功能
                  :options="szxzList"           //选项数据
                  :load-options="loadOptions"   //用于动态加载选项
                  placeholder="请选择"
                  @select="changeSelect"        //选择一个选项后发出用于选择
                  @input="inputChange"          //输入框值更改后发出触发
                >
                
                </treeselect>

4.这里举例实际应用

首先需要先获取到父节点的值

getParentLocalityName(){
      this.getRequest(this.Jurisdiction,"s_kj/s_kj_02/s_kj_02_01/loadDiscritctTreeRootNode","").then(res=>{
        // this.Loadding = false;
        //这里先判断状态
        if(res.data.state==1){
          let resData = res.data.data
          let objData = {}  //定义一个空对象
           objData.id = resData.localitycode;
          objData.label = resData.localityname;
          objData.name = resData.localitydesc;
          objData.children = null;
            this.szxzList.push(objData)  //在这里将获取到的数据代入
            console.log(this.szxzList)
        }else{
              this.Loadings = false;
              this.$Message.error(res.data.msg);
        }
      }).catch(error=>{
                this.Loadings = false;
      })

5.当点击时加载子数据

loadOptions({action,parentNode,callback}){
  //这里有三个参数
  action   获取到的值
  parentNode  加载子选项时显示
  callback		接受error参数的函数
      console.log(parentNode)
      let params={
                parentLocCode: parentNode.id
      }
      this.getRequest(this.Jurisdiction,"s_kj/s_kj_02/s_kj_02_01/loadDiscrictTreeNode",urlPath(params)).then(res=>{
        if(res.data.state==1){
          if(res.data.data.length>0){
            let resData =res.data.data
            let arr = []   //定义空数组
            resData.forEach(item=>{
              let objData={}
              objData.id = item.localitycode;
              objData.label = item.localityname;
              objData.name = item.localitydesc;
              console.log(item.localitylevel)
               if (item.localitylevel <=item.localitylevel+1) {  //这里选择需要获取几个子节点进行判断
                objData.children = null
                   objData.loading=false;
              }
              arr.push(objData)  //将获取的数据代入
            })
           parentNode.children = arr;
            callback();
          }
        }
      })
    },  
    changeSelect(n,i){
      console.log(n)
   if (n.label == "长江流域") {
        this.dwgxfw = "";
      } else {
        console.log(222)
        this.dwgxfw = n.label;
        this.dwglcode = n.id
      }
    },
     inputChange(n, i) {
      if (n == undefined) {
        this.dwgxfw = "";
      }
    },

6.实际的效果图

vue-treeselect的基本用法以及解决点击无法出现拉下菜单

Vue.js 相关文章推荐
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
Vue 组件注册全解析
Dec 17 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
vue实现可拖拽的dialog弹框
May 13 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 #Vue.js
Vue操作Storage本地化存储
Apr 29 #Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 #Vue.js
详解Vue3使用axios的配置教程
Apr 29 #Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 #Vue.js
vue里使用create, mounted调用方法
vue elementUI批量上传文件
Apr 26 #Vue.js
You might like
用php守护另一个php进程的例子
2015/02/13 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
原生js实现购物车
2020/09/23 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python解析nginx日志文件
2015/05/11 Python
Python切片知识解析
2016/03/06 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
商场端午节活动方案
2014/01/29 职场文书
音乐教学随笔感言
2014/02/19 职场文书
综合内勤岗位职责
2014/04/14 职场文书
同意报考证明
2015/06/17 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
python 实现图片特效处理
2022/04/03 Python