<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="js/bootstrap/css/bootstrap.css" /> <link rel="stylesheet" href="js/bootstrap-table/bootstrap-table.min.css" /> <link rel="stylesheet" href="js/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css" /> <link rel="stylesheet" href="js/bootstrap-select/css/bootstrap-select.min.css" /> <style type="text/css"> #top_container { position: relative; width: 100%; height: 60px; background-color: #6085FF; z-index: 1004; } #top_container>.ui-header { height: 60px; position: relative; } .ui-header .icon { margin: 10px; width: 40px; height: 40px; float: left; background-image: url("image/logo.png"); background-position: 50% 50%; background-repeat: no-repeat; } .ui-header .log-info { margin-top: 12px; font-size: 18px !important; line-height: 40px; float: left; color: #fff; } .operator-button { display: inline-block; width: 30px; } /*.level-2 {*/ /*margin-left: 100px;*/ /*}*/ /*.level-3 {*/ /*margin-left: 200px;*/ /*}*/ .delete-icons{ color: red; font-size: 22px; margin-top: 5px; } .execute-icons{ color: green; font-size: 22px; margin-top: 5px; } </style> </head> <body> <div id="top_container" style="height: 60px;"> <div class="ui-header"> <div class="icon"></div> <div class="log-info">测试使用</div> </div> </div> <div id="content"> <div class="container-fluid"> <div class="row"> <div id="main" class="col-md-10" style="margin:20px; padding:20px;border:1px solid #ccc;"> <div id="toolbar"> <div class="btn-group"> <button class="btn btn-default" id="toolbar_add"> <i class="glyphicon glyphicon-plus"></i>新增 </button> <!--<button class="btn btn-default" id="toolbar_dels"> <i class="glyphicon glyphicon-trash"></i>删除 </button>--> </div> </div> <table id="table0" class="table"></table> </div> </div> </div> </div> <div class="modal fade" id="row-view" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document" style="width:1200px;"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel-view">计划查看</h4> </div> <div class="modal-body"> <form class="form-horizontal" role="form" style="padding:0 50px 0 50px;"> <div class="form-group"> <label class="col-md-1 control-label">计划名称:</label> <div class="col-md-2"> <input class="form-control" name="name" type="text"> </div> <label class="col-md-1 control-label">开始日期:</label> <div class="col-md-2"> <input class="form-control" name="begindate" type="text"> </div> <label class="col-md-1 control-label">结束日期:</label> <div class="col-md-2"> <input class="form-control" name="enddate" type="text"> </div> </div> <div id="timeZone-view"></div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button> </div> </div> </div> </div> <div class="modal fade" id="row-edit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document" style="width:1200px;"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">计划新增/修改</h4> </div> <div class="modal-body"> <form class="form-horizontal" role="form" style="padding:0 50px 0 50px;"> <div class="form-group plan"> <input class="form-control" id="planID" type="text" style="display: none"> <label class="col-md-1 control-label">计划名称:</label> <div class="col-md-2"> <input class="form-control" id="name" type="text"> </div> <label class="col-md-1 control-label">开始日期:</label> <div class="col-md-3"> <input class="form-control datePicker" id="begindate" type="text"> </div> <label class="col-md-1 control-label">结束日期:</label> <div class="col-md-3"> <input class="form-control datePicker" id="enddate" type="text"> </div> </div> <div id="timeZone-edit"></div> <h5 class="page-header"></h5> <div class="form-group"> <button id="timeAdd" type="button" class="btn btn-default time-add level-2">新增时间段</button> </div> </form> </div> <div class="modal-footer"> <button type="button" id="btn_submit" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button> <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button> </div> </div> </div> </div> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="js/bootstrap-table/bootstrap-table.min.js"></script> <script type="text/javascript" src="js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script> <script type="text/javascript" src="js/bootstrap-datetimepicker/js/moment.js"></script> <script type="text/javascript" src="js/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script> <script type="text/javascript" src="js/bootstrap-datetimepicker/js/zh-cn.js"></script> <script type="text/javascript" src="js/bootstrap-select/js/bootstrap-select.js"></script> <script type="text/javascript" src="js/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script> <script type="text/javascript"> var sfs = []; var kks = []; $('#table0').bootstrapTable({ columns: [{ field: "name", title: '计划名称', valign: "middle", align: "center" }, { field: "begindate", title: '开始日期', valign: "middle", align: "center", }, { field: "enddate", title: '结束日期', valign: "middle", align: "center" }, { field: "operate", title: "操作", align: "center", valign: "middle", formatter: operateFormatter, edit: false }, ], url: 'szAlgSched', method:'get', idField: "id", pagination: true, sidePagination: 'client', // searchOnEnterKey: true, pageList: [5, 10, 20, 50], toolbar: "#toolbar", }); $(".datePicker").datetimepicker({ locale: moment.locale('zh-cn'), format: 'YYYY-MM-DD' }); $.ajax({ url: "szAlg", method:'get', success: function(data) { sfs = JSON.parse(data); // sfs = [{"vendorid":1,"vendorname":"hik","sf":[{"algorithmid":7,"name":"车辆分析"},{"algorithmid":10,"name":"人体车辆分析"},{"algorithmid":13,"name":"卡口车辆"},{"algorithmid":14,"name":"车辆分析"},{"algorithmid":3,"name":"人体车辆分析"},{"algorithmid":6,"name":"卡口车辆"}]}]; } }); function operateFormatter(value, row, index) { return [ "<a class=\"operator-button\" href='javascript:viewRow(" + index + ")' title=\"修改\">", "<i class='glyphicon glyphicon-search'></i>", "</a> ", "<a class=\"operator-button\" href='javascript:editRow(" + index + ")' title=\"修改\">", "<i class='glyphicon glyphicon-edit'></i>", "</a> ", "<a class=\"operator-button\" href='javascript:removeRow(" + index + ")' title=\"删除\">", "<i class='glyphicon glyphicon-remove'></i>", "</a> ", ].join(''); }; function viewRow(index) { var planid = $("#table0").bootstrapTable('getData')[index].id; $.ajax({ url: "szAlgSched/"+planid, success: function(data) { data = JSON.parse(data); $("#timeZone-view").html(''); $("#row-view input[name='name']").val(data.name); $("#row-view input[name='begindate']").val(data.begindate); $("#row-view input[name='enddate']").val(data.enddate); var html = []; $.each(data.timeZone, function(value, item, index) { html.push("<div style='border:2px solid #ccc; margin-top:20px; padding:40px 40px; '>"); html.push('<div class="form-group">'); html.push('<label class="col-md-2 control-label">开始时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" name="begintime" type="text" value=' + item.begintime + '>'); html.push('</div>'); html.push('<label class="col-md-2 control-label">结束时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" name="endtime" type="text" value=' + item.endtime + '>'); html.push('</div>'); html.push('<label class="col-md-1 control-label">卡口:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" name="crossingid" type="text" value=' + item.crossingid + '>'); html.push('</div>'); html.push('<div class="col-md-1">'); html.push('<a href="javascript:void(0)" title="立刻执行"><span class="glyphicon glyphicon-play execute-icons" name="executeImmediate" ></span></a>'); html.push('</div>'); html.push('<h5 class="page-header level-2"></h5>'); $.each(item.sf, function(value, item, index) { html.push('<div class="form-group">'); html.push('<label class="col-md-2 control-label">厂商:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" type="text" value=' + item.vendorname + '> '); html.push('</div>'); html.push('<label class="col-md-2 control-label">算法:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" type="text" value=' + item.name + '> '); html.push('</div>'); html.push('<label class="col-md-1 control-label">危险品:</label>'); html.push('<div class="col-md-2">'); var alarmName = ""; var alarms = item.alarm.split(","); $.each(alarms, function(value, item, index) { temp = (value == 1) ? "大货车" : "危险品车"; alarmName = alarmName + "," + temp; }); alarmName = alarmName.substring(2); html.push('<input class="form-control" type="text" value=' + alarmName + '>'); html.push('</div>'); html.push('</div>'); }); html.push('</div>'); html.push('</div>'); }); $("#timeZone-view").append(html.join('')); $("#row-view input").attr("readonly", "readonly"); } }); $("#row-view").modal().on("shown.bs.modal"); }; function editRow(index) { var planid = $("#table0").bootstrapTable('getData')[index].id; $.ajax({ url: "szAlgSched/"+planid, // data:{id:planid}, success: function(data) { data = JSON.parse(data); $("#timeZone-edit").html(''); $("#planID").val(planid); $("#name").val(data.name); $("#begindate").val(data.begindate); $("#enddate").val(data.enddate); var html = []; $.each(data.timeZone, function(value, item, index) { html.push("<div style='border:2px solid #ccc; margin-top:20px; padding:40px 40px; '>"); html.push('<div class="form-group timeZone">'); html.push('<label class="col-md-2 control-label">开始时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control datetimePicker" name="begintime" type="text" value=' + item.begintime + '>'); html.push('</div>'); html.push('<label class="col-md-2 control-label">结束时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control datetimePicker" name="endtime" type="text" value=' + item.endtime + '>'); html.push('</div>'); html.push('<label class="col-md-1 control-label">卡口:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" name="crossingid" type="text" value=' + item.crossingid + '>'); html.push('</div>'); html.push('<div class="col-md-1">'); html.push('<a href="javascript:void(0)" title="删除"><span class="glyphicon glyphicon-remove-circle delete-icons delete-timezone" ></span></a>'); html.push('</div>'); html.push('<h5 class="page-header level-2"></h5>'); $.each(item.sf, function(value, item, index) { html.push('<div class="form-group sf">'); html.push('<label class="col-md-2 control-label">厂商:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="form-control vendorSelect" name="vendorid">'); html.push('<option value="">请选择</option>'); $.each(sfs, function(value1, item1, index1) { if(item.vendorid == item1.vendorid){ html.push("<option value=" + item1.vendorid + " selected >" + item1.vendorname + "</option>"); }else{ html.push("<option value=" + item1.vendorid + ">" + item1.vendorname + "</option>"); } }); html.push('</select>'); html.push('</div>'); html.push('<label class="col-md-2 control-label">算法:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="form-control algidSelect" name="algid">'); $.each(sfs, function(value1, item1, index1) { if(item.vendorid == item1.vendorid){ $.each(item1.sf, function(value1, item1, index1) { if(item.vendorid == item1.vendorid){ html.push("<option value=" + item1.algorithmID + " selected >" + item1.name + "</option>"); }else{ html.push("<option value=" + item1.algorithmID + " selected >" + item1.name + "</option>"); } }); } }); html.push('</select>'); html.push('</div>'); html.push('<label class="col-md-1 control-label">危险品:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="selectpicker show-tick form-control" multiple data-live-search="false" name="alarm">'); if(item.alarm.indexOf("1") > -1){ html.push('<option value="1" selected>大货车</option>'); }else{ html.push('<option value="1">大货车</option>'); } if(item.alarm.indexOf("2") > -1){ html.push('<option value="2" selected>危险品车</option>'); }else{ html.push('<option value="2">危险品车</option>'); } html.push('</select>'); html.push('</div>'); html.push('<div class="col-md-1">'); html.push('<a href="javascript:void(0)" title="删除"><span class="glyphicon glyphicon-remove-circle delete-icons delete-sf" ></span></a>'); html.push('</div>'); html.push('</div>'); }); html.push('<div class="form-group">'); html.push('<button type="button" class="btn btn-default sf-add level-3">新增算法</button>'); html.push('</div>'); html.push('</div>'); html.push("</div>"); }); $("#timeZone-edit").append(html.join('')); csChangeListener(); $(".selectpicker").selectpicker(); delIconListener(); sfAddListener(); } }); timeAddListener(); $("#row-edit").modal().on("shown.bs.modal").on("hide.bs.modal", function() { $("#timeZone").html(''); }); }; function removeRow(index) { var planid = $("#table0").bootstrapTable('getData')[index].id; $.ajax({ url: "szAlgSched/"+planid, type: "post", data : {_method:"DELETE"}, success: function(data) { alert("删除成功"); $("#table0").bootstrapTable('refresh'); }, err: function(){ alert("删除失败"); } }); } $("#toolbar_add").click(function() { $("#timeZone-edit").html(''); $("#planID").val(-1); $("#row-edit").modal().on("shown.bs.modal"); timeAddListener(); $("#table0").bootstrapTable('refresh'); }); function timeAddListener() { $(".time-add").off().click(function() { var html = []; html.push("<div style='border:2px solid #ccc; margin-top:20px; padding:40px 40px; '>"); html.push('<div class="form-group timeZone">'); html.push('<label class="col-md-2 control-label">开始时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control datetimePicker" name="begintime" type="text" >'); html.push('</div>'); html.push('<label class="col-md-2 control-label">结束时间:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control datetimePicker" name="endtime" type="text" >'); html.push('</div>'); html.push('<label class="col-md-1 control-label">卡口:</label>'); html.push('<div class="col-md-2">'); html.push('<input class="form-control" name="crossingid" type="text" >'); html.push('</div>'); html.push('<div class="col-md-1">'); html.push('<a href="javascript:void(0)" title="删除"><span class="glyphicon glyphicon-remove-circle delete-icons delete-timezone" ></span></a>'); html.push('</div>'); html.push('<h5 class="page-header level-2"></h5>'); html.push('<div class="form-group">'); html.push('<button type="button" class="btn btn-default sf-add level-3">新增算法</button>'); html.push('</div>'); html.push('</div>') $("#timeZone-edit").append(html.join('')); delIconListener(); sfAddListener(); $(".datetimePicker").datetimepicker({ locale: moment.locale('zh-cn'), format: "HH:mm" }); }); } function sfAddListener() { $(".sf-add").off().click(function() { var html = []; html.push('<div class="form-group sf">'); html.push('<label class="col-md-2 control-label">厂商:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="form-control vendorSelect" name="vendorid">'); html.push('<option value="">请选择</option>'); $.each(sfs, function(value, item, index) { html.push("<option value=" + item.vendorid + ">" + item.vendorname + "</option>"); }); html.push('</select>'); html.push('</div>'); html.push('<label class="col-md-2 control-label">算法:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="form-control algidSelect" name="algid">'); html.push('<option value="">请选择</option>'); html.push('</select>'); html.push('</div>'); html.push('<label class="col-md-1 control-label">危险品:</label>'); html.push('<div class="col-md-2">'); html.push('<select class="selectpicker show-tick form-control" multiple data-live-search="false" name="alarm">'); html.push('<option value="1">大货车</option>'); html.push('<option value="2">危险品车</option>'); html.push('</select>'); html.push('</div>'); html.push('<div class="col-md-1">'); html.push('<a href="javascript:void(0)" title="删除"><span class="glyphicon glyphicon-remove-circle delete-icons delete-sf" ></span></a>'); html.push('</div>'); html.push('</div>'); $(this).parent().before(html.join('')) csChangeListener(); delIconListener(); $(".selectpicker").selectpicker(); }); } function csChangeListener(){ $(".vendorSelect").change(function() { var algidSelect = $(this).parent().siblings().find(".algidSelect"); var vendorid = $(this).val(); algidSelect.html(''); if(vendorid != "") { var algidList = []; $.each(sfs, function(value, item, index) { if(item.vendorid == vendorid) { algidList = item.sf; } }); var html1 = []; $.each(algidList, function(value, item, index) { html1.push("<option value=" + item.algorithmID + ">" + item.name + "</option>"); }); algidSelect.append(html1.join('')); } else { algidSelect.append('<option value="">请选择</option>'); } }); } function delIconListener(){ $(".delete-timezone").click(function(){ $(this).parent().parent().parent().parent().remove(); }); $(".delete-sf").click(function(){ $(this).parent().parent().parent().remove(); }); } $("#btn_submit").click(function(){ var data = {}; data["id"] = $("#planID").val(); data["name"] = $("#name").val(); data["begindate"] = $("#begindate").val(); data["enddate"] = $("#enddate").val(); var timeZone = []; var timeZoneTmp = {}; var sfs = []; $.each($("#timeZone-edit").find(".timeZone"), function(value,item,index) { $.each($(item).children("div").children("input"), function(value1,item1,index1) { timeZoneTmp[$(item1).attr("name")] = $(item1).val(); }); debugger $.each($(item).find(".sf"), function(value1,item1,index1) { var sf = {} sf["vendorid"] = $(item1).find("[name='vendorid']").val(); sf["algid"] = $(item1).find("[name='algid']").val(); sf["alarm"] = $(item1).find("[name='alarm']").val().join(','); sfs.push(sf); }); timeZoneTmp["sf"] = sfs; timeZone.push(timeZoneTmp); sfs = []; timeZoneTmp = {}; }); data["timeZone"] = timeZone; $.ajax({ url:"szAlgSched", data: JSON.stringify(data), type : 'post', contentType: 'application/json', success:function(){ alert("保存成功"); $("#table0").bootstrapTable('refresh'); }, err:function(){ alert("保存失败"); } }); }); </script> </body> </html>