<!DOCTYPE html>
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
<head>
|
<th:block th:include="include :: header('测试人员名单列表')"/>
|
<th:block th:include="include :: bootstrap-fileinput-css"/>
|
</head>
|
<body class="gray-bg">
|
<div class="container-div">
|
<div class="row">
|
<div class="col-sm-12 search-collapse">
|
<form id="formId">
|
|
<div class="select-list">
|
<ul>
|
<input type="hidden" id="testId" name="testId" th:value="${packageTestId}"/>
|
<li>
|
[[#{jsp.exam.report.006}]]:
|
<!-- <select id="testIdShow" name="testIdShow" disabled="disabled">-->
|
<!-- <option th:each="dict : ${testPackages}" th:text="${dict['testName']}"-->
|
<!-- th:value="${dict['id']} " th:field="${packageTestId}" >-->
|
<!-- </option>-->
|
<!-- </select>-->
|
<input type="text" id="testIdSh" name="testIdSh" readonly th:value="${packageTestName}">
|
</li>
|
<li>
|
<p>[[#{basis.name}]]</p>
|
<input type="text" name="memberName"/>
|
</li>
|
<!--<li>
|
<p>[[#{jsp.testPackage.firstName}]]</p>
|
<input type="text" name="firstName"/>
|
</li>
|
<li>
|
<p>[[#{jsp.testPackage.lastName}]]</p>
|
<input type="text" name="lastName"/>
|
</li>-->
|
<li>
|
<p>[[#{jsp.testPackage.email}]]</p>
|
<input type="text" name="memberEmail"/>
|
</li>
|
<li>
|
<p>[[#{jsp.system.dept.002}]]:</p>
|
<input type="text" name="memberDept"/>
|
</li>
|
<li>
|
<p>[[#{jsp.system.user.profile.003}]]:</p>
|
<input type="text" name="memberPhone"/>
|
</li>
|
<li>
|
<p>[[#{basis.state}]]:</p>
|
<select name="status" th:with="type=${@dict.getType('test_member_status')}">
|
<option value="">All</option>
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
|
th:value="${dict.dictValue}"></option>
|
</select>
|
</li>
|
<li>
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
|
class="fa fa-search"></i> [[#{basis.search}]]</a>
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
|
class="fa fa-refresh"></i> [[#{basis.reset}]]</a>
|
</li>
|
</ul>
|
</div>
|
</form>
|
</div>
|
|
<div class="btn-group-sm" id="toolbar" role="group">
|
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="exam:testMember:add">
|
<i class="fa fa-plus"></i> [[#{basis.add}]]
|
</a>
|
<a style="background-color: #7b76b7;border-color: #7b76b7;color: #FFFFFF"
|
class="btn single disabled" onclick="$.operate.edit()"
|
shiro:hasPermission="exam:testMember:edit">
|
<i class="fa fa-edit"></i> [[#{basis.edit}]]
|
</a>
|
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()"
|
shiro:hasPermission="exam:testMember:remove">
|
<i class="fa fa-remove"></i> [[#{basis.del}]]
|
</a>
|
<a style="background-color: #a87242;border-color: #a87242;color: #FFFFFF"
|
class="btn" onclick="$.table.exportExcel()" shiro:hasPermission="exam:testMember:export">
|
<i class="fa fa-download"></i> [[#{basis.export}]]
|
</a>
|
<a class="btn btn-info" onclick="importExcel()" shiro:hasPermission="exam:testMember:batchimport">
|
<i class="fa fa-download"></i> [[#{jsp.exam.test_package.028}]]
|
</a>
|
<a class="btn" onclick="javascript:sendEmail()">
|
<i class="fa fa-mail-forward"></i> [[#{jsp.exam.test_package.029}]]
|
</a>
|
<a class="btn" onclick="javascript:sendSms()">
|
<i class="fa fa-send"></i> [[#{jsp.exam.test_package.030}]]
|
</a>
|
<a class="btn" onclick="opensendlog()" shiro:hasPermission="exam:sendtask:view">
|
<i class="fa fa-area-chart"></i> [[#{jsp.exam.test_package.031}]]
|
</a>
|
<a class="btn" onclick="openTestDetail()" shiro:hasPermission="exam:testProgress:view">
|
<i class="fa fa-eye"></i> [[#{jsp.exam.test_package.testinfo}]]
|
</a>
|
<a class="btn" onclick="exportExcelTestLink()" shiro:hasPermission="exam:testMember:export">
|
<i class="fa fa-download"></i> [[#{Export.Test.Link}]]
|
</a>
|
<a class="btn" onclick="opensendHrlog()" shiro:hasPermission="exam:hrEmailReport:view">
|
<i class="fa fa-area-chart"></i> [[#{view.hr.mail.sending.records}]]
|
</a>
|
</div>
|
<div class="col-sm-12 select-table table-striped">
|
<table id="bootstrap-table" data-mobile-responsive="true"></table>
|
</div>
|
|
</div>
|
</div>
|
|
<th:block th:include="include :: footer"/>
|
<th:block th:include="include :: summernote-js"/>
|
<th:block th:include="include :: bootstrap-fileinput-js"/>
|
<!-- 导入区域 -->
|
<script id="importTpl" type="text/template">
|
<form enctype="multipart/form-data" class="mt20 mb10">
|
<div class="col-xs-offset-1">
|
<!--<input type="file" id="file" name="file"/>-->
|
<div class="file-loading">
|
<input th:id="file" th:name="file" th:type="file" multiple>
|
</div>
|
<div class="mt10 pt5">
|
<!--<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据 -->
|
<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
|
class="fa fa-file-excel-o"></i> [[#{download.template}]]</a>
|
</div>
|
<font color="red" class="pull-left mt10">
|
[[#{prompt.information}]]
|
</font>
|
</div>
|
</form>
|
</script>
|
<script th:inline="javascript">
|
var editFlag = [[${@permission.hasPermi('exam:testMember:edit')}]];
|
var removeFlag = [[${@permission.hasPermi('exam:testMember:remove')}]];
|
var prefix = ctx + "exam/testMember";
|
var sms_type = [[${@dict.getType('sms_type')}]];
|
var email_status = [[${@dict.getType('email_status')}]];
|
var test_member_status = [[${@dict.getType('test_member_status')}]];
|
var testId = [[${packageTestId}]]
|
|
|
$(function () {
|
var options = {
|
url: prefix + "/list",
|
createUrl: prefix + "/add/" + $("#testId").val(),
|
updateUrl: prefix + "/edit/{id}",
|
removeUrl: prefix + "/remove",
|
exportUrl: prefix + "/export",
|
exportUrlLinkTest: prefix + "/exportLinkTest",
|
importUrl: prefix + "/importData/" + $("#testId").val(),
|
importTemplateUrl: prefix + "/importTemplate",
|
modalName: [[#{jsp.exam.test_package.032}]],
|
pageSize: 50,
|
pageList: [50, 100, 200],
|
columns: [{
|
checkbox: true
|
},
|
{
|
field: 'memberId',
|
title: [[#{jsp.exam.test_package.033}]],
|
visible: false
|
},
|
{
|
field: 'memberName',
|
title: [[#{jsp.exam.report.008}]]
|
},
|
{
|
field: 'memberDept',
|
title: [[#{jsp.system.dept.002}]],
|
sortable: true
|
|
},
|
{
|
field: 'memberEmail',
|
title: [[#{jsp.system.user.profile.005}]]
|
},
|
{
|
field: 'memberPhone',
|
title: [[#{jsp.system.user.profile.003}]]
|
},
|
{
|
field: 'testId',
|
title: [[#{jsp.exam.report.014}]],
|
visible: false
|
},
|
{
|
field: 'startTime',
|
title: [[#{jsp.exam.test_package.startTime}]]
|
},
|
{
|
field: 'endTime',
|
title: [[#{jsp.exam.test_package.endTime}]]
|
},
|
{
|
field: 'smsStatus',
|
title: [[#{jsp.exam.test_package.035}]],
|
formatter: function (value, row, index) {
|
return $.table.selectDictLabel(sms_type, value);
|
}
|
},
|
{
|
field: 'smsTime',
|
title: [[#{jsp.exam.test_package.036}]]
|
},
|
{
|
field: 'emailStatus',
|
title: [[#{jsp.exam.test_package.037}]],
|
formatter: function (value, row, index) {
|
return $.table.selectDictLabel(email_status, value);
|
}
|
},
|
{
|
field: 'emailTime',
|
title: [[#{jsp.exam.test_package.038}]]
|
},
|
{
|
field: 'status',
|
title: [[#{basis.state}]],
|
formatter: function (value, row, index) {
|
return $.table.selectDictLabel(test_member_status, value);
|
}
|
},
|
{
|
field: 'remark',
|
title: [[#{basis.remark}]]
|
},
|
{
|
field: 'token',
|
title: [[#{jsp.exam.test_package.testtoken}]],
|
visible: false
|
},{
|
field: 'hrEmailStatus',
|
title: [[#{hr.mailbox.status}]],
|
formatter: function (value, row, index) {
|
if (value == 1) {
|
return [[#{dict.ic138}]];
|
} else if (value == 2) {
|
return [[#{dict.ic140}]];
|
} else {
|
return "-";
|
}
|
},
|
visible: false
|
},
|
{
|
title: [[#{basis.operate}]],
|
align: 'center',
|
formatter: function (value, row, index) {
|
var actions = [];
|
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.memberId + '\')"><i class="fa fa-edit"></i>' + [[#{basis.edit}]] + '</a> ');
|
actions.push('<a style="background-color: #b459d4;border-color: #b459d4;color: #FFFFFF" class="btn btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="openMemberReport(' + row.memberId + "," + row.testId + ')"><i class="fa fa-edit"></i>[[#{view.report}]]</a> ');
|
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.memberId + '\')"><i class="fa fa-remove"></i>' + [[#{basis.del}]] + '</a>');
|
return actions.join('');
|
}
|
}]
|
};
|
$.table.init(options);
|
});
|
|
function opensendlog() {
|
var url = '/exam/sendtask/condition/' + testId;
|
$.modal.openTab([[#{menu.exam.send.view}]], url);
|
}
|
|
function opensendHrlog() {
|
var url = '/exam/report/hrSendlog/' + testId;
|
$.modal.openTab([[#{view.hr.mail.sending.records}]], url);
|
}
|
|
function openMemberReport(memberId, testId) {
|
var url = '/exam/report/member/reportView/' + testId + '/' + memberId;
|
$.modal.openTab([[#{menu.exam.send.view}]], url);
|
}
|
|
//发送邀请邮件
|
function sendEmail() {
|
var rows = $.table.selectColumns("memberId");
|
if (rows.length == 0) {
|
$.modal.alertWarning([[#{jsp.exam.test_package.039}]]);
|
return;
|
}
|
$.modal.confirm([[#{confirm.to.send.selected}]]+ rows.length + [[#{piece.of.data}]], function () {
|
var url = prefix + '/send/sendEmail/' + rows + "/" + testId;
|
$.modal.open([[#{send.invitation.email}]] + rows.length, url);
|
});
|
}
|
|
//发送邀请短信
|
function sendSms() {
|
var rows = $.table.selectColumns("memberId");
|
if (rows.length == 0) {
|
$.modal.alertWarning([[#{jsp.exam.test_package.11111}]]);
|
return;
|
}
|
$.modal.confirm([[#{confirm.to.send.selected.sms}]]+ rows.length + [[#{piece.of.data}]], function () {
|
var url = prefix + '/send/sendSms/' + rows + "/" + testId;
|
$.modal.open([[#{send.invitation.email}]] + rows.length , url);
|
});
|
}
|
|
// 查看测试进度
|
function openTestDetail() {
|
var tokens = $.table.selectColumns("token");
|
if (tokens.length == 0) {
|
$.modal.alertWarning([[#{please.select.the.user.to.view}]]);
|
return;
|
}
|
var url = '/exam/entTestDetail/testDetail/' + tokens;
|
$.modal.openTab([[#{jsp.exam.test_package.testinfo}]], url);
|
}
|
|
|
// 导出数据
|
function exportExcelTestLink(formId) {
|
$.modal.confirm($.common.queryMessage('jsp.exam.report.002') + $.table._option.modalName + "?", function() {
|
var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
|
$.modal.loading($.common.queryMessage('basic.tip4'));
|
$.post($.table._option.exportUrlLinkTest, $("#" + currentId).serializeArray(), function(result) {
|
if (result.code == web_status.SUCCESS) {
|
window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;
|
} else if (result.code == web_status.WARNING) {
|
$.modal.alertWarning(result.msg)
|
} else {
|
$.modal.alertError(result.msg);
|
}
|
$.modal.closeLoading();
|
});
|
});
|
}
|
|
function importExcel(formId) {
|
//alert($.common.queryMessage('basis.import') + $.table._option.modalName + $.common.queryMessage('basis.data'));
|
var currentId = $.common.isEmpty(formId) ? 'importTpl' : formId;
|
layer.open({
|
type: 1,
|
area: ['400px', '230px'],
|
fix: false,
|
//不固定
|
maxmin: true,
|
shade: 0.3,
|
title: $.common.queryMessage('basis.import') + $.table._option.modalName + $.common.queryMessage('basis.data'),
|
content: $('#' + currentId).html(),
|
btn: ['<i class="fa fa-check"></i> '+$.common.queryMessage('basis.import'), '<i class="fa fa-remove"></i> '+$.common.queryMessage('basis.cancel')],
|
// 弹层外区域关闭
|
shadeClose: true,
|
btn1: function(index, layero){
|
var file = layero.find('#file').val();
|
if (file == '' || (!$.common.endWith(file, '.xls') && !$.common.endWith(file, '.xlsx'))){
|
$.modal.msgWarning($.common.queryMessage('basic.tip3'));
|
return false;
|
}
|
var index = layer.load(2, {shade: false});
|
$.modal.disable();
|
var formData = new FormData();
|
formData.append("file", $('#file')[0].files[0]);
|
formData.append("updateSupport", $("input[name='updateSupport']").is(':checked'));
|
var levelOptions=$("#importReportType option:selected");
|
formData.append("importReportType", levelOptions.val());
|
$.ajax({
|
url: $.table._option.importUrl,
|
data: formData,
|
cache: false,
|
contentType: false,
|
processData: false,
|
type: 'POST',
|
success: function (result) {
|
if (result.code == web_status.SUCCESS) {
|
$.modal.closeAll();
|
$.modal.alertSuccess(result.msg);
|
$.table.refresh();
|
} else if (result.code == web_status.WARNING) {
|
layer.close(index);
|
$.modal.enable();
|
$.modal.alertWarning(result.msg)
|
} else {
|
layer.close(index);
|
$.modal.enable();
|
$.modal.alertError(result.msg);
|
}
|
}
|
});
|
},
|
success: function () {
|
$("#file").fileinput({
|
'theme': 'explorer-fas',
|
overwriteInitial: false,
|
initialPreviewAsData: true,
|
showUpload:false,
|
showPreview:false,
|
showBrowse:true
|
});
|
}
|
});
|
|
}
|
|
|
</script>
|
</body>
|
</html>
|