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新手入门指导教程
Nov 18 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 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 分页类实现代码
2009/12/03 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
Python实现二维数组输出为图片
2018/04/03 Python
python2与python3共存问题的解决方法
2018/09/18 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
大学生简单自荐信
2013/11/10 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
产假请假条
2014/04/10 职场文书
2014年冬季防火方案
2014/05/21 职场文书