Files
system-jibei/pqs9900/src/main/webapp/WEB-INF/views/business/device/versionAddUpdate.jsp
2024-04-01 09:20:31 +08:00

454 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<title>终端版本管理</title>
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="${ctx}/js/plugin/layui/css/layui.css">
<link rel="stylesheet" href="${ctx}/css/plugin/fontawesome/font-awesome.min.css">
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/datatables.bootstrap.css">
<link rel="stylesheet" href="${ctx}/css/basic.css">
<style>
.form-control {
height: 22px;
padding: 1px 5px;
}
.control-label{
height: 22px;
line-height: 22px;
}
.btn {
padding: 1px 6px;
font-size:12px;
}
.col-sm-3,.col-xs-3{
padding-right: 0px;
text-align: right;
}
</style>
</head>
<body class="container-fluid">
<form class="form-horizontal" role="form">
<div class="form-group mt15">
<label for="title" class="col-sm-3 col-xs-3 control-label">版本号:</label>
<div class="col-sm-9 col-xs-9">
<input type="text" id="title" placeholder="请输入程序版本号"
autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label for="edProtocol" class="col-sm-3 col-xs-3 control-label">协议版本:</label>
<div class="col-sm-9 col-xs-9">
<input type="text" id="edProtocol" name="edProtocol"
placeholder="请输入协议版本" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label for="edDate" class="col-sm-3 col-xs-3 control-label">版本日期:</label>
<div class="col-sm-9 col-xs-9">
<input type="text" class="form_datetime form-control"
id="edDate" autocomplete="off" placeholder="请选择日期">
</div>
</div>
<div class="form-group">
<label for="devType" class="col-sm-3 col-xs-3 control-label">装置系列:</label>
<div class="col-sm-9 col-xs-9">
<select id="devType" class="form-control"></select>
</div>
</div>
<div class="form-group">
<label for="edtype" class="col-sm-3 col-xs-3 control-label">版本类型:</label>
<div class="col-sm-9 col-xs-9">
<input type="text" id="edtype" placeholder="填写特殊类型(不填默认通用类型)"
autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label for="describe" class="col-sm-3 col-xs-3 control-label">描述:</label>
<div class="col-sm-9 col-xs-9">
<textarea id="describe" placeholder="请输入内容" class="form-control" rows="3" style="resize: none;"></textarea>
</div>
</div>
<div class="layui-upload" style="height: 50px;margin-top: 15px">
<button type="button" class="btn btn-primary" id="upload">上传升级文件</button>
<span style="color: red;margin-left: 10px">后缀为.bin的文件/无后缀文件</span>
<div class="layui-upload-list" style="margin: 0px 0;padding: 2px 5px">
<p id="demoText"></p>
</div>
</div>
<div class="form-group">
<label for="crc" class="col-sm-3 col-xs-3 control-label">CRC校验:</label>
<div class="col-sm-9 col-xs-9">
<input type="text" class="form-control"
id="crc" autocomplete="off" placeholder="请输入内容">
</div>
</div>
<footer class="navbar-fixed-bottom">
<div class="col-xs-12 col-sm-12 mt10" style="text-align: center">
<div class="form-group">
<button type="button" class="btn btn-primary" id="save">保存</button>
</div>
</div>
</footer>
</form>
<input type="hidden" id="username" value="${username}">
<script src="${ctx}/js/plugin/jquery/jquery.min.js"></script>
<script src="${ctx}/js/plugin/layui/layui.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></script>
<script src="${ctx}/jspJS/utils/loading.js"></script>
<script src="${ctx}/js/plugin/xss/xss.js"></script>
<script src="${ctx}/js/plugin/xss/aes.js"></script>
<script src="${ctx}/jspJS/sm2.js"></script>
<script src="${ctx}/jspJS/sm3.js"></script>
<script src="${ctx}/jspJS/confirmIndentity.js"></script>
<script src="${ctx}/jspJS/utils/common.js"></script>
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
<script>
var myFile =null;
var isUpFile = true;
var edIndex; //版本id
var indexi
var type = getQueryString('type')
var totype = ''; //新增修改接口
$(function () {
loadselect('装置系列','devType')
$('.form_datetime').datetimepicker({
minView: "month", //选择日期后,不会再跳转去选择时分秒
language: 'zh-CN',
format: 'yyyy-mm-dd',
startView:2,
bootcssVer:3,
todayHighlight:true,
maxView :2,
showClear:true,
autoclose:1,
initialDate:new Date(),
});
})
layui.use(['upload','layer'], function () {
var upload = layui.upload,
layer = layui.layer
if (type == 1) {
//新增
isUpFile = true;
totype = 'addVersion'
} else {
edIndex = getQueryString('edIndex')
totype = 'updateVersion'
if (edIndex == undefined || edIndex == '' || edIndex == null) {
layer.msg('获取失败', {icon: 2})
return
}
//修改
$.ajax({
type: 'get',
dataType: 'json',
url: '/pqs9900/version/getVersion',
data: {edIndex: edIndex},
beforeSend: function () {
indexi = ityzl_SHOW_LOAD_LAYER();
},
success: function (data) {
if (data.code == 200) {
let da= data.body
$('#title').val(da.edName)
$('#describe').val(da.edDescribe)
$('#edProtocol').val(da.edProtocol)
$('#edDate').val(da.edDate)
$('#devType').val(da.devType)
$('#edtype').val(da.type)
if (data.body.edFile != null && data.body.edFile != '') {
isUpFile = false
$('#demoText').html('<i class="glyphicon glyphicon-folder-open" style="font-size: 14px"></i>');
} else {
isUpFile = true
$('#demoText').empty()
}
} else {
}
ityzl_CLOSE_LOAD_LAYER(indexi);
},
error: function () {
}
})
}
var censz = /^[\w\u4E00-\u9FA5()/、_ ]+\.?[\w\u4E00-\u9FA5()/_]+$/;
$('#save').click(function () {
var t = $('#title').val()
var d = $('#describe').val()
var pp = $('#edProtocol').val()
var edate = $('#edDate').val()
var devType = $('#devType').val()
var edtype = $('#edtype').val()
var crc = $('#crc').val()
if(t==null || t==''){
layer.tips('版本号不可为空', '#title', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else if(!censz.test(t)){
layer.tips('非法字符串', '#title', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else {
let vv = valiteLength(t)
if(vv!=''){
layer.tips(vv, '#title', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
}
if(pp==null || pp==''){
layer.tips('协议版本不可为空', '#edProtocol', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else if(!(/^[a-zA-Z\d\.]+$/.test(pp))){
layer.tips('非法字符串', '#edProtocol', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else {
let vv = valiteLength(pp)
if(vv!=''){
layer.tips(vv, '#edProtocol', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
}
if(edate==null || edate==''){
layer.tips('版本日期不可为空', '#edDate', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else if(!(/^([0-9-]+)$/.test(edate))){
layer.tips('非法字符串', '#edDate', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
if(devType==null || devType==''){
layer.tips('装置系列不可为空', '#devType', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
t = filterXSS(t)
d = filterXSS(d)
pp =filterXSS(pp)
edate = filterXSS(edate)
edtype = filterXSS(edtype)
let formdatas = new FormData();
formdatas.append("edName", t);
formdatas.append("edProtocol",pp);
formdatas.append("edDate", edate);
formdatas.append("edDescribe", d);
formdatas.append("devType", devType);
formdatas.append("type", edtype);
let resetName = ''
var username = $("#username").val();
if (type == 2) {
//修改
resetName = '修改版本'
if(isUpFile && myFile==null){
layer.msg('请上传升级文件',{icon:2})
return ;
}
if(myFile!=null){
if(crc==null || crc==''){
layer.tips('crc校验字符不可为空', '#crc', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else {
let vv = valiteLength(crc)
if(vv!=''){
layer.tips(vv, '#crc', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
}
}
if(myFile!=null){
formdatas.append("crc", crc);
formdatas.append("file", myFile);
}
formdatas.append("edIndex", edIndex);
}else if(type == 1){
resetName = '新增版本'
if(myFile==null||myFile==''){
layer.msg('请上传文件',{icon:2})
return
}
if(crc==null || crc==''){
layer.tips('crc校验字符不可为空', '#crc', {
tips: [1, 'red'] //还可配置颜色
});
return;
}else{
let vv = valiteLength(crc)
if(vv!=''){
layer.tips(vv, '#crc', {
tips: [1, 'red'] //还可配置颜色
});
return;
}
}
formdatas.append("file", myFile);
formdatas.append("crc", crc);
}
passwordIndentityForEd(username, resetName, function () {
layer.msg('CRC文件校验正确',{icon:1,time:2000},function () {
$.ajax({
type: 'post',
url: '/pqs9900/version/' + totype + '/',
data: formdatas,
contentType: false,
processData: false,
beforeSend: function () {
indexi = ityzl_SHOW_LOAD_LAYER();
},
success: function (data) {
if (data.code == 200) {
layer.msg(data.message, {icon: 1}, function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.refreshs()
})
} else {
layer.msg(data.message, {icon: 2})
}
ityzl_CLOSE_LOAD_LAYER(indexi);
}
})
})
})
})
//执行实例
var uploadInst = upload.render({
elem: '#upload' //绑定元素
, accept: 'file' //允许上传的文件类型
, auto: false
, exts: ''
, number: 1
, choose: function (obj) {
//读取本地文件
obj.preview(function (index, file, result) {
myFile = file;
$('#demoText').html('<i class="glyphicon glyphicon-folder-open" style="font-size: 16px;color: #0c7cb5"></i>');
})
}
, before: function (obj) {
}
, done: function (res) {
//上传完毕回调
}
, error: function () {
//请求异常回调
}
});
/*form.verify({
clength: function (value) {
var i,sum;
sum=0;
for(i=0;i<value.length;i++){
if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=36))
sum=sum+1;
else
sum=sum+2;
}
if (sum > 36) {
return '最多只能36个字符或者18个中文字';
}
},
totype:function (value) {
if(!censz.test(value)){
return '格式错误'
}
}
});*/
});
function loadselect(dictypeName,div){
var part='#'+div;
$(part).find("option").remove();
$.ajax({
method : "post",
url : "/pqs9900/device/getselect",
data : {
dictypeName:dictypeName
},
async:false,
success : function(data) {
if(data == null){
var message = dictypeName + '信息加载失败';
layer.msg(message,{icon:1,time:1000});
}else{
var option0 = $("<option selected value=''>"
+ "全部" + "</option>");
$(part).append(option0);
$.each(data, function(i, item) {
var option = $("<option value='"
+ item.dicIndex + "'>"
+ item.dicName + "</option>");
$(part).append(option);
})
}
}
})
}
</script>
</body>
</html>