自定义菜单实现(文件管理分类)

效果 

1.前端,引入

<link rel="stylesheet" href="${request.contextPath}/statics/plugins/ztree/css/metroStyle/metroStyle.css">

<script src="${request.contextPath}/statics/plugins/ztree/jquery.ztree.all.min.js"></script>

var setting = {
    data: {
        simpleData: {
            enable: true,
            idKey: "typeId",
            pIdKey: "parentId",
            rootPId: -1
        },
        key: {
            url: "nourl"
        }
    },
    callback: {
        onClick: zTreeOnClick,
        onDblClick: zTreeDbClick
    }
};
var ztree;
var myLayout;
$(function () {
    myLayout = $('body').layout({west__size: 185});
});
var vm = new Vue({
    el: '#rrapp',
    data: {
        showList: true,
        itemTree: {
            itemId: null,
            itemName: ''
        },
        q: {
            treeIds: ''
        },
        archiveTemplateInfoList: []
    },
    methods: {
        getItem: function () {
            //加载分类树
            $.get(baseURL + "archive/archivetype/initTree", function (r) {
                ztree = $.fn.zTree.init($("#tree"), setting, r.archiveTypeList);
                ztree.expandAll(true);
                if (ztree!=null) {
                    $("#tree_2_a").click();
                    var nodes = ztree.getNodes();
                    var len=nodes.length-1;
                   if(nodes[len].name='自定义档案'){
                       getzidingyilist(nodes[len]);
                   } //获取每个节点的id
                }
            })
        }
    },
    created: function () {
        this.getItem();
    }
});
function zTreeOnClick(event, treeId, treeNode) {
    var ids = [];
    ids = getChildren(ids, treeNode);
    vm.q.treeIds = "" + ids.join(',');
    vm.itemTree.itemId = treeNode.typeId;
    vm.itemTree.itemName = treeNode.name;
    vm.itemTree.operation = treeNode.operation;
    var htmlName = '';
    if (vm.itemTree.operation == 'ws_jh') {
        htmlName = 'archivewsinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'ws_ct_aj') {
        htmlName = 'archivewsajinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'ws_ct_jn') {
        htmlName = 'archivewsjninfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'contract') {//合同
        htmlName = 'archivehtinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'kj_pz') {//会计凭证
        htmlName = 'archivekjinfo_kjpz.html?operation=' + vm.itemTree.operation;
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'kj_zb' || vm.itemTree.operation == 'kj_bb') {//会计 ||vm.itemTree.operation=='kj_sjbg'
        htmlName = 'archivekjinfo.html?operation=' + vm.itemTree.operation;
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'kj_sjbg') {//会计
        htmlName = 'archivekjinfo_sjbg.html?operation=' + vm.itemTree.operation;
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'jj_gc') {//基建工程(案卷)
        htmlName = 'archivejjinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'jj_aj') {//基建(案卷)
        htmlName = 'archivejjajinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'jj_jn') {//基建(卷内)
        htmlName = 'archivejjjninfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'keji_xm') {//科技档案(项目)
        htmlName = 'archivekejinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'keji_aj') {//科技档案(案卷)
        htmlName = 'archivekejajinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'keji_jn') {//科技档案(卷内)
        htmlName = 'archivekejjninfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'sx') {//声像档案
        htmlName = 'archivesxinfo.html';
        changePage(htmlName);
    }  else if (vm.itemTree.operation == 'sx_jn') {//声像档案(卷内)
        htmlName = 'archivesxjninfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'rs') {//人事档案
        htmlName = 'archiversinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'sw') {//实物档案
        htmlName = 'archiveswinfo.html';
        changePage(htmlName);
    } else if (vm.itemTree.operation == 'zidingyidangan') {//自定义档案
        getzidingyilist(treeNode);
    } else if (vm.itemTree.operation == 'zidingyidangan1') {
        htmlName = 'archivecustominfo.html?operation=' + vm.itemTree.itemId;
        changePage(htmlName);
    }else if (vm.itemTree.operation == 'zidingyidangan2') {
        htmlName = 'archivecustominfo2.html?operation=' + vm.itemTree.itemId;
        changePage(htmlName);
    }else if (vm.itemTree.operation == 'zidingyidangan3') {
        htmlName = 'archivecustominfo3.html?operation=' + vm.itemTree.itemId;
        changePage(htmlName);
    }
}

function zTreeDbClick() {
    /*  vm.add();*/
}

function getzidingyilist(treeNode){
    ztree.removeChildNodes(treeNode);
    $.get(baseURL + "archive/archivetemplateinfo/list_all_nopage", function (r) {
        vm.archiveTemplateInfoList = r.list;
        let zNodes = [];
        for (i = 0; i < vm.archiveTemplateInfoList.length; i++) {
            var operation = "zidingyidangan1";
            if (vm.archiveTemplateInfoList[i].type == '1') {
                operation = "zidingyidangan2";
            }else if(vm.archiveTemplateInfoList[i].type == '3'){
                operation = "zidingyidangan3";
            }
            zNodes.push({
                'typeId': vm.archiveTemplateInfoList[i].id,
                'parentId': vm.itemTree.itemId,
                'parentName': vm.archiveTemplateInfoList[i].name,
                'name': vm.archiveTemplateInfoList[i].name,
                'operation': operation
            });
        }
        newNode = ztree.addNodes(treeNode, zNodes);
    });
}


//
//ids是一个数组 返回结果数组     treeNode是选中的节点
function getChildren(ids, treeNode) {
    ids.push(treeNode.typeId);
    if (treeNode.isParent) {
        for (var obj in treeNode.children) {
            getChildren(ids, treeNode.children[obj]);
        }
    }
    return ids;
}

function changePage(htmlName) {
    $("#rrapp").attr("src", htmlName);
}

实体类ArchiveTypeEntity

 

package com.framework.modules.archive.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 
 * 
 * @author SD
 * @email framework@gmail.com
 * @date 2019-09-16 17:30:39
 */
@TableName("archive_type")
public class ArchiveTypeEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */
	@TableId
	private Long typeId;
	/**
	 * 上级分类ID,一级分类为0
	 */
	private Long parentId;
	/**
	 * 分类名称
	 */
	private String name;
	/**
	 * 分类编码
	 */
	private String code;
	/**
	 * 顺序
	 */
	private Integer orderNum;
	/**
	 * 是否删除  -1:已删除  0:正常
	 */
	@TableLogic
	private Integer delFlag;
	/**
	 * 目录名称
	 */
	private String fileDir;

	/**
	 * 操作码
	 */
	private String operation;


	/**
	 * ztree属性
	 */
	@TableField(exist = false)
	private Boolean open;
	@TableField(exist = false)
	private List<?> list;
	/**
	 * 分类数量
	 */
	@TableField(exist = false)
	private Integer num;
	@TableField(exist = false)
	private String type;
	// 上级分类名称
	@TableField(exist = false)
	private String parentName;


	public Boolean getOpen() {
		return open;
	}

	public void setOpen(Boolean open) {
		this.open = open;
	}

	public List<?> getList() {
		return list;
	}

	public void setList(List<?> list) {
		this.list = list;
	}

	public Integer getNum() {
		return num;
	}

	public void setNum(Integer num) {
		this.num = num;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getParentName() {
		return parentName;
	}

	public void setParentName(String parentName) {
		this.parentName = parentName;
	}

	/**
	 * 设置:
	 */
	public void setTypeId(Long typeId) {
		this.typeId = typeId;
	}
	/**
	 * 获取:
	 */
	public Long getTypeId() {
		return typeId;
	}
	/**
	 * 设置:上级分类ID,一级分类为0
	 */
	public void setParentId(Long parentId) {
		this.parentId = parentId;
	}
	/**
	 * 获取:上级分类ID,一级分类为0
	 */
	public Long getParentId() {
		return parentId;
	}
	/**
	 * 设置:分类名称
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * 获取:分类名称
	 */
	public String getName() {
		return name;
	}
	/**
	 * 设置:分类编码
	 */
	public void setCode(String code) {
		this.code = code;
	}
	/**
	 * 获取:分类编码
	 */
	public String getCode() {
		return code;
	}
	/**
	 * 设置:顺序
	 */
	public void setOrderNum(Integer orderNum) {
		this.orderNum = orderNum;
	}
	/**
	 * 获取:顺序
	 */
	public Integer getOrderNum() {
		return orderNum;
	}
	/**
	 * 设置:是否删除  -1:已删除  0:正常
	 */
	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}
	/**
	 * 获取:是否删除  -1:已删除  0:正常
	 */
	public Integer getDelFlag() {
		return delFlag;
	}
	/**
	 * 设置:目录名称
	 */
	public void setFileDir(String fileDir) {
		this.fileDir = fileDir;
	}
	/**
	 * 获取:目录名称
	 */
	public String getFileDir() {
		return fileDir;
	}

	public String getOperation() {
		return operation;
	}

	public void setOperation(String operation) {
		this.operation = operation;
	}
}

Controller

 

 Service等为普通查询

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值