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中的自定义指令
Dec 07 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
Vue操作Storage本地化存储
Apr 29 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 Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
创业计划书撰写原则
2014/01/25 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
学期个人自我总结
2015/02/13 职场文书
预备党员介绍人意见
2015/06/01 职场文书
2015年暑假生活总结
2015/07/13 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python