效果
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等为普通查询