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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
vue 数据操作相关总结
Dec 17 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
vue+django实现下载文件的示例
Mar 24 Vue.js
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue自定义右键菜单之全局实现
Apr 09 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
Vue Element plus使用方法梳理
Dec 24 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
PHP校验ISBN码的函数代码
2011/01/17 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python基于贪心算法解决背包问题示例
2017/11/27 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Django静态文件加载失败解决方案
2020/08/26 Python
平面设计自荐信
2013/10/07 职场文书
个人对照检查材料
2014/02/12 职场文书
房地产端午节活动方案
2014/08/24 职场文书
文明班级申报材料
2014/12/24 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
安全员岗位职责范本
2015/04/11 职场文书
工作收入证明模板
2015/06/12 职场文书
毕业典礼主持词
2015/06/29 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
python实现腾讯滑块验证码识别
2021/04/27 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
Java 定时任务技术趋势简介
2022/05/04 Java/Android