Bläddra i källkod

项目计划安排

Enford 5 år sedan
förälder
incheckning
ab49fc0878
21 ändrade filer med 3281 tillägg och 0 borttagningar
  1. 245 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionDateList.js
  2. 34 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionDateList.jsp
  3. 351 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionManageAct.js
  4. 50 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionManageAct.jsp
  5. 180 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/disList2ManageAct.js
  6. 67 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/disList2ManageAct.jsp
  7. 278 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netActPowerList.js
  8. 33 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netActPowerList.jsp
  9. 354 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netWorkManageAct.js
  10. 49 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netWorkManageAct.jsp
  11. 238 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/newDateList.js
  12. 34 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/newDateList.jsp
  13. 177 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/runListManageAct.js
  14. 74 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/runListManageAct.jsp
  15. 73 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectDateForm.jsp
  16. 316 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageForm.js
  17. 50 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageForm.jsp
  18. 267 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageList.js
  19. 103 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageList.jsp
  20. 275 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanPowerList.js
  21. 33 0
      src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPowerList.jsp

+ 245 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionDateList.js

@@ -0,0 +1,245 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+                height:'400',
+               // //显示检索按钮
+	           // showSearch: true,
+               // //显示刷新按钮
+               // showRefresh: true,
+               // //显示切换手机试图按钮
+               // showToggle: true,
+               // //显示 内容列下拉框
+    	       // showColumns: true,
+    	       // //显示到处按钮
+    	       // showExport: true,
+    	       // //显示切换分页按钮
+    	       // showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+               cache: false,
+               //是否显示分页(*)
+               // pagination: true,
+               //  //排序方式
+               // sortOrder: "asc",
+               // //初始化加载第一页,默认第一页
+               // pageNumber:1,
+               // //每页的记录行数(*)
+               // pageSize: 5000,
+               // //可供选择的每页的行数(*)
+               // pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/planDateTable",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',
+               ////查询参数,每次调用是会带上这个参数,可自定义
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该表单记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/sg/managementcenter/project/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#projectTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+
+                   	});
+
+                   }
+               },
+        onLoadSuccess:function(data) {
+            var split = data.rows;
+            for (var i = 0; i < split.length; i++) {
+                var arrangeTime = split[i].projectMonthDate;
+                var date = new Date(arrangeTime);
+                var date1 = new Date(arrangeTime);
+                date1.setMonth(date1.getMonth()+1);
+                $('#' + split[i].id).datetimepicker({
+                    format: "YYYY-MM-DD"
+                    // minDate:date,
+                    // maxDate:date1,
+                }).on('dp.change', function (i) {
+                    return function (ev) {
+                        var newDateTime = ev.date ? ev.date.format('YYYY-MM-DD') : "";
+                        var oldDateTime = ev.oldDate ? ev.oldDate.format('YYYY-MM-DD') : "";
+                        if (newDateTime != oldDateTime) {
+                            if ("" != oldDateTime) {
+                                jp.confirm('确认要更新时间吗?', function () {
+                                    jp.get("${ctx}/sg/managementCenter/projectPlanArrage/addtime?id=" + split[i].id + "&projectDate=" + newDateTime, function (data) {
+                                        if (data.success) {
+                                            jp.success(data.msg);
+                                        } else {
+                                            jp.error(data.msg);
+                                        }
+                                    })
+                                })
+                            } else {
+                                jp.get("${ctx}/sg/managementCenter/projectPlanArrage/addtime?id=" + split[i].id + "&projectDate=" + newDateTime, function (data) {
+                                    if (data.success) {
+                                        // jp.success(data.msg);
+                                    } else {
+                                        jp.error(data.msg);
+                                    }
+                                })
+                            }
+
+                        }
+                    }
+                }(i));
+            }
+        },
+               onClickRow: function(row, $el){
+               },
+
+            onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [
+                   {
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:120
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '计划月份',
+                       width:160
+                   }
+                   ,{
+                       field: 'constructionUnit',
+                       title: '施工单位项目经理',
+                       width:160
+                   }
+                   ,{
+                       field: 'projectDate',
+                       title: '安排计划时间',
+                       width:160,
+                       formatter: getTime
+                   }
+		     ]
+		
+		});
+
+    function getTime(value, row, index) {
+        if (row.operationStatus == '0'){
+            return [
+                "<div class='input-group form_datetime' id="+row.id+"> <input type='text' id="+row.id+"input"+"   name='deliverySchedule' class='form-control required'  value="+row.projectDate+"/> <span class='input-group-addon'> <span class='glyphicon glyphicon-calendar'></span> </span></div>" ,
+            ].join('');
+        }else {
+            return [
+                "<div class='input-group' id="+row.id+"> <input readonly='readonly' type='text' id="+row.id+"input1234"+" class='form-control required'  value="+row.projectDate+"/></div>" ,
+            ].join('');
+        }
+
+    }
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    function getDate() {
+        return $.map($("#projectTable").bootstrapTable('getData'), function (row) {
+            return row
+        });
+    }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+    function save() {
+        // var date = getDate();
+        // var idPower = "";
+        // var id = ""
+        // var flag = false;
+        // for (var i = 0; i < date.length; i++){
+        //     id = date[i].id;
+        //     idPower = $("#"+id+"input").val();
+        //     alert(idPower);
+        //     if (null == idPower||"" == idPower){
+        //         flag = true;
+        //     }
+        // }
+        // if (flag){
+        //     jp.error("请选择具体时间!")
+        //     return false;
+        // } else {
+        //     return true;
+        // }
+        return true;
+    }
+</script>

+ 34 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionDateList.jsp

@@ -0,0 +1,34 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="constructionDateList.js" %>
+</head>
+<script>
+    // function save() {
+    //     var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+    //     parent.layer.close(dialogIndex);
+    // }
+</script>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<%--<div class="panel-heading">--%>
+		<%--<h3 class="panel-title">安排计划时间</h3>--%>
+	<%--</div>--%>
+	<div class="panel-body">
+	<!-- 工具栏 -->
+
+	<!-- 表格 -->
+	<table id="projectTable" data-toolbar="#toolbar"></table>
+
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 351 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionManageAct.js

@@ -0,0 +1,351 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script type="text/javascript">
+    $(document).ready(function() {
+        var projectId = $('#projectId').val();
+        //zTree初始化
+        $.getJSON("${ctx}/sg/managementCenter/projectPlanArrage/bootstrapConstructionTreeTable?projectId="+projectId,function(data){
+            jstree(data);
+            dateTimeValue('1');
+        });
+        $('#selectId').click(function () {
+            var object = $('#jstree').treeview('getChecked');
+            if (object.length<1){
+                jp.error("请选择项目!")
+                return false;
+            }
+            var str = "";
+            for (var  i = 0; i < object.length; i++) {
+                str+=object[i].id+",";
+            }
+            var sureStr  = str.substring(0,str.length-1);
+            $("#parentIds").val(sureStr);
+            add(sureStr);
+        });
+        //搜索
+        var findSearchableNodes = function() {
+            return $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+        };
+        var search = function(e) {
+            var pattern = $.trim($('#input-search').val());
+            var options = {
+                ignoreCase: $('#chk-ignore-case').is(':checked'),
+                exactMatch: $('#chk-exact-match').is(':checked'),
+                revealResults: $('#chk-reveal-results').is(':checked')
+            };
+            $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+            var results = $('#jstree').treeview('search', [ pattern, options ]);
+        }
+        $('#btn-search').on('click', search);
+        $('#btn-clear-search').on('click', function (e) {
+            $('#jstree').treeview('clearSearch');
+            $('#input-search').val('');
+            $('#jstree').treeview('collapseAll', {
+                silent : false//设置初始化节点关闭
+            });
+        });
+        //搜索
+        var search1 = function(e) {
+            var pattern = $.trim($('#input-search1').val());
+            var options = {
+                ignoreCase: $('#chk-ignore-case').is(':checked'),
+                exactMatch: $('#chk-exact-match').is(':checked'),
+                revealResults: $('#chk-reveal-results').is(':checked')
+            };
+            $('#jstreeTime').treeview('search', [ $.trim($('#input-search1').val()), { ignoreCase: false, exactMatch: false } ]);
+            var results = $('#jstreeTime').treeview('search', [ pattern, options ]);
+        }
+        $('#btn-search1').on('click', search1);
+        $('#btn-clear-search1').on('click', function (e) {
+            $('#jstreeTime').treeview('clearSearch');
+            $('#input-search1').val('');
+            $('#jstreeTime').treeview('collapseAll', {
+                silent : false//设置初始化节点关闭
+            });
+        });
+        $('#selectId1').click(function () {
+            var object = $('#jstreeTime').treeview('getChecked');
+            if (object.length<1){
+                jp.error("请选择项目!");
+                return false;
+            }
+            var str = "";
+            for (var  i = 0; i < object.length; i++) {
+                str+=object[i].id+",";
+            }
+            var sureStr  = str.substring(0,str.length-1);
+            minus(sureStr);
+        })
+        //表格初始化
+        $('#table').bootstrapTable({
+            //请求方法
+            method: 'post',
+            //类型json
+            dataType: "json",
+            contentType: "application/x-www-form-urlencoded",
+            //是否显示行间隔色
+            //显示刷新按钮
+            showRefresh: true,
+            //是否显示分页(*)
+            // pagination: true,
+            //排序方式
+            sortOrder: "asc",
+            //初始化加载第一页,默认第一页
+            pageNumber:1,
+            //每页的记录行数(*)
+            pageSize: 5,
+            //可供选择的每页的行数(*)
+            pageList: [5,10, 25, 50, 100],
+            //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+            url: "${ctx}/sg/managementCenter/projectPlanArrage/initConstructionArragePlanProject?projectId="+projectId,
+            //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+            //queryParamsType:'',
+            ////查询参数,每次调用是会带上这个参数,可自定义
+            queryParams : function(params) {
+                var searchParam = $("#searchForm").serializeJSON();
+                searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+                searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+                searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                return searchParam;
+            },
+            //分页方式:client客户端分页,server服务端分页(*)
+            sidePagination: "server",
+            contextMenuTrigger:"right",//pc端 按右键弹出菜单
+            contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+            contextMenu: '#context-menu',
+            onContextMenuItem: function(row, $el){
+                if($el.data("item") == "edit"){
+                    edit(row.id);
+                } else if($el.data("item") == "delete"){
+                    deleteAll(row.id);
+                }
+            },
+            onClickRow: function(row, $el){
+            },
+            onLoadSuccess:function(data) {
+                var split = data.rows;
+                var tb = document.getElementById('table');    // table 的 id
+                var rows = tb.rows;                           // 获取表格所有行
+                for (var i =0;i<split.length;i++){
+                    if (split[i].htmlStatus=="2"){
+                        // this.data.rows[i].setAttribute("style","color: red;");
+                        rows[i+1].style.backgroundColor = "#e6e6e6"
+                    }
+                }
+            },
+            onShowSearch: function () {
+                $("#search-collapse").slideToggle();
+            },
+            columns: [{
+                checkbox: true
+
+            }, {
+                field: 'projectNumber',
+                title: '项目定义号'
+
+            }, {
+                field: 'projectName',
+                title: '项目名称'
+            }, {
+                field: 'projectPowerRange',
+                title: '停电范围'
+            }, {
+                field: 'projectMonthDate',
+                title: '停电月份'
+            }, {
+                field: 'projectDate',
+                title: '停电日'
+            }, {
+                field: 'projectPowerOut',
+                title: '是否停电'
+            }, {
+                field: 'constructionUnit',
+                title: '当前操作经理'
+            }, {
+                field: 'backToText',
+                title: '备注'
+            }
+
+
+            ]
+
+        });
+
+    })
+
+if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+    $('#table').bootstrapTable("toggleView");
+}
+
+$('#table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+    'check-all.bs.table uncheck-all.bs.table', function () {
+    $('#remove').prop('disabled', ! $('#table').bootstrapTable('getSelections').length);
+    $('#edit').prop('disabled', $('#table').bootstrapTable('getSelections').length!=1);
+});
+//安排计划时间
+function add(ids){
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/consPlanArranage",{'ids':ids},function(data){
+        if(data.success){
+            refresh();
+            // jstreeTime(data.mapList);
+            jstree(data.mapListTree);
+            jp.success("安排计划成功")
+        }else{
+            jp.error(data.message);
+        }
+    })
+}
+function getIds() {
+    return $("#parentIds").val();
+}
+function jstree(date) {
+    $('#jstree').treeview({
+        data: date,
+        levels: 1,
+        highlightSelected:false,
+        showCheckbox:true,
+    });
+}
+function jstreeTime(date) {
+    $('#jstreeTime').treeview({
+        data: date,
+        levels: 1,
+        highlightSelected:false,
+        showCheckbox:true,
+        onNodeSelected: function(event, treeNode) {
+            var id = treeNode.id;
+            jp.openSaveDialog('编辑安排计划项目', "${ctx}/sg/managementCenter/constructionProject/formPlan?id=" + id, '800px', '500px');
+        },
+
+    });
+}
+function dateTimeValue(value) {
+    if (value != '1'){
+        $("#dateTimeId").val(value);
+    }else {
+        var date = new Date();
+        var str = date.toISOString();
+        $("#dateTimeId").val( str.substring(0,7));
+    }
+}
+
+function selected(data){
+    if(data.nodeId == undefined){
+        for (var i = 0; i < data.nodes.length; i++) {
+            $("#jstree").treeview('checkNode', [ data.nodes[i], {silent: true}]);
+        }
+    }else{
+        var parentNode = $('#jstree').treeview('getParent', data.nodeId);
+        $("#jstree").treeview('checkNode', [ parentNode, {silent: true}]);
+    }
+}
+function unSelected(node){
+    if(node.id == undefined){
+        for (var i = 0; i < node.nodes.length; i++) {
+            $("#jstree").treeview('uncheckNode', [ node.nodes[i], {silent: true}]);
+        }
+    }else{
+        var parentNode = $('#jstree').treeview('getParent', node.nodeId);
+        var num;
+        for (var i = 0; i < parentNode.nodes.length; i++) {
+            if(parentNode.nodes[i].state.checked == true){
+                num=1;
+            }
+        }
+        if(num!=1){
+            $("#jstree").treeview('uncheckNode', [ parentNode, {silent: true}]);
+        }
+        console.log(parentNode);
+    }
+}
+function refresh() {
+    $('#table').bootstrapTable('refresh');
+}
+function deleteAll(ids){
+    if(!ids){
+        ids =  getIdSelections();
+    }
+    if ("" == ids || ids==null){
+        jp.error("请选择项目");
+        return false;
+    }
+    $("#ids").val(ids);
+    jp.prompt("填写备注", function (message) {
+        jp.post("${ctx}/sg/managementCenter/projectPlanArrage/deletePlanArrange",
+            {
+                "ids": $("#ids").val(),
+                "backToText": window.encodeURI(message)
+            },
+            function (data) {
+                if(data.success){
+                    jstree(data.mapListTree);
+                    refresh();
+                    jp.success(data.message);
+                }else{
+                    jp.error(data.message);
+                }
+            })
+    });
+}
+function getIdSelections() {
+    return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+        return row.id
+    });
+}
+//确定安排计划
+function surePlan() {
+    top.layer.open({
+        type: 2,
+        area: ['900px', '500px'],
+        title: '设计项目时间',
+        maxmin: true, //开启最大化最小化按钮
+        content: "${ctx}/sg/managementCenter/projectPlanArrage/planDate" ,
+        btn: ['确定', '关闭'],
+        yes: function(index, layero){
+            var iframeWin = layero.find('iframe')[0]; //得到弹出的窗口对象,执行窗口内iframe页的方法:iframeWin.method();
+            var flag = iframeWin.contentWindow.save();
+            if (flag){
+                $.get("${ctx}/sg/managementCenter/projectPlanArrage/judgeAddTime", function(data){
+                    if(data.success){
+                        // jp.success("安排计划成功");
+                        withTheProcess();
+                        top.layer.close(index);
+                    }else if (data.msg == "1"){
+                        jp.error("您还要项目具体安排时间未填!");
+                    }else{
+                        jp.confirm('您安排的同一开关的项目时间不相同,是否继续?', function(){
+                            withTheProcess();
+                            top.layer.close(index);
+                        })
+                    }
+                })
+                // refresh();
+            }
+        },
+        btn2: function(index){
+            
+            top.layer.close(index);
+        },
+        cancel:function (index) {
+            top.layer.close(index);
+        }
+    });
+}
+function withTheProcess(){
+    jp.prompt("审核通过", function (message) {
+        jp.post("${ctx}/sg/managementCenter/projectPlanArrage/conRunProInsId",
+            {
+                "flag": "yes",
+                "comment": window.encodeURI(message)
+            },
+            function (data) {
+                if(data.success){
+                    jp.success(data.msg);
+                    jp.go("${ctx}/act/task/todo")
+                }else {
+                    jp.error(data.msg);
+                }
+            })
+    });
+}
+</script>

+ 50 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/constructionManageAct.jsp

@@ -0,0 +1,50 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>施工单位审核页面</title>
+    <meta name="decorator" content="ani"/>
+    <%@ include file="/webpage/include/bootstraptable.jsp"%>
+    <link href="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.css" rel="stylesheet" type="text/css"/>
+    <script src="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.js" type="text/javascript"></script>
+    <%@include file="/webpage/include/treeview.jsp" %>
+    <%@include file="constructionManageAct.js" %>
+</head>
+<body style="background-color:white">
+<div class="wrapper wrapper-content">
+    <input type="text" value="${projectId}" id="projectId" hidden="hidden"/>
+    <input type="text" value="" id="ids" hidden="hidden">
+    <div class="row">
+        <%--未安排计划的树形--%>
+        <div class="col-sm-3 col-md-3">
+            <div id="jstree" style="height:400px;overflow:auto;"></div>
+        </div>
+        <div  class="col-sm-9 col-md-9 animated fadeInRight">
+            <!-- 工具栏 -->
+            <div id="toolbar">
+                <button id="selectId" class="btn btn-warning">
+                    安排选择计划
+                </button>
+                <button id="remove" class="btn btn-danger"  onclick="deleteAll()">
+                    <i class="glyphicon glyphicon-remove"></i> 删除
+                </button>
+            </div><!-- 工具栏结束 -->
+            <table id="table" data-toolbar="#toolbar">
+            </table>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-sm-3"></div>
+        <div class="col-sm-6">
+            <div class="form-group text-center">
+                <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="button" value="确认安排此计划" onclick="surePlan()" />&nbsp;
+            </div>
+        </div>
+    </div>
+    <c:if test="${not empty act.id}">
+        <act:flowChart procInsId="${act.procInsId}"/>
+        <act:histoicFlow procInsId="${act.procInsId}" />
+    </c:if>
+</div>
+</body>
+</html>

+ 180 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/disList2ManageAct.js

@@ -0,0 +1,180 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+    var procInsId = $("#procInsId").val();
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 5,
+               //可供选择的每页的行数(*)    
+               pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/disList2ArragePlanProject?procInsId="+procInsId,
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+               },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+                   checkbox: true
+               },
+			{
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerOut',
+                       title: '是否停电/带电',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '月份',
+                       width:110,
+                       sortName: 'beginBeginDate'
+
+                   }
+                   ,{
+                       field: 'projectDate',
+                       title: '具体时间',
+                       width:120,
+                       sortName: 'endDate'
+
+                   }
+		     ]
+		
+		});
+
+
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+        $("#export").click(function(){//导出Excel文件
+            var procInsId1 = $("#procInsId").val();
+            jp.downloadFile('${ctx}/sg/managementCenter/projectPlanArrage/export?procInsId='+procInsId1);
+        });
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+  function runListSubmit() {
+      jp.prompt("审核通过", function (message) {
+          jp.post("${ctx}/sg/managementCenter/projectPlanArrage/disList2RunProInsId",
+              {
+                  "taskId":"${projectActProclnsAss.act.taskId}",
+                  "taskName":"${projectActProclnsAss.act.taskName}",
+                  "taskDefKey":"${projectActProclnsAss.act.taskDefKey}",
+                  "procInsId":"${projectActProclnsAss.act.procInsId}",
+                  "procDefId":"${projectActProclnsAss.act.procDefId}",
+                  "flag":"yes",
+                  "comment":window.encodeURI(message)
+              },
+              function (data) {
+                  if(data.success){
+                      jp.success(data.msg);
+                      jp.go("${ctx}/act/task/todo")
+                  }else {
+                      jp.error(data.msg);
+                  }
+              })
+      });
+  }
+
+</script>

+ 67 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/disList2ManageAct.jsp

@@ -0,0 +1,67 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="disList2ManageAct.js" %>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">项目计划安排</h3>
+	</div>
+	<div class="panel-body">
+		<!-- 搜索 -->
+		<div id="search-collapse" class="collapse">
+			<div class="accordion-inner">
+				<form:form id="searchForm" modelAttribute="projectActProclnsAss" class="form form-horizontal well clearfix">
+					<input type="hidden" id="procInsId" value="${projectActProclnsAss.act.procInsId}"/>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目定义号:">项目定义号:</label>
+						<form:input path="projectNumber" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目名称:">项目名称:</label>
+						<form:input path="projectName" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div style="margin-top:26px">
+							<a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>
+							<a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>
+						</div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+
+	<!-- 工具栏 -->
+	<div id="toolbar">
+		<button id="export" class="btn btn-warning">
+			<i class="fa fa-file-excel-o"></i> 导出
+		</button>
+	 </div>
+
+	<!-- 表格 -->
+	<table id="projectTable"  style="table-layout:fixed"  data-toolbar="#toolbar"></table>
+		<div class="row">
+			<div class="col-sm-3"></div>
+			<div class="col-sm-6">
+				<div class="form-group text-center">
+					<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="button" value="确认提交" onclick="runListSubmit()" />&nbsp;
+				</div>
+			</div>
+		</div>
+		<c:if test="${not empty act.id}">
+			<act:flowChart procInsId="${act.procInsId}"/>
+			<act:histoicFlow procInsId="${act.procInsId}" />
+		</c:if>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 278 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netActPowerList.js

@@ -0,0 +1,278 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               // //显示检索按钮
+	           // showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               // //显示切换手机试图按钮
+               // showToggle: true,
+               // //显示 内容列下拉框
+    	       // showColumns: true,
+    	       // //显示到处按钮
+    	       // showExport: true,
+    	       // //显示切换分页按钮
+    	       // showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+               cache: false,
+               //是否显示分页(*)
+               pagination: false,
+                //排序方式
+               sortOrder: "asc",
+               //初始化加载第一页,默认第一页
+                pageNumber:1,
+                // useCurrentPage:true,
+               //每页的记录行数(*)
+               // pageSize: 3000,
+               //可供选择的每页的行数(*)
+               // pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/planNetDateTable",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',
+               ////查询参数,每次调用是会带上这个参数,可自定义
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该表单记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/sg/managementcenter/project/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#projectTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+
+                   	});
+
+                   }
+               },
+                onLoadSuccess:function(data) {
+                    var split = data.rows;
+                    var tb = document.getElementById('projectTable');    // table 的 id
+                    var rows = tb.rows;                           // 获取表格所有行
+                    for (var i =0;i<split.length;i++){
+                        if (split[i].htmlStatus=="1"){
+                            // this.data.rows[i].setAttribute("style","color: red;");
+                            rows[i+1].style.color = "red"
+                        }
+                    }
+                },
+                onClickRow: function(row, $el){
+               },
+
+            onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [
+                   {
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:120
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '停电月份',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerOut',
+                       title: '是否带电',
+                       width:160,
+                       formatter: getTime
+                   }
+		     ]
+		});
+    function getTime(value, row, index) {
+        if(row.projectPowerOut == "带电") {
+            return [
+                "<select class='form-control' id=" + row.id + "><option value='停电'>停电</option><option value='带电'  selected>带电</option><select>",
+            ].join('');
+        }else {
+            return [
+                "<select class='form-control' id=" + row.id + "><option value='停电'  selected>停电</option><option value='带电' >带电</option><select>",
+            ].join('');
+        }
+    }
+    // onclick='submit("+row.id+")'
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    function getDate() {
+        return $.map($("#projectTable").bootstrapTable('getData'), function (row) {
+            return row
+        });
+    }
+    // function f() {
+    //
+    // }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+  
+   function add(){
+	  jp.openSaveDialog('新增项目计划安排', "${ctx}/sg/managementCenter/constructionProject/form",'800px', '500px');
+  }
+  // function submit(data) {
+  //     alert("1");
+  //     alert(data);
+  // }
+
+  
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+	}
+	jp.openSaveDialog('编辑项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+  }
+  
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+ }
+
+function save() {
+    var date = getDate();
+    var idPower = "";
+    var id = "";
+    for (var i = 0; i < date.length; i++){
+        id = date[i].id;
+        idPower += date[i].id + "," + $("#"+id).val() + ";";
+    }
+    idPower = idPower.substring(0,idPower.length-1);
+    $("#idPower").val(idPower);
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/inspection",$('#inputForm').serialize(),function(data){
+        if(data.success){
+            refresh();
+            // $('#projectTable').bootstrapTable('refresh');
+            jp.success(data.msg);
+        }else{
+            jp.error(data.msg);
+        }
+    })
+}
+
+function saveSure(){
+    var date = getDate();
+    var idPower = "";
+    var id = "";
+    for (var i = 0; i < date.length; i++){
+        id = date[i].id;
+        idPower += date[i].id + "," + $("#"+id).val() + ";";
+    }
+    idPower = idPower.substring(0,idPower.length-1);
+    $("#idPower").val(idPower);
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/sureInspection",$('#inputForm').serialize(),function(data){
+        if(data.success){
+            refresh();
+            jp.confirm('带电项目在停电开关集合,是否通过?', function () {
+                refresh();
+                alert("!");
+                var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                parent.layer.close(dialogIndex);
+
+                addDatePlan();
+            })
+        }else{
+            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+            parent.layer.close(dialogIndex);
+            addDatePlan();
+        }
+    })
+    return false;
+}
+
+
+function addDatePlan() {
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/save",function(data){
+        if(data.success){
+            jp.success("安排计划成功");
+        }else{
+            jp.error("安排计划失败");
+        }
+    })
+}
+</script>

+ 33 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netActPowerList.jsp

@@ -0,0 +1,33 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="netActPowerList.js" %>
+</head>
+<script>
+
+</script>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<%--<div class="panel-heading">--%>
+		<%--<h3 class="panel-title">安排计划时间</h3>--%>
+	<%--</div>--%>
+	<div class="panel-body">
+	<!-- 工具栏 -->
+
+	<!-- 表格 -->
+		<form id="inputForm">
+			<input value="" name="ids" id="idPower" type="hidden">
+		</form>
+		<table id="projectTable"  style="table-layout:fixed"  data-toolbar="#toolbar"></table>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 354 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netWorkManageAct.js

@@ -0,0 +1,354 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script type="text/javascript">
+    $(document).ready(function() {
+        var projectId = $('#projectId').val();
+        //zTree初始化
+        $.getJSON("${ctx}/sg/managementCenter/projectPlanArrage/bootstrapNetWorkTreeTable?projectId="+projectId,function(data){
+            jstree(data);
+            dateTimeValue('1');
+        });
+        $('#selectId').click(function () {
+            var object = $('#jstree').treeview('getChecked');
+            if (object.length<1){
+                jp.error("请选择项目!")
+                return false;
+            }
+            var str = "";
+            for (var  i = 0; i < object.length; i++) {
+                str+=object[i].id+",";
+            }
+            var sureStr  = str.substring(0,str.length-1);
+            $("#parentIds").val(sureStr);
+            add(sureStr);
+        });
+        //搜索
+        var findSearchableNodes = function() {
+            return $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+        };
+        var search = function(e) {
+            var pattern = $.trim($('#input-search').val());
+            var options = {
+                ignoreCase: $('#chk-ignore-case').is(':checked'),
+                exactMatch: $('#chk-exact-match').is(':checked'),
+                revealResults: $('#chk-reveal-results').is(':checked')
+            };
+            $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+            var results = $('#jstree').treeview('search', [ pattern, options ]);
+        }
+        $('#btn-search').on('click', search);
+        $('#btn-clear-search').on('click', function (e) {
+            $('#jstree').treeview('clearSearch');
+            $('#input-search').val('');
+            $('#jstree').treeview('collapseAll', {
+                silent : false//设置初始化节点关闭
+            });
+        });
+        //搜索
+        var search1 = function(e) {
+            var pattern = $.trim($('#input-search1').val());
+            var options = {
+                ignoreCase: $('#chk-ignore-case').is(':checked'),
+                exactMatch: $('#chk-exact-match').is(':checked'),
+                revealResults: $('#chk-reveal-results').is(':checked')
+            };
+            $('#jstreeTime').treeview('search', [ $.trim($('#input-search1').val()), { ignoreCase: false, exactMatch: false } ]);
+            var results = $('#jstreeTime').treeview('search', [ pattern, options ]);
+        }
+        $('#btn-search1').on('click', search1);
+        $('#btn-clear-search1').on('click', function (e) {
+            $('#jstreeTime').treeview('clearSearch');
+            $('#input-search1').val('');
+            $('#jstreeTime').treeview('collapseAll', {
+                silent : false//设置初始化节点关闭
+            });
+        });
+        $('#selectId1').click(function () {
+            var object = $('#jstreeTime').treeview('getChecked');
+            if (object.length<1){
+                jp.error("请选择项目!");
+                return false;
+            }
+            var str = "";
+            for (var  i = 0; i < object.length; i++) {
+                str+=object[i].id+",";
+            }
+            var sureStr  = str.substring(0,str.length-1);
+            minus(sureStr);
+        })
+        //表格初始化
+        $('#table').bootstrapTable({
+            //请求方法
+            method: 'post',
+            //类型json
+            dataType: "json",
+            contentType: "application/x-www-form-urlencoded",
+            //是否显示行间隔色
+            //显示刷新按钮
+            showRefresh: true,
+            //是否显示分页(*)
+            // pagination: true,
+            //排序方式
+            sortOrder: "asc",
+            //初始化加载第一页,默认第一页
+            pageNumber:1,
+            //每页的记录行数(*)
+            pageSize: 5,
+            //可供选择的每页的行数(*)
+            pageList: [5,10, 25, 50, 100],
+            //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+            url: "${ctx}/sg/managementCenter/projectPlanArrage/initNetWorkArragePlanProject?projectId="+projectId,
+            //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+            //queryParamsType:'',
+            ////查询参数,每次调用是会带上这个参数,可自定义
+            queryParams : function(params) {
+                var searchParam = $("#searchForm").serializeJSON();
+                searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+                searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+                searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                return searchParam;
+            },
+            //分页方式:client客户端分页,server服务端分页(*)
+            sidePagination: "server",
+            contextMenuTrigger:"right",//pc端 按右键弹出菜单
+            contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+            contextMenu: '#context-menu',
+            onContextMenuItem: function(row, $el){
+                if($el.data("item") == "edit"){
+                    edit(row.id);
+                } else if($el.data("item") == "delete"){
+                    deleteAll(row.id);
+                }
+            },
+            onClickRow: function(row, $el){
+            },
+            onLoadSuccess:function(data) {
+                var split = data.rows;
+                var tb = document.getElementById('table');    // table 的 id
+                var rows = tb.rows;                           // 获取表格所有行
+                for (var i =0;i<split.length;i++){
+                    if (split[i].htmlStatus=="2"){
+                        // this.data.rows[i].setAttribute("style","color: red;");
+                        rows[i+1].style.backgroundColor = "#e6e6e6"
+                    }
+                }
+            },
+            onShowSearch: function () {
+                $("#search-collapse").slideToggle();
+            },
+            columns: [{
+                checkbox: true
+
+            }, {
+                field: 'projectNumber',
+                title: '项目定义号'
+
+            }, {
+                field: 'projectName',
+                title: '项目名称'
+            }, {
+                field: 'projectPowerRange',
+                title: '停电范围'
+            }, {
+                field: 'projectMonthDate',
+                title: '停电月份'
+            }, {
+                field: 'projectDate',
+                title: '停电日'
+            }, {
+                field: 'projectPowerOut',
+                title: '是否停电'
+            }, {
+                field: 'constructionUnit',
+                title: '施工单位项目经理'
+            }, {
+                field: 'backToText',
+                title: '备注'
+            }
+
+
+            ]
+
+        });
+
+    })
+
+if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+    $('#table').bootstrapTable("toggleView");
+}
+
+$('#table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+    'check-all.bs.table uncheck-all.bs.table', function () {
+    $('#remove').prop('disabled', ! $('#table').bootstrapTable('getSelections').length);
+    $('#edit').prop('disabled', $('#table').bootstrapTable('getSelections').length!=1);
+});
+//安排计划时间
+function add(ids){
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/unNetWorkplanned",{'ids':ids},function(data){
+        if(data.success){
+            refresh();
+            // jstreeTime(data.mapList);
+            jstree(data.mapListTree);
+            jp.success("安排计划成功")
+        }else{
+            jp.error(data.message);
+        }
+    })
+}
+function getIds() {
+    return $("#parentIds").val();
+}
+function jstree(date) {
+    $('#jstree').treeview({
+        data: date,
+        levels: 1,
+        highlightSelected:false,
+        showCheckbox:true,
+    });
+}
+function jstreeTime(date) {
+    $('#jstreeTime').treeview({
+        data: date,
+        levels: 1,
+        highlightSelected:false,
+        showCheckbox:true,
+        onNodeSelected: function(event, treeNode) {
+            var id = treeNode.id;
+            jp.openSaveDialog('编辑安排计划项目', "${ctx}/sg/managementCenter/constructionProject/formPlan?id=" + id, '800px', '500px');
+        },
+
+    });
+}
+function dateTimeValue(value) {
+    if (value != '1'){
+        $("#dateTimeId").val(value);
+    }else {
+        var date = new Date();
+        var str = date.toISOString();
+        $("#dateTimeId").val( str.substring(0,7));
+    }
+}
+
+function selected(data){
+    if(data.nodeId == undefined){
+        for (var i = 0; i < data.nodes.length; i++) {
+            $("#jstree").treeview('checkNode', [ data.nodes[i], {silent: true}]);
+        }
+    }else{
+        var parentNode = $('#jstree').treeview('getParent', data.nodeId);
+        $("#jstree").treeview('checkNode', [ parentNode, {silent: true}]);
+    }
+}
+function unSelected(node){
+    if(node.id == undefined){
+        for (var i = 0; i < node.nodes.length; i++) {
+            $("#jstree").treeview('uncheckNode', [ node.nodes[i], {silent: true}]);
+        }
+    }else{
+        var parentNode = $('#jstree').treeview('getParent', node.nodeId);
+        var num;
+        for (var i = 0; i < parentNode.nodes.length; i++) {
+            if(parentNode.nodes[i].state.checked == true){
+                num=1;
+            }
+        }
+        if(num!=1){
+            $("#jstree").treeview('uncheckNode', [ parentNode, {silent: true}]);
+        }
+        console.log(parentNode);
+    }
+}
+function refresh() {
+    $('#table').bootstrapTable('refresh');
+}
+function deleteAll(ids){
+    if(!ids){
+        ids =  getIdSelections();
+    }
+    jp.confirm('确认要退回项目吗?', function(){
+        $.get("${ctx}/sg/managementCenter/projectPlanArrage/deleteNetWork?ids=" +ids, function(data){
+            if(data.success){
+                jstree(data.mapListTree);
+                refresh();
+                jp.success(data.message);
+            }else{
+                jp.error(data.message);
+            }
+        })
+    })
+}
+function getIdSelections() {
+    return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+        return row.id
+    });
+}
+function newWorkSubmit() {
+    top.layer.open({
+        type: 2,
+        area: ['900px', '500px'],
+        title: '设计项目时间',
+        maxmin: true, //开启最大化最小化按钮
+        content: "${ctx}/sg/managementCenter/projectPlanArrage/planNetDate" ,
+        btn: ['确定', '关闭'],
+        yes: function(index, layero){
+            var iframeWin = layero.find('iframe')[0]; //得到弹出的窗口对象,执行窗口内iframe页的方法:iframeWin.method();
+            var flag = iframeWin.contentWindow.save();
+            if (flag){
+                jp.prompt("审核通过", function (message) {
+                    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/newWorkRunProInsId",
+                        {
+                            "flag": "yes",
+                            "comment": window.encodeURI(message)
+                        },
+                        function (data) {
+                            if(data.success){
+                                jp.success(data.msg);
+                                top.layer.close(index);
+                                jp.go("${ctx}/act/task/todo")
+                            }else {
+                                jp.error(data.msg);
+                            }
+                        })
+                });
+                // $.get("${ctx}/sg/managementCenter/projectPlanArrage/judgeAddTime", function(data){
+                //     if(data.success){
+                //         jp.success("安排计划成功");
+                //         withTheProcess();
+                //         top.layer.close(index);
+                //     }else{
+                //         // jp.confirm('您安排的计划时间与其他项目经理安排时间不一致,是否继续执行?', function(){
+                //         //     withTheProcess();
+                //         // })
+                //         jp.error(data.msg);
+                //         top.layer.close(index);
+                //     }
+                // })
+                // refresh();
+            }
+        },
+        btn2: function(index){
+
+            top.layer.close(index);
+        },
+        cancel:function (index) {
+            top.layer.close(index);
+        }
+    });
+    // jp.prompt("审核通过", function (message) {
+    //     jp.post("${ctx}/sg/managementCenter/projectPlanArrage/newWorkRunProInsId",
+    //         {
+    //             "flag": "yes",
+    //             "comment": window.encodeURI(message)
+    //         },
+    //         function (data) {
+    //             if(data.success){
+    //                 jp.success(data.msg);
+    //                 jp.go("${ctx}/act/task/todo")
+    //             }else {
+    //                 jp.error(data.msg);
+    //             }
+    //         })
+    // });
+}
+
+</script>

+ 49 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/netWorkManageAct.jsp

@@ -0,0 +1,49 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>配网项目经理审核页面</title>
+    <meta name="decorator" content="ani"/>
+    <%@ include file="/webpage/include/bootstraptable.jsp"%>
+    <link href="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.css" rel="stylesheet" type="text/css"/>
+    <script src="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.js" type="text/javascript"></script>
+    <%@include file="/webpage/include/treeview.jsp" %>
+    <%@include file="netWorkManageAct.js" %>
+</head>
+<body style="background-color:white">
+<div class="wrapper wrapper-content">
+    <input type="text" value="${projectId}" id="projectId" hidden="hidden"/>
+    <div class="row">
+        <%--未安排计划的树形--%>
+        <%--<div class="col-sm-3 col-md-3">--%>
+            <%--<div id="jstree" style="height:400px;overflow:auto;"></div>--%>
+        <%--</div>--%>
+        <%--<div  class="col-sm-9 col-md-9 animated fadeInRight">--%>
+            <!-- 工具栏 -->
+            <div id="toolbar">
+                <%--<button id="selectId" class="btn btn-warning">--%>
+                    <%--安排选择计划--%>
+                <%--</button>--%>
+                <button id="remove" class="btn btn-danger"  onclick="deleteAll()">
+                    <i class="glyphicon glyphicon-remove"></i> 删除
+                </button>
+            </div><!-- 工具栏结束 -->
+            <table id="table" data-toolbar="#toolbar">
+            </table>
+        <%--</div>--%>
+    </div>
+    <div class="row" style="margin-top: 20px">
+        <div class="col-sm-3"></div>
+        <div class="col-sm-6">
+            <div class="form-group text-center">
+                <input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="button" value="确认提交" onclick="newWorkSubmit()" />&nbsp;
+            </div>
+        </div>
+    </div>
+    <c:if test="${not empty act.id}">
+        <act:flowChart procInsId="${act.procInsId}"/>
+        <act:histoicFlow procInsId="${act.procInsId}" />
+    </c:if>
+</div>
+</body>
+</html>

+ 238 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/newDateList.js

@@ -0,0 +1,238 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+                height:'400',
+               // //显示检索按钮
+	           // showSearch: true,
+               // //显示刷新按钮
+               // showRefresh: true,
+               // //显示切换手机试图按钮
+               // showToggle: true,
+               // //显示 内容列下拉框
+    	       // showColumns: true,
+    	       // //显示到处按钮
+    	       // showExport: true,
+    	       // //显示切换分页按钮
+    	       // showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+               cache: false,
+               //是否显示分页(*)
+               // pagination: true,
+               //  //排序方式
+               // sortOrder: "asc",
+               // //初始化加载第一页,默认第一页
+               // pageNumber:1,
+               // //每页的记录行数(*)
+               // pageSize: 5000,
+               // //可供选择的每页的行数(*)
+               // pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/planNetDateTable",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',
+               ////查询参数,每次调用是会带上这个参数,可自定义
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该表单记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/sg/managementcenter/project/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#projectTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+
+                   	});
+
+                   }
+               },
+        onLoadSuccess:function(data) {
+            var split = data.rows;
+            for (var i = 0; i < split.length; i++) {
+                var arrangeTime = split[i].projectMonthDate;
+                var date = new Date(arrangeTime);
+                var date1 = new Date(arrangeTime);
+                date1.setMonth(date1.getMonth()+1);
+                $('#' + split[i].id).datetimepicker({
+                    format: "YYYY-MM-DD"
+                    // minDate:date,
+                    // maxDate:date1,
+                }).on('dp.change', function (i) {
+                    return function (ev) {
+                        var newDateTime = ev.date ? ev.date.format('YYYY-MM-DD') : "";
+                        var oldDateTime = ev.oldDate ? ev.oldDate.format('YYYY-MM-DD') : "";
+                        if (newDateTime != oldDateTime) {
+                            if ("" != oldDateTime) {
+                                jp.confirm('确认要更新时间吗?', function () {
+                                    jp.get("${ctx}/sg/managementCenter/projectPlanArrage/addtimeNet?id=" + split[i].id + "&projectDate=" + newDateTime, function (data) {
+                                        if (data.success) {
+                                            jp.success(data.msg);
+                                        } else {
+                                            jp.error(data.msg);
+                                        }
+                                    })
+                                })
+                            } else {
+                                jp.get("${ctx}/sg/managementCenter/projectPlanArrage/addtimeNet?id=" + split[i].id + "&projectDate=" + newDateTime, function (data) {
+                                    if (data.success) {
+                                        // jp.success(data.msg);
+                                    } else {
+                                        jp.error(data.msg);
+                                    }
+                                })
+                            }
+
+                        }
+                    }
+                }(i));
+            }
+        },
+               onClickRow: function(row, $el){
+               },
+
+            onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [
+                   {
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:120
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '计划月份',
+                       width:160
+                   }
+                   ,{
+                       field: 'constructionUnit',
+                       title: '施工单位项目经理',
+                       width:160
+                   }
+                   ,{
+                       field: 'projectDate',
+                       title: '安排计划时间',
+                       width:160,
+                       formatter: getTime
+                   }
+		     ]
+		
+		});
+
+    function getTime(value, row, index) {
+        return [
+            "<div class='input-group form_datetime' id="+row.id+"> <input type='text' id="+row.id+"input"+"   name='deliverySchedule' class='form-control required'  value="+row.projectDate+"/> <span class='input-group-addon'> <span class='glyphicon glyphicon-calendar'></span> </span></div>" ,
+        ].join('');
+
+    }
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    function getDate() {
+        return $.map($("#projectTable").bootstrapTable('getData'), function (row) {
+            return row
+        });
+    }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+    function save() {
+        var date = getDate();
+        var idPower = "";
+        var id = ""
+        var flag = false;
+        for (var i = 0; i < date.length; i++){
+            id = date[i].id;
+            idPower = $("#"+id+"input").val();
+            if (null == idPower||"" == idPower){
+                flag = true;
+            }
+        }
+        if (flag){
+            jp.error("请选择具体时间!")
+            return false;
+        } else {
+            return true;
+        }
+        return true;
+    }
+</script>

+ 34 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/newDateList.jsp

@@ -0,0 +1,34 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="newDateList.js" %>
+</head>
+<script>
+    // function save() {
+    //     var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+    //     parent.layer.close(dialogIndex);
+    // }
+</script>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<%--<div class="panel-heading">--%>
+		<%--<h3 class="panel-title">安排计划时间</h3>--%>
+	<%--</div>--%>
+	<div class="panel-body">
+	<!-- 工具栏 -->
+
+	<!-- 表格 -->
+	<table id="projectTable" data-toolbar="#toolbar"></table>
+
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 177 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/runListManageAct.js

@@ -0,0 +1,177 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+    var procInsId = $("#procInsId").val();
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: true,
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 5,
+               //可供选择的每页的行数(*)    
+               pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/runListArragePlanProject?procInsId="+procInsId,
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+               },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+                   checkbox: true
+               },
+			{
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerOut',
+                       title: '是否停电/带电',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '月份',
+                       width:110,
+                       sortName: 'beginBeginDate'
+
+                   }
+                   ,{
+                       field: 'projectDate',
+                       title: '具体时间',
+                       width:120,
+                       sortName: 'endDate'
+
+                   }
+		     ]
+		
+		});
+
+
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+  function runListSubmit() {
+      jp.prompt("审核通过", function (message) {
+          jp.post("${ctx}/sg/managementCenter/projectPlanArrage/runListRunProInsId",
+              {
+                  "taskId":"${projectActProclnsAss.act.taskId}",
+                  "taskName":"${projectActProclnsAss.act.taskName}",
+                  "taskDefKey":"${projectActProclnsAss.act.taskDefKey}",
+                  "procInsId":"${projectActProclnsAss.act.procInsId}",
+                  "procDefId":"${projectActProclnsAss.act.procDefId}",
+                  "flag":"yes",
+                  "comment":window.encodeURI(message)
+              },
+              function (data) {
+                  if(data.success){
+                      jp.success(data.msg);
+                      jp.go("${ctx}/act/task/todo")
+                  }else {
+                      jp.error(data.msg);
+                  }
+              })
+      });
+  }
+
+</script>

+ 74 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/act/runListManageAct.jsp

@@ -0,0 +1,74 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="runListManageAct.js" %>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">项目计划安排</h3>
+	</div>
+	<div class="panel-body">
+		<!-- 搜索 -->
+		<div id="search-collapse" class="collapse">
+			<div class="accordion-inner">
+				<form:form id="searchForm" modelAttribute="projectActProclnsAss" class="form form-horizontal well clearfix">
+					<input type="hidden" id="procInsId" value="${projectActProclnsAss.act.procInsId}"/>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目定义号:">项目定义号:</label>
+						<form:input path="projectNumber" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目名称:">项目名称:</label>
+						<form:input path="projectName" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div style="margin-top:26px">
+							<a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>
+							<a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>
+						</div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+
+	<%--<!-- 工具栏 -->--%>
+	<%--<div id="toolbar">--%>
+			<%--&lt;%&ndash;<shiro:hasPermission name="sg:managementCenter:constructionProject:add">&ndash;%&gt;--%>
+				<%--<button id="add" class="btn btn-primary" onclick="add()">--%>
+					<%--<i class="glyphicon glyphicon-plus"></i> 安排项目计划--%>
+				<%--</button>--%>
+			<%--&lt;%&ndash;</shiro:hasPermission>&ndash;%&gt;--%>
+			<%--&lt;%&ndash;<shiro:hasPermission name="sg:managementCenter:constructionProject:del">&ndash;%&gt;--%>
+				<%--<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">--%>
+					<%--<i class="glyphicon glyphicon-remove"></i> 删除--%>
+				<%--</button>--%>
+			<%--&lt;%&ndash;</shiro:hasPermission>&ndash;%&gt;--%>
+	 <%--</div>--%>
+
+	<!-- 表格 -->
+	<table id="projectTable"  style="table-layout:fixed"  data-toolbar="#toolbar"></table>
+		<div class="row">
+			<div class="col-sm-3"></div>
+			<div class="col-sm-6">
+				<div class="form-group text-center">
+					<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="button" value="确认提交" onclick="runListSubmit()" />&nbsp;
+				</div>
+			</div>
+		</div>
+		<c:if test="${not empty act.id}">
+			<act:flowChart procInsId="${act.procInsId}"/>
+			<act:histoicFlow procInsId="${act.procInsId}" />
+		</c:if>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 73 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectDateForm.jsp

@@ -0,0 +1,73 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>安排月份</title>
+	<meta name="decorator" content="ani"/>
+	<script type="text/javascript">
+
+		$(document).ready(function() {
+	        $('#arrangeTime').datetimepicker({
+                format: "YYYY-MM",
+                minDate:new Date()-1
+		    })
+		});
+		function save() {
+		    var projectName= $("#projectName").val();
+		    var projectNumber = $("#projectNumber").val();
+		    var arrangeTime = $("#arrange").val();
+		    // if (null==projectNumber ||"" == projectNumber){
+		    //     jp.error("请输入项目定义号!");
+		    //     return false;
+			// }
+			if (null == arrangeTime || "" == arrangeTime){
+			    jp.error("请选择时间!")
+				return false;
+            }
+            jp.getParent().addList(projectNumber,arrangeTime,projectName);
+            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+            parent.layer.close(dialogIndex);
+            <%--jp.get("${ctx}/sg/managementCenter/projectPlanArrage/isArranging?arrangeTime="+arrangeTime,function(data){--%>
+                <%--if (data.success){--%>
+                    <%--jp.getParent().addList(projectNumber,arrangeTime);--%>
+                    <%--var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引--%>
+                    <%--parent.layer.close(dialogIndex);--%>
+				<%--}else {--%>
+				    <%--jp.error(data.msg);--%>
+				<%--}--%>
+            <%--})--%>
+
+        }
+	</script>
+</head>
+<body class="bg-white">
+		<form:form id="inputForm" modelAttribute="projectPlanArrage" class="form-horizontal">
+		<form:hidden path="id"/>	
+		<table class="table table-bordered">
+			<tbody>
+			<tr>
+				<td class="width-15 active"><label class="">项目名称:</label></td>
+				<td class="width-35">
+					<form:input path="projectName" htmlEscape="false"  id="projectName"  class="form-control"/>
+				</td>
+				<td class="width-15 active"><label class="">项目定义号:</label></td>
+				<td class="width-35">
+					<form:input path="projectNumber" htmlEscape="false"  id="projectNumber"  class="form-control"/>
+				</td>
+			</tr>
+			<tr>
+				<td class="width-15 active"><label class="">选择月份:</label></td>
+				<td class="width-35">
+					<div class='input-group form_datetime' id='arrangeTime'>
+						<input type='text'  name="projectMonthDate" class="form-control required" id="arrange"  value="<fmt:formatDate value="${constructionProjectTemporary.arrangeTime}" pattern="yyyy-MM"/>"/>
+						<span class="input-group-addon">
+			                        <span class="glyphicon glyphicon-calendar"></span>
+			            </span>
+					</div>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</form:form>
+</body>
+</html>

+ 316 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageForm.js

@@ -0,0 +1,316 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script type="text/javascript">
+		$(document).ready(function() {
+		//zTree初始化
+			$.getJSON("${ctx}/sg/managementCenter/projectPlanArrage/bootstrapTreeTable",function(data){
+                jstree(data);
+                dateTimeValue('1');
+			});
+            $('#selectId').click(function () {
+                var object = $('#jstree').treeview('getChecked');
+                if (object.length<1){
+                    jp.error("请选择项目!")
+                    return false;
+                }
+                var str = "";
+                for (var  i = 0; i < object.length; i++) {
+                    str+=object[i].id+",";
+                }
+                var sureStr  = str.substring(0,str.length-1);
+                $("#parentIds").val(sureStr);
+                // alert(sureStr);
+                add(sureStr);
+            });
+            //搜索
+            var findSearchableNodes = function() {
+                return $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+            };
+            var search = function(e) {
+                var pattern = $.trim($('#input-search').val());
+                var options = {
+                    ignoreCase: $('#chk-ignore-case').is(':checked'),
+                    exactMatch: $('#chk-exact-match').is(':checked'),
+                    revealResults: $('#chk-reveal-results').is(':checked')
+                };
+                $('#jstree').treeview('search', [ $.trim($('#input-search').val()), { ignoreCase: false, exactMatch: false } ]);
+                var results = $('#jstree').treeview('search', [ pattern, options ]);
+            }
+            $('#btn-search').on('click', search);
+            $('#btn-clear-search').on('click', function (e) {
+                $('#jstree').treeview('clearSearch');
+                $('#input-search').val('');
+                $('#jstree').treeview('collapseAll', {
+                    silent : false//设置初始化节点关闭
+                });
+            });
+            $.getJSON("${ctx}/sg/managementCenter/constructionProject/treeData",function(data){
+                jstreeTime(data)
+            });
+            //搜索
+            var search1 = function(e) {
+                var pattern = $.trim($('#input-search1').val());
+                var options = {
+                    ignoreCase: $('#chk-ignore-case').is(':checked'),
+                    exactMatch: $('#chk-exact-match').is(':checked'),
+                    revealResults: $('#chk-reveal-results').is(':checked')
+                };
+                $('#jstreeTime').treeview('search', [ $.trim($('#input-search1').val()), { ignoreCase: false, exactMatch: false } ]);
+                var results = $('#jstreeTime').treeview('search', [ pattern, options ]);
+            }
+            $('#btn-search1').on('click', search1);
+            $('#btn-clear-search1').on('click', function (e) {
+                $('#jstreeTime').treeview('clearSearch');
+                $('#input-search1').val('');
+                $('#jstreeTime').treeview('collapseAll', {
+                    silent : false//设置初始化节点关闭
+                });
+            });
+            $('#selectId1').click(function () {
+                var object = $('#jstreeTime').treeview('getChecked');
+                if (object.length<1){
+                    jp.error("请选择项目!");
+                    return false;
+                }
+                var str = "";
+                for (var  i = 0; i < object.length; i++) {
+                    str+=object[i].id+",";
+                }
+                var sureStr  = str.substring(0,str.length-1);
+                minus(sureStr);
+            })
+            //表格初始化
+            $('#table').bootstrapTable({
+                //请求方法
+                method: 'post',
+                //类型json
+                dataType: "json",
+                contentType: "application/x-www-form-urlencoded",
+                //是否显示行间隔色
+                //显示刷新按钮
+                showRefresh: true,
+                //是否显示分页(*)
+                // pagination: true,
+                //排序方式
+                sortOrder: "asc",
+                //初始化加载第一页,默认第一页
+                pageNumber:1,
+                //每页的记录行数(*)
+                pageSize: 5,
+                //可供选择的每页的行数(*)
+                pageList: [5,10, 25, 50, 100],
+                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+                url: "${ctx}/sg/managementCenter/projectPlanArrage/initArragePlanProject",
+                //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+                //queryParamsType:'',
+                ////查询参数,每次调用是会带上这个参数,可自定义
+                queryParams : function(params) {
+                    var searchParam = $("#searchForm").serializeJSON();
+                    searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+                    searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+                    searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                    return searchParam;
+                },
+                //分页方式:client客户端分页,server服务端分页(*)
+                sidePagination: "server",
+                contextMenuTrigger:"right",//pc端 按右键弹出菜单
+                contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+                contextMenu: '#context-menu',
+                onContextMenuItem: function(row, $el){
+                    if($el.data("item") == "edit"){
+                        edit(row.id);
+                    } else if($el.data("item") == "delete"){
+                        deleteAll(row.id);
+                    }
+                },
+                onClickRow: function(row, $el){
+                },
+                onLoadSuccess:function(data) {
+                    var split = data.rows;
+                    var tb = document.getElementById('table');    // table 的 id
+                    var rows = tb.rows;                           // 获取表格所有行
+                    for (var i =0;i<split.length;i++){
+                        if (split[i].htmlStatus=="2"){
+                            // this.data.rows[i].setAttribute("style","color: red;");
+                            rows[i+1].style.backgroundColor = "#e6e6e6"
+                        }
+                    }
+                },
+                onShowSearch: function () {
+                    $("#search-collapse").slideToggle();
+                },
+                columns: [{
+                    checkbox: true
+
+                }, {
+                    field: 'projectNumber',
+                    title: '项目定义号'
+
+                }, {
+                    field: 'projectName',
+                    title: '项目名称'
+                }, {
+                    field: 'projectPowerRange',
+                    title: '停电范围'
+                },{
+                    field:'projectMonthDate',
+                    title:'停电月份'
+                }
+                ]
+
+            });
+
+        })
+
+        if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+            $('#table').bootstrapTable("toggleView");
+        }
+
+        $('#table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+            'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#table').bootstrapTable('getSelections').length);
+            $('#edit').prop('disabled', $('#table').bootstrapTable('getSelections').length!=1);
+        });
+    //安排计划时间
+    function add(ids){
+        jp.post("${ctx}/sg/managementCenter/projectPlanArrage/unplanned",{'ids':ids},function(data){
+            if(data.success){
+                refresh();
+                // jstreeTime(data.mapList);
+                jstree(data.mapListTree);
+                jp.success("安排计划成功")
+            }else{
+                jp.error(data.message);
+            }
+        })
+    }
+    function getIds() {
+        return $("#parentIds").val();
+    }
+    function jstree(date) {
+        $('#jstree').treeview({
+            data: date,
+            levels: 1,
+            highlightSelected:false,
+            showCheckbox:true,
+        });
+    }
+    function jstreeTime(date) {
+        $('#jstreeTime').treeview({
+            data: date,
+            levels: 1,
+            highlightSelected:false,
+            showCheckbox:true,
+            onNodeSelected: function(event, treeNode) {
+                var id = treeNode.id;
+                jp.openSaveDialog('编辑安排计划项目', "${ctx}/sg/managementCenter/constructionProject/formPlan?id=" + id, '800px', '500px');
+            },
+
+        });
+    }
+    function dateTimeValue(value) {
+        if (value != '1'){
+            $("#dateTimeId").val(value);
+        }else {
+            var date = new Date();
+            var str = date.toISOString();
+            $("#dateTimeId").val( str.substring(0,7));
+        }
+    }
+
+    function selected(data){
+        if(data.nodeId == undefined){
+            for (var i = 0; i < data.nodes.length; i++) {
+                $("#jstree").treeview('checkNode', [ data.nodes[i], {silent: true}]);
+            }
+        }else{
+            var parentNode = $('#jstree').treeview('getParent', data.nodeId);
+            $("#jstree").treeview('checkNode', [ parentNode, {silent: true}]);
+        }
+    }
+    function unSelected(node){
+        if(node.id == undefined){
+            for (var i = 0; i < node.nodes.length; i++) {
+                $("#jstree").treeview('uncheckNode', [ node.nodes[i], {silent: true}]);
+            }
+        }else{
+            var parentNode = $('#jstree').treeview('getParent', node.nodeId);
+            var num;
+            for (var i = 0; i < parentNode.nodes.length; i++) {
+                if(parentNode.nodes[i].state.checked == true){
+                    num=1;
+                }
+            }
+            if(num!=1){
+                $("#jstree").treeview('uncheckNode', [ parentNode, {silent: true}]);
+            }
+            console.log(parentNode);
+        }
+    }
+    function refresh() {
+        $('#table').bootstrapTable('refresh');
+    }
+    function deleteAll(ids){
+        if(!ids){
+            ids =  getIdSelections();
+        }
+        jp.confirm('确认要退回项目吗?', function(){
+            jp.loading();
+            $.get("${ctx}/sg/managementCenter/projectPlanArrage/deleteAll?ids=" +ids, function(data){
+                if(data.success){
+                    jstree(data.mapListTree);
+                    refresh();
+                    jp.success(data.message);
+                }else{
+                    jp.error(data.message);
+                }
+            })
+        })
+    }
+    function getIdSelections() {
+        return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+function OnTreeNodeChecked()
+{
+    var ele = event.srcElement;
+    alert(ele);
+    alert(ele.type);
+    if(ele.type=='checkbox')
+    {
+        var childrenDivID = ele.id.replace('CheckBox','Nodes');
+        var div = document.getElementById(childrenDivID);
+        if(div!=null)
+        {
+            var checkBoxs = div.getElementsByTagName('INPUT');
+            for(var i=0;i<checkBoxs.length;i++)
+            {
+                if(checkBoxs[i].type=='checkbox')
+                    checkBoxs[i].checked=ele.checked;
+            }
+        }
+        OnTreeNodeChildChecked(ele);
+    }
+}
+
+function OnTreeNodeChildChecked(ele)
+{
+    //递归处理
+    var parentDiv=ele.parentElement.parentElement.parentElement.parentElement.parentElement;
+    var parentChkBox=document.getElementById(parentDiv.id.replace('Nodes','CheckBox'));
+    if(parentChkBox!=null)
+    {
+        var ChildsChkAll=true;
+        var Boxs = parentDiv.getElementsByTagName('INPUT');
+        for(var i=0;i<Boxs.length;i++)
+        {
+            if(Boxs[i].type=='checkbox'&&Boxs[i].checked==false)
+            {
+                ChildsChkAll=false;
+            }
+        }
+        parentChkBox.checked=ChildsChkAll;
+        OnTreeNodeChildChecked(parentChkBox);
+    }
+}
+</script>

+ 50 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageForm.jsp

@@ -0,0 +1,50 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>用户管理</title>
+    <meta name="decorator" content="ani"/>
+    <%@ include file="/webpage/include/bootstraptable.jsp"%>
+    <link href="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.css" rel="stylesheet" type="text/css"/>
+    <script src="${ctxStatic}/plugin/bootstrapTree/bootstrap-treeview.js" type="text/javascript"></script>
+    <%@include file="/webpage/include/treeview.jsp" %>
+    <%@ include file="projectPlanArrageForm.js"%>
+    <script>
+        function save() {
+            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+            parent.layer.close(dialogIndex);
+            jp.getParent().addDate();
+        }
+    </script>
+</head>
+<style>
+</style>
+<body style="background: white">
+<div class="wrapper wrapper-content">
+    <div class="row">
+        <%--未安排计划的树形--%>
+        <div class="col-sm-3 col-md-2">
+            <%--<input type="text" id="input-search" class="">--%>
+            <%--<div style="height: 100px">--%>
+                <%--<input type="input" class="form-control" id="input-select-node" style="width: 100px" value="">--%>
+                <%--<button type="button" class="btn btn-success select-node" id="btn-select-node" >搜索</button>--%>
+            <%--</div>--%>
+            <div id="jstree" style="height:400px;overflow:auto;"></div>
+        </div>
+        <div  class="col-sm-9 col-md-10 animated fadeInRight">
+            <!-- 工具栏 -->
+            <div id="toolbar">
+                <button id="selectId" class="btn btn-warning">
+                     安排选择计划
+                </button>
+                <button id="remove" class="btn btn-danger"  onclick="deleteAll()">
+                    <i class="glyphicon glyphicon-remove"></i> 退回
+                </button>
+            </div><!-- 工具栏结束 -->
+            <table id="table" data-toolbar="#toolbar">
+            </table>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 267 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageList.js

@@ -0,0 +1,267 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)
+               pagination: true,
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               pageNumber:1,   
+               //每页的记录行数(*)   
+               pageSize: 5,
+               //可供选择的每页的行数(*)    
+               pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/data",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+               },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [{
+                   checkbox: true
+               },
+			{
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerOut',
+                       title: '是否停电/带电',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '月份',
+                       width:110,
+                       sortName: 'beginBeginDate'
+
+                   }
+                   ,{
+                       field: 'projectDate',
+                       title: '具体时间',
+                       width:120,
+                       sortName: 'endDate'
+
+                   }
+		     ]
+		
+		});
+
+    $("#btnImport").click(function(){
+        jp.open({
+            type: 2,
+            area: [500, 200],
+            auto: true,
+            title:"导入数据",
+            content: "${ctx}/tag/importExcel" ,
+            btn: ['确定', '关闭'],
+            btn1: function(index, layero){
+                var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                iframeWin.contentWindow.importExcel('${ctx}/sg/managementCenter/projectPlanArrage/import', function (data) {
+                    if(data.success){
+                        jp.success(data.msg);
+                        refresh();
+                    }else{
+                        jp.error(data.msg);
+                    }
+                    jp.close(index);
+                });//调用保存事件
+                return false;
+            },
+
+            btn2: function(index){
+                //  jp.close(index);
+            }
+        });
+    });
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD"
+		});
+		
+	});
+
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+  //跳转安排计划时间
+   function add(){
+	  jp.openSaveDialog('新增项目计划安排', "${ctx}/sg/managementCenter/projectPlanArrage/arrageProjectPlan",'800px', '500px');
+  }
+
+  function addDate() {
+      jp.post("${ctx}/sg/managementCenter/projectPlanArrage/save",function(data){
+          if(data.success){
+              jp.success("安排计划成功");
+          }else{
+              jp.error("安排计划失败");
+          }
+      })
+  }
+    function addPowerFlag() {
+        top.layer.open({
+            type: 2,
+            area: ['900px', '500px'],
+            title: '人工选择是否带电',
+            maxmin: true, //开启最大化最小化按钮
+            content: "${ctx}/sg/managementCenter/projectPlanArrage/arrangementElectrified",
+            btn: ['检验','确定','关闭'],
+            btn1:function(index,layero){
+                var iframeWin = layero.find('iframe')[0]; //得到弹出的窗口对象,执行窗口内iframe页的方法:iframeWin.method();
+                iframeWin.contentWindow.save();//调用保存事件,在 弹出页内,需要定义save方法。处理保存事件。s
+            },
+            btn2: function(index,layero){
+                var iframeWin = layero.find('iframe')[0]; //得到弹出的窗口对象,执行窗口内iframe页的方法:iframeWin.method();
+                var flag = iframeWin.contentWindow.saveSure();
+                jp.success("安排计划流程成功")
+                return false;
+            },
+            btn3: function(index){
+                top.layer.close(index);
+            },
+            cancel:function (index) {
+                top.layer.close(index);
+            }
+        });
+    }
+    function addList(projectNumber,arrangeTime,projectName) {
+        top.layer.open({
+            type: 2,
+            area: ['900px', '500px'],
+            title: '项目计划安排',
+            maxmin: true, //开启最大化最小化按钮
+            content: "${ctx}/sg/managementCenter/projectPlanArrage/isArranging?projectNumber="+projectNumber+"&projectMonthDate="+arrangeTime+"&projectName="+window.encodeURI(projectName),
+            btn: ['确定', '关闭'],
+            yes: function(index, layero){
+                top.layer.close(index);
+                addPowerFlag();
+            },
+            btn2: function(index){
+                top.layer.close(index);
+            },
+            cancel:function (index) {
+                top.layer.close(index);
+            }
+        });
+    }
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+	}
+	jp.openSaveDialog('编辑项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+  }
+
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+ }
+
+function deleteAll(){
+    jp.confirm('确认要删除计划表单记录吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/sg/managementCenter/constructionProject/deleteAll?ids=" + getIdSelections(), function(data){
+            if(data.success){
+                $('#projectTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+    })
+}
+
+</script>

+ 103 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanArrageList.jsp

@@ -0,0 +1,103 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="projectPlanArrageList.js" %>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">项目计划安排</h3>
+	</div>
+	<div class="panel-body">
+		<!-- 搜索 -->
+		<div id="search-collapse" class="collapse">
+			<div class="accordion-inner">
+				<form:form id="searchForm" modelAttribute="projectPlanArrage" class="form form-horizontal well clearfix">
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目定义号:">项目定义号:</label>
+						<form:input path="projectNumber" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<label class="label-item single-overflow pull-left" title="项目名称:">项目名称:</label>
+						<form:input path="projectName" htmlEscape="false" maxlength="100"  class=" form-control"/>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div class="form-group">
+							<label class="label-item single-overflow pull-left" title="月份:">&nbsp;月份:</label>
+							<div class="col-xs-12">
+								<div class='input-group date' id='beginBeginDate' >
+									<input type='text'  name="projectMonthDate" class="form-control"  />
+									<span class="input-group-addon">
+			                       <span class="glyphicon glyphicon-calendar"></span>
+			                   </span>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div class="form-group">
+							<label class="label-item single-overflow pull-left" title="具体时间:">&nbsp;具体时间:</label>
+							<div class="col-xs-12">
+								<div class='input-group date' id='endDate' >
+									<input type='text'  name="projectDate" class="form-control"  />
+									<span class="input-group-addon">
+			                       <span class="glyphicon glyphicon-calendar"></span>
+			                   </span>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-12 col-sm-6 col-md-4">
+						<div style="margin-top:26px">
+							<a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>
+							<a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>
+						</div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+	
+	<!-- 工具栏 -->
+	<div id="toolbar">
+			<%--<shiro:hasPermission name="sg:managementCenter:constructionProject:add">--%>
+				<button id="add" class="btn btn-primary" onclick="add()">
+					<i class="glyphicon glyphicon-plus"></i> 安排项目计划
+				</button>
+				<button id="btnImport" class="btn btn-info"><i class="fa fa-folder-open-o"></i> 导入</button>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="sg:managementCenter:constructionProject:del">--%>
+				<%--<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">--%>
+					<%--<i class="glyphicon glyphicon-remove"></i> 删除--%>
+				<%--</button>--%>
+
+			<%--</shiro:hasPermission>--%>
+	 </div>
+		
+	<!-- 表格 -->
+	<table id="projectTable"  style="table-layout:fixed"  data-toolbar="#toolbar"></table>
+
+    <!-- context menu -->
+    <ul id="context-menu" class="dropdown-menu">
+    	<%--<shiro:hasPermission name="sg:managementcenter:project:view">--%>
+        <%--<li data-item="view"><a>查看</a></li>--%>
+        <%--</shiro:hasPermission>--%>
+    	<%--<shiro:hasPermission name="sg:managementcenter:project:edit">--%>
+        <%--<li data-item="edit"><a>编辑</a></li>--%>
+        <%--&lt;%&ndash;</shiro:hasPermission>&ndash;%&gt;--%>
+        <%--&lt;%&ndash;<shiro:hasPermission name="sg:managementcenter:project:del">&ndash;%&gt;--%>
+        <%--<li data-item="delete"><a>删除</a></li>--%>
+        <%--&lt;%&ndash;</shiro:hasPermission>&ndash;%&gt;--%>
+        <%--<li data-item="action1"><a>取消</a></li>--%>
+    </ul>  
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 275 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPlanPowerList.js

@@ -0,0 +1,275 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#projectTable').bootstrapTable({
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               // //显示检索按钮
+	           // showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               // //显示切换手机试图按钮
+               // showToggle: true,
+               // //显示 内容列下拉框
+    	       // showColumns: true,
+    	       // //显示到处按钮
+    	       // showExport: true,
+    	       // //显示切换分页按钮
+    	       // showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+               cache: false,
+               //是否显示分页(*)
+               pagination: false,
+                //排序方式
+               sortOrder: "asc",
+               //初始化加载第一页,默认第一页
+                pageNumber:1,
+                // useCurrentPage:true,
+               //每页的记录行数(*)
+               // pageSize: 3000,
+               //可供选择的每页的行数(*)
+               // pageList: [5,10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+               url: "${ctx}/sg/managementCenter/projectPlanArrage/dataPower",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',
+               ////查询参数,每次调用是会带上这个参数,可自定义
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               onContextMenuItem: function(row, $el){
+                   if($el.data("item") == "edit"){
+                   		edit(row.id);
+                   }else if($el.data("item") == "view"){
+                       view(row.id);
+                   } else if($el.data("item") == "delete"){
+                        jp.confirm('确认要删除该表单记录吗?', function(){
+                       	jp.loading();
+                       	jp.get("${ctx}/sg/managementcenter/project/delete?id="+row.id, function(data){
+                   	  		if(data.success){
+                   	  			$('#projectTable').bootstrapTable('refresh');
+                   	  			jp.success(data.msg);
+                   	  		}else{
+                   	  			jp.error(data.msg);
+                   	  		}
+                   	  	})
+
+                   	});
+
+                   }
+               },
+                onLoadSuccess:function(data) {
+                    var split = data.rows;
+                    var tb = document.getElementById('projectTable');    // table 的 id
+                    var rows = tb.rows;                           // 获取表格所有行
+                    for (var i =0;i<split.length;i++){
+                        if (split[i].htmlStatus=="1"){
+                            // this.data.rows[i].setAttribute("style","color: red;");
+                            rows[i+1].style.color = "red"
+                        }
+                    }
+                },
+                onClickRow: function(row, $el){
+               },
+
+            onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [
+                   {
+		        field: 'projectNumber',
+		        title: '项目定义号',
+                width:160
+
+            }
+                   ,{
+                       field: 'projectName',
+                       title: '项目名称',
+                       width:120
+
+                   }
+                   ,{
+                       field: 'projectMonthDate',
+                       title: '停电月份',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerRange',
+                       title: '停电范围',
+                       width:110
+
+                   }
+                   ,{
+                       field: 'projectPowerOut',
+                       title: '是否带电',
+                       width:160,
+                       formatter: getTime
+                   }
+		     ]
+		});
+    function getTime(value, row, index) {
+        if(row.projectPowerOut == "带电") {
+            return [
+                "<select class='form-control' id=" + row.id + "><option value='停电'>停电</option><option value='带电'  selected>带电</option><select>",
+            ].join('');
+        }else {
+            return [
+                "<select class='form-control' id=" + row.id + "><option value='停电'  selected>停电</option><option value='带电' >带电</option><select>",
+            ].join('');
+        }
+    }
+    // onclick='submit("+row.id+")'
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#projectTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#projectTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#projectTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#projectTable').bootstrapTable('getSelections').length!=1);
+        });
+		    
+	  $("#search").click("click", function() {// 绑定查询按扭
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+	 
+	 $("#reset").click("click", function() {// 绑定查询按扭
+		  $("#searchForm  input").val("");
+		  $("#searchForm  select").val("");
+		  $("#searchForm  .select-item").html("");
+		  $('#projectTable').bootstrapTable('refresh');
+		});
+		
+		$('#beginBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endBeginDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		$('#endDate').datetimepicker({
+			 format: "YYYY-MM-DD HH:mm:ss"
+		});
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#projectTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+    function getDate() {
+        return $.map($("#projectTable").bootstrapTable('getData'), function (row) {
+            return row
+        });
+    }
+    // function f() {
+    //
+    // }
+    //刷新列表
+  function refresh(){
+  	$('#projectTable').bootstrapTable('refresh');
+  }
+  
+   function add(){
+	  jp.openSaveDialog('新增项目计划安排', "${ctx}/sg/managementCenter/constructionProject/form",'800px', '500px');
+  }
+  // function submit(data) {
+  //     alert("1");
+  //     alert(data);
+  // }
+
+  
+   function edit(id){//没有权限时,不显示确定按钮
+       if(id == undefined){
+	      id = getIdSelections();
+	}
+	jp.openSaveDialog('编辑项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+  }
+  
+ function view(id){//没有权限时,不显示确定按钮
+      if(id == undefined){
+             id = getIdSelections();
+      }
+        jp.openViewDialog('查看项目管理表单', "${ctx}/sg/managementcenter/project/form?id=" + id, '800px', '500px');
+ }
+
+function save() {
+    var date = getDate();
+    var idPower = "";
+    var id = "";
+    for (var i = 0; i < date.length; i++){
+        id = date[i].id;
+        idPower += date[i].id + "," + $("#"+id).val() + ";";
+    }
+    idPower = idPower.substring(0,idPower.length-1);
+    $("#idPower").val(idPower);
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/inspection",$('#inputForm').serialize(),function(data){
+        if(data.success){
+            refresh();
+            // $('#projectTable').bootstrapTable('refresh');
+            jp.success(data.msg);
+        }else{
+            jp.error(data.msg);
+        }
+    })
+}
+
+function saveSure(){
+    var date = getDate();
+    var idPower = "";
+    var id = "";
+    for (var i = 0; i < date.length; i++){
+        id = date[i].id;
+        idPower += date[i].id + "," + $("#"+id).val() + ";";
+    }
+    idPower = idPower.substring(0,idPower.length-1);
+    $("#idPower").val(idPower);
+    jp.loading();
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/sureInspection",$('#inputForm').serialize(),function(data){
+        if(data.success){
+            jp.confirm('带电项目在停电开关集合,是否通过?', function () {
+                var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+                parent.layer.close(dialogIndex);
+
+                addDatePlan();
+            })
+        }else{
+            var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
+            parent.layer.close(dialogIndex);
+            addDatePlan();
+        }
+    })
+    return false;
+}
+
+
+function addDatePlan() {
+    jp.post("${ctx}/sg/managementCenter/projectPlanArrage/save",function(data){
+        if(data.success){
+            jp.success("安排计划成功");
+        }else{
+            jp.error("安排计划失败");
+        }
+    })
+}
+</script>

+ 33 - 0
src/main/webapp/webpage/modules/sg/managementcenter/projectPlanArrage/projectPowerList.jsp

@@ -0,0 +1,33 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目计划安排</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="projectPlanPowerList.js" %>
+</head>
+<script>
+
+</script>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<%--<div class="panel-heading">--%>
+		<%--<h3 class="panel-title">安排计划时间</h3>--%>
+	<%--</div>--%>
+	<div class="panel-body">
+	<!-- 工具栏 -->
+
+	<!-- 表格 -->
+		<form id="inputForm">
+			<input value="" name="ids" id="idPower" type="hidden">
+		</form>
+		<table id="projectTable"  style="table-layout:fixed"  data-toolbar="#toolbar"></table>
+	</div>
+	</div>
+	</div>
+</body>
+</html>