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 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
vue实现简易音乐播放器
Aug 14 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
js实现选项卡效果
2020/03/07 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
python万年历实现代码 含运行结果
2017/05/20 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python 读写中文json的实例详解
2017/10/29 Python
详解Python中的测试工具
2019/06/09 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
普天C++笔试题
2016/03/20 面试题
幼儿园教学随笔感言
2014/02/23 职场文书
物理教育专业求职信
2014/06/25 职场文书
新学期标语
2014/06/30 职场文书
导游词欢迎词
2015/02/02 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
《刷子李》教学反思
2016/02/20 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
angular异步验证器防抖实例详解
2022/03/31 Javascript
Django框架中视图的用法
2022/06/10 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android