添加考试申请图片和PDF的逻辑

This commit is contained in:
wans 2021-06-03 09:58:05 +08:00
parent 8792ac2f74
commit 460b7b4a42
11 changed files with 1428 additions and 35 deletions

View File

@ -160,8 +160,8 @@ public class ClassPlanController extends DefaultBaseController {
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PutMapping("update-exam-recommit/{classPlanId}")
public SuccessResult updateExamRecommit(@PathVariable("classPlanId") String classPlanId) {
classPlanService.updateExamRecommit(classPlanId);
public SuccessResult updateExamRecommit(@PathVariable("classPlanId") String classPlanId,@RequestBody ClassPlanVO classPlanVO) {
classPlanService.updateExamRecommit(classPlanId, classPlanVO);
return new SuccessResult();
}

View File

@ -149,4 +149,22 @@ public interface IClassPlanDao {
*/
Map<String, Object> countPlanType(Map<String, Object> params);
/**
* 保存考试申请图片和PDF
* @param params
*/
void saveExamFile(Map<String, Object> params);
/**
* 查询考试申请图片和PDF
* @param params
* @return
*/
Map<String, Object> getExamFile(Map<String, Object> params);
/**
* 更新考试申请图片和PDF
* @param params
*/
void updateExamFile(Map<String, Object> params);
}

View File

@ -81,6 +81,10 @@ public class ClassPlanDTO {
private String planImages;
@ApiModelProperty(name = "planPDF", value = "开班申请PDF")
private String planPDF;
@ApiModelProperty(name = "examImages", value = "考试申请图片")
private String examImages;
@ApiModelProperty(name = "examPDF", value = "考试申请PDF")
private String examPDF;
public String getPlanNumber() {
@ -309,4 +313,20 @@ public class ClassPlanDTO {
public void setPlanPDF(String planPDF) {
this.planPDF = planPDF;
}
public String getExamImages() {
return examImages == null ? "" : examImages;
}
public void setExamImages(String examImages) {
this.examImages = examImages;
}
public String getExamPDF() {
return examPDF == null ? "" : examPDF;
}
public void setExamPDF(String examPDF) {
this.examPDF = examPDF;
}
}

View File

@ -58,6 +58,10 @@ public class ClassPlanVO {
private String planImages;
@ApiModelProperty(name = "planPDF", value = "开班申请PDF")
private String planPDF;
@ApiModelProperty(name = "examImages", value = "考试申请图片")
private String examImages;
@ApiModelProperty(name = "examPDF", value = "考试申请PDF")
private String examPDF;
public String getPlanNumber() {
return planNumber == null ? "" : planNumber.trim();
@ -234,4 +238,21 @@ public class ClassPlanVO {
public void setPlanPDF(String planPDF) {
this.planPDF = planPDF;
}
public String getExamImages() {
return examImages == null ? "" : examImages;
}
public void setExamImages(String examImages) {
this.examImages = examImages;
}
public String getExamPDF() {
return examPDF == null ? "" : examPDF;
}
public void setExamPDF(String examPDF) {
this.examPDF = examPDF;
}
}

View File

@ -275,6 +275,7 @@ public interface IClassPlanService {
/**
* 重新提交考试申请
* @param classPlanId
* @param classPlanVO
*/
void updateExamRecommit(String classPlanId);
void updateExamRecommit(String classPlanId, ClassPlanVO classPlanVO);
}

View File

@ -421,6 +421,24 @@ public class ClassPlanServiceImpl extends DefaultBaseService implements IClassPl
// 查询当前计划下所有课程和讲师绑定信息
List<Map<String, Object>> classPlanLessons = classPlanDao.listClassPlanLessons(classPlanId);
dto.setClassPlanLessons(classPlanLessons);
// 查询考试申请图片及PDF
Map<String, Object> examFile = classPlanDao.getExamFile(params);
if(examFile != null && examFile.size() > 0){
dto.setExamImages(examFile.get("examImages").toString());
dto.setExamPDF(examFile.get("examPDF").toString());
}
//查询考试申请状态
params.clear();
params.put("examId",classPlanId);
ExamApplyDTO examApplyDTO = examApplyService.get(params);
if(null == examApplyDTO){
// 未提交考试申请
dto.setExamType("");
} else {
// 0待审核 1审核通过 2退回
dto.setExamType(examApplyDTO.getCheckStatus() + "");
dto.setExamReason(examApplyDTO.getReason());
}
return dto;
}
@ -598,13 +616,22 @@ public class ClassPlanServiceImpl extends DefaultBaseService implements IClassPl
examApplyVO.setOrgId(classPlanDTO.getOrgId());
examApplyVO.setPlanName(classPlanDTO.getPlanName());
examApplyService.save(examApplyVO);
Map<String, Object> params = new HashMap<>(8);
params.put("classPlanId",classPlanId);
params.put("examImages",classPlanVO.getExamImages());
params.put("examPDF",classPlanVO.getExamPDF());
classPlanDao.saveExamFile(params);
}
@Override
public void updateExamRecommit(String classPlanId) {
public void updateExamRecommit(String classPlanId, ClassPlanVO classPlanVO) {
ExamApplyVO examApplyVO = new ExamApplyVO();
examApplyVO.setCheckStatus(0);
examApplyService.updateStatus(classPlanId,examApplyVO);
// 更新考试申请图片和PDF信息
Map<String, Object> params = HashMapUtil.beanToMap(classPlanVO);
params.put("classPlanId", classPlanId);
classPlanDao.updateExamFile(params);
}
@Override

View File

@ -478,4 +478,31 @@
class_plan_id = #{classPlanId}
</update>
<insert id="saveExamFile" parameterType="map">
INSERT INTO e_class_plan_exam_file
(class_plan_id, exam_images, exam_pdf)
VALUES
(#{classPlanId}, #{examImages}, #{examPDF})
</insert>
<select id="getExamFile" parameterType="map" resultType="map">
SELECT
class_plan_id classPlanId,
exam_images examImages,
exam_pdf examPDF
FROM
e_class_plan_exam_file
WHERE
class_plan_id = #{classPlanId}
limit 1
</select>
<update id="updateExamFile" parameterType="map">
UPDATE e_class_plan_exam_file SET
exam_images = #{examImages},
exam_pdf = #{examPDF}
WHERE
class_plan_id = #{classPlanId}
</update>
</mapper>

View File

@ -137,7 +137,7 @@
return dom;
}
if(row['reportType'] === '2' && row['examType'] === '0'){
dom += '<a type="button" class="layui-btn layui-btn-info layui-btn-xs" lay-event="showEvent">查看详情</a>';
dom += '<a type="button" class="layui-btn layui-btn-warm layui-btn-xs" lay-event="showExamCommitEvent">考试申请信息</a>';
return dom;
}
if(row['reportType'] === '2' && row['examType'] === '1'){
@ -145,7 +145,6 @@
return dom;
}
if(row['reportType'] === '2' && row['examType'] === '2'){
dom += '<a type="button" class="layui-btn layui-btn-info layui-btn-xs" lay-event="showReasonEvent">查看原因</a>';
dom += '<a type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="reExamEvent">重新申考</a>';
return dom;
}
@ -155,7 +154,7 @@
return dom;
}
},
{field: 'planNumber', width: 190, title: '班号', align:'center',
{field: 'planNumber', width: 190, title: '班号', align:'left',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -164,7 +163,7 @@
return rowData;
}
},
{field: 'planName', width: 180, title: '班级名称', align:'center',
{field: 'planName', width: 180, title: '班级名称', align:'left',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -308,39 +307,33 @@
shade: 0.3,
yes: function (index) {
top.dialog.close(index);
var layIndex;
top.restAjax.put(top.restAjax.path('api/classplan/update-exam/{classPlanId}', [obj.data.classPlanId]), {reportType: '1'}, null, function (code, data) {
top.dialog.msg('提交成功', {time: 1000});
reloadTable();
}, function (code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg('提交中', {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
layer.open({
type: 2,
title: '提交 【' + obj.data.workerCatalogName + '】 考试申请',
closeBtn: 1,
area: ['70%', '70%'],
shadeClose: false,
anim: 2,
content: top.restAjax.path('route/classplan/save-exam-commit.html?classPlanId={classPlanId}', [obj.data.classPlanId]),
end: function () {
reloadTable();
}
});
}
});
return;
}
if(layEvent == 'reExamEvent'){
top.dialog.msg('重新提交考试申请?', {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function (index) {
top.dialog.close(index);
var layIndex;
top.restAjax.put(top.restAjax.path('api/classplan/update-exam-recommit/{classPlanId}', [obj.data.classPlanId]), {reportType: '1'}, null, function (code, data) {
top.dialog.msg('提交成功', {time: 1000});
reloadTable();
}, function (code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg('提交中', {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
});
layer.open({
type: 2,
title: '重新提交 【' + obj.data.workerCatalogName + '】 考试申请',
closeBtn: 1,
area: ['70%', '70%'],
shadeClose: false,
anim: 2,
content: top.restAjax.path('route/classplan/update-exam-commit.html?classPlanId={classPlanId}', [obj.data.classPlanId]),
end: function () {
reloadTable();
}
});
return;
@ -359,6 +352,20 @@
}
});
}
if(layEvent == 'showExamCommitEvent') {
layer.open({
type: 2,
title: '查看 【' + obj.data.workerCatalogName + '】 考试申请',
closeBtn: 1,
area: ['90%', '90%'],
shadeClose: false,
anim: 2,
content: top.restAjax.path('route/classplan/show-exam-commit.html?classPlanId={classPlanId}', [obj.data.classPlanId]),
end: function () {
reloadTable();
}
});
}
if(layEvent == 'showReasonEvent') {
var reason = obj.data.examReason == '' ? '未填写原因' : obj.data.examReason;
layer.open({

View File

@ -0,0 +1,305 @@
<!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">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label"><span style="color: #cc0000">*</span>上传考试申请图片</label>
<div class="layui-input-block">
<input type="hidden" id="examImages" name="examImages">
<div class="layui-btn-container" id="examImagesFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examImagesFileDownload" type="text/html">
{{# var fileName = 'examImages'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="examImagesRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="考试申请图片" data-name="examImages" lay-filter="examImagesUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
</script>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label"><span style="color: #cc0000">*</span>上传考试申请PDF</label>
<div class="layui-input-block">
<input type="hidden" id="examPDF" name="examPDF">
<div class="layui-btn-container" id="examPDFFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examPDFFileDownload" type="text/html">
{{# var fileName = 'examPDF'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="assets/images/pdf_icon.jpg" title="{{item.fileName}}" data-id="{{item.fileId}}" align="加载失败" class="pdf-open-show">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="examPDFRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="PDF" data-name="examPDF" lay-filter="examPDFUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
</script>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;z-index: 10">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交申请</button>
<button type="button" class="layui-btn layui-btn-primary close">返回列表</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'table', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var form = layui.form;
var admin = layui.admin;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var classPlanId = top.restAjax.params(window.location.href).classPlanId;
var examImagesViewerObj = {};
// 初始化内容
function initData() {
$('.layui-card').height($(window).height());
initExamImagesUploadFile();
initExamPDFUploadFile();
}
initData();
// 初始化图片上传
function initExamImagesUploadFile() {
var files = $('#examImages').val();
initFileList('examImages', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
examImagesViewerObj[fileName] = viewer;
});
form.on('button(examImagesUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
}
}
});
});
form.on('button(examImagesRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
});
}
// 初始化PDF上传
function initExamPDFUploadFile() {
var files = $('#examPDF').val();
initFileList('examPDF', files, function(fileName) {
$(document).on('click', '.pdf-open-show', function(obj){
var fileId = this.dataset.id;
window.open('route/file/download/true/' + fileId);
})
});
form.on('button(examPDFUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'file',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
});
}
}
});
});
form.on('button(examPDFRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
});
});
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
if(formData.field['examImages'] == ''){
top.dialog.msg('请上传考试申请图片资料');
return;
}
if(formData.field['examPDF'] == ''){
top.dialog.msg('请上传考试申请PDF资料');
return;
}
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/classplan/update-exam/{classPlanId}', [classPlanId]), formData.field, null, function(code, data) {
top.dialog.close(index);
closeBox();
}, 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;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,640 @@
<!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">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>班号</label>
<div class="layui-input-block">
<input type="text" id="planNumber" name="planNumber" class="layui-input" value="" readonly="readonly" maxlength="100">
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>班级名称</label>
<div class="layui-input-block">
<input type="text" id="planName" name="planName" class="layui-input" value=""
autocomplete="off" placeholder="请输入班级名称" lay-verify="required" maxlength="255">
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>培训类型</label>
<div class="layui-input-block">
<select id="planType" name="planType" readonly="readonly">
<option value="1">初训</option>
<option value="2">复训</option>
</select>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>培训项目</label>
<div class="layui-input-block">
<input type="hidden" id="projectCatalogId" name="projectCatalogId" value="">
<input type="text" id="projectCatalogName" name="projectCatalogName" class="layui-input" value="" style="cursor: pointer;" lay-verify="required" placeholder="请选择培训项目" readonly="readonly">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>开始时间</label>
<div class="layui-input-block">
<input type="text" id="planStartTime" name="planStartTime" class="layui-input" value="" placeholder="请选择培训开始时间" readonly style="cursor: pointer;" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>结束时间</label>
<div class="layui-input-block">
<input type="text" id="planEndTime" name="planEndTime" class="layui-input" value="" placeholder="请选择培训结束时间" readonly style="cursor: pointer;" lay-verify="required">
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>负责人</label>
<div class="layui-input-block">
<input type="text" id="chargePerson" name="chargePerson" class="layui-input" value=""
autocomplete="off" placeholder="请输入负责人" lay-verify="required" maxlength="50">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>联系方式</label>
<div class="layui-input-block">
<input type="text" id="chargePersonTel" name="chargePersonTel" class="layui-input" value=""
autocomplete="off" placeholder="请输入联系方式" lay-verify="required" maxlength="255">
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">*</span>培训地点</label>
<div class="layui-input-block">
<input type="text" id="planAddress" name="planAddress" class="layui-input" value=""
autocomplete="off" placeholder="请输入培训地点" lay-verify="required" maxlength="255">
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">图片文件</label>
<div class="layui-input-block">
<input type="hidden" id="planImages" name="planImages">
<div class="layui-btn-container" id="planImagesFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="planImagesFileDownload" type="text/html">
{{# var fileName = 'planImages'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
</div>
{{# } }}
{{# } }}
</script>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">PDF文件</label>
<div class="layui-input-block">
<input type="hidden" id="planPDF" name="planPDF">
<div class="layui-btn-container" id="planPDFFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="planPDFFileDownload" type="text/html">
{{# var fileName = 'planPDF'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="assets/images/pdf_icon.jpg" title="{{item.fileName}}" data-id="{{item.fileId}}" align="加载失败" class="pdf-open-show">
</span>
</div>
{{# } }}
{{# } }}
</script>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<table class="layui-table" id="dataTable" lay-filter="dataTable">
<thead>
<tr>
<th style="width: 50px; text-align: center"><b>确认课程</b></th>
<th style="width: 100px; text-align: center"><b>选择讲师</b></th>
<th style="width: 200px; text-align: center"><b>授课时间</b></th>
<th style="width: 260px; text-align: center"><b>课程名称</b></th>
<th style="width: 100px; text-align: center"><b>课程类型</b></th>
<th style="width: 100px; text-align: center"><b>授课方式</b></th>
</tr>
</thead>
<tbody id="lessonTbodyBox"></tbody>
<script type="text/html" id="lessonTbodyTemplate">
{{# for(var i = 0, item; item = d.lesson[i++];) { }}
<tr id="lesson-{{item.lessonId}}" data-lesson-id="{{item.lessonId}}">
<td style="text-align: center">
<input data-lesson-id="{{item.lessonId}}" type="checkbox" name="lessonCheckBox" lay-skin="primary" lay-filter="lessonCheckBox" disabled>
</td>
<td style="text-align: center">
<select id="select-{{item.lessonId}}">
<option value="">请选择</option>
{{# for(var j = 0, teacher; teacher = d.teacher[j++];) { }}
<option value="{{teacher.teacherId}}">{{teacher.teacherName}}</option>
{{# } }}
</select>
</td>
<td>
<div class="test-table-reload-btn">
<div class="layui-inline">
<input type="text" id="date-start-{{item.lessonId}}" value="" class="layui-input search-item lessons-date"
style="width: 150px" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="date-end-{{item.lessonId}}" value="" class="layui-input search-item lessons-date"
style="width: 150px" placeholder="结束时间" readonly>
</div>
</div>
</td>
<td style="text-align: center">
{{item.lessonName}}
</td>
<td style="text-align: center">
{{# if(item.lessonType == '1'){ }}
必修
{{# } }}
{{# if(item.lessonType == '2'){ }}
选修
{{# } }}
</td>
<td style="text-align: center">
{{# if(item.teachWay == '1'){ }}
面授
{{# } }}
</td>
</tr>
{{# } }}
</script>
</table>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">考试申请图片</label>
<div class="layui-input-block">
<input type="hidden" id="examImages" name="examImages">
<div class="layui-btn-container" id="examImagesFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examImagesFileDownload" type="text/html">
{{# var fileName = 'examImages'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
</div>
{{# } }}
{{# } }}
</script>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">考试申请PDF</label>
<div class="layui-input-block">
<input type="hidden" id="examPDF" name="examPDF">
<div class="layui-btn-container" id="examPDFFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examPDFFileDownload" type="text/html">
{{# var fileName = 'examPDF'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="assets/images/pdf_icon.jpg" title="{{item.fileName}}" data-id="{{item.fileId}}" align="加载失败" class="pdf-open-show">
</span>
</div>
{{# } }}
{{# } }}
</script>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'table', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var form = layui.form;
var admin = layui.admin;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var teacherList = [];
var classPlanLessons = [];
var classPlanId = top.restAjax.params(window.location.href).classPlanId;
var orgId = '';
var planImagesViewerObj = {};
var examImagesViewerObj = {};
// 初始化内容
function initData() {
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/classplan/get/{classPlanId}', [classPlanId]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
dataFormData['planStartTime'] = dataFormData['planStartTime'].substring(0,10);
dataFormData['planEndTime'] = dataFormData['planEndTime'].substring(0,10);
dataFormData['signUpStartTime'] = dataFormData['signUpStartTime'].substring(0,10);
dataFormData['signUpEndTime'] = dataFormData['signUpEndTime'].substring(0,10);
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
if(dataFormData['reportReason'] = ''){
$('#report-reason-block').show();
}
//初始化课程列表
initTeacherList(data.orgId);
classPlanLessons = data.classPlanLessons;
orgId = data.orgId;
initPlanImagesUploadFile();
initPlanPDFUploadFile();
initExamImagesUploadFile();
initExamPDFUploadFile();
setTimeout(function(){
$('.layui-card').height($('.layui-card').height());
},1000);
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
initData();
//查询讲师列表
function initTeacherList(orgId){
top.restAjax.get(top.restAjax.path('api/teacher/list',[]), {orgId : orgId}, null, function(code,data){
teacherList = data;
initLessonsList();
},function(code,data){
top.dialog.msg(data.msg);
});
}
//查询课程列表
function initLessonsList(){
var dataObj = {};
var projectCatalogId = $('#projectCatalogId').val();
if(projectCatalogId == ''){
dataObj['lesson'] = [];
dataObj['teacher'] = [];
laytpl(document.getElementById('lessonTbodyTemplate').innerHTML).render(dataObj, function(html) {
document.getElementById('lessonTbodyBox').innerHTML = html;
});
form.render();
return;
}
top.restAjax.get(top.restAjax.path('api/lessons/list',[]), {projectCatalogId : projectCatalogId, orgId: orgId}, null, function(code,data){
dataObj['lesson'] = data;
dataObj['teacher'] = teacherList;
laytpl(document.getElementById('lessonTbodyTemplate').innerHTML).render(dataObj, function(html) {
document.getElementById('lessonTbodyBox').innerHTML = html;
});
form.render();
reloadLessonsList();
},function(code,data){
top.dialog.msg(data.msg);
});
}
// 初始化图片上传
function initPlanImagesUploadFile() {
var files = $('#planImages').val();
initFileList('planImages', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
planImagesViewerObj[fileName] = viewer;
});
form.on('button(planImagesUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
planImagesViewerObj[fileName].update();
});
}
}
});
});
form.on('button(planImagesRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
planImagesViewerObj[fileName].update();
});
});
}
// 初始化PDF上传
function initPlanPDFUploadFile() {
var files = $('#planPDF').val();
initFileList('planPDF', files, function(fileName) {
$(document).on('click', '.pdf-open-show', function(obj){
var fileId = this.dataset.id;
window.open('route/file/download/true/' + fileId);
})
});
form.on('button(planPDFUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'file',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
});
}
}
});
});
form.on('button(planPDFRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
});
});
}
// 初始化图片上传
function initExamImagesUploadFile() {
var files = $('#examImages').val();
initFileList('examImages', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
examImagesViewerObj[fileName] = viewer;
});
form.on('button(examImagesUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
}
}
});
});
form.on('button(examImagesRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
});
}
// 初始化PDF上传
function initExamPDFUploadFile() {
var files = $('#examPDF').val();
initFileList('examPDF', files, function(fileName) {
$(document).on('click', '.pdf-open-show', function(obj){
var fileId = this.dataset.id;
window.open('route/file/download/true/' + fileId);
})
});
form.on('button(examPDFUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'file',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
});
}
}
});
});
form.on('button(examPDFRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
});
});
}
function reloadLessonsList(){
if(typeof (classPlanLessons) != 'undefined' && classPlanLessons.length > 0)
$.each(classPlanLessons,function(i,e){
var checkBox = $('#lesson-' + e.lessonId).find('input[name="lessonCheckBox"]').get(0);
$(checkBox).attr('checked', 'checked');
$('#select-' + e.lessonId).val(e.teacherId);
$('#select-' + e.lessonId).attr("disabled","disabled");
$('#date-start-' + e.lessonId).val(e.lessonStart);
$('#date-end-' + e.lessonId).val(e.lessonEnd);
});
form.render();
}
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,327 @@
<!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">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<blockquote id="exam-reason-block" class="layui-elem-quote" style="border-left: 5px solid #cc0200;display: none;"></blockquote>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label"><span style="color: #cc0000">*</span>上传考试申请图片</label>
<div class="layui-input-block">
<input type="hidden" id="examImages" name="examImages">
<div class="layui-btn-container" id="examImagesFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examImagesFileDownload" type="text/html">
{{# var fileName = 'examImages'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="examImagesRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="考试申请图片" data-name="examImages" lay-filter="examImagesUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
</script>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label"><span style="color: #cc0000">*</span>上传考试申请PDF</label>
<div class="layui-input-block">
<input type="hidden" id="examPDF" name="examPDF">
<div class="layui-btn-container" id="examPDFFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="examPDFFileDownload" type="text/html">
{{# var fileName = 'examPDF'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="assets/images/pdf_icon.jpg" title="{{item.fileName}}" data-id="{{item.fileId}}" align="加载失败" class="pdf-open-show">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="examPDFRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="PDF" data-name="examPDF" lay-filter="examPDFUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
</script>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;z-index: 10">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">重新申请</button>
<button type="button" class="layui-btn layui-btn-primary close">返回列表</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'table', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var form = layui.form;
var admin = layui.admin;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var classPlanId = top.restAjax.params(window.location.href).classPlanId;
var examImagesViewerObj = {};
// 初始化内容
function initData() {
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/classplan/get/{classPlanId}', [classPlanId]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
if(dataFormData['examReason'] != ''){
$('#exam-reason-block').html('退回原因: ' + data['examReason']);
$('#exam-reason-block').show();
}
initExamImagesUploadFile();
initExamPDFUploadFile();
setTimeout(function(){
$('.layui-card').height($('.layui-card').height());
},1000);
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
initData();
// 初始化图片上传
function initExamImagesUploadFile() {
var files = $('#examImages').val();
initFileList('examImages', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
examImagesViewerObj[fileName] = viewer;
});
form.on('button(examImagesUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
}
}
});
});
form.on('button(examImagesRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
examImagesViewerObj[fileName].update();
});
});
}
// 初始化PDF上传
function initExamPDFUploadFile() {
var files = $('#examPDF').val();
initFileList('examPDF', files, function(fileName) {
$(document).on('click', '.pdf-open-show', function(obj){
var fileId = this.dataset.id;
window.open('route/file/download/true/' + fileId);
})
});
form.on('button(examPDFUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'file',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
});
}
}
});
});
form.on('button(examPDFRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
});
});
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
if(formData.field['examImages'] == ''){
top.dialog.msg('请上传考试申请图片资料');
return;
}
if(formData.field['examPDF'] == ''){
top.dialog.msg('请上传考试申请PDF资料');
return;
}
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/classplan/update-exam-recommit/{classPlanId}', [classPlanId]), formData.field, null, function(code, data) {
top.dialog.close(index);
closeBox();
}, 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;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>