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中使用mockjs代码实例
Nov 25 Vue.js
vue-router定义元信息meta操作
Dec 07 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
vue 递归组件的简单使用示例
Jan 14 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
vue 实现上传组件
May 31 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 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新手上路(十二)
2006/10/09 PHP
php中处理模拟rewrite 效果
2006/12/09 PHP
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
潜说js对象和数组
2011/05/25 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
上班打牌检讨书
2014/02/07 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
停车场管理制度范本
2015/08/05 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫