addbc.html 11.2 KB
<!-- 添加班次参数 -->
<div class="modal fade" id="addBc_mobal" tabindex="-1" role="basic" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content" style="width: 900px;">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
				<h4 class="modal-title">添加班次参数</h4>
			</div>
			<div class="modal-body">
				<form class="form-horizontal" action="/" method="post" id="addBc" role="form">
					<!-- alert-danger 组件START -->
					<div class="alert alert-danger display-hide" id="addBcName">
						<button class="close" data-close="alert"></button>
							您的输入有误,请检查下面的输入项
					</div>
					<input id="qdzInput" class="hidden" />
					<input id="zdzInput" class="hidden" />

					<!-- 表单分组组件 form-group START -->
					<div class="form-group">
						<!-- 路牌  (* 必填项) START -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required">  * </span>所属路牌&nbsp;&nbsp;&nbsp;
							</label>
							<div class="col-md-6">
								<select type="text" name="lpName" class="form-control" id="lpNameSelect" >
								</select>
							</div>
						</div>
						<!--  路牌 (* 必填项) END -->

						<!-- 发车顺序号 (* 必填项) START -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 发车顺序号:
							</label>
							<div class="col-md-6">
								<input type="text" class="form-control" name="fcno" id="fcnoInput" placeholder="发车顺序号">
							</div>
						</div>
					</div>
					<!-- 表单分组组件 form-group END -->

					<!-- 表单分组组件 form-group START -->
					<!--<div class="form-group">
						&lt;!&ndash; 对应班次数 (* 必填项) START &ndash;&gt;
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 添加类型&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								<select name="addNum" class="form-control" id="addNumSelect">
									&lt;!&ndash;<option value="">&#45;&#45; 请选择添加类型 &#45;&#45;</option>&ndash;&gt;
									<option value="1">单个班次</option>
									<option value="2">一圈(上下行都有)</option>
								</select>
							</div>
						</div>
						&lt;!&ndash;  对应班次数 (* 必填项) END &ndash;&gt;

						&lt;!&ndash; 方向  (* 必填项) START &ndash;&gt;
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 方向&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								&lt;!&ndash; <input type="text" class="form-control" name="dic" id="dicInput" placeholder="方向"> &ndash;&gt;
								<select name="dir" class="form-control" id="dirSelect">
									<option value="">&#45;&#45; 请选择方向 &#45;&#45;</option>
									<option value="relationshipGraph-up">上行</option>
									<option value="relationshipGraph-down">下行</option>
								</select>
							</div>
						</div>
						&lt;!&ndash;  方向 (* 必填项) END &ndash;&gt;
					</div>-->
					<!-- 表单分组组件 form-group END -->

					<!-- 表单分组组件 form-group START -->
					<div class="form-group">
						<!--  发车时间 (* 必填项) START -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 发车时间&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								<input type="text" class="form-control" name="fcsj" id="fcsjInput" placeholder="发车时间">
							</div>
						</div>
						<!-- 发车时间  (* 必填项) END -->

						<!-- 班次类型  (* 必填项) START -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 班次类型&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								<select name="bcType" class="form-control" id="bcTypeSelect">
									<option value="">-- 请选择类型 --</option>
									<option value="bd">早例保</option>
									<option value="out">出场</option>
									<option value="normal">正常</option>
									<option value="cf">吃饭</option>
									<option value="in">进场</option>
									<option value="lc">晚例保</option>
									<option value="major">放大站</option>
									<option value="venting">直放</option>
									<option value="region">区间</option>
								</select>
							</div>
						</div>
						<!-- 班次类型  (* 必填项) END -->
					</div>
					<!-- 表单分组组件 form-group END -->

					<!-- 表单分组组件 form-group START -->
					<div class="form-group">
						<!-- 班次历时  (* 必填项) START -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 班次历时&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								<input type="text" class="form-control" name="bcsj" id="bcsjInput" placeholder="班次历时">
							</div>
						</div>
						<!--  班次历时 (* 必填项) END -->

						<!-- 是否分班 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
						<div class="col-md-6">
							<label class="control-label col-md-6">
								<span class="required"> * </span> 是否分班&nbsp;&nbsp;&nbsp;:
							</label>
							<div class="col-md-6">
								<select name="isfb" class="form-control" id="isfbSelect">
									<option value=0></option>
									<option value=1></option>
								</select>
							</div>
						</div>
						<!-- 是否分班 END -->
					</div>
					<!-- 表单分组组件 form-group END -->
			    </form>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn default" data-dismiss="modal">取消</button>
				<button type="button" class="btn btn-primary" id="addBcnext">确定</button>
			</div>
		</div>
	</div>
</div>
<script type="text/javascript">
/**
 * @description : (TODO) 触发被选元素的指定事件类型。
 * 
 * @params  [obj--图形对象;bf--函数集合对象;cardata--路牌对应的Y轴坐标数组]
 *
 * @status OK.
 */
$('#addBc_mobal').on('addBcMobal.show', function(e,lpData,lpDataCount,echartsDrawGTT){
	// 延迟200毫秒执行.
	setTimeout(function(){
		// 加载显示mobal
		$('#addBc_mobal').modal({show : true,backdrop: 'static', keyboard: false});
	},200);
    $('#fcsjInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});
	// 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)
	$('#addBc_mobal').on('show.bs.modal', function () {
		// 初始化路牌下拉选择框.
		var options = '<option value="">-- 请选择路牌 --</option>';
        for(var i=lpData.length-1, len=lpData.length; i>=0; i--) {
            if( lpData[i] != null) {
                options += '<option value="'+lpData[i]+'">'+lpData[i]+'</option>';
            }
        }
        $('#lpNameSelect').html(options);
	});
    var historyData = echartsDrawGTT.getHistoryData(),
        _keyIndex = echartsDrawGTT.get_keyIndex(),
        data = $.extend(true, [], data, historyData[_keyIndex]),
		Stations = {};

	// 获取表单元素
	var form = $('#addBc');
	// 错误提示元素
	var addBcName = $('#addBcName', form);
	// 下一步点击事件
	$('#addBcnext').on('click', function() {
		form.submit();// 表单提交
	});
	// 表单验证
	form.validate({
		errorElement : 'span',
		errorClass : 'help-block help-block-error',
		focusInvalid : false,
		rules : {
			'lpName' : {required : true},
			'fcno' : {required : true},
			// 'dir' : {required : true},
			'fcsj' : {required : true},
			'bcType' : {required : true},
			'bcsj' : {min : 1, digits : true, required : true},
			'isfb' : {required : true}
		},
		invalidHandler : function(event, validator) {
            addBcName.show();
			App.scrollTo(addBcName, -200);
		},
		highlight : function(element) {
			$(element).closest('.form-group').addClass('has-error');
		},
		unhighlight : function(element) {
			$(element).closest('.form-group').removeClass('has-error');
		},
		success : function(label) {
			label.closest('.form-group').removeClass('has-error');
		},
        submitHandler : function(f) {
            // 获取表单内容,并序列化.
            var params = form.serializeJSON();
            var bcObj, index, prevBcObj, nextBcObj = null, type=true;
            var fcsj = Date.parse(DateTimeTool.getDateTime(params.fcsj));
            var ARRIVALTIME = fcsj + parseInt(params.bcsj)*60000 ;

            if(params.bcsj > 0){
                for(var i=0; i<data.length-1; i++) {
                    if(data[i].value[0] == params.lpName) {
                        if(data[i].value[7] < params.fcno) {
                            prevBcObj = data[i];
                            bcObj = $.extend(true, {}, bcObj, data[i]);
                            index = i+1;
                        } else {
                            if(type) {
                                type = false;
                                nextBcObj = data[i];
                            }
                            data[i].value[7] += 1;
                        }
                    }
                }
                bcObj.value[1] = fcsj;
                bcObj.value[2] = ARRIVALTIME;
                bcObj.value[3] = params.bcsj*60000;
                // bcObj.value[4] = lpNo;
                bcObj.value[6] = params.bcType;
                bcObj.value[7] = parseInt(params.fcno);
                var dir = bcObj.value[8] == 1 ? 0:1;
                bcObj.value[8] = dir;
                bcObj.itemStyle.normal.color = dir==0?"#ff2949":"#518fe3";
                // 起终点互换
                var station = bcObj.value[13];
                bcObj.value[13] = bcObj.value[14];
                bcObj.value[14] = station;
                bcObj.value[16] = parseInt(params.isfb);
                data.splice(index, 0 , bcObj);

                if(nextBcObj != null && (nextBcObj.value[1] < ARRIVALTIME || prevBcObj.value[2] > fcsj)){
                    layer.confirm('添加的班次与前后班次有时间冲突,是否添加?', {
                        btn : [ '添加','取消' ], icon: 3, title:'提示'
                    }, function(){
                        echartsDrawGTT.init(data,false,true,false);
                        echartsDrawGTT.refreshDrag();
                        layer.msg('路牌:'+params.lpName+' fnco:'+params.fcno+' 班次添加成功,注意修改冲突班次!');
                    });
                } else {
                    echartsDrawGTT.init(data,false,true,false);
                    echartsDrawGTT.refreshDrag();
                    layer.msg('路牌:'+params.lpName+' fnco:'+params.fcno+' 班次添加成功!');
                }
            } else {
                layer.msg('班次时间为0分钟,为无效班次添加失败!');
			}
            $('#addBc_mobal').modal('hide');
        }
    });
});
</script>