初始化项目

This commit is contained in:
2024-04-01 09:20:31 +08:00
commit fefd704e6e
4694 changed files with 1869737 additions and 0 deletions

View File

@@ -0,0 +1,453 @@
<%@ 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>