Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/work/mPointEdit.jsp

528 lines
24 KiB
Plaintext
Raw Permalink Normal View History

2026-01-16 14:13:44 +08:00
<%@page import="com.sipai.entity.scada.MPoint" %>
<%@page import="com.sipai.tools.CommString" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%request.setAttribute("Active_False", CommString.Active_False); %>
<%request.setAttribute("Active_True", CommString.Active_True); %>
<%request.setAttribute("Flag_Enable", MPoint.Flag_Enable);%>
<%request.setAttribute("Flag_Disable", MPoint.Flag_Disable);%>
<%request.setAttribute("Flag_Sql", MPoint.Flag_Sql);%>
<%request.setAttribute("Flag_Modbus", MPoint.Flag_Modbus);%>
<%request.setAttribute("Flag_Type_KPI", MPoint.Flag_Type_KPI);%>
<%request.setAttribute("Flag_Type_Hand", MPoint.Flag_Type_Hand);%>
<%request.setAttribute("Flag_Type_Data", MPoint.Flag_Type_Data);%>
<%request.setAttribute("Flag_Type_Model", MPoint.Flag_Type_Model);%>
<%request.setAttribute("Flag_BizType_Hand", MPoint.Flag_BizType_Hand);%>
<%request.setAttribute("Flag_BizType_Auto", MPoint.Flag_BizType_Auto);%>
<style type="text/css">
.select2-container .select2-selection--single {
height: 34px;
line-height: 34px;
}
</style>
<script type="text/javascript">
var selectEM = function (companyId) {
$.post(ext.contextPath + '/work/mpoint/showEquipmentCardForMpointSelect.do', {
companyId: companyId,
equipmentId: $("#equipmentid").val()
}, function (data) {
$("#emSubDiv").html(data);
openModal('emSubModal');
});
};
//初始化转发类型选择框
var refreshBizTypeSelect = function () {
var select = $("#biztype1").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
if (${mPoint.biztype == Flag_BizType_Hand}) {
select.val('${mPoint.biztype}').trigger("change");
} else {
select.val('${Flag_BizType_Auto}').trigger("change");
}
select.on("change", function (e) {
if ($("#biztype1").val() == '${Flag_BizType_Auto}') {
$("#biztype2").val('');
} else {
$("#biztype2").val($("#biztype1").val());
}
});
};
//初始化测量点类型选择框
var refreshTypeSelect = function () {
var select = $("#sourceType").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.sourceType}').trigger("change");
};
//初始化启用状态选择框
var refreshActiveSelect = function () {
var select = $("#active").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.active}').trigger("change");
};
//初始化信号类型选择框
var refreshSignaltypeSelect = function () {
var select = $("#signaltype").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.signaltype}').trigger("change");
};
//初始化信号源选择框
var refreshValuetypeSelect = function () {
var select = $("#valuetype").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.valuetype}').trigger("change");
};
//初始化数值取反选择框
var refreshDirecttype = function () {
var select = $("#directtype").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.directtype}').trigger("change");
};
//初始化报警状态选择框
var refreshtriggeralarm = function () {
var select = $("#triggeralarm").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.triggeralarm}').trigger("change");
};
//初始化信号源选择框
var refreshvaluetype = function () {
var select = $("#valuetype").select2({
data: null,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
});
select.val('${mPoint.valuetype}').trigger("change");
};
function getProcessSection() {
//选择工艺段
$.post(ext.contextPath + "/user/processSection/getProcessSection4Select.do", {companyId: unitId}, function (data) {
var selelct_ = $("#processsectioncode").select2({
data: data,
cache: false,
placeholder: '请选择',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) {
return markup;
}, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo) {
return repo.text;
}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo) {
return repo.text;
} // 函数用于呈现当前的选择
}).val(data).trigger("change");
selelct_.val('${mPoint.processsectioncode }').trigger("change");
$(".select2-selection--single").css({'height': '30px', 'paddingTop': '4px'})
// selelct_.on("change", function (e) {
// $("#table").bootstrapTable('refresh');
// });
}, 'json');
}
function update() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/work/mpoint/update.do", $("#subForm").serialize(), function (data) {
if (data.code == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
} else if (data.code == 0) {
showAlert('d', '保存失败');
} else {
showAlert('d', data.msg);
}
}, 'json');
}
}
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
id: {
validators: {
notEmpty: {
message: 'ID不能为空'
}
}
},
mpointid: {
validators: {
notEmpty: {
message: '测量点id不能为空'
}
}
},
mpointcode: {
validators: {
notEmpty: {
message: '测量点code不能为空'
}
}
},
parmname: {
validators: {
notEmpty: {
message: '测量点名称不能为空'
}
}
},
active: {
validators: {
notEmpty: {
message: '启用状态不能为空'
}
}
}
}
});
$(function () {
refreshDirecttype();
refreshActiveSelect();
refreshSignaltypeSelect();
refreshTypeSelect();
refreshvaluetype();
refreshtriggeralarm();
// refreshValuetypeSelect();
// refreshBizTypeSelect();
getProcessSection();
})
/**
* 验证是否输入的为汉字
* @param str
* @returns {string}
*/
function check(str, name) {
var temp = ""
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 255) {
temp += str.charAt(i)
} else {
alert(name + '无法输入汉字');
return temp
}
}
return temp
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑测量点</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">*ID</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="id" name="id" value="${mPoint.id}" readonly
onkeyup="this.value=check(this.value,'ID')">
</div>
<label class="col-sm-2 control-label">*隶属</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="bizname" name="bizname" value="${company.name}"
readonly>
<input class="form-control" type="hidden" id="bizid" name="bizid" value="${mPoint.bizid}"
readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*mpointid</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="mpointid" name="mpointid"
value="${mPoint.mpointid}" autocomplete="off"
onkeyup="this.value=check(this.value,'mpointid')">
</div>
<label class="col-sm-2 control-label">*mpointcode</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="mpointcode" name="mpointcode"
value="${mPoint.mpointcode}" readonly autocomplete="off"
onkeyup="this.value=check(this.value,'mpointcode')">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*名称</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="parmname" name="parmname"
value="${mPoint.parmname}">
</div>
<label class="col-sm-2 control-label">简称</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="disname" name="disname"
value="${mPoint.disname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属工艺段</label>
<div class="col-sm-4">
<select class="form-control select2" id="processsectioncode" name="processsectioncode"
style="width: 270px;"></select>
</div>
<label class="col-sm-2 control-label">含义</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="valuemeaning" name="valuemeaning"
value="${mPoint.valuemeaning}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*信号类型</label>
<div class="col-sm-4">
<select id="signaltype" name="signaltype" class="form-control select2"
style="width: 270px;">
<option value="AI">AI</option>
<option value="DI">DI</option>
</select>
</div>
<label class="col-sm-2 control-label">信号标签</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="signaltag" name="signaltag"
value="${mPoint.signaltag}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">报警上限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="alarmmax" name="alarmmax"
value="<fmt:formatNumber type="number" value="${mPoint.alarmmax}" groupingUsed="false" maxFractionDigits="2"/>">
</div>
<label class="col-sm-2 control-label">报警下限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="alarmmin" name="alarmmin"
value="<fmt:formatNumber type="number" value="${mPoint.alarmmin}" groupingUsed="false" maxFractionDigits="2"/>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">报警超上限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="halarmmax" name="halarmmax"
value="<fmt:formatNumber type="number" value="${mPoint.halarmmax}" groupingUsed="false" maxFractionDigits="2"/>">
</div>
<label class="col-sm-2 control-label">报警超下限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="lalarmmin" name="lalarmmin"
value="<fmt:formatNumber type="number" value="${mPoint.lalarmmin}" groupingUsed="false" maxFractionDigits="2"/>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">量程上限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="forcemax" name="forcemax"
value="${mPoint.forcemax}">
</div>
<label class="col-sm-2 control-label">量程下限</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="forcemin" name="forcemin"
value="${mPoint.forcemin}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">精度</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="numtail" name="numtail"
value="${mPoint.numtail}" placeholder="1/2/3/4">
</div>
<label class="col-sm-2 control-label">倍率</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="rate" name="rate"
value="<fmt:formatNumber type="number" value="${mPoint.rate}" groupingUsed="false" maxFractionDigits="10"/>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">采集类型</label>
<div class="col-sm-4">
<select id="sourceType" name="sourceType" class="form-control select2"
style="width: 270px;">
<option value="${Flag_Type_Data}">自控采集点</option>
<option value="${Flag_Type_Hand}">手动录入点</option>
<option value="${Flag_Type_KPI}">KPI计算点</option>
<option value="${Flag_Type_Model}">模型预测点</option>
</select>
</div>
<label class="col-sm-2 control-label">信号源</label>
<div class="col-sm-4">
<select id="valuetype" name="valuetype" class="form-control select2" style="width: 270px;">
<option value="sql">数据库</option>
<option value="Modbus">Modbus</option>
<option value="OPC">OPC</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">单位</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="unit" name="unit" value="${mPoint.unit}">
</div>
<label class="col-sm-2 control-label">关联设备</label>
<div class="col-sm-4">
<input class="form-control" id="equipmentname" name="equipmentname"
value="${equipmentCard.equipmentname}" onclick="selectEM('${company.id}')"
placeholder="单击选择" readonly/>
<input class="form-control" id="equipmentid" name="equipmentid" type="hidden"
value="${mPoint.equipmentid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">报警状态</label>
<div class="col-sm-4">
<select id="triggeralarm" name="triggeralarm" class="form-control select2"
style="width: 270px;">
<option value="${Active_True}">开启</option>
<option value="${Active_False}">关闭</option>
</select>
</div>
<label class="col-sm-2 control-label">*启用状态</label>
<div class="col-sm-4">
<select id="active" name="active" class="form-control select2" style="width: 270px;">
<option value="${Flag_Enable}">启用</option>
<option value="${Flag_Disable}">禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">网关编号</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="biztype" name="biztype"
value="${mPoint.biztype}">
</div>
<label class="col-sm-2 control-label">数值取反</label>
<div class="col-sm-4">
<select id="directtype" name="directtype" class="form-control select2"
style="width: 270px;">
<option value="1">是</option>
<option value="0">否</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">点位解释</label>
<div class="col-sm-4">
<input class="form-control" type="text" id="explain" name="explain"
value="${mPointExpand.explain}">
<input type="hidden" id="expandId" name="expandId" value="${mPointExpand.id}" readonly>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="update()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>