旅遊項目管理開發之樹結構

1.type_list.jscss

var columns = [
{
field : 'selectItem',
radio : true
},
{
title : '分類id',
field : 'id',
visible : false,
align : 'center',
valign : 'middle',
width : '80px'
},
{
title : '分類名稱',
field : 'name',
align : 'center',
valign : 'middle',
sortable : true,
width : '180px'
},
{
title : '上級分類',
field : 'parentName',
align : 'center',
valign : 'middle',
sortable : true,
width : '180px'
},
{
title : '排序號',
field : 'sort',//與數據庫查詢的屬性一一對應
align : 'center',
valign : 'middle',
sortable : true,
width : '100px'
}];

$(document).ready(function () {
	//給刪除按鈕綁定刪除事件
	$("#formHead").on("click",".btn-delete",deleteType);
	//加載編輯頁面
	$("#formHead").on("click",".btn-add",loadEditPage);

	

	findAllProductType();
});

//加載編輯頁面
function loadEditPage() {
		var url="productType/editUI";
	$(".content").load(url,function () {
		$(".page-title").html("添加產品分類");
	});

}

//刪除節點
function deleteType() {
	//獲取點中按鈕的id值
	var id = getSelectedId();

	if(!id){
		alert("請先選擇要刪除的分類信息!");
		return;
	}

	//根據選中的id值進行刪除分類信息
	var url = "productType/delectType";
	var params = {"id":id};
	$.post(url,params,function (result) {
		if(result.state == 1){
			alert(result.message);
			//查詢全部數據
			findAllProductType();
		}else{
			alert(result.message);
		}
	});

}
//獲取選中的id值
function getSelectedId() {
	//用來獲取選中的記錄,返回成數組
	var selections = $("#typeTable").bootstrapTreeTable("getSelections");
	if(selections.length == 0){//表示沒有選中
		return;
	}
	//獲取選中的id值
	return selections[0].id;
}

//查詢全部數據
function findAllProductType() {
	var tableId = "typeTable";//不用寫#,後邊js處理過了
	//訪問服務端的url地址
	var url = "productType/findAllProductType";
	var table = new TreeTable(tableId, url, columns);//建立表格對象
	table.setExpandColumn(2);//設置默認展開列
	//初始化table對象
	table.init();//發起異步請求獲取數據,更新頁面
}






// $(document).ready(function(){
// 	$("#formHead")
// 	.on("click",".btn-delete",deleteType)
// 	.on("click",".btn-add",loadEditPage)
// 	;
// 	findAllProductType();
// });
// //加載新增修改頁面
// function loadEditPage(){
// 	var url = "productType/editUI";
// 	$(".content").load(url,function(){
// 		//設置標題
// 		$("#pageTitle").html("添加產品分類");
// 	});
// }
//
// function deleteType(){
// 	var id = getSelectedId();
// 	 if(!id){
// 		 alert("請先選擇要刪除的分類信息!");
// 		 return ;
// 	}
// //	console.log(id);
// 	var url = "productType/deleteType";
// 	var params = {"id":id};
// 	$.post(url,params,function(result){
// 		if(result.state==1){
// 			alert(result.message);
// 			//從新查詢
// 			findAllProductType();
// 		}else{
// 			alert(result.message);
// 		}
// 	})
// }
// function getSelectedId(){
// 	var selections =  $("#typeTable").bootstrapTreeTable("getSelections");
// 	if(selections.length==0){
// 		return ;//表示沒選擇任何對象
// 	}
// 	 return selections[0].id;
// }
//
// function findAllProductType(){
//  var tableId="typeTable";//對象type_list.jsp中的table id
//  var url="productType/findAllProductType";
//  var table=new TreeTable(tableId,url,columns);
// // table.setIdField("id");//設置選中記錄的返回id()
// // table.setCodeField("id");//設置級聯關係的id
// // table.setParentCodeField("parentId");//設置級聯關係中的parentId
//  table.setExpandColumn(2);//設置默認展開列
// // table.setExpandAll(false);//設置默認不展開
//  table.init();//初始化對象樹(底層會發起異步請求)
// }

  2.type_edit.js(添加界面js)html

var zTree;
var setting = {//用於插件數據顯示
		data : {   
			simpleData : {
				enable : true,
				idKey : "id",  //節點數據中保存惟一標識的屬性名稱
				pIdKey : "parentId",  //節點數據中保存其父節點惟一標識的屬性名稱
				rootPId : null  //根節點id
			}
		}
}
$(document).ready(function(){
	//給back按鈕綁定事件
	$("#btn-return").click(function () {
		back();
	});

	//給上級分類文本框綁定事件
	$("#editTypeForm").on("click","#parentNameId",loadZTreeNodes);
	//取消事件
	$("#typeLayer").on("click",".btn-cancle",hideTree);
	//給樹的肯定綁定事件
	$("#typeLayer").on("click",".btn-confirm",setType);
});
//設置上級分類信息
function setType() {
	//先獲取選中數據
	var nodes = zTree.getSelectedNodes();
	console.log(nodes[0]);
	//將選中的數據信息填充到form的表單中

	//隱藏樹
};
//隱藏樹
function hideTree() {
	$("#typeLayer").css("display","none");
}

//加載上級分類表單的樹
function loadZTreeNodes() {
	//顯示樹
	$("#typeLayer").css("display","block");
	var url = "productType/findZTreeNode";
	$.getJSON(url,function (result) {
		if(result.state == 1){//正常返回數據jquery.zTree.js
			zTree = $.fn.zTree.init($("#typeTree"),setting,result.data);
		}else {
			alert(result.message);
		}
	});
}

//返回到分類頁面
function back() {
		var url="productType/listUI?t="+Math.random(1000);
		$(".content").load(url);
}

  3.productController.javajava

package com.tanzhou.tzms.product.controller;

import com.tanzhou.tzms.common.vo.Node;
import com.tanzhou.tzms.common.web.JsonResult;
import com.tanzhou.tzms.product.service.ProductTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/productType")
public class ProductTypeController {
    @Autowired
    private ProductTypeService typeService;

    /**
     * 返回頁面方法
     * @return
     */
    @RequestMapping("/listUI")
    public String listUI(){
        return "product/type_list";
    }


    /**
     * 返回產品分類數據
     * @return
     */
    @RequestMapping("/findAllProductType")
    @ResponseBody
    public JsonResult findAllProductType(){
        List<Map<String, Object>> list = typeService.findAllProductType();
        return new JsonResult(list);
    }

    /**
     * 刪除結點
     */
    @RequestMapping("/delectType")
    @ResponseBody
    public JsonResult delectType(Integer id){
        typeService.delectType(id);
        return new JsonResult("刪除成功");
    }

    /**
     * 添加產品編輯頁面
     * @return
     */
    @RequestMapping("editUI")
    public String editUI(){
        return "product/type_edit";
    }

    /**
     * ZTree分層
     */
    @RequestMapping("/findZTreeNode")
    @ResponseBody
    public JsonResult findZTreeNode(){
        List<Node> list = typeService.findZTreeNode();
        System.out.println(list);
        return new JsonResult(list);
    }


}

  4.productServiceImpl.javanode

package com.tanzhou.tzms.product.service.impl;

import com.tanzhou.tzms.common.exception.ServiceException;
import com.tanzhou.tzms.common.vo.Node;
import com.tanzhou.tzms.product.dao.ProductTypeDao;
import com.tanzhou.tzms.product.service.ProductTypeService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
@Service("productTypeService")
public class ProductTypeServiceImpl implements ProductTypeService {
    @Autowired
    private ProductTypeDao typeDao;//spring用動態代理的方式實現咱們的對象
    @Override
    public List<Map<String, Object>> findAllProductType() {
        List<Map<String, Object>> list = typeDao.findAllProductType();
        return list;
    }

    @Override
    public void delectType(Integer id) {
        if(id == null || id <= 0){
            throw new ServiceException("id值無效:id="+id);
        }

        //查詢當前id下是否有子
        Integer i = typeDao.hasChildType(id);
        if(i >= 1){
            throw new ServiceException("當前結點有子元素,不容許刪除");
        }
        Integer rows = typeDao.delectType(id);
            if(rows <= 0){
                throw new ServiceException("刪除失敗");
            }
    }

    @Override
    public List<Node> findZTreeNode() {
        List<Node> list = typeDao.findZTreeNode();
        return list;
    }


}

  5.productType.xmljquery

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tanzhou.tzms.product.dao.ProductTypeDao">

<!--    public Integer delectType(@Param("id") Integer id);-->
    <delete id="delectType">
        delete from tz_producttype where id = #{id}
    </delete>

    <!--    public List<Map<String,Object>> findAllProductType();-->
    <select id="findAllProductType" resultType="java.util.Map">
        SELECT p1.*,p2.name as parentName FROM  tz_producttype p1 LEFT JOIN tz_producttype p2 on p1.parentId = p2.id
    </select>

<!--    public Integer hasChildType(Integer id);-->
    <select id="hasChildType" resultType="java.lang.Integer">
        select count(*) from tz_producttype where parentId = #{id}
    </select>

<!--    public List<Node> findZTreeNode();-->
    <select id="findZTreeNode" resultType="com.tanzhou.tzms.common.vo.Node">
        select id,name,parentId from tz_producttype
    </select>
</mapper>
相關文章
相關標籤/搜索