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 08 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
详解实现vue的数据响应式原理
Jan 20 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 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
VFP与其他应用程序的集成
2006/10/09 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
2019/04/08 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python字典遍历操作实例小结
2019/03/05 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
python openssl模块安装及用法
2020/12/06 Python
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
高校师德师风自我剖析材料
2014/09/29 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书