优化界面细节问题

This commit is contained in:
wans 2021-05-12 10:52:06 +08:00
parent a0d2f355fc
commit 5254def059
12 changed files with 653 additions and 30 deletions

View File

@ -1,5 +1,10 @@
package cn.com.tenlion.controller.api.classplan;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanReportExamDTO;
import cn.com.tenlion.pojo.vos.classplan.ClassPlanVO;
import cn.com.tenlion.service.classplan.IClassPlanService;
import com.alibaba.fastjson.JSONObject;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
@ -9,9 +14,6 @@ import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.vos.classplan.ClassPlanVO;
import cn.com.tenlion.service.classplan.IClassPlanService;
import ink.wgink.util.date.DateUtil;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
@ -152,4 +154,24 @@ public class ClassPlanController extends DefaultBaseController {
return new SuccessResult();
}
@ApiOperation(value = "查询考试申请详情", notes = "查询考试申请详情接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "classPlanId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get-report-exam-detail/{classPlanId}")
public ClassPlanReportExamDTO getReportExamDetail(@PathVariable("classPlanId") String classPlanId) {
return classPlanService.getReportExamDetail(classPlanId);
}
@ApiOperation(value = "查询参考人员", notes = "查询参考人员接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "classPlanId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-exam-user/{classPlanId}")
public List<ApplyDTO> listExamUser(@PathVariable("classPlanId") String classPlanId) {
return classPlanService.listExamUser(classPlanId);
}
}

View File

@ -69,6 +69,8 @@ public class ClassPlanDTO {
private List<Map<String,Object>> classPlanLessons;
@ApiModelProperty(name = "signUpUserCount", value = "已报名完成人数")
private Integer signUpUserCount;
@ApiModelProperty(name = "waitSignUpUser", value = "待处理人员")
private Integer waitSignUpUser;
@ApiModelProperty(name = "examType", value = "考试申请状态0未审核1审核通过2审核驳回")
private String examType;
@ApiModelProperty(name = "examReason", value = "考试申请原因")
@ -269,4 +271,12 @@ public class ClassPlanDTO {
public void setExamReason(String examReason) {
this.examReason = examReason;
}
public Integer getWaitSignUpUser() {
return waitSignUpUser;
}
public void setWaitSignUpUser(Integer waitSignUpUser) {
this.waitSignUpUser = waitSignUpUser;
}
}

View File

@ -0,0 +1,114 @@
package cn.com.tenlion.pojo.dtos.classplan;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author xwangs
* @create 2021-05-11 16:25
* @description
*/
@ApiModel
public class ClassPlanReportExamDTO {
@ApiModelProperty(name = "examApplyId", value = "考试申请主键UUID")
private String examApplyId;
@ApiModelProperty(name = "checkStatus", value = "审核状态。0未审核1审核通过2审核驳回")
private Integer checkStatus;
@ApiModelProperty(name = "examType", value = "考试类型。1理论2实操3理论加实操")
private Integer examType;
@ApiModelProperty(name = "theoryExamAddress", value = "理论考试地点")
private String theoryExamAddress;
@ApiModelProperty(name = "theoryExamStartTime", value = "理论考试开始时间")
private String theoryExamStartTime;
@ApiModelProperty(name = "theoryExamEndTime", value = "理论考试结束时间")
private String theoryExamEndTime;
@ApiModelProperty(name = "practiceExamAddress", value = "实操考试地点")
private String practiceExamAddress;
@ApiModelProperty(name = "practiceExamStartTime", value = "实操考试开始时间")
private String practiceExamStartTime;
@ApiModelProperty(name = "practiceExamEndTime", value = "实操考试结束时间")
private String practiceExamEndTime;
@ApiModelProperty(name = "reason", value = "考试申请审核原因")
private String reason;
public String getExamApplyId() {
return examApplyId == null ? "" : examApplyId;
}
public void setExamApplyId(String examApplyId) {
this.examApplyId = examApplyId;
}
public Integer getExamType() {
return examType;
}
public void setExamType(Integer examType) {
this.examType = examType;
}
public String getTheoryExamAddress() {
return theoryExamAddress == null ? "" : theoryExamAddress;
}
public void setTheoryExamAddress(String theoryExamAddress) {
this.theoryExamAddress = theoryExamAddress;
}
public String getTheoryExamStartTime() {
return theoryExamStartTime == null ? "" : theoryExamStartTime;
}
public void setTheoryExamStartTime(String theoryExamStartTime) {
this.theoryExamStartTime = theoryExamStartTime;
}
public String getTheoryExamEndTime() {
return theoryExamEndTime == null ? "" : theoryExamEndTime;
}
public void setTheoryExamEndTime(String theoryExamEndTime) {
this.theoryExamEndTime = theoryExamEndTime;
}
public String getPracticeExamAddress() {
return practiceExamAddress == null ? "" : practiceExamAddress;
}
public void setPracticeExamAddress(String practiceExamAddress) {
this.practiceExamAddress = practiceExamAddress;
}
public String getPracticeExamStartTime() {
return practiceExamStartTime == null ? "" : practiceExamStartTime;
}
public void setPracticeExamStartTime(String practiceExamStartTime) {
this.practiceExamStartTime = practiceExamStartTime;
}
public Integer getCheckStatus() {
return checkStatus;
}
public void setCheckStatus(Integer checkStatus) {
this.checkStatus = checkStatus;
}
public String getPracticeExamEndTime() {
return practiceExamEndTime == null ? "" : practiceExamEndTime;
}
public void setPracticeExamEndTime(String practiceExamEndTime) {
this.practiceExamEndTime = practiceExamEndTime;
}
public String getReason() {
return reason == null ? "" : reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}

View File

@ -1,35 +1,32 @@
package cn.com.tenlion.service.apply.impl;
import cn.com.tenlion.dao.apply.IApplyDao;
import cn.com.tenlion.institutionmanagement.pojo.dtos.institution.InstitutionDTO;
import cn.com.tenlion.pojo.bos.apply.ApplyBO;
import cn.com.tenlion.pojo.dtos.apply.ApplyClassPlanDTO;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.dtos.distributioncard.DistributionCardDTO;
import cn.com.tenlion.pojo.pos.apply.ApplyPO;
import cn.com.tenlion.pojo.vos.apply.ApplyAuditVO;
import cn.com.tenlion.pojo.vos.apply.ApplyVO;
import cn.com.tenlion.pojo.vos.applyauditlog.ApplyAuditLogVO;
import cn.com.tenlion.pojo.vos.traininginstitutionuser.InstitutionUserVO;
import cn.com.tenlion.service.apply.IApplyService;
import cn.com.tenlion.service.applyauditlog.IApplyAuditLogService;
import cn.com.tenlion.service.classplan.IClassPlanService;
import cn.com.tenlion.service.examination.distributioncard.IDistributionCardService;
import cn.com.tenlion.service.traininginstitutionuser.ITrainingInstitutionUserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.exceptions.ParamsException;
import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.app.AppTokenUser;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
import ink.wgink.util.UUIDUtil;
import cn.com.tenlion.dao.apply.IApplyDao;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.vos.apply.ApplyVO;
import cn.com.tenlion.pojo.bos.apply.ApplyBO;
import cn.com.tenlion.pojo.pos.apply.ApplyPO;
import cn.com.tenlion.service.apply.IApplyService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -133,7 +130,7 @@ public class ApplyServiceImpl extends DefaultBaseService implements IApplyServic
throw new ParamsException("请选择报考类型");
}
PageHelper.startPage(page.getPage(), page.getRows());
SuccessResultList<List<ClassPlanDTO>> classPlanDTOList = classPlanService.listPage(page);
SuccessResultList<List<ClassPlanDTO>> classPlanDTOList = classPlanService.listSignUpPage(page);
for (ClassPlanDTO classPlanDTO : classPlanDTOList.getRows()) {
ApplyClassPlanDTO applyClassPlanDTO = new ApplyClassPlanDTO();
int applyClassPlanState = countApplyCardNumber(applyCardNumber,classPlanDTO.getClassPlanId());

View File

@ -1,12 +1,15 @@
package cn.com.tenlion.service.classplan;
import cn.com.tenlion.pojo.bos.classplan.ClassPlanBO;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanReportExamDTO;
import cn.com.tenlion.pojo.pos.classplan.ClassPlanPO;
import cn.com.tenlion.pojo.vos.classplan.ClassPlanVO;
import com.alibaba.fastjson.JSONObject;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.vos.classplan.ClassPlanVO;
import cn.com.tenlion.pojo.bos.classplan.ClassPlanBO;
import cn.com.tenlion.pojo.pos.classplan.ClassPlanPO;
import java.util.List;
import java.util.Map;
@ -219,4 +222,25 @@ public interface IClassPlanService {
* @param classPlanVO
*/
void updateExamType(String classPlanId, ClassPlanVO classPlanVO);
/**
* 查询考试申请详情
* @param classPlanId
* @return
*/
ClassPlanReportExamDTO getReportExamDetail(String classPlanId);
/**
* 参考人员列表
* @param classPlanId
* @return
*/
List<ApplyDTO> listExamUser(String classPlanId);
/**
* 可报名列表
* @param page
* @return
*/
SuccessResultList<List<ClassPlanDTO>> listSignUpPage(ListPage page);
}

View File

@ -6,6 +6,8 @@ import cn.com.tenlion.institutionmanagement.service.institution.IInstitutionServ
import cn.com.tenlion.pojo.bos.classplan.ClassPlanBO;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanDTO;
import cn.com.tenlion.pojo.dtos.classplan.ClassPlanReportExamDTO;
import cn.com.tenlion.pojo.dtos.distributioncard.DistributionCardDTO;
import cn.com.tenlion.pojo.dtos.examapply.ExamApplyDTO;
import cn.com.tenlion.pojo.dtos.worktype.WorkTypeDTO;
import cn.com.tenlion.pojo.pos.classplan.ClassPlanPO;
@ -16,6 +18,7 @@ import cn.com.tenlion.service.apply.IApplyService;
import cn.com.tenlion.service.classplan.IClassPlanService;
import cn.com.tenlion.service.examapply.IExamApplyService;
import cn.com.tenlion.service.examcheck.IExamCheckService;
import cn.com.tenlion.service.examination.distributioncard.IDistributionCardService;
import cn.com.tenlion.service.worktype.IWorkTypeService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -64,6 +67,9 @@ public class ClassPlanServiceImpl extends DefaultBaseService implements IClassPl
// 考试申请
@Autowired
private IExamApplyService examApplyService;
@Autowired
// 准考证
private IDistributionCardService distributionCardService;
@Override
public void save(ClassPlanVO classPlanVO) {
@ -312,6 +318,36 @@ public class ClassPlanServiceImpl extends DefaultBaseService implements IClassPl
queryMap.put("applyAuditStates",applyAuditStates);
List<ApplyDTO> list = applyService.list(queryMap);
item.setSignUpUserCount(list == null ? 0 : list.size());
//查询待处理人数
applyAuditStates.clear();
applyAuditStates.add("0");
queryMap.put("applyAuditStates",applyAuditStates);
List<ApplyDTO> waitList = applyService.list(queryMap);
item.setWaitSignUpUser(waitList == null ? 0 : waitList.size());
}
PageInfo<ClassPlanDTO> pageInfo = new PageInfo<>(classPlanDTOs);
return new SuccessResultList<>(classPlanDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public SuccessResultList<List<ClassPlanDTO>> listSignUpPage(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<ClassPlanDTO> classPlanDTOs = list(page.getParams());
Map<String,Object> queryMap = getHashMap(4);
for(ClassPlanDTO item : classPlanDTOs){
//处理培训项目
DataDTO dataDTO = dataService.get(item.getProjectCatalogId());
item.setProjectCatalogName(dataDTO.getDataName());
//处理工种类型
WorkTypeDTO workTypeDTO = workTypeService.get(item.getWorkerCatalog());
item.setWorkerCatalogName(workTypeDTO.getWorkTypeName());
//查询已报名人数(这里只统计了报到完成的情况)
queryMap.put("applyClassId",item.getClassPlanId());
List<String> applyAuditStates = new ArrayList<>();
applyAuditStates.add("3");
queryMap.put("applyAuditStates",applyAuditStates);
List<ApplyDTO> list = applyService.list(queryMap);
item.setSignUpUserCount(list == null ? 0 : list.size());
}
PageInfo<ClassPlanDTO> pageInfo = new PageInfo<>(classPlanDTOs);
return new SuccessResultList<>(classPlanDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
@ -372,4 +408,47 @@ public class ClassPlanServiceImpl extends DefaultBaseService implements IClassPl
}
examApplyService.save(examApplyVO);
}
@Override
public ClassPlanReportExamDTO getReportExamDetail(String classPlanId) {
Map<String, Object> queryMap = getHashMap(8);
//查询考试申请记录信息
queryMap.put("examId",classPlanId);
ExamApplyDTO examApplyDTO = examApplyService.get(queryMap);
ClassPlanReportExamDTO examDTO = new ClassPlanReportExamDTO();
examDTO.setCheckStatus(examApplyDTO.getCheckStatus());
examDTO.setReason(examApplyDTO.getReason());
examDTO.setExamType(examApplyDTO.getExamType());
examDTO.setExamApplyId(examApplyDTO.getExamApplyId());
examDTO.setTheoryExamStartTime(examApplyDTO.getTheoryExamStartTime());
examDTO.setTheoryExamEndTime(examApplyDTO.getTheoryExamEndTime());
if(examApplyDTO.getExamType() != 2){
InstitutionDTO institutionDTO = iInstitutionService.get(examApplyDTO.getTheoryExamAddressId());
examDTO.setTheoryExamAddress(institutionDTO.getInstitutionName() + "-" + institutionDTO.getInstitutionAddress());
}
examDTO.setPracticeExamStartTime(examApplyDTO.getPracticeExamStartTime());
examDTO.setPracticeExamEndTime(examApplyDTO.getPracticeExamEndTime());
if(examApplyDTO.getExamType() != 1){
InstitutionDTO institutionDTO = iInstitutionService.get(examApplyDTO.getPracticeExamAddressId());
examDTO.setPracticeExamAddress(institutionDTO.getInstitutionName() + "-" + institutionDTO.getInstitutionAddress());
}
return examDTO;
}
@Override
public List<ApplyDTO> listExamUser(String classPlanId) {
Map<String, Object> queryMap = getHashMap(8);
queryMap.put("applyClassId",classPlanId);
List<String> applyAuditStates = new ArrayList<>();
applyAuditStates.add("3");
queryMap.put("applyAuditStates",applyAuditStates);
List<ApplyDTO> list = applyService.list(queryMap);
for(ApplyDTO uItem : list) {
List<DistributionCardDTO> cardDTOS = distributionCardService.listByClassPlanIdAndUserId(classPlanId, uItem.getCreate());
if(cardDTOS != null && cardDTOS.size() > 0){
uItem.setDistributionCardCode(cardDTOS.get(0).getDistributionCardPictures());
}
}
return list;
}
}

View File

@ -104,7 +104,7 @@
cols: [
[
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{width:100, title: '操作', fixed: 'left', align:'center',
{width:150, title: '操作', fixed: 'left', align:'center',
templet: function(row) {
var dom = '';
if(row['examType'] === ''){
@ -113,14 +113,17 @@
}
if(row['examType'] === '0'){
dom += '<a type="button" class="layui-btn layui-btn-warm layui-btn-xs">审核中</a>';
dom += '<a type="button" class="layui-btn layui-btn-primary layui-btn-xs" lay-event="updateEvent">查看</a>';
return dom;
}
if(row['examType'] === '1'){
dom += '<a type="button" class="layui-btn layui-btn-normal layui-btn-xs">审核通过</a>';
dom += '<a type="button" class="layui-btn layui-btn-primary layui-btn-xs" lay-event="showEvent">查看</a>';
return dom;
}
if(row['examType'] === '2'){
dom += '<a type="button" class="layui-btn layui-btn-warm layui-btn-xs">审核驳回</a>';
dom += '<a type="button" class="layui-btn layui-btn-danger layui-btn-xs">审核驳回</a>';
dom += '<a type="button" class="layui-btn layui-btn-primary layui-btn-xs" lay-event="updateEvent">查看</a>';
return dom;
}
}
@ -264,6 +267,32 @@
}
});
}
if(layEvent == 'showEvent'){
layer.open({
type: 2,
title: '查看申请结果',
closeBtn: 1,
area: ['80%', '80%'],
shadeClose: false,
anim: 2,
content: top.restAjax.path('route/classplan/show-report-exam.html?classPlanId={classPlanId}', [obj.data.classPlanId]),
end: function () {
}
});
}
if(layEvent == 'updateEvent'){
layer.open({
type: 2,
title: '查看申请信息',
closeBtn: 1,
area: ['30%', '60%'],
shadeClose: false,
anim: 2,
content: top.restAjax.path('route/classplan/update-report-exam.html?classPlanId={classPlanId}', [obj.data.classPlanId]),
end: function () {
}
});
}
})
});
</script>

View File

@ -149,10 +149,10 @@
if(rowData == '1'){
return '初训';
}
if(rowData == '1'){
if(rowData == '2'){
return '复训';
}
if(rowData == '1'){
if(rowData == '3'){
return '换证';
}
return '-';
@ -185,6 +185,15 @@
return '<span style="color: #b83023">' + rowData + '</span> 人';
}
},
{field: 'waitSignUpUser', width: 100, title: '报名待处理', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return '<span style="color: #b87e26">' + rowData + '</span> 人';
}
},
{field: 'signUpUserCount', width: 90, title: '完成报名', align:'center',
templet: function(row) {
var rowData = row[this.field];

View File

@ -23,7 +23,7 @@
<select id="examType" name="examType" lay-verify="required">
<option value="1">理论考试</option>
<option value="2">实操考试</option>
<option value="1">理论与实操</option>
<option value="3">理论与实操</option>
</select>
</div>
</div>

View File

@ -0,0 +1,185 @@
<!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">
<input type="hidden" id="orgId" name="orgId">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">考试类型</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" class="layui-input" id="examTypeName" name="examTypeName" value="" readonly="readonly">
</div>
</div>
<div class="layui-row theory-exam-div">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">理论考试时间</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="theoryExam" name="theoryExam" class="layui-input" value="" readonly style="cursor: pointer;">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">理论考试地点</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="theoryExamAddr" name="theoryExamAddr" class="layui-input" value="" readonly style="cursor: pointer;">
</div>
</div>
</div>
<div class="layui-row practice-exam-div">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">实操考试时间</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="practiceExam" name="practiceExam" class="layui-input" value="" readonly style="cursor: pointer;">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">实操考试地点</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="practiceExamAddr" name="practiceExamAddr" class="layui-input" value="" readonly style="cursor: pointer;">
</div>
</div>
</div>
<blockquote id="report-reason-block" class="layui-elem-quote" style="border-left: 5px solid #51cc2e;">参考人员</blockquote>
<div class="layui-row">
<div class="layui-col-md12">
<table class="layui-table" id="dataTable" lay-filter="dataTable">
<tbody id="examUserTemplateBox"></tbody>
<script type="text/html" id="examUserTemplate">
{{# if(d.length == 0){ }}
<tr style="text-align: center">
<td>没有查询到参考人员信息</td>
</tr>
{{# } }}
{{# for(var i = 0, item; item = d[i++];) { }}
<tr>
<td style="text-align: center">{{item.applyName}}</td>
<td style="text-align: center">{{item.applySex}}</td>
<td style="text-align: center">{{item.applyCardNumber}}</td>
<td style="text-align: center">{{item.applyPhone}}</td>
<td style="text-align: center">{{item.applyPhone}}</td>
</tr>
{{# } }}
</script>
</table>
</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', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var $win = $(window);
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var classPlanId = top.restAjax.params(window.location.href).classPlanId;
// 初始化内容
function initData() {
top.restAjax.get(top.restAjax.path('api/classplan/get-report-exam-detail/{classPlanId}', [classPlanId]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
var examType = dataFormData['examType'];
if(examType == '1'){
dataFormData['examTypeName'] = '理论考试';
$('.practice-exam-div').hide();
}
if(examType == '2'){
dataFormData['examTypeName'] = '实操考试';
$('.theory-exam-div').hide();
}
if(examType == '3'){
dataFormData['examTypeName'] = '理论与实操考试';
}
dataFormData['theoryExam'] = dataFormData['theoryExamStartTime'] + ' 至 ' + dataFormData['theoryExamEndTime'];
dataFormData['theoryExamAddr'] = dataFormData['theoryExamAddress'];
dataFormData['practiceExam'] = dataFormData['practiceExamStartTime'] + ' 至 ' + dataFormData['practiceExamEndTime'];
dataFormData['practiceExamAddr'] = dataFormData['practiceExamAddress'];
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
}, function(code, data) {
top.dialog.msg(data.msg);
});
$('.layui-card').height($win.height());
}
initData();
//初始化参考人员列表
function initExamUser(){
top.restAjax.get(top.restAjax.path('api/classplan/list-exam-user/{classPlanId}', [classPlanId]), {}, null, function(code, data) {
laytpl(document.getElementById('examUserTemplate').innerHTML).render(data, function(html) {
document.getElementById('examUserTemplateBox').innerHTML = html;
});
form.render();
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
initExamUser();
// 提交表单
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) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
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 closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,153 @@
<!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="reason-block" class="layui-elem-quote" style="border-left: 5px solid #cc0200;display: none;"></blockquote>
<input type="hidden" id="orgId" name="orgId">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;">选择考试类型</label>
<div class="layui-input-block" style="margin-left: 160px;">
<select id="examType" name="examType" lay-verify="required">
<option value="1">理论考试</option>
<option value="2">实操考试</option>
<option value="3">理论与实操</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;"><span style="color: red">*</span>预计考试时间始</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="estimateStart" name="estimateStart" class="layui-input" value="" placeholder="请选择预计考试开始时间" readonly style="cursor: pointer;" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 160px;"><span style="color: red">*</span>预计考试时间止</label>
<div class="layui-input-block" style="margin-left: 160px;">
<input type="text" id="estimateEnd" name="estimateEnd" class="layui-input" value="" placeholder="请选择预计考试结束时间" readonly style="cursor: pointer;" lay-verify="required">
</div>
</div>
<div class="layui-form-item layui-layout-admin" id="submit-div" style="display: none;">
<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 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 $win = $(window);
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var classPlanId = top.restAjax.params(window.location.href).classPlanId;
// 初始化内容
function initData() {
top.restAjax.get(top.restAjax.path('api/classplan/get-report-exam-detail/{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');
var estimateStart = dataFormData['theoryExamStartTime'];
var estimateEnd = dataFormData['theoryExamEndTime'];
laydate.render({
elem: '#estimateStart',
format: 'yyyy-MM-dd',
value : estimateStart.substring(0,10)
});
laydate.render({
elem: '#estimateEnd',
format: 'yyyy-MM-dd',
value : estimateEnd.substring(0,10)
});
//判断审核状态0审核中
if(dataFormData['checkStatus'] == '0'){
$('#reason-block').text('审核中.....');
$('#reason-block').show();
}
//判断审核状态2审核不通过
if(dataFormData['checkStatus'] == '2'){
$('#submit-div').show();
$('#reason-block').text('未通过原因:' + dataFormData['reason']);
$('#reason-block').show();
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
$('.layui-card').height($win.height());
}
initData();
// 提交表单
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) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
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 closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -21,7 +21,7 @@
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<blockquote id="report-reason-block" class="layui-elem-quote" style="border-left: 5px solid #cc0200;display: none;">引用区域的文字</blockquote>
<blockquote id="report-reason-block" class="layui-elem-quote" style="border-left: 5px solid #cc0200;display: none;"></blockquote>
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md6">
@ -252,6 +252,7 @@
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
if(dataFormData['reportReason'] != ''){
$('#report-reason-block').text('报备未通过原因:' + dataFormData['reportReason']);
$('#report-reason-block').show();
}
initPlanStartTimeDateTime();