449 lines
22 KiB
HTML
449 lines
22 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<base href="/signup/">
|
|
<meta charset="utf-8">
|
|
<meta name="renderer" content="webkit">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
|
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
|
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
|
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
|
</head>
|
|
<body>
|
|
<div class="layui-fluid layui-anim layui-anim-fadein">
|
|
<div class="layui-row">
|
|
<div class="layui-col-md12">
|
|
<div class="layui-card">
|
|
<div class="layui-card-body">
|
|
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
|
|
<div class="layui-inline">
|
|
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
|
|
</div>
|
|
<div class="layui-inline">
|
|
<input type="text" id="startTime" class="layui-input search-item" placeholder="开始时间" readonly>
|
|
</div>
|
|
<div class="layui-inline">
|
|
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
|
|
</div>
|
|
<button type="button" id="search" class="layui-btn layui-btn-sm">
|
|
<i class="fa fa-lg fa-search"></i> 搜索
|
|
</button>
|
|
</div>
|
|
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
|
<!-- 表头按钮组 -->
|
|
<script type="text/html" id="headerToolBar">
|
|
<div class="layui-btn-group">
|
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="updateEvent">
|
|
<i class="fa fa-lg fa-edit"></i> 开班计划审核
|
|
</button>
|
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="checkMore">
|
|
<i class="fa fa-lg fa-edit"></i> 开班计划批量审核
|
|
</button>
|
|
</div>
|
|
</script>
|
|
|
|
<noscript id="tpl-user" >
|
|
<!-- style 尽量不要影响到页面其他元素,使用#userinfo范围限定 -->
|
|
<style type="text/css">
|
|
#userinfo .layui-form-label.layui-required:after {
|
|
content: "*";
|
|
color: red;
|
|
position: absolute;
|
|
top: 10px;
|
|
right: 5px;
|
|
}
|
|
</style>
|
|
<div class="layui-card" id="userinfo">
|
|
<div class="layui-card-header">开班计划审核退回原因</div>
|
|
<input type="hidden" id="examIds" value="{{d.ids}}">
|
|
<div class="layui-card-body">
|
|
<form class="layui-form" action="" lay-filter="info">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" style="width: 135px;">下次提交审核时间</label>
|
|
<div class="layui-input-block" style="margin-left: 165px;">
|
|
<input type="number" id="nextCommitTime" name="nextCommitTime" lay-verify="inputRule" class="layui-input" value="" placeholder="请输入下次提交审核时间(单位:天)" maxlength="255">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item layui-form-text">
|
|
<label class="layui-form-label">退回原因</label>
|
|
<div class="layui-input-block">
|
|
<textarea placeholder="请输入退回原因" name="reason" id="reason" lay-verify="contentRule" class="layui-textarea"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button type="button" class="layui-btn" id="subBtn" lay-submit lay-filter="submitForm">立即提交</button>
|
|
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<script>
|
|
layui.use(['index', 'form', 'laydate', 'laytpl'], function() {
|
|
var $ = layui.$;
|
|
var form = layui.form;
|
|
var laytpl = layui.laytpl;
|
|
var laydate = layui.laydate;
|
|
|
|
form.verify({
|
|
inputRule: function(value) {
|
|
if (null == value || '' == value || typeof (value) == "undefined") {
|
|
return '下次提交审核时间必填';
|
|
}
|
|
},
|
|
});
|
|
|
|
form.verify({
|
|
contentRule: function(value) {
|
|
if (null == value || '' == value || typeof (value) == "undefined") {
|
|
return '退回原因必须填写';
|
|
}
|
|
},
|
|
});
|
|
|
|
Date.prototype.format = function(fmt) {
|
|
var o = {
|
|
"M+" : this.getMonth()+1,
|
|
"d+" : this.getDate(),
|
|
"h+" : this.getHours(),
|
|
"m+" : this.getMinutes(),
|
|
"s+" : this.getSeconds(),
|
|
"q+" : Math.floor((this.getMonth()+3)/3),
|
|
"S" : this.getMilliseconds()
|
|
};
|
|
if(/(y+)/.test(fmt)) {
|
|
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
|
|
};
|
|
for(var k in o) {
|
|
if(new RegExp("("+ k +")").test(fmt)){
|
|
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
|
|
}
|
|
}
|
|
return fmt;
|
|
};
|
|
|
|
form.on('submit(submitForm)', function(formData) {
|
|
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
|
top.dialog.close(index);
|
|
var loadLayerIndex;
|
|
var ids = $('#examIds').val();
|
|
var nextTime = new Date();
|
|
nextTime.setDate(nextTime.getDate() + $('#nextCommitTime').val());
|
|
formData.field.checkStatus = '3';
|
|
formData.field.nextCommitTime = nextTime.format("yyyy-MM-dd hh:mm:ss");
|
|
top.restAjax.put(top.restAjax.path('api/examcheck/update-more/{ids}', [ids]), formData.field, null, function(code, data) {
|
|
if('200' == code) {
|
|
top.dialog.msg('退回成功');
|
|
window.location.reload();
|
|
}else {
|
|
top.dialog.msg('退回失败');
|
|
}
|
|
}, function(code, data) {
|
|
top.dialog.msg(data.msg);
|
|
}, function() {
|
|
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
|
}, function() {
|
|
top.dialog.close(loadLayerIndex);
|
|
});
|
|
});
|
|
return false;
|
|
});
|
|
form.render();
|
|
});
|
|
</script>
|
|
</div>
|
|
</div>
|
|
</noscript>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
|
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
|
<script>
|
|
layui.config({
|
|
base: 'assets/layuiadmin/'
|
|
}).extend({
|
|
index: 'lib/index'
|
|
}).use(['index', 'table', 'laydate', 'common'], function() {
|
|
var $ = layui.$;
|
|
var $win = $(window);
|
|
var table = layui.table;
|
|
var admin = layui.admin;
|
|
var layer = layui.layer;
|
|
var laytpl = layui.laytpl;
|
|
var laydate = layui.laydate;
|
|
var common = layui.common;
|
|
var resizeTimeout = null;
|
|
var tableUrl = 'api/examcheck/listpage';
|
|
|
|
// 初始化表格
|
|
function initTable() {
|
|
table.render({
|
|
elem: '#dataTable',
|
|
id: 'dataTable',
|
|
url: top.restAjax.path(tableUrl, []),
|
|
width: admin.screen() > 1 ? '100%' : '',
|
|
height: $win.height() - 90,
|
|
limit: 20,
|
|
limits: [20, 40, 60, 80, 100, 200],
|
|
toolbar: '#headerToolBar',
|
|
request: {
|
|
pageName: 'page',
|
|
limitName: 'rows'
|
|
},
|
|
cols: [
|
|
[
|
|
{type:'checkbox', fixed: 'left'},
|
|
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
|
{field: 'planName', width: 180, title: '计划名称', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'planType', width: 180, title: '计划类型', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
if('1' == rowData) {
|
|
rowData = '初训';
|
|
}else if('2' == rowData) {
|
|
rowData = '复训';
|
|
}else if('3' == rowData) {
|
|
rowData = '换证 ';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'orgId', width: 180, title: '考试机构', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'planStartTime', width: 180, title: '计划开始时间', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'planEndTime', width: 180, title: '计划结束时间', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'chargePerson', width: 180, title: '负责人', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'chargePersonTel', width: 180, title: '联系方式', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row.classPlanDTO[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'checkStatus', width: 180, title: '审核状态', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData === null || rowData === '') {
|
|
return '-';
|
|
}
|
|
if('0' == rowData) {
|
|
rowData = '<a class="layui-btn layui-btn-warm layui-btn-xs">待审核</a>';
|
|
}
|
|
if('2' == rowData) {
|
|
rowData = '<a class="layui-btn layui-btn-xs">审核通过</a>';
|
|
}
|
|
if('3' == rowData) {
|
|
rowData = '<a class="layui-btn layui-btn-danger layui-btn-xs">审核驳回</a>';
|
|
}
|
|
return rowData;
|
|
}
|
|
},
|
|
{field: 'reason', width: 180, title: '审核原因', align:'center',
|
|
templet: function(row) {
|
|
var rowData = row[this.field];
|
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|
return '-';
|
|
}
|
|
return rowData;
|
|
}
|
|
}
|
|
]
|
|
],
|
|
page: true,
|
|
parseData: function(data) {
|
|
return {
|
|
'code': 0,
|
|
'msg': '',
|
|
'count': data.total,
|
|
'data': data.rows
|
|
};
|
|
}
|
|
});
|
|
}
|
|
// 重载表格
|
|
function reloadTable(currentPage) {
|
|
table.reload('dataTable', {
|
|
url: top.restAjax.path(tableUrl, []),
|
|
where: {
|
|
keywords: $('#keywords').val(),
|
|
startTime: $('#startTime').val(),
|
|
endTime: $('#endTime').val()
|
|
},
|
|
page: {
|
|
curr: currentPage
|
|
},
|
|
height: $win.height() - 90,
|
|
});
|
|
}
|
|
// 初始化日期
|
|
function initDate() {
|
|
// 日期选择
|
|
laydate.render({
|
|
elem: '#startTime',
|
|
format: 'yyyy-MM-dd'
|
|
});
|
|
laydate.render({
|
|
elem: '#endTime',
|
|
format: 'yyyy-MM-dd'
|
|
});
|
|
}
|
|
|
|
// 开班计划批量审核
|
|
function checkMore(ids) {
|
|
top.dialog.msg('开班计划审核', {
|
|
time: 0,
|
|
btn: ['通过', '退回'],
|
|
shade: 0.3,
|
|
yes: function (index) {
|
|
top.dialog.close(index);
|
|
var layIndex;
|
|
top.restAjax.put(top.restAjax.path('api/examcheck/update-more/{ids}', [ids]), {checkStatus: 2}, null, function (code, data) {
|
|
top.dialog.msg('审核成功', {time: 1000});
|
|
reloadTable();
|
|
}, function (code, data) {
|
|
top.dialog.msg(data.msg);
|
|
}, function () {
|
|
layIndex = top.dialog.msg(top.dataMessage.updating, {icon: 16, time: 0, shade: 0.3});
|
|
}, function () {
|
|
top.dialog.close(layIndex);
|
|
});
|
|
},
|
|
btn2: function(index) {
|
|
top.dialog.close(index);
|
|
addComment(ids);
|
|
}
|
|
});
|
|
}
|
|
|
|
function addComment(ids){
|
|
//给模板 tpl-user 传递参数
|
|
var tpldata = {
|
|
"ids": ids
|
|
};
|
|
//获取id为tpl-user的noscript标签的html内容,不能使用innerHtml
|
|
laytpl(document.getElementById('tpl-user').innerText)
|
|
.render(tpldata,function(html){
|
|
//渲染完成后直接打开
|
|
layer.open({
|
|
type: 1,
|
|
shade: false,
|
|
area: ['80%', '50%'],
|
|
title: false, //不显示标题
|
|
content: html,
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
initTable();
|
|
initDate();
|
|
// 事件 - 页面变化
|
|
$win.on('resize', function() {
|
|
clearTimeout(resizeTimeout);
|
|
resizeTimeout = setTimeout(function() {
|
|
reloadTable();
|
|
}, 500);
|
|
});
|
|
// 事件 - 搜索
|
|
$(document).on('click', '#search', function() {
|
|
reloadTable(1);
|
|
});
|
|
// 事件 - 增删改
|
|
table.on('toolbar(dataTable)', function(obj) {
|
|
var layEvent = obj.event;
|
|
var checkStatus = table.checkStatus('dataTable');
|
|
var checkDatas = checkStatus.data;
|
|
if(layEvent === 'updateEvent') {
|
|
if(checkDatas.length === 0) {
|
|
top.dialog.msg(top.dataMessage.table.selectEdit);
|
|
} else if(checkDatas.length > 1) {
|
|
top.dialog.msg(top.dataMessage.table.selectOneEdit);
|
|
} else {
|
|
layer.open({
|
|
type: 2,
|
|
title: false,
|
|
closeBtn: 0,
|
|
area: ['100%', '100%'],
|
|
shadeClose: true,
|
|
anim: 2,
|
|
content: top.restAjax.path('route/examcheck/update.html?examCheckId={examCheckId}&classPlanId={classPlanId}', [checkDatas[0].examCheckId, checkDatas[0].planId]),
|
|
end: function() {
|
|
reloadTable();
|
|
}
|
|
});
|
|
}
|
|
} else if(layEvent === 'checkMore') {
|
|
if(checkDatas.length === 0) {
|
|
top.dialog.msg('请选择要审核的数据');
|
|
} else {
|
|
var ids = '';
|
|
for(var i = 0, item; item = checkDatas[i++];) {
|
|
debugger
|
|
if(item.checkStatus == 0) {
|
|
if(i > 1) {
|
|
ids += '_';
|
|
}
|
|
ids += item['examCheckId'];
|
|
}
|
|
}
|
|
if(ids.length <= 0) {
|
|
top.dialog.msg('当前选择数据已经审核完成,请重新选择');
|
|
reloadTable();
|
|
return false;
|
|
}
|
|
checkMore(ids);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |