java实现树形结构的设计

一、页面效果

在这里插入图片描述

二、数据库表设计

CREATE TABLE `qc_question` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `p_id` bigint(11) NOT NULL,
  `rank` int(4) NOT NULL COMMENT '层级',
  `name` varchar(255) NOT NULL COMMENT '名称',
  `code` varchar(255) DEFAULT NULL COMMENT '编号',
  `group_id` bigint(20) DEFAULT NULL COMMENT '问题分组id',
  `group_name` varchar(255) DEFAULT NULL COMMENT '问题分组',
  `status` int(4) NOT NULL DEFAULT '1' COMMENT '状态',
  `order_num` int(4) DEFAULT NULL COMMENT '排序号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='质量问题库';

导入数据

INSERT INTO `qc_question` VALUES (1, 0, 1, '一级', '01', NULL, '', 0, 13);
INSERT INTO `qc_question` VALUES (2, 0, 1, '一级2', '02', NULL, NULL, 1, 14);
INSERT INTO `qc_question` VALUES (3, 1, 2, '二级1', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (4, 1, 2, '二级11', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (5, 1, 2, '二级111', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (6, 2, 2, '二级2', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (7, 2, 2, '二级22', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (8, 3, 3, '三级1', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (9, 3, 3, '三级11', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (10, 3, 3, '三级111', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (11, 6, 3, '三级2', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (12, 6, 3, '三级22', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (13, 6, 3, '三级222', '', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (14, 0, 1, '123', '123', NULL, NULL, 0, 15);
INSERT INTO `qc_question` VALUES (15, 0, 1, '123', '123', NULL, NULL, 1, 16);
INSERT INTO `qc_question` VALUES (16, 0, 1, '123', '123', NULL, NULL, 1, 17);
INSERT INTO `qc_question` VALUES (17, 0, 1, '123', '123', NULL, NULL, 1, 18);
INSERT INTO `qc_question` VALUES (18, 0, 1, '123', '123', NULL, NULL, 1, 19);
INSERT INTO `qc_question` VALUES (19, 0, 1, '1231q', '1231211q', NULL, NULL, 1, 20);
INSERT INTO `qc_question` VALUES (20, 16, 1, '123', '123', 1941114752034848, '合格,无瑕疵', 1, 0);
INSERT INTO `qc_question` VALUES (21, 19, 2, '123', '1231211q', 1941114752034848, '合格,无瑕疵', 1, 0);
INSERT INTO `qc_question` VALUES (22, 19, 2, '1', '1231211q', 1941114819086368, '缝制问题', 1, 0);
INSERT INTO `qc_question` VALUES (23, 19, 2, '2', '1', 1941114889668640, '整烫问题', 0, 0);
INSERT INTO `qc_question` VALUES (24, 19, 2, '123', '中', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (25, 18, 2, '123', '123', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (26, 24, 3, '123', '123', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (27, 24, 2, '1232', '中', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (28, 24, 2, '123总', '中', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (29, 19, 2, '2', '2', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (30, 0, 1, '1', '1', NULL, NULL, 1, 0);
INSERT INTO `qc_question` VALUES (31, 30, 2, '22', '1', 1941114752034848, '合格,无瑕疵', 1, 1);
INSERT INTO `qc_question` VALUES (32, 30, 2, '2', '2', 1941114752034848, '合格,无瑕疵', 1, 0);
INSERT INTO `qc_question` VALUES (33, 31, 3, '1', '2', 1941114889668640, '整烫问题', 1, 0);
INSERT INTO `qc_question` VALUES (34, 0, 1, '1', NULL, NULL, NULL, 1, 1);
INSERT INTO `qc_question` VALUES (35, 0, 1, '1', '1', NULL, NULL, 1, 2);
INSERT INTO `qc_question` VALUES (36, 0, 1, '2', '2', NULL, NULL, 1, 3);
INSERT INTO `qc_question` VALUES (37, 35, 2, '1', '1', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (38, 37, 3, '1', '2', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (39, 0, 1, '辅料问题AS', 'MZ714001EE', NULL, NULL, 1, 4);
INSERT INTO `qc_question` VALUES (40, 39, 2, '辅料问题111', 'MZ14011', 1941115390683168, '尺寸问题', 1, NULL);
INSERT INTO `qc_question` VALUES (41, 39, 2, '辅料问题2R', '测试001W', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (42, 40, 3, '辅料问题111', 'MZ-001', 1941115337533473, '手工问题', 1, NULL);
INSERT INTO `qc_question` VALUES (43, 0, 1, 'AA', 'AA21', NULL, NULL, 1, 5);
INSERT INTO `qc_question` VALUES (44, 0, 1, 'BB', 'BB01', NULL, NULL, 1, 7);
INSERT INTO `qc_question` VALUES (45, 39, 2, '测试问题B', 'B009', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (46, 39, 2, 'CWEN003', 'CC001', 1941115512883233, '其他问题', 1, NULL);
INSERT INTO `qc_question` VALUES (47, 40, 3, '辅料问题111', 'gs32001', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (48, 40, 3, '辅料问题111', 'gs002', 1941115445594145, '色差问题', 1, NULL);
INSERT INTO `qc_question` VALUES (49, 0, 1, 'S', 'S1', NULL, NULL, 1, 6);
INSERT INTO `qc_question` VALUES (50, 0, 1, 'DQQ1', 'D000000000ff发1', NULL, NULL, 1, 8);
INSERT INTO `qc_question` VALUES (51, 0, 1, 'C1', 'C0001', NULL, NULL, 1, 9);
INSERT INTO `qc_question` VALUES (52, 39, 2, '角度思考DAD', '30001A', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (53, 39, 2, 'K就-', 'K001', 1941115144661024, '脏污问题', 1, NULL);
INSERT INTO `qc_question` VALUES (54, 39, 2, 'T', 'TOO09', 1941115390683168, '尺寸问题', 1, NULL);
INSERT INTO `qc_question` VALUES (55, 39, 2, 'U00尽快', '的U001', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (56, 40, 3, '辅料问题111', '9099', NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (57, 46, 3, 'CWEN003', NULL, NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (58, 52, 3, '角度思考DB', '23', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (59, 55, 3, 'U00尽快', NULL, NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (60, 40, 3, '辅料问题111', NULL, NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (61, 54, 3, 'T', NULL, NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (62, 54, 3, 'T', NULL, NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (63, 0, 1, '最终测试大类', 'LK01', NULL, NULL, 1, 10);
INSERT INTO `qc_question` VALUES (64, 63, 2, '最终测试中类', 'LK001-1', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (65, 64, 3, '问题小类1', 'LK001-3', 1941115337533473, '手工问题', 1, NULL);
INSERT INTO `qc_question` VALUES (66, 64, 3, 'AA测试小类', 'lk0012-2', 1941115445594145, '色差问题', 1, NULL);
INSERT INTO `qc_question` VALUES (67, 64, 3, 'BB版本', 'kk008', 1941115445594145, '色差问题', 1, NULL);
INSERT INTO `qc_question` VALUES (68, 52, 3, '角度思考DY', '321', 1941115144661024, '脏污问题', 1, NULL);
INSERT INTO `qc_question` VALUES (69, 40, 3, '辅料问题111', 'AAA901', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (70, 31, 3, '22', '我是小类', 1941114752034848, '合格,无瑕疵', 1, 1);
INSERT INTO `qc_question` VALUES (71, 64, 3, '故事', 'AA102', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (72, 55, 3, 'U00尽快', '我是小类', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (73, 31, 3, '22', '新增小烈', 1941114752034848, '合格,无瑕疵', 1, 2);
INSERT INTO `qc_question` VALUES (74, 23, 3, '2', '新增小烈', 1941114752034848, '合格,无瑕疵', 0, NULL);
INSERT INTO `qc_question` VALUES (75, 64, 3, '最终测试中类', '新增小烈', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (76, 34, 2, '123', '123', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (77, 43, 2, '1', '1', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (78, 34, 2, '1', '1', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (79, 34, 2, '2', '2', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (80, 16, 2, '啊', '啊', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (81, 18, 2, '1', '1', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (82, 18, 2, '2', '2', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (83, 23, 3, '锡类', '编号', 1941114752034848, '合格,无瑕疵', 0, NULL);
INSERT INTO `qc_question` VALUES (84, 23, 3, '小类', '编号', 1941114752034848, '合格,无瑕疵', 0, NULL);
INSERT INTO `qc_question` VALUES (85, 19, 2, '种类', '种类', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (86, 85, 3, '子类', '子类', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (87, 85, 3, '小磊', '小磊', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (88, 19, 2, '123', '123', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (89, 0, 1, '1', '1', NULL, NULL, 1, 11);
INSERT INTO `qc_question` VALUES (90, 0, 1, 'ss', 'ss', NULL, NULL, 1, 12);
INSERT INTO `qc_question` VALUES (91, 90, 2, 'ss', 'ss', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (92, 91, 3, 'ss', 'ss', 1941114752034848, '合格,无瑕疵', 1, NULL);
INSERT INTO `qc_question` VALUES (93, 39, 2, '考虑到', 'S003', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (94, 39, 2, '的', 'D009', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (95, 94, 3, '迷宫小类D', 'MG0011', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (96, 39, 2, 'LAKUA', 'LK092', 1941114949560353, '版型问题', 1, NULL);
INSERT INTO `qc_question` VALUES (97, 0, 1, '毛疵起球', 'A1001', NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (98, 0, 1, '温度控制', 'B1002', NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (99, 97, 2, '大衣起球', 'LK001', 1941115082082336, '线毛问题', 1, NULL);
INSERT INTO `qc_question` VALUES (100, 97, 2, '毛衣掉线', 'LK002', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (101, 97, 2, '衣服易染色', 'LK003', 1941115390683168, '尺寸问题', 1, NULL);
INSERT INTO `qc_question` VALUES (102, 97, 2, '衣服低温存储', 'LK004', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (103, 98, 2, '高温不允许', 'BGW-01', 1941114819086368, '缝制问题', 1, NULL);
INSERT INTO `qc_question` VALUES (104, 98, 2, '低温', 'BGW-01', 1941114889668640, '整烫问题', 1, NULL);
INSERT INTO `qc_question` VALUES (105, 103, 3, '高温70度', 'BH-01', 1941115512883233, '其他问题', 1, NULL);
INSERT INTO `qc_question` VALUES (106, 103, 3, '高温20度', 'BH-01', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (107, 104, 3, '低于10度', 'BL01', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (108, 104, 3, '零下10度', 'BL02', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (109, 99, 3, '袖口起球', 'XK01', 1941115337533473, '手工问题', 1, NULL);
INSERT INTO `qc_question` VALUES (110, 99, 3, '衣服内测起球', 'XK01', 1941115144661024, '脏污问题', 1, NULL);
INSERT INTO `qc_question` VALUES (111, 100, 3, '线尾脱落', 'XW01', 1941115082082336, '线毛问题', 1, NULL);
INSERT INTO `qc_question` VALUES (112, 100, 3, '线尾不封闭', 'XW02', 1941115144661024, '脏污问题', 1, NULL);
INSERT INTO `qc_question` VALUES (113, 101, 3, '易染易晕色', 'YR001A', 1941115013228576, '工艺问题', 1, NULL);
INSERT INTO `qc_question` VALUES (114, 0, 1, '材料构成', 'CL01', NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (115, 114, 2, '面料类问题', 'ML01', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (116, 114, 2, '辅料类植草问题', 'FL02', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (117, 115, 3, '纱布', 'MML01', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (118, 115, 3, '纯棉', 'MML02', 1941115203536929, '面次问题', 1, NULL);
INSERT INTO `qc_question` VALUES (119, 116, 3, '辅料纽扣', 'FFL01', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (120, 116, 3, '辅料拉链', 'FFL02', 1941115278919712, '辅料问题', 1, NULL);
INSERT INTO `qc_question` VALUES (121, 0, 1, '样式问题', 'YS01', NULL, NULL, 1, NULL);
INSERT INTO `qc_question` VALUES (122, 121, 2, '青年流行风', 'QNL01', 1941115512883233, '其他问题', 1, NULL);
INSERT INTO `qc_question` VALUES (123, 122, 3, '青春风格', 'QC021', 1941115445594145, '色差问题', 1, NULL);

三、代码实现

controller

package com.juliet.quality.controller;


import com.juliet.common.core.web.domain.AjaxResult;
import com.juliet.quality.domain.dto.QuestionAddOrUpdateDTO;
import com.juliet.quality.domain.dto.QuestionListDTO;
import com.juliet.quality.domain.dto.QuestionOrderDTO;
import com.juliet.quality.domain.dto.QuestionUpdateStatusDTO;
import com.juliet.quality.domain.vo.QuestionListVO;
import com.juliet.quality.service.IQcQuestionService;
import io.
$(function(){ $.fn.extend({ SimpleTree:function(options){ //初始化参数 var option = $.extend({ click:function(a){ } },options); option.tree=this; /* 在参数对象中添加对当前菜单树的引用,以便在对象中使用该菜单树 */ option._init=function(){ /* * 初始化菜单展开状态,以及分叉节点的样式 */ this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */ this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */ this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */ this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */ }/* option._init() End */ /* 设置所有超链接不响应单击事件 */ this.find("a").click(function(){ $(this).parent("li").click(); return false; }); /* 菜单项 接受单击 */ this.find("li").click(function(){ /* * 当单击菜单项 * 1.触发用户自定义的单击事件,将该 标签中的第一个超链接做为参数传递过去 * 2.修改当前菜单项所属的子菜单的显示状态(如果等于 true 将其设置为 false,否则将其设置为 true) * 3.重新初始化菜单 */ option.click($(this).find("a")[0]); /* 触发单击 */ /* * 如果当前节点下面包含子菜单,并且其 show 属性的值为 true,则修改其 show 属性为 false * 否则修改其 show 属性为 true */ /* if($(this).next("ul").attr("show")=="true"){ $(this).next("ul").attr("show","false"); }else{ $(this).next("ul").attr("show","true"); }*/ /* 初始化菜单 */ option._init(); }); /* 设置所有父节点样式 */ this.find("ul").prev("li").addClass("folder"); /* 设置节点“是否包含子节点”属性 */ this.find("li").find("a").attr("hasChild",false); this.find("ul").prev("li").find("a").attr("hasChild",true); /* 初始化菜单 */ option._init(); }/* SimpleTree Function End */ }); });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值