瀏覽代碼

首次提交

Chente 6 年之前
當前提交
36d6546773
共有 38 個文件被更改,包括 7121 次插入0 次删除
  1. 6 0
      css/bootstrap/bootstrap.min.css
  2. 4 0
      css/font-awesome/font-awesome.min.css
  3. 二進制
      css/font-awesome/fonts/FontAwesome.otf
  4. 二進制
      css/font-awesome/fonts/fontawesome-webfont.eot
  5. 2671 0
      css/font-awesome/fonts/fontawesome-webfont.svg
  6. 二進制
      css/font-awesome/fonts/fontawesome-webfont.ttf
  7. 二進制
      css/font-awesome/fonts/fontawesome-webfont.woff
  8. 二進制
      css/font-awesome/fonts/fontawesome-webfont.woff2
  9. 67 0
      css/font-zy/iconfont.css
  10. 二進制
      css/font-zy/iconfont.eot
  11. 101 0
      css/font-zy/iconfont.svg
  12. 二進制
      css/font-zy/iconfont.ttf
  13. 二進制
      css/font-zy/iconfont.woff
  14. 287 0
      css/main.css
  15. 二進制
      css/ztree/img/diy/1_close.png
  16. 二進制
      css/ztree/img/diy/1_open.png
  17. 二進制
      css/ztree/img/diy/2.png
  18. 二進制
      css/ztree/img/diy/3.png
  19. 二進制
      css/ztree/img/diy/4.png
  20. 二進制
      css/ztree/img/diy/5.png
  21. 二進制
      css/ztree/img/diy/6.png
  22. 二進制
      css/ztree/img/diy/7.png
  23. 二進制
      css/ztree/img/diy/8.png
  24. 二進制
      css/ztree/img/diy/9.png
  25. 二進制
      css/ztree/img/line_conn.gif
  26. 二進制
      css/ztree/img/loading.gif
  27. 二進制
      css/ztree/img/zTreeStandard.gif
  28. 二進制
      css/ztree/img/zTreeStandard.png
  29. 97 0
      css/ztree/zTreeStyle.css
  30. 二進制
      img/baobiao.png
  31. 7 0
      js/bootstrap/bootstrap.min.js
  32. 38 0
      js/global.js
  33. 4 0
      js/jquery/jquery.min.js
  34. 1 0
      js/tether/tether.min.js
  35. 1913 0
      js/ztree/jquery.ztree.core.js
  36. 628 0
      js/ztree/jquery.ztree.excheck.js
  37. 648 0
      main.html
  38. 649 0
      main2.html

File diff suppressed because it is too large
+ 6 - 0
css/bootstrap/bootstrap.min.css


File diff suppressed because it is too large
+ 4 - 0
css/font-awesome/font-awesome.min.css


二進制
css/font-awesome/fonts/FontAwesome.otf


二進制
css/font-awesome/fonts/fontawesome-webfont.eot


File diff suppressed because it is too large
+ 2671 - 0
css/font-awesome/fonts/fontawesome-webfont.svg


二進制
css/font-awesome/fonts/fontawesome-webfont.ttf


二進制
css/font-awesome/fonts/fontawesome-webfont.woff


二進制
css/font-awesome/fonts/fontawesome-webfont.woff2


File diff suppressed because it is too large
+ 67 - 0
css/font-zy/iconfont.css


二進制
css/font-zy/iconfont.eot


File diff suppressed because it is too large
+ 101 - 0
css/font-zy/iconfont.svg


二進制
css/font-zy/iconfont.ttf


二進制
css/font-zy/iconfont.woff


+ 287 - 0
css/main.css

@@ -0,0 +1,287 @@
+/*building SAAS 0.1*/
+/*bootstrap 初始化*/
+body {
+    font-size: 0.9rem
+}
+.dropdown-menu {
+    font-size: 0.9rem
+}
+/*自定义css*/
+.header {
+    background: #e1e1e1
+}
+.header .header-logo {
+    background: #ff6501;
+    color: #fff;
+    float: left;
+    padding-top: .4rem;
+    padding-bottom: .4rem;
+    margin-right: 1rem;
+    font-size: 1.25rem;
+    line-height: inherit
+}
+.top-msg{
+  position: fixed;
+  top:0;
+  width:100%;
+  z-index: 999
+}
+.in-1{padding-left:0rem!important}
+.in-2{padding-left:1rem!important}
+.in-3{padding-left:1.5rem!important}
+.in-4{padding-left:2rem!important}
+.in-5{padding-left:2.5rem!important}
+.in-6{padding-left:3rem!important}
+.main {
+    position: relative;
+    background: #f7f7f9;
+}
+.main-nav {
+    position: absolute;
+    text-align: center;
+    z-index: 999;
+    padding: 2px 0 0 2px
+}
+.main-nav .nav a {
+    display: block;
+    width: 28px;
+    text-align: center;
+    line-height: 18px;
+    color: #999;
+    padding: 10px 0;
+    border-right: 1px solid #ccc;
+}
+.main-nav .nav a:hover {
+    background: #fff;
+    color: #333;
+    text-decoration: none;
+}
+.main-nav .nav a.active {
+    border: 1px solid #ccc;
+    border-right: 1px solid #fff;
+    background: #fff;
+    color: #333
+}
+.content {
+    background: #fff
+}
+.tools-btn {
+    height: 30px;
+    line-height: 30px;
+}
+.toolsbar .tools-btn.btn:hover {
+    background: #f7f7f9;
+}
+.main-side {
+    border-right: 1px solid #ccc;
+    overflow-y: auto;
+}
+.main-side .tab-bar {
+    padding:5px 10px
+}
+.top-content, .fluid-content {
+    overflow: hidden;
+    border-bottom: 1px solid #ccc;
+}
+.warp-p2 {
+    padding: 2px
+}
+.bottom-content .nav,.top-content .nav {
+    background: #f7f7f9;
+    padding:0 0 0 2px
+}
+.bottom-content .nav-tabs .nav-link, .side-tabs .nav-tabs .nav-link,.top-content .nav-tabs .nav-link {
+    border-radius: 0;
+    padding: 0.2em 0.5em
+}
+.side-tabs .nav-tabs .nav-item {
+  z-index: 999
+}
+.side-tabs .nav-tabs {
+    border-bottom: none;
+    margin-bottom: -1px
+}
+.side-tabs .nav-tabs .nav-link {
+    border-radius: 0;
+    padding: 0em 0.5em;
+    line-height: 30px;
+    z-index: 999
+}
+.bottom-content .nav-tabs .nav-link.active {
+    border-top: 1px solid #f7f7f9
+}
+.side-tabs .nav-tabs .nav-link.active {
+    border-top: none;
+    border-bottom:1px solid #fff
+}
+.side-tabs a.active, .sub-nav a.active {
+    background: #ccc
+}
+.poj-manage {
+    background: #fff
+}
+.slide-sidebar {
+    border-left: 1px solid #E1E1E1;
+    box-shadow: 0px 15px 15px rgba(0, 0, 0, 0.1);
+    background: none repeat scroll 0% 0% #ffffff;
+    overflow: hidden;
+    position: absolute;
+    right: 0px;
+    top: 0;
+    z-index: 999;
+    width: 0px;
+}
+.new-msg {
+    -webkit-animation: tada 1s infinite .2s ease both;
+    -moz-animation: tada 1s infinite .2s ease both;
+}
+@-webkit-keyframes tada {
+    0% {
+        -webkit-transform: scale(1)
+    }
+    10%, 20% {
+        -webkit-transform: scale(0.9) rotate(-3deg)
+    }
+    30%, 50%, 70%, 90% {
+        -webkit-transform: scale(1.1) rotate(3deg)
+    }
+    40%, 60%, 80% {
+        -webkit-transform: scale(1.1) rotate(-3deg)
+    }
+    100% {
+        -webkit-transform: scale(1) rotate(0)
+    }
+}
+@-moz-keyframes tada {
+    0% {
+        -moz-transform: scale(1)
+    }
+    10%, 20% {
+        -moz-transform: scale(0.9) rotate(-3deg)
+    }
+    30%, 50%, 70%, 90% {
+        -moz-transform: scale(1.1) rotate(3deg)
+    }
+    40%, 60%, 80% {
+        -moz-transform: scale(1.1) rotate(-3deg)
+    }
+    100% {
+        -moz-transform: scale(1) rotate(0)
+    }
+}
+.has-danger {
+    -webkit-animation: shake 1s .2s ease both;
+    -moz-animation: shake 1s .2s ease both;
+    animation: shake 1s .2s ease both;
+}
+@-webkit-keyframes shake {
+    0%, 100% {
+        -webkit-transform: translateX(0);
+    }
+    10%, 30%, 50%, 70%, 90% {
+        -webkit-transform: translateX(-10px);
+    }
+    20%, 40%, 60%, 80% {
+        -webkit-transform: translateX(10px);
+    }
+}
+@-moz-keyframes shake {
+    0%, 100% {
+        -moz-transform: translateX(0);
+    }
+    10%, 30%, 50%, 70%, 90% {
+        -moz-transform: translateX(-10px);
+    }
+    20%, 40%, 60%, 80% {
+        -moz-transform: translateX(10px);
+    }
+}
+@keyframes shake {
+    0%, 100% {
+        transform: translateX(0);
+    }
+    10%, 30%, 50%, 70%, 90% {
+        transform: translateX(-10px);
+    }
+    20%, 40%, 60%, 80% {
+        transform: translateX(10px);
+    }
+}
+.bottom-content {
+    height: 370px;
+    overflow: hidden;
+}
+.bottom-content .tab-content .main-data-bottom{
+    height: 340px;
+    overflow: auto;
+}
+.form-signin {
+    max-width: 500px;
+    margin: 150px auto;
+}
+.poj-list, .side-content {
+    overflow: auto;
+}
+.poj-list span.poj-icon {
+  padding-right:10px;
+  color:#ccc
+}
+.print-toolsbar{
+  padding:5px
+}
+.print-toolsbar .panel {
+  display:inline-block;
+  vertical-align:top;
+  background:#f7f7f9
+}
+.print-toolsbar .panel .panel-foot{
+  text-align: center;
+  font-size: 12px
+}
+.print-list {
+  border-right:1px solid #ccc
+}
+.print-list .form-list {
+  overflow: auto
+}
+.print-list .list-tools{
+  height:50px;
+  padding:10px 0;
+  border-bottom:1px solid #f2f2f2
+}
+.pageContainer {
+  background: #ededed;
+  text-align: center
+}
+.pageContainer .page{
+  border:9px solid transparent;
+  display: inline-block;
+}
+.pageContainer .page img{
+  width:inherit;
+  height: inherit;
+}
+.codeList{
+    max-height: 200px;
+    overflow:auto;
+}
+.main-data-top,.main-data-bottom,.main-data,.main-data-h{
+  overflow: auto;
+}
+.modal-fixed-height {
+    height:400px;
+    overflow-y:auto;
+}
+.form-view {
+    border-left:1px solid #ccc;
+}
+.ztree-warp {
+  height:200px;
+  overflow: auto;
+  border:1px solid #ddd;
+}
+.sub-button{
+  position:sticky;
+  bottom:0;
+  left:0
+}

二進制
css/ztree/img/diy/1_close.png


二進制
css/ztree/img/diy/1_open.png


二進制
css/ztree/img/diy/2.png


二進制
css/ztree/img/diy/3.png


二進制
css/ztree/img/diy/4.png


二進制
css/ztree/img/diy/5.png


二進制
css/ztree/img/diy/6.png


二進制
css/ztree/img/diy/7.png


二進制
css/ztree/img/diy/8.png


二進制
css/ztree/img/diy/9.png


二進制
css/ztree/img/line_conn.gif


二進制
css/ztree/img/loading.gif


二進制
css/ztree/img/zTreeStandard.gif


二進制
css/ztree/img/zTreeStandard.png


+ 97 - 0
css/ztree/zTreeStyle.css

@@ -0,0 +1,97 @@
+/*-------------------------------------
+zTree Style
+
+version:	3.5.19
+author:		Hunter.z
+email:		hunter.z@263.net
+website:	http://code.google.com/p/jquerytree/
+
+-------------------------------------*/
+
+.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
+.ztree {margin:0; padding:5px; color:#333}
+.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0}
+.ztree li ul{ margin:0; padding:0 0 0 18px}
+.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
+
+.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
+	text-decoration:none; vertical-align:top; display: inline-block}
+.ztree li a:hover {text-decoration:underline}
+.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid;
+	opacity:0.8; filter:alpha(opacity=80)}
+.ztree li a.tmpTargetNode_prev {}
+.ztree li a.tmpTargetNode_next {}
+.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
+	font-size:12px; border:1px #7EC4CC solid; *border:0px}
+.ztree li span {line-height:16px; margin-right:2px}
+.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
+	border:0 none; cursor: pointer;outline:none;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto}
+.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
+.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px}
+.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
+.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px}
+.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px}
+.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
+.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
+.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px}
+.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
+.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px}
+.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
+.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px}
+.ztree li span.button.chk.radio_false_part {background-position:-28px -28px}
+.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px}
+.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px}
+.ztree li span.button.chk.radio_true_full {background-position:-42px 0}
+.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px}
+.ztree li span.button.chk.radio_true_part {background-position:-42px -28px}
+.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px}
+.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px}
+
+.ztree li span.button.switch {width:18px; height:18px}
+.ztree li span.button.root_open{background-position:-92px -54px}
+.ztree li span.button.root_close{background-position:-74px -54px}
+.ztree li span.button.roots_open{background-position:-92px 0}
+.ztree li span.button.roots_close{background-position:-74px 0}
+.ztree li span.button.center_open{background-position:-92px -18px}
+.ztree li span.button.center_close{background-position:-74px -18px}
+.ztree li span.button.bottom_open{background-position:-92px -36px}
+.ztree li span.button.bottom_close{background-position:-74px -36px}
+.ztree li span.button.noline_open{background-position:-92px -72px}
+.ztree li span.button.noline_close{background-position:-74px -72px}
+.ztree li span.button.root_docu{ background:none;}
+.ztree li span.button.roots_docu{background-position:-56px 0}
+.ztree li span.button.center_docu{background-position:-56px -18px}
+.ztree li span.button.bottom_docu{background-position:-56px -36px}
+.ztree li span.button.noline_docu{ background:none;}
+
+.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle}
+
+.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
+
+ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)}
+
+span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
+.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
+
+/* level style*/
+/*.ztree li span.button.level0 {
+	display:none;
+}
+.ztree li ul.level0 {
+	padding:0;
+	background:none;
+}*/

二進制
img/baobiao.png


File diff suppressed because it is too large
+ 7 - 0
js/bootstrap/bootstrap.min.js


+ 38 - 0
js/global.js

@@ -0,0 +1,38 @@
+/*全局自适应高度*/
+function autoFlashHeight(){
+    var headerHeight = $(".header").height();
+    var bottomContentHeight = $(".bottom-content").height();
+    var toolsBar = $(".tools-bar").height();
+    $(".content").height($(window).height()-headerHeight);
+    $(".main-side").height($(window).height()-headerHeight-2);
+    $(".main-data").height($(window).height()-headerHeight-toolsBar-1);
+    $(".main-data-h").height($(window).height()-headerHeight-1);
+};
+$(window).resize(autoFlashHeight);
+/*全局自适应高度结束*/
+$(function(){
+/*侧滑*/
+$(".open-sidebar").click(function(){
+    $(".slide-sidebar").animate({width:"800"}).addClass("open");
+});
+$("body").click(function(event){
+        var e = event || window.event; //浏览器兼容性
+        if(!$(event.target).is('a')) {
+            var elem = event.target || e.srcElement;
+            while (elem) { //循环判断至跟节点,防止点击的是div子元素
+                if (elem.className == "open-sidebar" || elem.className == 'slide-sidebar open') {
+                    return false;
+                }
+                elem = elem.parentNode;
+            }
+            $(".slide-sidebar").animate({width:"0"}).removeClass("open")// 关闭处理
+        }
+
+    });
+/*侧滑*/
+/*工具提示*/
+$('*[data-toggle=tooltip]').mouseover(function() {
+ $(this).tooltip('show');
+  });
+/*工具提示*/
+});

File diff suppressed because it is too large
+ 4 - 0
js/jquery/jquery.min.js


File diff suppressed because it is too large
+ 1 - 0
js/tether/tether.min.js


File diff suppressed because it is too large
+ 1913 - 0
js/ztree/jquery.ztree.core.js


+ 628 - 0
js/ztree/jquery.ztree.excheck.js

@@ -0,0 +1,628 @@
+/*
+ * JQuery zTree excheck v3.5.28
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2017-01-20
+ */
+(function($){
+	//default consts of excheck
+	var _consts = {
+		event: {
+			CHECK: "ztree_check"
+		},
+		id: {
+			CHECK: "_check"
+		},
+		checkbox: {
+			STYLE: "checkbox",
+			DEFAULT: "chk",
+			DISABLED: "disable",
+			FALSE: "false",
+			TRUE: "true",
+			FULL: "full",
+			PART: "part",
+			FOCUS: "focus"
+		},
+		radio: {
+			STYLE: "radio",
+			TYPE_ALL: "all",
+			TYPE_LEVEL: "level"
+		}
+	},
+	//default setting of excheck
+	_setting = {
+		check: {
+			enable: false,
+			autoCheckTrigger: false,
+			chkStyle: _consts.checkbox.STYLE,
+			nocheckInherit: false,
+			chkDisabledInherit: false,
+			radioType: _consts.radio.TYPE_LEVEL,
+			chkboxType: {
+				"Y": "ps",
+				"N": "ps"
+			}
+		},
+		data: {
+			key: {
+				checked: "checked"
+			}
+		},
+		callback: {
+			beforeCheck:null,
+			onCheck:null
+		}
+	},
+	//default root of excheck
+	_initRoot = function (setting) {
+		var r = data.getRoot(setting);
+		r.radioCheckedList = [];
+	},
+	//default cache of excheck
+	_initCache = function(treeId) {},
+	//default bind event of excheck
+	_bindEvent = function(setting) {
+		var o = setting.treeObj,
+		c = consts.event;
+		o.bind(c.CHECK, function (event, srcEvent, treeId, node) {
+			event.srcEvent = srcEvent;
+			tools.apply(setting.callback.onCheck, [event, treeId, node]);
+		});
+	},
+	_unbindEvent = function(setting) {
+		var o = setting.treeObj,
+		c = consts.event;
+		o.unbind(c.CHECK);
+	},
+	//default event proxy of excheck
+	_eventProxy = function(e) {
+		var target = e.target,
+		setting = data.getSetting(e.data.treeId),
+		tId = "", node = null,
+		nodeEventType = "", treeEventType = "",
+		nodeEventCallback = null, treeEventCallback = null;
+
+		if (tools.eqs(e.type, "mouseover")) {
+			if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode"+ consts.id.CHECK) !== null) {
+				tId = tools.getNodeMainDom(target).id;
+				nodeEventType = "mouseoverCheck";
+			}
+		} else if (tools.eqs(e.type, "mouseout")) {
+			if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode"+ consts.id.CHECK) !== null) {
+				tId = tools.getNodeMainDom(target).id;
+				nodeEventType = "mouseoutCheck";
+			}
+		} else if (tools.eqs(e.type, "click")) {
+			if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode"+ consts.id.CHECK) !== null) {
+				tId = tools.getNodeMainDom(target).id;
+				nodeEventType = "checkNode";
+			}
+		}
+		if (tId.length>0) {
+			node = data.getNodeCache(setting, tId);
+			switch (nodeEventType) {
+				case "checkNode" :
+					nodeEventCallback = _handler.onCheckNode;
+					break;
+				case "mouseoverCheck" :
+					nodeEventCallback = _handler.onMouseoverCheck;
+					break;
+				case "mouseoutCheck" :
+					nodeEventCallback = _handler.onMouseoutCheck;
+					break;
+			}
+		}
+		var proxyResult = {
+			stop: nodeEventType === "checkNode",
+			node: node,
+			nodeEventType: nodeEventType,
+			nodeEventCallback: nodeEventCallback,
+			treeEventType: treeEventType,
+			treeEventCallback: treeEventCallback
+		};
+		return proxyResult
+	},
+	//default init node of excheck
+	_initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
+		if (!n) return;
+		var checkedKey = setting.data.key.checked;
+		if (typeof n[checkedKey] == "string") n[checkedKey] = tools.eqs(n[checkedKey], "true");
+		n[checkedKey] = !!n[checkedKey];
+		n.checkedOld = n[checkedKey];
+		if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true");
+		n.nocheck = !!n.nocheck || (setting.check.nocheckInherit && parentNode && !!parentNode.nocheck);
+		if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true");
+		n.chkDisabled = !!n.chkDisabled || (setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled);
+		if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true");
+		n.halfCheck = !!n.halfCheck;
+		n.check_Child_State = -1;
+		n.check_Focus = false;
+		n.getCheckStatus = function() {return data.getCheckStatus(setting, n);};
+
+		if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && n[checkedKey] ) {
+			var r = data.getRoot(setting);
+			r.radioCheckedList.push(n);
+		}
+	},
+	//add dom for check
+	_beforeA = function(setting, node, html) {
+		var checkedKey = setting.data.key.checked;
+		if (setting.check.enable) {
+			data.makeChkFlag(setting, node);
+			html.push("<span ID='", node.tId, consts.id.CHECK, "' class='", view.makeChkClass(setting, node), "' treeNode", consts.id.CHECK, (node.nocheck === true?" style='display:none;'":""),"></span>");
+		}
+	},
+	//update zTreeObj, add method of check
+	_zTreeTools = function(setting, zTreeTools) {
+		zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
+			var checkedKey = this.setting.data.key.checked;
+			if (node.chkDisabled === true) return;
+			if (checked !== true && checked !== false) {
+				checked = !node[checkedKey];
+			}
+			callbackFlag = !!callbackFlag;
+
+			if (node[checkedKey] === checked && !checkTypeFlag) {
+				return;
+			} else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) {
+				return;
+			}
+			if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
+				node[checkedKey] = checked;
+				var checkObj = $$(node, consts.id.CHECK, this.setting);
+				if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
+				view.setChkClass(this.setting, checkObj, node);
+				view.repairParentChkClassWithSelf(this.setting, node);
+				if (callbackFlag) {
+					this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]);
+				}
+			}
+		}
+
+		zTreeTools.checkAllNodes = function(checked) {
+			view.repairAllChk(this.setting, !!checked);
+		}
+
+		zTreeTools.getCheckedNodes = function(checked) {
+			var childKey = this.setting.data.key.children;
+			checked = (checked !== false);
+			return data.getTreeCheckedNodes(this.setting, data.getRoot(this.setting)[childKey], checked);
+		}
+
+		zTreeTools.getChangeCheckedNodes = function() {
+			var childKey = this.setting.data.key.children;
+			return data.getTreeChangeCheckedNodes(this.setting, data.getRoot(this.setting)[childKey]);
+		}
+
+		zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
+			disabled = !!disabled;
+			inheritParent = !!inheritParent;
+			inheritChildren = !!inheritChildren;
+			view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
+			view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
+		}
+
+		var _updateNode = zTreeTools.updateNode;
+		zTreeTools.updateNode = function(node, checkTypeFlag) {
+			if (_updateNode) _updateNode.apply(zTreeTools, arguments);
+			if (!node || !this.setting.check.enable) return;
+			var nObj = $$(node, this.setting);
+			if (nObj.get(0) && tools.uCanDo(this.setting)) {
+				var checkObj = $$(node, consts.id.CHECK, this.setting);
+				if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
+				view.setChkClass(this.setting, checkObj, node);
+				view.repairParentChkClassWithSelf(this.setting, node);
+			}
+		}
+	},
+	//method of operate data
+	_data = {
+		getRadioCheckedList: function(setting) {
+			var checkedList = data.getRoot(setting).radioCheckedList;
+			for (var i=0, j=checkedList.length; i<j; i++) {
+				if(!data.getNodeCache(setting, checkedList[i].tId)) {
+					checkedList.splice(i, 1);
+					i--; j--;
+				}
+			}
+			return checkedList;
+		},
+		getCheckStatus: function(setting, node) {
+			if (!setting.check.enable || node.nocheck || node.chkDisabled) return null;
+			var checkedKey = setting.data.key.checked,
+			r = {
+				checked: node[checkedKey],
+				half: node.halfCheck ? node.halfCheck : (setting.check.chkStyle == consts.radio.STYLE ? (node.check_Child_State === 2) : (node[checkedKey] ? (node.check_Child_State > -1 && node.check_Child_State < 2) : (node.check_Child_State > 0)))
+			};
+			return r;
+		},
+		getTreeCheckedNodes: function(setting, nodes, checked, results) {
+			if (!nodes) return [];
+			var childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked,
+			onlyOne = (checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL);
+			results = !results ? [] : results;
+			for (var i = 0, l = nodes.length; i < l; i++) {
+				if (nodes[i].nocheck !== true && nodes[i].chkDisabled !== true && nodes[i][checkedKey] == checked) {
+					results.push(nodes[i]);
+					if(onlyOne) {
+						break;
+					}
+				}
+				data.getTreeCheckedNodes(setting, nodes[i][childKey], checked, results);
+				if(onlyOne && results.length > 0) {
+					break;
+				}
+			}
+			return results;
+		},
+		getTreeChangeCheckedNodes: function(setting, nodes, results) {
+			if (!nodes) return [];
+			var childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked;
+			results = !results ? [] : results;
+			for (var i = 0, l = nodes.length; i < l; i++) {
+				if (nodes[i].nocheck !== true && nodes[i].chkDisabled !== true && nodes[i][checkedKey] != nodes[i].checkedOld) {
+					results.push(nodes[i]);
+				}
+				data.getTreeChangeCheckedNodes(setting, nodes[i][childKey], results);
+			}
+			return results;
+		},
+		makeChkFlag: function(setting, node) {
+			if (!node) return;
+			var childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked,
+			chkFlag = -1;
+			if (node[childKey]) {
+				for (var i = 0, l = node[childKey].length; i < l; i++) {
+					var cNode = node[childKey][i];
+					var tmp = -1;
+					if (setting.check.chkStyle == consts.radio.STYLE) {
+						if (cNode.nocheck === true || cNode.chkDisabled === true) {
+							tmp = cNode.check_Child_State;
+						} else if (cNode.halfCheck === true) {
+							tmp = 2;
+						} else if (cNode[checkedKey]) {
+							tmp = 2;
+						} else {
+							tmp = cNode.check_Child_State > 0 ? 2:0;
+						}
+						if (tmp == 2) {
+							chkFlag = 2; break;
+						} else if (tmp == 0){
+							chkFlag = 0;
+						}
+					} else if (setting.check.chkStyle == consts.checkbox.STYLE) {
+						if (cNode.nocheck === true || cNode.chkDisabled === true) {
+							tmp = cNode.check_Child_State;
+						} else if (cNode.halfCheck === true) {
+							tmp = 1;
+						} else if (cNode[checkedKey] ) {
+							tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1;
+						} else {
+							tmp = (cNode.check_Child_State > 0) ? 1 : 0;
+						}
+						if (tmp === 1) {
+							chkFlag = 1; break;
+						} else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) {
+							chkFlag = 1; break;
+						} else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
+							chkFlag = 1; break;
+						} else if (tmp > -1) {
+							chkFlag = tmp;
+						}
+					}
+				}
+			}
+			node.check_Child_State = chkFlag;
+		}
+	},
+	//method of event proxy
+	_event = {
+
+	},
+	//method of event handler
+	_handler = {
+		onCheckNode: function (event, node) {
+			if (node.chkDisabled === true) return false;
+			var setting = data.getSetting(event.data.treeId),
+			checkedKey = setting.data.key.checked;
+			if (tools.apply(setting.callback.beforeCheck, [setting.treeId, node], true) == false) return true;
+			node[checkedKey] = !node[checkedKey];
+			view.checkNodeRelation(setting, node);
+			var checkObj = $$(node, consts.id.CHECK, setting);
+			view.setChkClass(setting, checkObj, node);
+			view.repairParentChkClassWithSelf(setting, node);
+			setting.treeObj.trigger(consts.event.CHECK, [event, setting.treeId, node]);
+			return true;
+		},
+		onMouseoverCheck: function(event, node) {
+			if (node.chkDisabled === true) return false;
+			var setting = data.getSetting(event.data.treeId),
+			checkObj = $$(node, consts.id.CHECK, setting);
+			node.check_Focus = true;
+			view.setChkClass(setting, checkObj, node);
+			return true;
+		},
+		onMouseoutCheck: function(event, node) {
+			if (node.chkDisabled === true) return false;
+			var setting = data.getSetting(event.data.treeId),
+			checkObj = $$(node, consts.id.CHECK, setting);
+			node.check_Focus = false;
+			view.setChkClass(setting, checkObj, node);
+			return true;
+		}
+	},
+	//method of tools for zTree
+	_tools = {
+
+	},
+	//method of operate ztree dom
+	_view = {
+		checkNodeRelation: function(setting, node) {
+			var pNode, i, l,
+			childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked,
+			r = consts.radio;
+			if (setting.check.chkStyle == r.STYLE) {
+				var checkedList = data.getRadioCheckedList(setting);
+				if (node[checkedKey]) {
+					if (setting.check.radioType == r.TYPE_ALL) {
+						for (i = checkedList.length-1; i >= 0; i--) {
+							pNode = checkedList[i];
+							if (pNode[checkedKey] && pNode != node) {
+								pNode[checkedKey] = false;
+								checkedList.splice(i, 1);
+
+								view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
+								if (pNode.parentTId != node.parentTId) {
+									view.repairParentChkClassWithSelf(setting, pNode);
+								}
+							}
+						}
+						checkedList.push(node);
+					} else {
+						var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting);
+						for (i = 0, l = parentNode[childKey].length; i < l; i++) {
+							pNode = parentNode[childKey][i];
+							if (pNode[checkedKey] && pNode != node) {
+								pNode[checkedKey] = false;
+								view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
+							}
+						}
+					}
+				} else if (setting.check.radioType == r.TYPE_ALL) {
+					for (i = 0, l = checkedList.length; i < l; i++) {
+						if (node == checkedList[i]) {
+							checkedList.splice(i, 1);
+							break;
+						}
+					}
+				}
+
+			} else {
+				if (node[checkedKey] && (!node[childKey] || node[childKey].length==0 || setting.check.chkboxType.Y.indexOf("s") > -1)) {
+					view.setSonNodeCheckBox(setting, node, true);
+				}
+				if (!node[checkedKey] && (!node[childKey] || node[childKey].length==0 || setting.check.chkboxType.N.indexOf("s") > -1)) {
+					view.setSonNodeCheckBox(setting, node, false);
+				}
+				if (node[checkedKey] && setting.check.chkboxType.Y.indexOf("p") > -1) {
+					view.setParentNodeCheckBox(setting, node, true);
+				}
+				if (!node[checkedKey] && setting.check.chkboxType.N.indexOf("p") > -1) {
+					view.setParentNodeCheckBox(setting, node, false);
+				}
+			}
+		},
+		makeChkClass: function(setting, node) {
+			var checkedKey = setting.data.key.checked,
+			c = consts.checkbox, r = consts.radio,
+			fullStyle = "";
+			if (node.chkDisabled === true) {
+				fullStyle = c.DISABLED;
+			} else if (node.halfCheck) {
+				fullStyle = c.PART;
+			} else if (setting.check.chkStyle == r.STYLE) {
+				fullStyle = (node.check_Child_State < 1)? c.FULL:c.PART;
+			} else {
+				fullStyle = node[checkedKey] ? ((node.check_Child_State === 2 || node.check_Child_State === -1) ? c.FULL:c.PART) : ((node.check_Child_State < 1)? c.FULL:c.PART);
+			}
+			var chkName = setting.check.chkStyle + "_" + (node[checkedKey] ? c.TRUE : c.FALSE) + "_" + fullStyle;
+			chkName = (node.check_Focus && node.chkDisabled !== true) ? chkName + "_" + c.FOCUS : chkName;
+			return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName;
+		},
+		repairAllChk: function(setting, checked) {
+			if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) {
+				var checkedKey = setting.data.key.checked,
+				childKey = setting.data.key.children,
+				root = data.getRoot(setting);
+				for (var i = 0, l = root[childKey].length; i<l ; i++) {
+					var node = root[childKey][i];
+					if (node.nocheck !== true && node.chkDisabled !== true) {
+						node[checkedKey] = checked;
+					}
+					view.setSonNodeCheckBox(setting, node, checked);
+				}
+			}
+		},
+		repairChkClass: function(setting, node) {
+			if (!node) return;
+			data.makeChkFlag(setting, node);
+			if (node.nocheck !== true) {
+				var checkObj = $$(node, consts.id.CHECK, setting);
+				view.setChkClass(setting, checkObj, node);
+			}
+		},
+		repairParentChkClass: function(setting, node) {
+			if (!node || !node.parentTId) return;
+			var pNode = node.getParentNode();
+			view.repairChkClass(setting, pNode);
+			view.repairParentChkClass(setting, pNode);
+		},
+		repairParentChkClassWithSelf: function(setting, node) {
+			if (!node) return;
+			var childKey = setting.data.key.children;
+			if (node[childKey] && node[childKey].length > 0) {
+				view.repairParentChkClass(setting, node[childKey][0]);
+			} else {
+				view.repairParentChkClass(setting, node);
+			}
+		},
+		repairSonChkDisabled: function(setting, node, chkDisabled, inherit) {
+			if (!node) return;
+			var childKey = setting.data.key.children;
+			if (node.chkDisabled != chkDisabled) {
+				node.chkDisabled = chkDisabled;
+			}
+			view.repairChkClass(setting, node);
+			if (node[childKey] && inherit) {
+				for (var i = 0, l = node[childKey].length; i < l; i++) {
+					var sNode = node[childKey][i];
+					view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit);
+				}
+			}
+		},
+		repairParentChkDisabled: function(setting, node, chkDisabled, inherit) {
+			if (!node) return;
+			if (node.chkDisabled != chkDisabled && inherit) {
+				node.chkDisabled = chkDisabled;
+			}
+			view.repairChkClass(setting, node);
+			view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit);
+		},
+		setChkClass: function(setting, obj, node) {
+			if (!obj) return;
+			if (node.nocheck === true) {
+				obj.hide();
+			} else {
+				obj.show();
+			}
+            obj.attr('class', view.makeChkClass(setting, node));
+		},
+		setParentNodeCheckBox: function(setting, node, value, srcNode) {
+			var childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked,
+			checkObj = $$(node, consts.id.CHECK, setting);
+			if (!srcNode) srcNode = node;
+			data.makeChkFlag(setting, node);
+			if (node.nocheck !== true && node.chkDisabled !== true) {
+				node[checkedKey] = value;
+				view.setChkClass(setting, checkObj, node);
+				if (setting.check.autoCheckTrigger && node != srcNode) {
+					setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]);
+				}
+			}
+			if (node.parentTId) {
+				var pSign = true;
+				if (!value) {
+					var pNodes = node.getParentNode()[childKey];
+					for (var i = 0, l = pNodes.length; i < l; i++) {
+						if ((pNodes[i].nocheck !== true && pNodes[i].chkDisabled !== true && pNodes[i][checkedKey])
+						|| ((pNodes[i].nocheck === true || pNodes[i].chkDisabled === true) && pNodes[i].check_Child_State > 0)) {
+							pSign = false;
+							break;
+						}
+					}
+				}
+				if (pSign) {
+					view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode);
+				}
+			}
+		},
+		setSonNodeCheckBox: function(setting, node, value, srcNode) {
+			if (!node) return;
+			var childKey = setting.data.key.children,
+			checkedKey = setting.data.key.checked,
+			checkObj = $$(node, consts.id.CHECK, setting);
+			if (!srcNode) srcNode = node;
+
+			var hasDisable = false;
+			if (node[childKey]) {
+				for (var i = 0, l = node[childKey].length; i < l; i++) {
+					var sNode = node[childKey][i];
+					view.setSonNodeCheckBox(setting, sNode, value, srcNode);
+					if (sNode.chkDisabled === true) hasDisable = true;
+				}
+			}
+
+			if (node != data.getRoot(setting) && node.chkDisabled !== true) {
+				if (hasDisable && node.nocheck !== true) {
+					data.makeChkFlag(setting, node);
+				}
+				if (node.nocheck !== true && node.chkDisabled !== true) {
+					node[checkedKey] = value;
+					if (!hasDisable) node.check_Child_State = (node[childKey] && node[childKey].length > 0) ? (value ? 2 : 0) : -1;
+				} else {
+					node.check_Child_State = -1;
+				}
+				view.setChkClass(setting, checkObj, node);
+				if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) {
+					setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]);
+				}
+			}
+
+		}
+	},
+
+	_z = {
+		tools: _tools,
+		view: _view,
+		event: _event,
+		data: _data
+	};
+	$.extend(true, $.fn.zTree.consts, _consts);
+	$.extend(true, $.fn.zTree._z, _z);
+
+	var zt = $.fn.zTree,
+	tools = zt._z.tools,
+	consts = zt.consts,
+	view = zt._z.view,
+	data = zt._z.data,
+	event = zt._z.event,
+	$$ = tools.$;
+
+	data.exSetting(_setting);
+	data.addInitBind(_bindEvent);
+	data.addInitUnBind(_unbindEvent);
+	data.addInitCache(_initCache);
+	data.addInitNode(_initNode);
+	data.addInitProxy(_eventProxy, true);
+	data.addInitRoot(_initRoot);
+	data.addBeforeA(_beforeA);
+	data.addZTreeTools(_zTreeTools);
+
+	var _createNodes = view.createNodes;
+	view.createNodes = function(setting, level, nodes, parentNode, index) {
+		if (_createNodes) _createNodes.apply(view, arguments);
+		if (!nodes) return;
+		view.repairParentChkClassWithSelf(setting, parentNode);
+	}
+	var _removeNode = view.removeNode;
+	view.removeNode = function(setting, node) {
+		var parentNode = node.getParentNode();
+		if (_removeNode) _removeNode.apply(view, arguments);
+		if (!node || !parentNode) return;
+		view.repairChkClass(setting, parentNode);
+		view.repairParentChkClass(setting, parentNode);
+	}
+
+	var _appendNodes = view.appendNodes;
+	view.appendNodes = function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
+		var html = "";
+		if (_appendNodes) {
+			html = _appendNodes.apply(view, arguments);
+		}
+		if (parentNode) {
+			data.makeChkFlag(setting, parentNode);
+		}
+		return html;
+	}
+})(jQuery);

+ 648 - 0
main.html

@@ -0,0 +1,648 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>报表模板编辑器</title>
+    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="css/main.css">
+    <link rel="stylesheet" href="css/font-awesome/font-awesome.min.css">
+    <link rel="stylesheet" href="css/font-zy/iconfont.css">
+    <!--zTree-->
+  	<link rel="stylesheet" href="css/ztree/zTreeStyle.css" type="text/css">
+</head>
+
+<body>
+    <div class="header d-flex justify-content-between">
+        <nav class="navbar navbar-toggleable-lg navbar-light p-0 ">
+            <span class="header-logo px-2">计量支付SAAS</span>
+            <div class="navbar-text">170001-XXX项目</div>
+        </nav>
+        <nav class="navbar navbar-toggleable-lg navbar-light p-0">
+          <div class="px-3 row" >
+            <div class="col-6">
+              <a href="#" class="btn btn-link btn-sm">通用报表</a>
+            </div>
+          </div>
+          <div class="p-2">
+            <button class="btn btn-success btn-sm"><i class="fa fa-save"></i> 保存</button>
+            <a class="btn btn-secondary btn-sm" target="_blank"><i class="fa fa-eye"></i> 预览</a>
+          </div>
+        </nav>
+    </div>
+    <div class="main">
+        <div class="content">
+            <div class="container-fluid">
+                <div class="row">
+                  <div class="main-side col-lg-3 p-0">
+                    <div class="tab-bar col-12">
+                      <div class="input-group input-group-sm">
+                        <input type="text" class="form-control" placeholder="输入报表名检索">
+                        <span class="input-group-btn">
+                          <button class="btn btn-primary" type="button">搜索</button>
+                        </span>
+                      </div>
+                    </div>
+                    <div class="tab-content">
+                      <ul id="treeDemo" class="ztree"></ul>
+                    </div>
+                  </div>
+                  <div class="main-content col-lg-9 p-0">
+                    <div class="container-fluid">
+                      <div class="row">
+                        <!-- 报表设置 -->
+                        <div class="col-lg-12 p-0">
+                          <ul class="nav nav-tabs tools-bar px-1" role="tablist">
+                              <li class="nav-item">
+                                  <a class="nav-link active" data-toggle="tab" href="#mbxx" role="tab">模板信息</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#mbbj" role="tab">模板布局</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#zbys" role="tab">指标映射</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#zbbf" role="tab">指标摆放</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#sjcl" role="tab">数据预处理</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#jss" role="tab">计算式</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#mbdx" role="tab">模板JS对象</a>
+                              </li>
+                          </ul>
+                          <div class="tab-content">
+                              <!--模板信息-->
+                              <div class="tab-pane active" id="mbxx" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="form-group">
+                                      <label>报表名称</label>
+                                      <input class="form-control form-control-sm" placeholder="输入报表名称">
+                                    </div>
+                                    <div class="form-group">
+                                      <label>页面</label>
+                                      <div class="row">
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">纸张</div>
+                                          <select class="form-control input-sm"><option>A3</option><option>A4</option></select>
+                                        </div>
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">方向</div>
+                                          <select class="form-control input-sm"><option>横向</option><option>竖向</option></select>
+                                        </div>
+                                        <div class="input-group input-group-sm col-4">
+                                        <div class="input-group-addon">单位</div>
+                                        <select class="form-control input-sm"><option>CM</option></select>
+                                      </div>
+                                      </div>
+                                    </div>
+                                    <div class="form-group">
+                                      <label>显示调整</label>
+                                      <div class="row">
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">分栏</div>
+                                          <select class="form-control input-sm"><option>1</option><option>2</option></select>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row">
+                                      <div class="form-group col-4">
+                                      <label>显示行-高度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-4">
+                                      <label>显示列 - 宽度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                    </div>
+                                  </div>
+                                  <!--图标-->
+                                  <div class="p-3">
+                                    <p><i class="icon zyfont zy-ic_format_bold"></i>粗体 / <i class="icon zyfont zy-ic_format_italic"></i>斜体 / <i class="icon zyfont zy-ic_format_underlined"></i>下划线 </p>
+                                    <p><i class="icon zyfont zy-ic_format_align_left"></i>左对齐 / <i class="icon zyfont zy-ic_format_align_center"></i>中对齐 / <i class="icon zyfont zy-ic_format_align_right"></i>右对齐</p>
+                                    <p><i class="icon zyfont zy-ic_vertical_align_top"></i>上对齐 / <i class="icon zyfont zy-ic_vertical_align_center"></i>中对齐 / <i class="icon zyfont zy-ic_vertical_align_bottom"></i>下对齐</p>
+                                    <p><i class="icon zyfont zy-ic_border_outer"></i> 外侧框线 / <i class="icon zyfont zy-ic_border_clear"></i> 无框线  / <i class="icon zyfont zy-ic_border_left"></i> 左框线  / <i class="icon zyfont zy-ic_border_top"></i> 上框线  / <i class="icon zyfont zy-ic_border_right"></i> 右框线  / <i class="icon zyfont zy-ic_border_bottom"></i> 下框线 </p>
+                                    <p> <i class="icon zyfont zy-ic_format_shapes"></i>缩放(Shrink) / <i class="icon zyfont zy-ic_exposure_zero"></i>显示0 / <i class="icon zyfont zy-ic_wrap_text"></i>自动折行(Wrap)</p>
+                                  </div>
+                                  <!--图标-->
+                                </div>
+                              </div>
+                              <!--模板布局-->
+                              <div class="tab-pane" id="mbbj" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="ztree-warp" style="height:300px">
+                                      ztree 保留空间
+                                    </div>
+                                    <div class="row mt-5">
+                                      <div class="form-group col-3">
+                                        <label>边框样式</label>
+                                        <select class="form-control form-control-sm"><option>空白</option></select>
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>位置</label>
+                                        <select class="form-control form-control-sm"><option>上</option></select>
+                                      </div>
+                                      <div class="form-group col-3">
+                                        <label>出现频率</label>
+                                        <select class="form-control form-control-sm"><option>每页</option></select>
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>高度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>宽度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--指标映射-->
+                              <div class="tab-pane" id="zbys" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-6">
+                                        <span>报表映射指标(勾选表示:主从关系的ID关联指标)</span>
+                                        <div class="ztree-warp" style="height:400px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <span>可映射指标</span>
+                                        <div class="ztree-warp" style="height:400px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--指标摆放-->
+                              <div class="tab-pane" id="zbbf" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:300px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="row">
+                                          <div class="col-12">
+                                            <div class="ztree-warp" style="height:110px">
+                                              ztree 保留空间
+                                            </div>
+                                          </div>
+                                          <div class="col-12 mt-4">
+                                            <div class="ztree-warp" style="height:160px">
+                                              ztree 保留空间
+                                            </div>
+                                          </div>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                       <div class="form-group col-2">
+                                        <label>字体选择</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>字体名称</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>字体大小</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-3">
+                                        <label>字体其他特性</label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                粗体
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                斜体
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                下划线
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>边框样式</label>
+                                        <select class="form-control form-control-sm"><option>正常</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>左边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>右边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>上边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>下边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                     </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>控制选择</label>
+                                        <select class="form-control form-control-sm"><option>正文内容</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>横向对齐</label>
+                                        <select class="form-control form-control-sm"><option>右</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>纵向对齐</label>
+                                        <select class="form-control form-control-sm"><option>下</option></select>
+                                       </div>
+                                       <div class="form-group col-3">
+                                        <label>控制其他特性</label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input"  type="checkbox">
+                                                自动缩放
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input class="form-check-input"  type="checkbox">
+                                                显示0
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox">
+                                                自动折行
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col">
+                                        <label>左</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>右</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>上</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>下</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label></label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox">
+                                                自动行高
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>前缀</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>后缀</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>格式</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>默认值</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                     </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--数据预处理-->
+                              <div class="tab-pane" id="sjcl" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-12">
+                                        <a class="btn btn-secondary btn-sm mb-1"><i class=" fa fa-plus-square"></i> 预处理环节</a>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="input-group input-group-sm col-4">
+                                        <div class="input-group-addon">预处理数据对象</div>
+                                        <select class="form-control input-sm" id="select_mapping_data" onchange="preHandleObj.onChangeDataMappingObj(this, 'top')">
+                                        <option value="bills">清单</option><option value="ration">定额</option><option value="ration_glj">定额人材机</option><option value="projectGLJ">项目人材机</option></select>
+                                      </div>
+                                      <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">排序方式</div>
+                                          <select class="form-control input-sm" id="select_sort_types" onchange="preHandleSortObj.onSortTypeChange(this)">
+                                              <option value="normal">普通</option>
+                                              <option value="tree">树结构</option>
+                                              <option value="accord_to_parent">依据上级</option>
+                                              <option value="self_define">自定义排序</option>
+                                          </select>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="col-6">
+                                        <span clas="mb-1">清单顶节点(全空白表示全部)</span>
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <span clas="mb-1">清单其他节点(全空白表示全部)</span>
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--计算式-->
+                              <div class="tab-pane" id="jss" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-12">
+                                        <span class="mb-1">计算式</span>
+                                        <div class="ztree-warp" style="height:140px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="col-4">
+                                        <div class="input-group input-group-sm">
+                                          <select class="form-control"><option>转换大小写金额</option></select>
+                                          <span class="input-group-btn">
+                                            <button class="btn btn-primary" type="button">套用</button>
+                                          </span>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="form-group col-3">
+                                        <label>计算式执行点</label>
+                                        <select class="form-control form-control-sm"><option>预运行</option></select>
+                                      </div>
+                                      <div class="form-group col-3">
+                                        <label>格式串(format)</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-12">
+                                        <textarea class="form-control" rows="8"></textarea>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--模板JS对象-->
+                              <div class="tab-pane" id="mbdx" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="mb-3">
+                                      <a href="#" class="btn btn-sm btn-primary">生成JS文本</a>
+                                      <a href="#" class="btn btn-sm btn-primary">导入JS文本</a>
+                                    </div>
+                                    <div class="form-group">
+                                      <textarea class="form-control" rows="21"></textarea>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出新建模板-->
+    <div class="modal fade" id="myModal" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">创建新模板</h5>
+                </div>
+                <div class="modal-body">
+                    <div class="form-group">
+                      <label>模板类型</label>
+                      <div class="row">
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> 流水式表
+                          </label>
+                        </div>
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> 账单式表
+                          </label>
+                        </div>
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3"> 交叉表
+                          </label>
+                        </div>
+                      </div>
+                    </div>
+                </div>
+                <div class="modal-footer text-xs-center">
+                    <button class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <button href="project-management.html" class="btn btn-primary">创建</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出历史记录-->
+    <div class="modal fade" id="history" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title"><i class="fa fa-history"></i> 历史记录</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body modal-fixed-height">
+                  <div class="list-group mb-3">
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> 编辑</h6>
+                        <span>2017-04-05 11:00:03</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> 编辑</h6>
+                        <span>2017-04-05 11:00:03</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-paper-plane-o" aria-hidden="true"></i> 发布</h6>
+                        <span>2017-04-05 10:13:13</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-plus-square-o" aria-hidden="true"></i> 创建</h6>
+                        <span>2017-04-05 10:13:13</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                  </div>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+    <script src="js/jquery/jquery.min.js"></script>
+    <script src="js/tether/tether.min.js"></script>
+    <script src="js/bootstrap/bootstrap.min.js"></script>
+    <script src="js/global.js"></script>
+    <!-- zTree -->
+  	<script type="text/javascript" src="js/ztree/jquery.ztree.core.js"></script>
+  	<script type="text/javascript" src="js/ztree/jquery.ztree.excheck.js"></script>
+    <!--弹出模板类型-->
+    <script type="text/javascript">
+    $('#myModal').modal('show')
+    </script>
+    <!-- 演示zTree -->
+    <SCRIPT type="text/javascript">
+  		<!--
+  		var setting = {
+  			view: {
+  				showIcon: true
+  			},
+  			data: {
+  				simpleData: {
+  					enable: true
+  				}
+  			}
+  		};
+
+  		var zNodes =[
+  			{ id:1, pId:0, name:"土建报表", open:true},
+  			{ id:11, pId:1, name:"类别1", open:true},
+  			{ id:111, pId:11, name:"报表1"},
+  			{ id:112, pId:11, name:"报表2"},
+  			{ id:113, pId:11, name:"报表3"},
+  			{ id:114, pId:11, name:"报表4"},
+  			{ id:12, pId:1, name:"类别2", open:true},
+  			{ id:121, pId:12, name:"报表5"},
+  			{ id:122, pId:12, name:"报表6"},
+  			{ id:123, pId:12, name:"报表7"},
+  			{ id:124, pId:12, name:"报表8"},
+        { id:2, pId:0, name:"绿化报表", open:true},
+        { id:13, pId:2, name:"类别1", open:true},
+        { id:126, pId:13, name:"报表1"},
+        { id:126, pId:13, name:"报表2"},
+        { id:127, pId:13, name:"报表3"},
+        { id:128, pId:13, name:"报表4"},
+        { id:14, pId:2, name:"类别2", open:true},
+        { id:129, pId:14, name:"报表5"},
+        { id:130, pId:14, name:"报表6"},
+        { id:131, pId:14, name:"报表7"},
+        { id:132, pId:14, name:"报表8"},
+  		];
+
+  		function showIconForTree(treeId, treeNode) {
+  			return !treeNode.isParent;
+  		};
+
+  		$(document).ready(function(){
+  			$.fn.zTree.init($("#treeDemo"), setting, zNodes);
+  		});
+  		//-->
+  	</SCRIPT>
+</body>
+<script type="text/javascript">
+    autoFlashHeight();
+</script>
+
+</html>

+ 649 - 0
main2.html

@@ -0,0 +1,649 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>报表模板编辑器</title>
+    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="css/main.css">
+    <link rel="stylesheet" href="css/font-awesome/font-awesome.min.css">
+    <link rel="stylesheet" href="css/font-zy/iconfont.css">
+    <!--zTree-->
+  	<link rel="stylesheet" href="css/ztree/zTreeStyle.css" type="text/css">
+</head>
+
+<body>
+    <div class="header d-flex justify-content-between">
+        <nav class="navbar navbar-toggleable-lg navbar-light p-0 ">
+            <span class="header-logo px-2">计量支付SAAS</span>
+            <div class="navbar-text">通用报表</div>
+            <div class="ml-3">
+              <div class="dropdown">
+                <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                  全国
+                </button>
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                  <a class="dropdown-item" href="#">广东</a>
+                </div>
+              </div>
+            </div>
+        </nav>
+        <nav class="navbar navbar-toggleable-lg navbar-light p-0">
+          <div class="px-3 row" >
+            <div class="col-6">
+            </div>
+          </div>
+          <div class="p-2">
+            <button class="btn btn-success btn-sm"><i class="fa fa-save"></i> 保存</button>
+            <a class="btn btn-secondary btn-sm" target="_blank"><i class="fa fa-eye"></i> 预览</a>
+          </div>
+        </nav>
+    </div>
+    <div class="main">
+        <div class="content">
+            <div class="container-fluid">
+                <div class="row">
+                  <div class="main-side col-lg-3 p-0">
+                    <div class="tab-bar col-12">
+                      <div class="input-group input-group-sm">
+                            <input type="text" class="form-control" placeholder="输入报表名检索">
+                            <span class="input-group-btn">
+                              <button class="btn btn-primary" type="button">搜索</button>
+                            </span>
+                          </div>
+                      </div>
+                    <div class="tab-content">
+                      <ul id="treeDemo" class="ztree"></ul>
+                    </div>
+                  </div>
+                  <div class="main-content col-lg-9 p-0">
+                    <div class="container-fluid">
+                      <div class="row">
+                        <!-- 报表设置 -->
+                        <div class="col-lg-12 p-0">
+                          <ul class="nav nav-tabs tools-bar px-1" role="tablist">
+                              <li class="nav-item">
+                                  <a class="nav-link active" data-toggle="tab" href="#mbxx" role="tab">模板信息</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#mbbj" role="tab">模板布局</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#zbys" role="tab">指标映射</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#zbbf" role="tab">指标摆放</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#sjcl" role="tab">数据预处理</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#jss" role="tab">计算式</a>
+                              </li>
+                              <li class="nav-item">
+                                  <a class="nav-link" data-toggle="tab" href="#mbdx" role="tab">模板JS对象</a>
+                              </li>
+                          </ul>
+                          <div class="tab-content">
+                              <!--模板信息-->
+                              <div class="tab-pane active" id="mbxx" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="form-group">
+                                      <label>报表名称</label>
+                                      <input class="form-control form-control-sm" placeholder="输入报表名称">
+                                    </div>
+                                    <div class="form-group">
+                                      <label>页面</label>
+                                      <div class="row">
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">纸张</div>
+                                          <select class="form-control input-sm"><option>A3</option><option>A4</option></select>
+                                        </div>
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">方向</div>
+                                          <select class="form-control input-sm"><option>横向</option><option>竖向</option></select>
+                                        </div>
+                                        <div class="input-group input-group-sm col-4">
+                                        <div class="input-group-addon">单位</div>
+                                        <select class="form-control input-sm"><option>CM</option></select>
+                                      </div>
+                                      </div>
+                                    </div>
+                                    <div class="form-group">
+                                      <label>显示调整</label>
+                                      <div class="row">
+                                        <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">分栏</div>
+                                          <select class="form-control input-sm"><option>1</option><option>2</option></select>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row">
+                                      <div class="form-group col-4">
+                                      <label>显示行-高度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-4">
+                                      <label>显示列 - 宽度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                    </div>
+                                  </div>
+                                  <!--图标-->
+                                  <div class="p-3">
+                                    <p><i class="icon zyfont zy-ic_format_bold"></i>粗体 / <i class="icon zyfont zy-ic_format_italic"></i>斜体 / <i class="icon zyfont zy-ic_format_underlined"></i>下划线 </p>
+                                    <p><i class="icon zyfont zy-ic_format_align_left"></i>左对齐 / <i class="icon zyfont zy-ic_format_align_center"></i>中对齐 / <i class="icon zyfont zy-ic_format_align_right"></i>右对齐</p>
+                                    <p><i class="icon zyfont zy-ic_vertical_align_top"></i>上对齐 / <i class="icon zyfont zy-ic_vertical_align_center"></i>中对齐 / <i class="icon zyfont zy-ic_vertical_align_bottom"></i>下对齐</p>
+                                    <p><i class="icon zyfont zy-ic_border_outer"></i> 外侧框线 / <i class="icon zyfont zy-ic_border_clear"></i> 无框线  / <i class="icon zyfont zy-ic_border_left"></i> 左框线  / <i class="icon zyfont zy-ic_border_top"></i> 上框线  / <i class="icon zyfont zy-ic_border_right"></i> 右框线  / <i class="icon zyfont zy-ic_border_bottom"></i> 下框线 </p>
+                                    <p> <i class="icon zyfont zy-ic_format_shapes"></i>缩放(Shrink) / <i class="icon zyfont zy-ic_exposure_zero"></i>显示0 / <i class="icon zyfont zy-ic_wrap_text"></i>自动折行(Wrap)</p>
+                                  </div>
+                                  <!--图标-->
+                                </div>
+                              </div>
+                              <!--模板布局-->
+                              <div class="tab-pane" id="mbbj" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="ztree-warp" style="height:300px">
+                                      ztree 保留空间
+                                    </div>
+                                    <div class="row mt-5">
+                                      <div class="form-group col-3">
+                                        <label>边框样式</label>
+                                        <select class="form-control form-control-sm"><option>空白</option></select>
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>位置</label>
+                                        <select class="form-control form-control-sm"><option>上</option></select>
+                                      </div>
+                                      <div class="form-group col-3">
+                                        <label>出现频率</label>
+                                        <select class="form-control form-control-sm"><option>每页</option></select>
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>高度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-2">
+                                        <label>宽度</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--指标映射-->
+                              <div class="tab-pane" id="zbys" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-6">
+                                        <span>报表映射指标(勾选表示:主从关系的ID关联指标)</span>
+                                        <div class="ztree-warp" style="height:400px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <span>可映射指标</span>
+                                        <div class="ztree-warp" style="height:400px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--指标摆放-->
+                              <div class="tab-pane" id="zbbf" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:300px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="row">
+                                          <div class="col-12">
+                                            <div class="ztree-warp" style="height:110px">
+                                              ztree 保留空间
+                                            </div>
+                                          </div>
+                                          <div class="col-12 mt-4">
+                                            <div class="ztree-warp" style="height:160px">
+                                              ztree 保留空间
+                                            </div>
+                                          </div>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                       <div class="form-group col-2">
+                                        <label>字体选择</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>字体名称</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>字体大小</label>
+                                        <input class="form-control form-control-sm" type="text">
+                                       </div>
+                                       <div class="form-group col-3">
+                                        <label>字体其他特性</label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                粗体
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                斜体
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input type="checkbox" class="form-check-input">
+                                                下划线
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>边框样式</label>
+                                        <select class="form-control form-control-sm"><option>正常</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>左边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>右边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>上边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>下边</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                     </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>控制选择</label>
+                                        <select class="form-control form-control-sm"><option>正文内容</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>横向对齐</label>
+                                        <select class="form-control form-control-sm"><option>右</option></select>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>纵向对齐</label>
+                                        <select class="form-control form-control-sm"><option>下</option></select>
+                                       </div>
+                                       <div class="form-group col-3">
+                                        <label>控制其他特性</label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input"  type="checkbox">
+                                                自动缩放
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input class="form-check-input"  type="checkbox">
+                                                显示0
+                                            </label>
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox">
+                                                自动折行
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col">
+                                        <label>左</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>右</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>上</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col">
+                                        <label>下</label>
+                                        <div class="input-group input-group-sm">
+                                          <div class="input-group-addon">
+                                            <div class="form-check m-0">
+                                              <label class="form-check-label">
+                                                  <input class="form-check-input" type="checkbox">
+                                                  百分比
+                                              </label>
+                                            </div>
+                                          </div>
+                                          <input class="form-control" type="number">
+                                        </div>
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label></label>
+                                        <div class="form-check">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox">
+                                                自动行高
+                                            </label>
+                                        </div>
+                                       </div>
+                                    </div>
+                                    <div class="row">
+                                       <div class="form-group col-2">
+                                        <label>前缀</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>后缀</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>格式</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                       <div class="form-group col-2">
+                                        <label>默认值</label>
+                                        <input class="form-control form-control-sm">
+                                       </div>
+                                     </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--数据预处理-->
+                              <div class="tab-pane" id="sjcl" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-12">
+                                        <a class="btn btn-secondary btn-sm mb-1"><i class=" fa fa-plus-square"></i> 预处理环节</a>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="input-group input-group-sm col-4">
+                                        <div class="input-group-addon">预处理数据对象</div>
+                                        <select class="form-control input-sm" id="select_mapping_data" onchange="preHandleObj.onChangeDataMappingObj(this, 'top')">
+                                        <option value="bills">清单</option><option value="ration">定额</option><option value="ration_glj">定额人材机</option><option value="projectGLJ">项目人材机</option></select>
+                                      </div>
+                                      <div class="input-group input-group-sm col-4">
+                                          <div class="input-group-addon">排序方式</div>
+                                          <select class="form-control input-sm" id="select_sort_types" onchange="preHandleSortObj.onSortTypeChange(this)">
+                                              <option value="normal">普通</option>
+                                              <option value="tree">树结构</option>
+                                              <option value="accord_to_parent">依据上级</option>
+                                              <option value="self_define">自定义排序</option>
+                                          </select>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="col-6">
+                                        <span clas="mb-1">清单顶节点(全空白表示全部)</span>
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                      <div class="col-6">
+                                        <span clas="mb-1">清单其他节点(全空白表示全部)</span>
+                                        <div class="ztree-warp" style="height:180px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--计算式-->
+                              <div class="tab-pane" id="jss" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="row">
+                                      <div class="col-12">
+                                        <span class="mb-1">计算式</span>
+                                        <div class="ztree-warp" style="height:140px">
+                                          ztree 保留空间
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="col-4">
+                                        <div class="input-group input-group-sm">
+                                          <select class="form-control"><option>转换大小写金额</option></select>
+                                          <span class="input-group-btn">
+                                            <button class="btn btn-primary" type="button">套用</button>
+                                          </span>
+                                        </div>
+                                      </div>
+                                    </div>
+                                    <div class="row mt-3">
+                                      <div class="form-group col-3">
+                                        <label>计算式执行点</label>
+                                        <select class="form-control form-control-sm"><option>预运行</option></select>
+                                      </div>
+                                      <div class="form-group col-3">
+                                        <label>格式串(format)</label>
+                                        <input class="form-control form-control-sm">
+                                      </div>
+                                      <div class="form-group col-12">
+                                        <textarea class="form-control" rows="8"></textarea>
+                                      </div>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                              <!--模板JS对象-->
+                              <div class="tab-pane" id="mbdx" role="tabpanel">
+                                <div class="main-data">
+                                  <div class="p-3">
+                                    <div class="mb-3">
+                                      <a href="#" class="btn btn-sm btn-primary">生成JS文本</a>
+                                      <a href="#" class="btn btn-sm btn-primary">导入JS文本</a>
+                                    </div>
+                                    <div class="form-group">
+                                      <textarea class="form-control" rows="21"></textarea>
+                                    </div>
+                                  </div>
+                                </div>
+                              </div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出新建模板-->
+    <div class="modal fade" id="myModal" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">创建新模板</h5>
+                </div>
+                <div class="modal-body">
+                    <div class="form-group">
+                      <label>模板类型</label>
+                      <div class="row">
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> 流水式表
+                          </label>
+                        </div>
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> 账单式表
+                          </label>
+                        </div>
+                        <div class="form-check col-4">
+                          <label class="form-check-label">
+                            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3"> 交叉表
+                          </label>
+                        </div>
+                      </div>
+                    </div>
+                </div>
+                <div class="modal-footer text-xs-center">
+                    <button class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <button href="project-management.html" class="btn btn-primary">创建</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出历史记录-->
+    <div class="modal fade" id="history" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title"><i class="fa fa-history"></i> 历史记录</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body modal-fixed-height">
+                  <div class="list-group mb-3">
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> 编辑</h6>
+                        <span>2017-04-05 11:00:03</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> 编辑</h6>
+                        <span>2017-04-05 11:00:03</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-paper-plane-o" aria-hidden="true"></i> 发布</h6>
+                        <span>2017-04-05 10:13:13</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                    <div class="list-group-item list-group-item-action flex-column align-items-start">
+                      <div class="d-flex w-100 justify-content-between">
+                        <h6 class="mb-1"><i class="fa fa-plus-square-o" aria-hidden="true"></i> 创建</h6>
+                        <span>2017-04-05 10:13:13</span>
+                      </div>
+                      <p class="mb-1">陈特</p>
+                    </div>
+                  </div>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+    <script src="js/jquery/jquery.min.js"></script>
+    <script src="js/tether/tether.min.js"></script>
+    <script src="js/bootstrap/bootstrap.min.js"></script>
+    <script src="js/global.js"></script>
+    <!-- zTree -->
+  	<script type="text/javascript" src="js/ztree/jquery.ztree.core.js"></script>
+  	<script type="text/javascript" src="js/ztree/jquery.ztree.excheck.js"></script>
+    <!--弹出模板类型-->
+    <script type="text/javascript">
+    $('#myModal').modal('show')
+    </script>
+    <!-- 演示zTree -->
+    <SCRIPT type="text/javascript">
+  		<!--
+  		var setting = {
+  			view: {
+  				showIcon: true
+  			},
+  			data: {
+  				simpleData: {
+  					enable: true
+  				}
+  			}
+  		};
+
+  		var zNodes =[
+  			{ id:1, pId:0, name:"02.本期常规表", open:true},
+        { id:11, pId:1, name:"支表02 期中支付证书"},
+        { id:12, pId:1, name:"支表03 清单支付报表"},
+        { id:13, pId:1, name:"支表04 中间计量表"},
+        { id:2, pId:0, name:"03.累计常规表", open:true},
+        { id:21, pId:2, name:"报表"},
+        { id:3, pId:0, name:"04.审核比较表", open:true},
+        { id:31, pId:3, name:"报表"},
+        { id:4, pId:0, name:"05.累计审核表", open:true},
+        { id:41, pId:4, name:"报表"},
+        { id:5, pId:0, name:"06.全国结算表", open:true},
+        { id:51, pId:5, name:"报表"},
+        { id:6, pId:0, name:"07.广东结算表", open:true},
+        { id:61, pId:6, name:"报表"},
+  		];
+
+  		function showIconForTree(treeId, treeNode) {
+  			return !treeNode.isParent;
+  		};
+
+  		$(document).ready(function(){
+  			$.fn.zTree.init($("#treeDemo"), setting, zNodes);
+  		});
+  		//-->
+  	</SCRIPT>
+</body>
+<script type="text/javascript">
+    autoFlashHeight();
+</script>
+
+</html>