Merge remote-tracking branch 'origin/baotou-signup' into baotou-signup
This commit is contained in:
commit
37d9a4ef5d
@ -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();
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,11 @@
|
||||
package cn.com.tenlion.controller.api.traininginstitutionuser;
|
||||
|
||||
import cn.com.tenlion.institutionmanagement.pojo.dtos.institution.InstitutionDTO;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import ink.wgink.annotation.CheckRequestBodyAnnotation;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.common.component.SecurityComponent;
|
||||
import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.result.ErrorResult;
|
||||
@ -13,6 +16,7 @@ import cn.com.tenlion.pojo.dtos.traininginstitutionuser.TrainingInstitutionUserD
|
||||
import cn.com.tenlion.pojo.vos.traininginstitutionuser.TrainingInstitutionUserVO;
|
||||
import cn.com.tenlion.service.traininginstitutionuser.ITrainingInstitutionUserService;
|
||||
import io.swagger.annotations.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -34,6 +38,25 @@ public class TrainingInstitutionUserController extends DefaultBaseController {
|
||||
|
||||
@Autowired
|
||||
private ITrainingInstitutionUserService trainingInstitutionUserService;
|
||||
@Autowired
|
||||
protected SecurityComponent securityComponent;
|
||||
|
||||
|
||||
@ApiOperation(value = "获取当前登录人的培训机构详情", notes = "获取当前登录人的培训机构详情接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("get-now-institution")
|
||||
public InstitutionDTO getNowInstitution(){
|
||||
String userId = securityComponent.getCurrentUser().getUserId();
|
||||
if(StringUtils.isBlank(userId)){
|
||||
throw new ParamsException("请重新登录");
|
||||
}
|
||||
return trainingInstitutionUserService.getByUserId(userId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -275,6 +275,7 @@ public interface IClassPlanService {
|
||||
/**
|
||||
* 重新提交考试申请
|
||||
* @param classPlanId
|
||||
* @param classPlanVO
|
||||
*/
|
||||
void updateExamRecommit(String classPlanId);
|
||||
void updateExamRecommit(String classPlanId, ClassPlanVO classPlanVO);
|
||||
}
|
@ -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
|
||||
|
@ -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>
|
@ -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});
|
||||
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();
|
||||
}, 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
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});
|
||||
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();
|
||||
}, 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);
|
||||
});
|
||||
}
|
||||
});
|
||||
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({
|
||||
|
297
src/main/resources/static/route/classplan/save-exam-commit.html
Normal file
297
src/main/resources/static/route/classplan/save-exam-commit.html
Normal file
@ -0,0 +1,297 @@
|
||||
<!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">上传考试申请图片</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">上传考试申请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) {
|
||||
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>
|
640
src/main/resources/static/route/classplan/show-exam-commit.html
Normal file
640
src/main/resources/static/route/classplan/show-exam-commit.html
Normal 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>
|
@ -0,0 +1,319 @@
|
||||
<!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">上传考试申请图片</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">上传考试申请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) {
|
||||
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>
|
@ -0,0 +1,444 @@
|
||||
<!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-fluid layui-anim layui-anim-fadein">
|
||||
<div class="layui-card">
|
||||
<!--<div class="layui-card-header">-->
|
||||
<!--<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">-->
|
||||
<!--<a class="close" href="javascript:void(0);">上级列表</a><span lay-separator="">/</span>-->
|
||||
<!--<a href="javascript:void(0);"><cite>编辑内容</cite></a>-->
|
||||
<!--</span>-->
|
||||
<!--</div>-->
|
||||
<div class="layui-card-body" style="padding: 15px;">
|
||||
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">机构图片</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" id="institutionImage" name="institutionImage">
|
||||
<div class="layui-btn-container" id="institutionImageFileBox" style="border: 1px solid #e6e6e6;"></div>
|
||||
<script id="institutionImageFileDownload" type="text/html">
|
||||
{{# var fileName = 'institutionImage'; }}
|
||||
{{# 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="institutionImageRemoveFile">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
{{# if(d[fileName].length < 9) { }}
|
||||
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
|
||||
<a href="javascript:void(0);" lay-form-button data-explain="机构图片" data-name="institutionImage" lay-filter="institutionImageUploadFile">
|
||||
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
|
||||
</a>
|
||||
</div>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">机构名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="institutionName" name="institutionName" class="layui-input" value="" placeholder="请输入机构名称" maxlength="255" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">机构成立时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="institutionFoundingTime" name="institutionFoundingTime" class="layui-input" value="" placeholder="请选择机构成立时间" readonly style="cursor: pointer;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">机构描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="institutionDesc" name="institutionDesc" class="layui-textarea" placeholder="请输入机构描述"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">机构负责人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="institutionPrincipal" name="institutionPrincipal" class="layui-input" value="" placeholder="请输入机构负责人" maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">机构联系方式</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="institutionContact" name="institutionContact" class="layui-textarea" placeholder="请输入机构联系方式"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">行政区划</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="institutionRegionProvince" id="institutionRegionProvince" lay-filter="institutionRegionProvince">
|
||||
<option value="">请选择省</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<select name="institutionRegionCity" id="institutionRegionCity" lay-filter="institutionRegionCity">
|
||||
<option value="">请选择市</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<select name="institutionRegionArea" id="institutionRegionArea" lay-filter="institutionRegionArea">
|
||||
<option value="">请选择县</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<select name="institutionRegionVillage" id="institutionRegionVillage" lay-filter="institutionRegionVillage">
|
||||
<option value="">请选择镇</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<select name="institutionRegionStreet" id="institutionRegionStreet" lay-filter="institutionRegionStreet">
|
||||
<option value="">请选择村</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">机构详细地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" id="institutionX" name="institutionX" value="" placeholder="请输入机构经度">
|
||||
<input type="hidden" id="institutionY" name="institutionY" value="" placeholder="请输入机构纬度">
|
||||
<input type="text" id="institutionAddress" name="institutionAddress" class="layui-input" value="" placeholder="请输入机构地址" maxlength="50">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md12 layui-col-sm12" style="padding: 0 0px;">
|
||||
<div id="mapContainer" style="width: 100%;height: 350px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<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 type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<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', 'form', 'laydate', 'laytpl'], function(){
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
var laytpl = layui.laytpl;
|
||||
var laydate = layui.laydate;
|
||||
var institutionId = "";
|
||||
var dictId = '0';
|
||||
|
||||
var wangEditor = window.wangEditor;
|
||||
var wangEditorObj = {};
|
||||
var viewerObj = {};
|
||||
var institutionType="training"
|
||||
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化视频
|
||||
function initVideo(fileName, data) {
|
||||
for(var i = 0, item; item = data[i++];) {
|
||||
var player = new ckplayer({
|
||||
container: '#'+ fileName + i,
|
||||
variable: 'player',
|
||||
flashplayer: false,
|
||||
video: {
|
||||
file: 'route/file/download/true/'+ item.fileId,
|
||||
type: 'video/mp4'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化机构图片图片上传
|
||||
function initInstitutionImageUploadFile() {
|
||||
var files = $('#institutionImage').val();
|
||||
initFileList('institutionImage', files, function(fileName) {
|
||||
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
|
||||
viewerObj[fileName] = viewer;
|
||||
});
|
||||
|
||||
form.on('button(institutionImageUploadFile)', 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) {
|
||||
viewerObj[fileName].update();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
form.on('button(institutionImageRemoveFile)', 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) {
|
||||
viewerObj[fileName].update();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化机构成立时间时间戳
|
||||
function initInstitutionFoundingTimeDateTime(v) {
|
||||
laydate.render({
|
||||
elem: '#institutionFoundingTime',
|
||||
type: 'date',
|
||||
value: v,
|
||||
trigger: 'click'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 初始化内容
|
||||
function initData() {
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(top.restAjax.path('api/traininginstitutionuser/get-now-institution', []), {}, null, function(code, data) {
|
||||
var dataFormData = {};
|
||||
for(var i in data) {
|
||||
dataFormData[i] = data[i] +'';
|
||||
}
|
||||
form.val('dataForm', dataFormData);
|
||||
form.render(null, 'dataForm');
|
||||
initInstitutionImageUploadFile();
|
||||
initInstitutionFoundingTimeDateTime(data.institutionFoundingTime);
|
||||
initMap(data.institutionX,data.institutionY);
|
||||
initDataDict(dictId,'institutionRegionProvince',data.institutionRegionProvince);
|
||||
initDataDict(data.institutionRegionProvince,'institutionRegionCity',data.institutionRegionCity);
|
||||
initDataDict(data.institutionRegionCity,'institutionRegionArea',data.institutionRegionArea);
|
||||
initDataDict(data.institutionRegionArea,'institutionRegionVillage',data.institutionRegionVillage);
|
||||
initDataDict(data.institutionRegionVillage,'institutionRegionStreet',data.institutionRegionStreet);
|
||||
institutionId = data.institutionId;
|
||||
}, 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();
|
||||
|
||||
// 提交表单
|
||||
form.on('submit(submitForm)', function(formData) {
|
||||
formData.field.institutionType = institutionType;
|
||||
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/institution/update/{institutionId}', [institutionId]), formData.field, null, function(code, data) {
|
||||
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
|
||||
time: 0,
|
||||
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||
shade: 0.3,
|
||||
yes: function(index) {
|
||||
top.dialog.close(index);
|
||||
window.location.reload();
|
||||
},
|
||||
btn2: function() {
|
||||
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;
|
||||
});
|
||||
|
||||
$('.close').on('click', function() {
|
||||
closeBox();
|
||||
});
|
||||
|
||||
|
||||
//初始化百度地图
|
||||
function initMap(longitude, latitude) {
|
||||
if (longitude == '' || latitude == ''){
|
||||
longitude = '109.85017859252311';
|
||||
latitude = '40.66017700460503';
|
||||
}
|
||||
map = new BMap.Map("mapContainer", {enableMapClick: false,});
|
||||
var point = new BMap.Point(longitude, latitude);
|
||||
map.centerAndZoom(point, 13);
|
||||
map.disableDoubleClickZoom();
|
||||
map.addControl(new BMap.NavigationControl());
|
||||
map.addControl(new BMap.ScaleControl());
|
||||
map.addControl(new BMap.OverviewMapControl());
|
||||
map.addControl(new BMap.MapTypeControl());
|
||||
map.enableScrollWheelZoom();//启用地图滚轮放大缩小
|
||||
map.enableContinuousZoom();//开启缩放平滑
|
||||
// 点击获取地址
|
||||
var geocoder= new BMap.Geocoder();
|
||||
mapMarkPoint(map, point);
|
||||
map.addEventListener("click", function(e) {
|
||||
map.clearOverlays();
|
||||
$('#institutionX').val(e.point.lng);
|
||||
$('#institutionY').val(e.point.lat);
|
||||
point = new BMap.Point(e.point.lng, e.point.lat);
|
||||
mapMarkPoint(map, point);
|
||||
geocoder.getLocation(e.point, function(rs) {
|
||||
$('#institutionAddress').val(rs.address);
|
||||
});
|
||||
});
|
||||
}
|
||||
//地图标点
|
||||
function mapMarkPoint(map, point) {
|
||||
var marker = new BMap.Marker(point);
|
||||
map.addOverlay(marker);
|
||||
}
|
||||
|
||||
|
||||
//c初始化数据字典
|
||||
function initDataDict(dictId,tabId,selectVelue){
|
||||
if(!dictId){
|
||||
return;
|
||||
}
|
||||
top.restAjax.get(top.restAjax.path("api/area/listbyparentid/{areaParentId}",[dictId]),{},null,function (code,data,args) {
|
||||
$("#"+tabId).empty();
|
||||
var html = '';
|
||||
if ('institutionRegionProvince' === tabId){
|
||||
html += '<option value="">请选择省</option>';
|
||||
}
|
||||
if ('institutionRegionCity' === tabId){
|
||||
html += '<option value="">请选择市</option>';
|
||||
}
|
||||
if ('institutionRegionArea' === tabId){
|
||||
html += '<option value="">请选择县</option>';
|
||||
}
|
||||
if ('institutionRegionVillage' === tabId){
|
||||
html += '<option value="">请选择镇</option>';
|
||||
}
|
||||
if ('institutionRegionStreet' === tabId){
|
||||
html += '<option value="">请选择村</option>';
|
||||
}
|
||||
|
||||
$.each(data, function (index, item) {
|
||||
if(selectVelue == item.areaId){
|
||||
html += '<option selected value="'+item.areaId+'">'+item.areaName+'</option>';
|
||||
}else{
|
||||
html += '<option value="'+item.areaId+'">'+item.areaName+'</option>';
|
||||
}
|
||||
});
|
||||
$("#"+tabId).append(html);
|
||||
form.render('select');
|
||||
});
|
||||
}
|
||||
|
||||
//省监听事件
|
||||
form.on('select(institutionRegionProvince)', function(data){
|
||||
var v = data.value;
|
||||
initDataDict(v,'institutionRegionCity');
|
||||
});
|
||||
//市监听事件
|
||||
form.on('select(institutionRegionCity)', function(data){
|
||||
var v = data.value;
|
||||
initDataDict(v,'institutionRegionArea');
|
||||
});
|
||||
//区监听事件
|
||||
form.on('select(institutionRegionArea)', function(data){
|
||||
var v = data.value;
|
||||
initDataDict(v,'institutionRegionVillage');
|
||||
});
|
||||
//镇、村监听事件
|
||||
form.on('select(institutionRegionVillage)', function(data){
|
||||
var v = data.value;
|
||||
initDataDict(v,'institutionRegionStreet');
|
||||
});
|
||||
|
||||
|
||||
|
||||
// 校验
|
||||
form.verify({
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user