<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> 
    <title>模型维护</title>
<style>
.table-null .table{
	margin-bottom: 0px;
}
.table-null .table > tbody > tr > td, .table-null .table > thead > tr > th{
	text-align: center;
 	width: 25%;
}
.table-null td:first-child{	
 	text-align: right;
 	width: 36%;
}
.table-null tr td:last-child .form-control,.table-null tr td:last-child table{
	width: 400px;
}
.file-box{ position:relative;}
.file{ position:absolute; top:0; height:30px; filter:alpha(opacity:0);opacity:0;width:470px;cursor: pointer; }

</style>
</head>
  
<body>
	<div class="container">
		<ol class="breadcrumb">
			<li><a href="${ctx}/index">首页</a></li>
			<li>分析建模</li>
			<li class="active">模型维护</li>
		</ol>
	</div>
	<div id="main-container main-tab-container">
		<div id="content" class="container">
			<div class="section">
				<div class="tab-content">

					<div class="tab-pane fade in active" id="home">
						<div class="row">
							<div class="col-xs-12">
								<div class="table-header">模型修改</div>
								<form action="#" class="form-horizontal" id="modelUpdateForm" method="post" enctype="multipart/form-data">
								<table id="modelMaintainTable" class="table-null">
									<tr><td>数据模型ID:</td><td id="dataModelId"></td></tr>
									<!-- <tr><td>数据模型名称:</td><td id="dataModelName"></td></tr>
									<tr><td>规则定义:</td><td id="ruleDefinition"></td></tr> -->
									<tr><td>数据模型名称(<font color="red">必填</font>):</td><td><input type="text"  class="form-control" name="dataModelName" id="dataModelName" style="display: inline;" /><span id="writeWarningInf" style="color:red;display: inline;padding-left:10px;"></span></td></tr>
									<tr><td>模型描述:</td><td><input type="text" class="form-control" name="modelDesc" id="modelDesc" style="display:inline;" /></td></tr>
									<tr><td>规则定义:</td><td><input type="text" class="form-control" name="ruleDefinition" id="ruleDefinition"/></td></tr>
									<tr><td>评判方法:</td><td><input type="text" class="form-control" name="evaluationMethod" id="evaluationMethod" style="display: inline;" /></td></tr>
									<tr><td>评判标准:</td><td><input type="text" class="form-control" name="evaluationStandard" id="evaluationStandard" style="display: inline;" /></td></tr>
									<!-- <tr><td>数据模型名称(<font color="red">必填</font>):</td><td><input type="text"  class="form-control" name="dataModelName" id="dataModelName" style="display: inline;" /><span id="writeWarningInf" style="color:red;display: inline;padding-left:10px;"></span></td></tr>
									<tr><td>规则定义:</td><td><input type="text" class="form-control" name="ruleDefinition" id="ruleDefinition"/></td></tr>
									 --><tr><td>模型执行脚本(<font color="red">必填</font>):</td><td>
									 	<!-- <div class="file-box">
 										<input type='text' id='modelExeScriptName' class="form-control" />
    									<input type="file" name="uploadFile" class="file" id="fileField" size="28" onchange="document.getElementById('modelExeScriptName').value=this.value" />
    									</div> -->
    									<div class="file-box">
 										<input type='text' id='modelExeScriptName' class="form-control" style="display: inline;"/>
 										<input type='button' class="btn btn-default" value='浏  览' style="width:70px"/> 
    									<input type="file" name="uploadFile" class="file" id="fileField" onchange="document.getElementById('modelExeScriptName').value=this.value" />
    									</div>
    								</td></tr>
									<tr><td>模型类别:</td>
										<td><select class="form-control" name="modelType" id="modelType" >
			    								<c:forEach var="modelType" items="${dataModelTypeList}">
			    									<option value="${modelType.dataModelTypeId}">${modelType.dataModelTypeName}</option>
			    								</c:forEach>
										    </select></td></tr>
									<tr><td>部署服务器:</td>
										<td><select class="form-control" name="deployedServer" id="deployedServer">
			    								<c:forEach var="deployedServers" items="${deployedServerList}">
			    									<option value="${deployedServers.serverId}">${deployedServers.serverName}</option>
			    								</c:forEach>
										    </select></td></tr>
									<tr><td>模型状态:</td>
										<td><select class="form-control" name="modelStatus" id="modelStatus">
			    									<option value="1">正常</option>
			    									<option value="0">失效</option>
			    							</select></td></tr>
			    					<tr><td>数据类型(<font color="red">必填</font>):</td>
										<td><select class="form-control" name="kpiTypeId" id="kpiTypeId">
													<option value="1">时长类</option>
													<option value="2">业务量类</option>
													<option value="3">百分比类</option>
											</select></td></tr>
									<tr><td>业务开始时间(<font color="red">必填</font>):</td><td><input id="businessStartTime" name="businessStartTime" class="form-control" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'businessEndTime\')}'})"> </td></tr>
									<tr><td>业务结束时间(<font color="red">必填</font>):</td><td><input type="text" class="form-control" id="businessEndTime" name="businessEndTime" onfocus="WdatePicker({minDate:'#F{$dp.$D(\'businessStartTime\')}'})" /></td></tr>
									<tr><td>参数:</td>
										<td>
                                            <table class="table table-hover table-striped" id="displayParam">
                                                <thead class='col-md-15'>
                                                    <tr class="row mx-0">
                                                        <th class="col-3 text-center">参数名</th>
                                                        <th class="col-3 text-center">参数编码</th>
                                                        <th class="col-3 text-center">参数值</th>
                                                        <th class="col-3 text-center">参数类型</th>
                                                        <th class="col-3 text-center"><a href="javascript:deleteAllTr()">删除所有参数</a></th>
                                                    </tr>
                                                </thead>
                                                <tbody id="addTr" class='col-md-15'>
                                                    <c:forEach var="modelParameterList" items="${modelParameterList}">
                                                        <tr class='row mx-0'>
                                                            <td class='col-3'>${modelParameterList.parameterCode}</td>
                                                            <td class='col-3'>${modelParameterList.parameterName}</td>
                                                            <td class='col-3'>${modelParameterList.parameterValue}</td>
                                                            <td class='col-3'>${modelParameterList.parameterDataType}</td>
                                                            <td class='col-3'>
                                                                <a href="javascript:;" title="参数ID:${modelParameterList.parameterId}" onclick="deleteRow(this,'${modelParameterList.parameterId}')">删除</a><a href="javascript:;" onclick="updateRow(this)">修改</a>
                                                            </td>
                                                        </tr>
                                                    </c:forEach>
                                                </tbody>
										    </table>
                                        </td></tr>
									<tr><td>参数数据类型:</td>
										<td><select class="form-control" id="paramDataType" name="paramDataType">
			    									<c:forEach var="dataTypes" items="${dataTypeList}">
			    										<option value="${dataTypes.dataTypeName}">${dataTypes.dataTypeName}</option>
			    									</c:forEach>
										    </select></td></tr>
									<tr><td>参数名:</td><td><input type="text"  class="form-control" name="paramName" id="paramName"/></td></tr>
									<tr><td>参数编码:</td><td><input type="text"  class="form-control" name="paramCode" id="paramCode"/></td></tr>
									<tr><td>参数值:</td><td id="addParamVal"><input type="text"  class="form-control" name="paramValue" id="paramValue" onkeyup="(this.v=function(){this.value=this.value.replace(/[^0-9]+/,'');}).call(this)" onblur="this.v();" /></td></tr>
									<tr><td></td><td>
										<button type="button" id="addParam" class="btn btn-primary">添加参数</button></td></tr>
									<tr><td></td>
										<td><button type="button" id="modelSubmit" class="btn btn-primary">确定</button>
										<button type="reset" class="btn btn-default" id="modelReset">清空</button>
										<button type="button" class="btn btn-warning" id="modelBack">返回</button>
										</td></tr>
	                            </table>
								</form>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
<script type="text/javascript">
	//加载页面时显示
	var getDataModelId = "${dataModel.dataModelId}";
	var getDataModelName = "${dataModel.dataModelName}";
	var getModelDesc = "${dataModel.modelDesc}";
	var getRuleDefinition = "${dataModel.ruleDefinition}";
	var getEvaluationMethod = "${dataModel.evaluationMethod}";
	var getEvaluationStandard = "${dataModel.evaluationStandard}";
	var getScript = "${dataModel.modelScriptName}";
	var getModelTypeId = "${dataModel.dataModelTypeId}";
	var getModelStatus = "${dataModel.modelStatus}";
	var getServerId = "${dataModel.serverId}";
	var getKpiTypeId = "${dataModel.kpiTypeId}";
	var getBusinessStartTime = "${dataModel.businessStartTime}";
	var getBusinessEndTime = "${dataModel.businessEndTime}";
	getBusinessStartTime = getBusinessStartTime.replace(".0","");
	getBusinessEndTime = getBusinessEndTime.replace(".0","");
	$("#dataModelId").text(getDataModelId);
	/* $("#dataModelName").text(getDataModelName);
	$("#ruleDefinition").text(getRuleDefinition); */
	$("#dataModelName").val(getDataModelName);
	$("#modelDesc").val(getModelDesc);
	$("#ruleDefinition").val(getRuleDefinition);
	$("#evaluationMethod").val(getEvaluationMethod);
	$("#evaluationStandard").val(getEvaluationStandard);
	$("#modelExeScriptName").val(getScript);
	$("#modelType").val(getModelTypeId);
	$("#deployedServer").val(getServerId);
	$("#modelStatus").val(getModelStatus);
	$("#kpiTypeId").val(getKpiTypeId);
	$("#businessStartTime").val(getBusinessStartTime);
	$("#businessEndTime").val(getBusinessEndTime)
	/* $("#businessStartTime").val(formatDate(fillBusinessStartTime ,"yyyy-MM-dd HH:mm:ss"));
	$("#businessEndTime").val(formatDate(new Date(getBusinessEndTime),"yyyy-MM-dd HH:mm:ss")) */;
</script>
<script type="text/javascript">
	//参数类型变化
	$("#paramDataType").change(function(){
		$("#addParamVal").empty();
		var paramDataType = $(this).find("option:selected").val();
		if(paramDataType=="字符"){
			var addDataValue = $("<input type='text' class='form-control name=paramValue' id='paramValue'/>");
			$("#addParamVal").append(addDataValue);
		}else if(paramDataType=="日期"){
			var addDataValue = $("<input type='text' class='form-control name=paramValue' id='paramValue' onFocus='WdatePicker({dateFmt:\" yyyy-MM-dd \"})'/>");
			$("#addParamVal").append(addDataValue);
		}else if(paramDataType=="时间"){
			var addDataValue = $("<input type='text' class='form-control name=paramValue' id='paramValue' onFocus='WdatePicker({})'/>");
			$("#addParamVal").append(addDataValue);
		}else{
			var addDataValue = $("<input type='text' class='form-control' name='paramValue' id='paramValue' onkeyup='(this.v=function(){this.value=this.value.replace(/[^0-9]+/,\"\");}).call(this)' onblur='this.v();'/>");
			$("#addParamVal").append(addDataValue);
		}
	});
	
	//模型名称是否重复判断
	var isDouble = true;
	$("#dataModelName").blur(function(){
		if(""!=$.trim($(this).val())){
			var modelName = $(this).val();
			$.ajax({
				type: "GET",
				contentType : "application/json",
				dataType: "text",
				url: "${ctx}/ModelManage/ModelParameterConfiguration/select_modelName/"+encodeURIComponent(modelName)+"/"+getDataModelId,
				beforeSend: function(data) { $("#modelSubmit").attr("disabled",true);},
				success:function(data){
					data = parseInt(data);
					if(0==data){
						$("#writeWarningInf").html("");
						isDouble = false;
						$("#modelSubmit").attr("disabled",false);
					}else{
						$("#writeWarningInf").html("<img src='${ctx}/static/images/x.png'/> 标题已存在");
						isDouble = true;
						$("#modelSubmit").attr("disabled",true);
					}
				}
			});
		}
	});
	//修改一条参数
	function updateRow(elementTag){
		$("#addParam").text("修改参数");
		$("#addTr").find("tr").removeClass("orange-tr");
		$(elementTag).parents("tr").eq(0).addClass("orange-tr");
		var paramName = $(elementTag).parents("tr").find("td").eq(0).html();
		var paramCode = $(elementTag).parents("tr").find("td").eq(1).html();
		var paramValue = $(elementTag).parents("tr").find("td").eq(2).html();
		var paramType = $(elementTag).parents("tr").find("td").eq(3).html();
		$("#paramDataType option[value='"+paramType+"']").attr("selected","selected");
		$("#paramDataType").change();
		$("#paramName").val(paramName);
		$("#paramCode").val(paramCode);
		$("#paramValue").val(paramValue);
	}
	
	
	//删除一条参数
	function deleteRow(elementTag, parameterId){
		if(parameterId==""){
			$(elementTag).parent().parent().remove();
		}else{
			$.ajax({
				type : "GET",
				contentType : "application/json",
				url:"${ctx}/ModelManage/ModelParameterConfiguration/deleteParameter?parameterId="+parameterId,
				dataType : "text",
				beforeSend: function(data){},
				success:function(){
					$(elementTag).parent().parent().remove();
				}
			});
			
		}
	}
	
	//删除所有参数
	function deleteAllTr(){
		$.ajax({
				type : "GET",
				contentType : "application/json",
				url:"${ctx}/ModelManage/ModelParameterConfiguration/deleteParameter?dataModelId="+getDataModelId,
				dataType : "text",
				beforeSend: function(data){},
				success:function(){
					$("#addTr").empty();
				}
			});
	};
	
	//修改/增加一条参数
	$("#addParam").click(function(){
		var paramDataType = $("#paramDataType").val();
		var paramName = $.trim($("#paramName").val());
		var paramValue = $("#paramValue").val();
        var paramCode = $.trim($("#paramCode").val());
		if(paramName==""){
			$.alert("参数名不能为空");
		}else if(paramCode == ""){
            $.alert("参数编码不能为空");
        }else if(paramValue == ""){
            $.alert("参数值不能为空");
        }else{
			if($("#addTr").find("tr.orange-tr").html()==null){
				var addRow = $("<tr class='row mx-0'><td class='col-3'>"+paramName+"</td><td class='col-3'>"+paramCode+"</td><td class='col-3'>"+paramValue+"</td><td class='col-3'>"+paramDataType+"</td><td class='col-3'><a href='javascript:;' title='' onclick='deleteRow(this,\"\")'>删除</a><a href='javascript:;' onclick='updateRow(this)'>修改</a></td></tr>");
				$("#addTr").append(addRow);
				$("#paramName").attr("value","");
				$("#paramCode").attr("value","");
				$("#paramValue").attr("value","");
			}else{
				 var findTr = $("#addTr").find("tr.orange-tr");
				 $(findTr).find("td").eq(0).html(paramName);
				 $(findTr).find("td").eq(1).html(paramCode);
				 $(findTr).find("td").eq(2).html(paramValue);
				 $(findTr).find("td").eq(3).html(paramDataType);
				 $("#addTr").find("tr").removeClass();
                $("#addTr").find("tr").addClass('row mx-0');
				 $("#addParam").text("添加参数");
				 $("#paramName").attr("value","");
				 $("#paramCode").attr("value","");
				 $("#paramValue").attr("value","");
			}
		}
	});
	
	//清空按钮
	$("#modelReset").click(function(){
		deleteAllTr();
	});
	
	//表单提交
	$("#modelSubmit").click(function(){
		if($.trim($("#dataModelName").val())==""){
			$.alert("模型名称不能为空");
		}else if($("#modelExeScriptName").val()==""){
			$.alert("模型执行脚本不能为空");
		}else if($("#businessStartTime").val()==""){
			$.alert("业务开始时间不能为空");
		}else if($("#businessEndTime").val()==""){
			$.alert("业务结束时间不能为空");
		}else{
			if($.trim($("#paramName").val())!=""){//如果 参数填写框 存在未填写的 数据
				$.dialog({
					title: "提醒",
					content: "有参数尚未添加,确定提交",
					ok: function(){
							var i = $("#addTr").find("tr").size();
							if(0==i){
								var form = $("#modelUpdateForm");
								form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");
								form.submit();
								form.attr("action","#");
							}else{
									$("#addTr").find("tr").each(function(){
                                        var paramName = $(this).find("td").eq(0).html();
                                        var paramCode = $(this).find("td").eq(1).html();
                                        var paramValue = $(this).find("td").eq(2).html();
                                        var paramType = $(this).find("td").eq(3).html();
                                        var paramId = $(this).find("td").find("a").attr("title");

                                        if(paramId!=""){//不是新增参数
                                                $.ajax({
                                                    type : "GET",
                                                    contentType : "application/json",
                                                    //url:"${ctx}/ModelManage/ModelParameterConfiguration/updateParameter?paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType)+"&paramId="+paramId,
                                                    url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?paramName="+encodeURIComponent(paramCode)+"&paramCode="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType)+"&paramId="+paramId,
                                                    dataType : "text",
                                                    async: false,
                                                    beforeSend: function(data){},
                                                    success:function(){
                                                        i--;
                                                        if(i==0){
                                                            var form = $("#modelUpdateForm");
                                                            form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");
                                                            form.submit();
                                                            form.attr("action","#");
                                                        }
                                                    }
                                                });
                                        }
                                        else{//是新增参数
                                            $.ajax({
                                                type : "GET",
                                                contentType : "application/json",
                                                //url:"${ctx}/ModelManage/ModelParameterConfiguration/updateParameter?dataModelId="+getDataModelId+"&paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType),
                                                url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?dataModelId="+getDataModelId+"&paramName="+encodeURIComponent(paramCode)+"&paramCode="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType),
                                                dataType : "text",
                                                beforeSend: function(data){ },
                                                success:function(){
                                                    i--;
                                                    if(i==0){
                                                        var form = $("#modelUpdateForm");
                                                        form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");

                                                        form.submit();
                                                        form.attr("action","#");
                                                    }
                                                }
                                            });
                                        }
							        });
						    }
					},
					okValue: "确定",
					cancel:function(){},
					cancelValue: "取消"
				});
			}else{//如果 参数填写框 不存在未填写的 数据
				var i = $("#addTr").find("tr").size();
				if(0==i){
					var form = $("#modelUpdateForm");
					form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");
					form.submit();
					form.attr("action","#");
				}else{
                    $("#addTr").find("tr").each(function(){
						var paramName = $(this).find("td").eq(0).html();
						var paramCode = $(this).find("td").eq(1).html();
						var paramValue = $(this).find("td").eq(2).html();
						var paramType = $(this).find("td").eq(3).html();
						var paramId = $(this).find("td").find("a").attr("title");
						if(paramId!=""){//不是新增参数
							$.ajax({
								type : "GET",
								contentType : "application/json",
								//url:"${ctx}/ModelManage/ModelParameterConfiguration/updateParameter?paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType)+"&paramId="+paramId,
								//url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType)+"&paramId="+paramId,
                                url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?paramName="+encodeURIComponent(paramCode)+"&paramCode="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType)+"&paramId="+paramId,
								dataType : "text",
								async: false,
								beforeSend: function(data){},
								success:function(){
									i--;
									if(i==0){
										var form = $("#modelUpdateForm");
										form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");
										form.submit();
										form.attr("action","#");
									}
								}
						    });
					    }else{//是新增参数
							$.ajax({
								type : "GET",
								contentType : "application/json",
								//url:"${ctx}/ModelManage/ModelParameterConfiguration/updateParameter?dataModelId="+getDataModelId+"&paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType),
								//url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?dataModelId="+getDataModelId+"&paramName="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType),
                                url:"${ctx}/ModelManage/ModelParameterConfiguration/UpdateParameter?dataModelId="+getDataModelId+"&paramName="+encodeURIComponent(paramCode)+"&paramCode="+encodeURIComponent(paramName)+"&paramValue="+encodeURIComponent(paramValue)+"&paramType="+encodeURIComponent(paramType),
								dataType : "text",
								beforeSend: function(data){ },
								success:function(){
									i--;
									if(i==0){
										var form = $("#modelUpdateForm");
										form.attr("action","${ctx}/ModelManage/ModelParameterConfiguration/updateDataModelForm");
										
										form.submit();
										form.attr("action","#");
									}
								}
							});
						}
					});
				}
			}
				
		}
	});
	
	$("#modelBack").click(function(){
		location.href="${ctx}/ModelManage/ModelResult";
	});
</script>
</body>
</html>