modal.html 9.42 KB
<div id="forecast_sample_modal">
<div class="row" style="margin: 15px 0;">
</div>
</div>

<script id="forecast_sample_tab_detail_temp" type="text/html">
<div class="col-md-3 col-sm-3 col-xs-3">
 <ul class="nav nav-tabs tabs-left">
{{each data as obj i}}
	<li >
      <a href="#tab_sample_{{i}}" data-toggle="tab" title="{{obj.t}}"> {{obj.t}}  </a>
    </li>
{{/each}}
<li ><a href="#tab_sample_add" data-toggle="tab" style="font-size: 12px;color: red;"> <i class="fa fa-plus"></i> 新增 </a></li>
 </ul>
</div>

<div class="col-md-9 col-sm-9 col-xs-9">
<div class="tab-content">
{{each data as obj i}}
	<div class="tab-pane" id="tab_sample_{{i}}">
		<form class="form-horizontal" role="form" style="padding: 35px 25px;" id="editSampleForm_{{i}}">
			<input type="hidden" name="id" value="{{obj.d.id}}"/>
			<input type="hidden" name="sStation" value="{{obj.d.sStation}}"/>
			<input type="hidden" name="eStation" value="{{obj.d.eStation}}"/>
			<input type="hidden" name="tag" value="{{obj.d.tag}}"/>

		    <div class="form-body">
		        <div class="form-group">
		            <label class="col-md-3 control-label">开始站:</label>
		            <div class="col-md-9">
		                <input type="text" class="form-control " value="{{obj.d.sName}}" readonly>
		            </div>
		        </div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">截止站:</label>
		            <div class="col-md-9">
		                        <input type="text" class="form-control" value="{{obj.d.eName}}" readonly>
		            </div>
		        </div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">时间段:</label>
		            <div class="col-md-4" style="padding-right: 0;">
		                 <input type="time" class="form-control" name="sDate" value="{{obj.d.sDate}}" required> 
		            </div>
					<div class="col-md-1" style="margin-top: 10px;font-size: 85%;color: gray;"></div>
					<div class="col-md-4" style="padding-left: 0;">
		                 <input type="time" class="form-control" name="eDate" value="{{obj.d.eDate}}" required>
		            </div>
		        </div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">用时:</label>
		            <div class="col-md-9">
		                    <input type="number" class="form-control" name="runTime" value="{{obj.d.runTime}}" required>
		            </div>
		        </div>
		    </div>
		<br>
		    <div class="form-actions">
		        <div class="row">
		            <div class="col-md-offset-4 col-md-8">
		                <button type="button" class="btn green confirm" data-form="#editSampleForm_{{i}}"><i class="fa fa-check"></i> 保存</button>&nbsp;&nbsp;
		                <button type="button" class="btn red remove" data-id="{{obj.d.id}}">删除</button>
		            </div>
		        </div>
		    </div>
		</form>
    </div>
{{/each}}

<div class="tab-pane" id="tab_sample_add">
	<form class="form-horizontal" role="form" style="padding: 35px 25px;" id="addSampleForm">
		<input type="hidden" name="sStation" value="{{base.sid}}"/>
		<input type="hidden" name="eStation" value="{{base.eid}}"/>
		   <div class="form-body">
		       <div class="form-group">
		           <label class="col-md-3 control-label">开始站:</label>
		           <div class="col-md-9">
		                <input type="text" class="form-control " value="{{base.sName}}" readonly>
		            </div>
		        </div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">截止站:</label>
		            <div class="col-md-9">
		                        <input type="text" class="form-control" value="{{base.eName}}" readonly>
		            </div>
		        </div>
				<div class="form-group">
            		<label class="col-md-3 control-label">时区:</label>
            		<div class="col-md-9">
						<select class="form-control" name="tag" style="width:100%;" multiple required>
							<option value="早高峰">早高峰</option>
							<option value="平峰">平峰</option>
							<option value="晚高峰">晚高峰</option>
						</select>
            		</div>
        		</div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">时间段:</label>
		            <div class="col-md-4" style="padding-right: 0;">
		                 <input type="time" class="form-control" name="sDate"  required> 
		            </div>
					<div class="col-md-1" style="margin-top: 10px;font-size: 85%;color: gray;"></div>
					<div class="col-md-4" style="padding-left: 0;">
		                 <input type="time" class="form-control" name="eDate"  required>
		            </div>
		        </div>
		        <div class="form-group">
		            <label class="col-md-3 control-label">用时:</label>
		            <div class="col-md-9">
		                    <input type="number" class="form-control" name="runTime"  required>
		            </div>
		        </div>
		    </div>
		<br>
		    <div class="form-actions">
		        <div class="row">
		            <div class="col-md-offset-5 col-md-7">
		                <button type="button" class="btn green confirm" data-form="#addSampleForm"><i class="fa fa-check"></i> 提交</button>&nbsp;&nbsp;
		            </div>
		        </div>
		    </div>
		</form>
 </div>
</div>
</div>
</script>

<script>
!function(){
	var _data,_opt,id, currentData, layero, drawObject;
	var tagRange = {'早高峰': {s: '06:31', e: '08:30'}, '平峰': {s: '08:31', e: '16:00'}, '晚高峰': {s: '16:01', e: '18:00'}};
	
	$('#forecast_sample_modal').on('init', function(e, rs){
		_data = rs._data;
		_opt = rs._opt;
		drawObject = rs.drawObject;
		layero = rs.layero;
		id = rs.id;
		
		var _prve = prve(id);
		if(!_prve){
			layer.closeAll();
			layer.msg('没有上一站,无法录入数据!');
			return;
		}
		var eid = id, sid = _prve.stationCode;
		var sampData = searchData(sid, eid);
		var baseData = {sid: sid, eid: eid, sName: toName(sid), eName: toName(eid)};
		console.log('baseData', baseData);
		var html = template('forecast_sample_tab_detail_temp', {data: sampData, base: baseData});
		$('#forecast_sample_modal .row').html(html);
		//默认选中tab
		defaultSelect(rs.tag);
		
		//标签select2
		$("select[name=tag]").select2({
			  maximumSelectionLength: 1,
			  tags: true
		})
		.on('change', function(){
			var t = $(this).val();
			if(tagRange[t]){
				$("input[name=sDate]").val(tagRange[t].s);
				$("input[name=eDate]").val(tagRange[t].e);
			}
		});
		
		toCenter(layero);
		
		//确定
		$('#forecast_sample_modal .confirm').on('click', function(){
			var f = $(this).data('form');
			if(customFormValidate(f)){
				var param = $(f).serializeJSON();
				param.lineCode = _opt.lineCode;
				param.updown = _opt.updown;
				
				layer.msg('操作中...', {icon: 16});
				$post('/sample', param, function(){
					layer.closeAll();
					layer.msg('保存成功!');
					drawObject.draw(_opt);
				});
			}
		});
		
		//删除
		$('#forecast_sample_modal .remove').on('click', function(){
			removeConfirm('确定删除这条数据?', '/sample/' + $(this).data('id'), function(){
				layer.closeAll();
				drawObject.draw(_opt);
			});
		});
	});
	
	
	function prve(that){
		for(var i = 0; i < _opt.rts.length; i ++){
			if(_opt.rts[i].stationCode == that){
				if(i == 0)
					return null;
				return _opt.rts[i - 1];


			}
		}
		return null;
	}
	
	function getById(id){
		var rts = _opt.rts;
		for(var i = 0;i < rts.length ; i ++){
			if(rts[i].stationCode == id)
				return rts[i];
		}
		
		return null;
	}
	
	function searchData(sid, eid){
		var rs = [];
		
		for(var tag in _data){
			$.each(_data[tag], function(){
				if(this.sStation == sid && this.eStation == eid)
					rs.push({t: tag, d: this});
			})
		}
		return rs;
	}
	
	function toCenter($e){
		var h = $(document.body).height();
		var eh = $e.height();
		if(eh < h){
			$e.css('top', (h - eh) /2);
		}
		else{
			$e.css('top', h - eh);
			layer.msg('页面高度不够了,但是并没有出现滚动条!');
		}
	}
	
	function toName(id){
		var rts = _opt.rts;
		for(var i = 0;i < rts.length ; i ++){
			if(rts[i].stationCode == id)
				return rts[i].stationName;
		}
		
		return null;
	}
	
	function defaultSelect(tag){
		var firstTab = $('ul.tabs-left li:eq(0) a');
		if(tag){
			var _tab = $('ul.tabs-left li a[title='+tag+']');
			if(_tab.length > 0)
				_tab.click();
			else
				firstTab.click();
		}
		else
			firstTab.click();
	}
	
	/**
	 * 自定义表单校验
	 */
	function customFormValidate(f){
		var rs = true;
		//所有可见的项
		var es = $('input,select', f);
		
		for(var i = 0, e; e = es[i++];){
			if($(e).attr('required') && ( $(e).val() == null || $(e).val() == '')){
				if($(e).hasClass('select2-hidden-accessible'))
					$(e).next().find('.select2-selection').addClass('custom-val-error');
				else
					$(e).addClass('custom-val-error');
				rs = false;
			}
			else{
				if($(e).hasClass('select2-hidden-accessible'))
					$(e).next().find('.select2-selection').removeClass('custom-val-error');
				else
					$(e).removeClass('custom-val-error');
			}
		}
		
		if(!rs){
			layer.alert('数据完整性校验失败,请检查输入项', {icon: 2, title: '操作失败',  shift: 5});    
		}
		return rs;
	}
}();
</script>