首页 > 其他分享 >el-tree 自动展开

el-tree 自动展开

时间:2023-05-24 10:01:58浏览次数:46  
标签:el tree fileList 自动 history 上传 节点 页面

el-tree 自动展开

需求:通过输入来筛选树中的数据,由于数据是通过懒加载得到的。因此需要手动的点击每个节点来展开它们。然而,如何才能不通过手动点击来展开所有节点呢?

  1. 利用默认展开节点属性 :default-expanded-keys="expandList"
  2. 把当前分类节点数据加入默认展开的列表中。
  3. 然后遍历当前全部节点,并把所有节点的expanded属性手动置为true.
  4. 通过默认的节点筛选函数进行筛选。
searchName() {
    this.expandList = [1];
    this.loading = true;
    if (this.corpId) {
        this.getClassify({ corpId: this.corpId })
            .then(classify => {
            classify.forEach(item => {
                this.expandList.push(item.id);
            });
        })
            .catch(() => {
            this.$message.warning('搜索不可用');
        });
    } else {
        this.$message.warning(
            '获取组织当前用户组织失败,请刷新页面后重试',
        );
    }

    for (
        var i = 0;
        // eslint-disable-next-line no-underscore-dangle
        i < this.$refs.tree.store._getAllNodes().length;
        i++
    ) {
        // eslint-disable-next-line no-underscore-dangle
        this.$refs.tree.store._getAllNodes()[
            i
        ].expanded = true;
    }

    let that = this;
    setTimeout(() => {
        that.$refs.tree.filter(this.filterText);
        this.loading = false;
    }, 3000);
},

自定义请求上传文件

<el-upload
ref="uploadMutiple"
:auto-upload="false"
action="Fake Action"
:on-success="allHandleSuccess"
:on-change="handleChange"
:file-list="fileList"
:http-request="allUpload"
:before-upload="before_upload"
multiple
>选取文件</el-upload>

<el-button type="primary" size="small" @click="submitUpload">
  
<el-button type="primary" size="small" @click="submitUpload">上传</el-button>

首先关闭自动上传,并给随便给action赋值一个字符串。(action是必填属性)

   :auto-upload="false"
   action="Fake Action"

通过:on-change钩子函数,拿到文件列表:

handleChange(file, fileList) {
  this.fileList = fileList;
},

一般情况下,我们在submitUpload()的点击事件中去触发上传:

submitUpload() {
this.$refs.uploadMutiple.submit();
}

之后组件会触发:http-request钩子行数。需要注意的是,这里你的fileList中有几个文件,就会执行几次:http-request钩子函数。这意味着,如果你把上传请求写在:http-request钩子函数中,就会造成重复不必要的请求。直接在submitUpload()中写post请求即可。只需要把文件封装为formData对象,作为参数传给后台即可。

  let formData = new FormData();
  this.fileList.forEach(item => {
    formData.append("files", item.raw);
  });

  this.axios.post(api, formData);

下面是后台接口的写法:

public JSONResponse archiveBatchImport(@RequestParam("files") MultipartFile[] files){}

关于上传参数的问题 请求头application/x-www-form-urlencoded

请求头application/json;charset=UTF-8

退出登入后,禁止返回键操作

问题描述:

用户A登录系统操作完毕后,退出系统到登录页面。交予用户B操作,用户B在登录页面点击回退按钮,发现回退到用户A所操作过的页面。

退出登入后,禁止返回键操作:

logout(){
 	// 跳转到登录页面
    this.$router.push({
        path: '/',
    });
    // 退出登入后 禁止返回键操作
    window.history.pushState(null, null, document.URL);
    window.addEventListener(
        'popstate',
        function() {
            window.history.pushState(null, null, document.URL);
        },
        false,
    );
}

window.history对象

Window.history是一个只读属性,用来获取History 对象的引用,History 对象提供了操作浏览器会话历史(浏览器地址栏中访问的页面,以及当前页面中通过框架加载的页面)的接口。

history.back();     // 等同于点击浏览器的回退按钮
history.go(-1);     //等同于history.back();

标签:el,tree,fileList,自动,history,上传,节点,页面
From: https://blog.51cto.com/codeniu/6337098

相关文章

  • COMWIN智能传感器自动检测、自动识别、自动计算功能的传感器 直接显示物理量的振弦传
    智能传感器,将传感器相关数据(传感器型号、量程、K值、B值、编号等)写入电子标签,将电子标签嵌入到传感器内部,读取传感器数据的同时也能显示电子标签的内容,具有自动检测、自动识别、自动计算功能的传感器,为测量工程师的数据获取和数据计算节省了大量的时间,也可以避免计算错误的发生......
  • Shell - Shell01 概述
    Shell是什么Shell解析器有哪些Shell脚本的格式Shell脚本的执行   Shell是什么Shell是一个命令解释器,接收应用程序/用户命令去调用操作系统内核。Shell是一个功能强大的编程语言,易编写、易调试、灵活性强。 Shell解析器有哪些[root@node~]#cat/etc/shel......
  • GitlabCI学习笔记之二:GitLabRunner pipeline语法
    1.pipeline语法之语法校验进入项目中,点击CI/CD下pipeline页面中CIint 输入pipeline内容,点击Validate2.pipeline语法之job在每个项目中,我们使用名为.gitlab-ci.yml的YAML文件配置GitLabCI/CD管道。这里在pipeline中定义了两个作业,每个作业运行不同的命令。命令可以......
  • es笔记五之term-level的查询操作
    本文首发于公众号:Hunter后端原文链接:es笔记五之term-level的查询操作官方文档上写的是term-levelqueries,表义为基于准确值的对文档的查询,可以理解为对keyword类型或者text类型分词为keyword的字段进行term形式的精确查找。以下是本篇笔记目录:是否存在值前缀搜索......
  • R语言如何做马尔可夫转换模型markov switching model|附代码数据
    全文链接:http://tecdat.cn/?p=6962最近我们被客户要求撰写关于马尔可夫转换模型的研究报告,包括一些图形和统计输出。假设有时间序列数据,如下所示。经验表明,目标变量y似乎与解释变量x有关。然而,乍一看,y在水平中间波动,所以它似乎并不总是有稳定的关系(背后有多个状态)上面的样本......
  • 自动提示优化APO:淘汰提示工程师
    模型调教得好不好,提示(prompt)最重要。在优化和改进提示工程的过程中,提示变得越来越精巧、复杂。据GoogleTrends,提示工程在过去的6个月受欢迎程度急剧上升,到处都是关于提示的教程和指南。比如,一个在网上爆火的提示工程指南GitHub已经狂澜28.5k星。然而,完全用试错法开发提示可......
  • PowerShell系列(二):PowerShell和Python之间的差异介绍
    今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。1、  Python定义Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自......
  • [ABC143E] Travel by Car
    TravelbyCar的传送门\(n\le300\)可凭感觉进行一遍Floyd。然后选两个点\(i,j\),如果\(i,j\)间的距离小于等于\(l\),则将\(i,j\)连一条代价为\(1\)的边(假设\(i,j\)要用一桶油)。最后再来一遍Floyd即可。因为第一次是加满油的,所以答案要\(-1\)。#include<bit......
  • shell流程控制
    if判断基本语法#单分支if判断条件;then执行命令fi#双分支if判断条件;then执行命令else执行命令fi#多分支if判断条件;then执行命令elif判断条件;then执行命令else执行命令fi代码示例#单分支[root@headtest]#cattest......
  • shell基础知识记录
    调式脚本的方式#调试整个脚本执行内容sh-vxtest.sh#不加-v,只显示脚本中运行的代码,不显示注释信息#调试脚本语法是否有问题sh-ntest.sh#调试脚本的一部分,将脚本中需要调试的部分用set-x和set+x包含起来[root@headtest]#cattest.sh#!/usr/bin/bashset-x......