2020-10-12 14:39:23 +09:00
|
|
|
@model NP.Model.VMCRoom
|
|
|
|
|
@{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
<div class="lrnSch">
|
|
|
|
|
<a href="#" onclick="showatt()">출결이력조회</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lctcWeek lrnList">
|
2020-12-03 09:00:31 +09:00
|
|
|
<input type="hidden" id="mobile" name="mobile" value="@(ViewBag.Mobile)" />
|
2020-10-12 14:39:23 +09:00
|
|
|
<table>
|
|
|
|
|
<tbody>
|
|
|
|
|
@foreach (var d in Model.LectInnings)
|
|
|
|
|
{
|
|
|
|
|
<tr>
|
2020-12-16 13:11:04 +09:00
|
|
|
<th style="display:none"><em style="background:url(@(d.isonline == 0 ? "/img/lecture/week_thumb02.jpg" : (string.IsNullOrEmpty(d.tasteurl)?"/img/lecture/week_thumb01.jpg":(Model.Files + d.tasteurl))))no-repeat center center"></em></th>
|
2020-10-12 14:39:23 +09:00
|
|
|
<td>
|
|
|
|
|
<h5>[@(d.iseq)회] @d.ititle</h5>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt>@(d.isonline == 0 && d.istatus == 2 ? "출석완료" : d.isonline == 0 && d.idate < DateTime.Now ? "결석" : d.isonline == 0 ? "출석전" : d.stime == null ? "학습전(0%)" : d.istatus == 2 ? "학습완료" : string.Format("학습중({0}%)", d.sttime > 0 ? (d.totstudy * 100 / (d.sttime * 60)) : 0))</dt>
|
|
|
|
|
<dd><span>@(d.isonline == 0 ? "강의시작일" : "강의기간")</span> : @(d.isonline == 0 ? string.Format("{0} {1}:{2}", d.idate.ToString("MM/dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2)) : (d.sstime.ToString("MM/dd") + " ~ " + d.setime.ToString("MM/dd")))</dd>
|
|
|
|
|
@if (d.isonline == 0)
|
|
|
|
|
{
|
|
|
|
|
<dd style="margin-left:10px;"><span style="color:#222">강의실</span> : @(d.icontent ?? "-")</dd>
|
|
|
|
|
}
|
|
|
|
|
</dl>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="lctc1">
|
|
|
|
|
@if (d.fileno > 0)
|
|
|
|
|
{
|
|
|
|
|
<a href="/focommon/downfile?fno=@d.fileno" class="lctcBook">교안보기</a>
|
|
|
|
|
}
|
|
|
|
|
@if (d.fileno < 1 && !string.IsNullOrEmpty(d.tfurl))
|
|
|
|
|
{
|
|
|
|
|
<a href="@d.tfurl" target="_blank" class="lctcBook">교안보기</a>
|
|
|
|
|
}
|
|
|
|
|
</li>
|
2020-12-24 08:21:34 +09:00
|
|
|
<li class="lctc2">
|
|
|
|
|
@if (d.isonline == 1)
|
|
|
|
|
{
|
|
|
|
|
<a href="#" onclick="playerOpen(@d.cmino, @(d.sstime < DateTime.Now && d.setime > DateTime.Now ? 1 : 0), @(d.isseq == 1 && d.iseq != 1 && d.preistatus < 2 ? 0 : 1), @(Model.intval > 5 && d.isrebate == 1 ? 0 : 1));" class="lctcStdy">학습하기</a>
|
|
|
|
|
}
|
|
|
|
|
</li>
|
2020-10-12 14:39:23 +09:00
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lctPop lctPopFull" id="pop1" style="display: none;">
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="lctPopWrap wdth1140">
|
|
|
|
|
<div class="lctPopTitle">
|
|
|
|
|
<h5>개인별 출결이력조회</h5>
|
|
|
|
|
<a href="#" onclick="lctPopClose();"></a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lctPopScroll">
|
|
|
|
|
<div class="lctPopCont">
|
|
|
|
|
|
|
|
|
|
<ul class="lctpTab col2">
|
|
|
|
|
<li class="current"><a href="javascript:lctpTab('01');">출결이력</a></li>
|
|
|
|
|
<li><a href="javascript:lctpTab('02');">활동이력</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<div class="lctpCont" id="lctpCont01">
|
|
|
|
|
<table class="atdTable">
|
|
|
|
|
<colgroup>
|
|
|
|
|
<col width="60px;" />
|
|
|
|
|
<col width="60px;" />
|
|
|
|
|
<col width="200px;" />
|
|
|
|
|
<col width="100px;" />
|
|
|
|
|
<col width="130px;" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
<col width="90px;" />
|
|
|
|
|
</colgroup>
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>회차</th>
|
|
|
|
|
<th>방식</th>
|
|
|
|
|
<th>강의주제</th>
|
|
|
|
|
<th>인정시간</th>
|
|
|
|
|
<th>학습시간</th>
|
|
|
|
|
<th>학습시작일(IP)</th>
|
|
|
|
|
<th>학습종료일(IP)</th>
|
|
|
|
|
<th>상태</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody1"></tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lctpCont" id="lctpCont02">
|
|
|
|
|
<div class="atdDate">
|
|
|
|
|
<input type="text" class="datepicker" placeholder="yyyy-MM-dd" value="@DateTime.Now.ToString("yyyy-MM-01")" id="d1" readonly />
|
|
|
|
|
<span>~</span>
|
|
|
|
|
<input type="text" class="datepicker" placeholder="yyyy-MM-dd" value="@DateTime.Now.ToString("yyyy-MM-dd")" id="d2" readonly />
|
|
|
|
|
<a href="#" onclick="pagelog()">검색</a>
|
|
|
|
|
</div>
|
|
|
|
|
<table class="atdTable">
|
|
|
|
|
<colgroup>
|
|
|
|
|
<col width="200px;" />
|
|
|
|
|
<col width="160px;" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
</colgroup>
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>접속시간</th>
|
|
|
|
|
<th>접속IP</th>
|
|
|
|
|
<th>페이지</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody2"></tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div><!-- clsPopCont -->
|
|
|
|
|
</div>
|
|
|
|
|
</div><!-- clsPopWrap -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2020-12-03 09:00:31 +09:00
|
|
|
@Html.Partial("./Partial/MobileChk", null, new ViewDataDictionary { { "bindmethod", "cbchkmobile" } })
|
2020-10-12 14:39:23 +09:00
|
|
|
@section scriptsHeader{
|
|
|
|
|
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
2020-12-03 09:00:31 +09:00
|
|
|
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
@section scripts{
|
|
|
|
|
<script>
|
2020-12-03 09:00:31 +09:00
|
|
|
var _cmino = 0;
|
2020-10-12 14:39:23 +09:00
|
|
|
$(document).ready(function () {
|
|
|
|
|
$("body").on("click", ".atdOpen", function () {
|
|
|
|
|
var atdNum = $(this).attr('atdOpen');
|
|
|
|
|
if ($(this).is('.on')) {
|
|
|
|
|
$('.atdOpen').removeClass('on');
|
|
|
|
|
$('.atdDown').css('display', 'none');
|
|
|
|
|
} else {
|
|
|
|
|
$('.atdOpen').removeClass('on');
|
|
|
|
|
$('.atdDown').css('display', 'none');
|
|
|
|
|
$(this).addClass('on');
|
|
|
|
|
$('.atdDown' + atdNum).css('display', 'table-row');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
$('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
|
|
|
|
|
});
|
|
|
|
|
function playerOpen(cmino, timeflag, preflag, notoverflag) {
|
|
|
|
|
if (timeflag < 1) {
|
|
|
|
|
msg("학습기간이 아닙니다.");
|
|
|
|
|
} else if (preflag < 1) {
|
|
|
|
|
msg("이전 회차 학습을 완료한 이후 학습이 가능합니다.");
|
|
|
|
|
} else if (notoverflag < 1) {
|
|
|
|
|
msg("일일 최대 학습회차는 6차시입니다.");
|
|
|
|
|
} else {
|
2020-12-03 09:00:31 +09:00
|
|
|
_cmino = cmino;
|
|
|
|
|
chkcontent();
|
|
|
|
|
//viewcontents(cmino, false, @Model.croomlectno);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function chkcontent() {
|
|
|
|
|
capp("/fcommon/attcertcheck", {lectno : @Model.croomlectno}, "cbchkcontent");
|
|
|
|
|
}
|
|
|
|
|
function cbchkcontent() {
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
if (capResult.obj == 1) {
|
|
|
|
|
viewcontents(_cmino, false,@Model.croomlectno);
|
|
|
|
|
} else if (capResult.obj == 2) {
|
|
|
|
|
viewcontents(_cmino, false,@Model.croomlectno);
|
|
|
|
|
} else {
|
|
|
|
|
confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","chkmobile()");
|
|
|
|
|
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","showpop()");
|
|
|
|
|
//confirmtoggle(true, "해당 과정의 학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?","mobilechkview('MOBI')");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
msg("휴대폰 번호가 공란입니다.<br/>정보수정을 통해 번호를 입력해주세요.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function chkmobile() {
|
|
|
|
|
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
|
|
|
|
|
setv("mobile", formatmobile(val("mobile")));
|
|
|
|
|
if (!ismobilenumber(val("mobile"))) {
|
|
|
|
|
focus("mobile");
|
|
|
|
|
msg("핸드폰번호를 확인해주세요.");
|
|
|
|
|
} else {
|
|
|
|
|
capp("/focommon/sendlakey", { lectno: @Model.croomlectno, mobile: $("#mobile").val()}, "sendkey");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function cbchkmobile() {
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
//msg("인증이 성공하였습니다.\n 확인 버튼을 클릭하시면 학습이 가능합니다.");
|
|
|
|
|
$("#mobile").css("background", "#ddd");
|
|
|
|
|
mobilechkclose();
|
|
|
|
|
viewcontents(_cmino, false,@Model.croomlectno);
|
|
|
|
|
} else if (capResult.code == 1) {
|
|
|
|
|
msg("유효시간이 만료되었습니다.\n 창을 닫고 인증을 다시 진행해주세요.");
|
|
|
|
|
} else {
|
|
|
|
|
msg("인증이 실패하였습니다.\n 다시 확인해주세요.");
|
2020-10-12 14:39:23 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function lctpTab(num) {
|
|
|
|
|
$('.lctpCont').hide();
|
|
|
|
|
$('.lctpTab li').removeClass('current');
|
|
|
|
|
$('.lctpTab li:nth-child(' + num + ')').addClass('current');
|
|
|
|
|
if (num == '02') {
|
|
|
|
|
if ($("#tbody2 tr").length < 1) {
|
|
|
|
|
pagelog();
|
|
|
|
|
} else {
|
|
|
|
|
$("#lctpCont" + num).fadeIn();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$('#lctpCont' + num).fadeIn();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function pagelog() {
|
|
|
|
|
capp("/fcommon/pagelogs", { d1: val("d1"), d2: val("d2") }, "cbpagelog");
|
|
|
|
|
}
|
|
|
|
|
function cbpagelog() {
|
|
|
|
|
$("#tbody2").html("");
|
|
|
|
|
$.each(capResult.obj, function (i, d) {
|
|
|
|
|
$("#tbody2").append("<tr><td>" + d.cdtymdhm+"</td><td>" + d.uip + "</td><td class=\"left\">" + d.loginfo + "</td></tr>");
|
|
|
|
|
});
|
|
|
|
|
if (capResult.obj.length < 1) {
|
|
|
|
|
$("#tbody2").append("<tr><td colspan=\"3\">-활동이력이 없습니다.</td></tr>");
|
|
|
|
|
}
|
|
|
|
|
$("#lctpCont02").fadeIn();
|
|
|
|
|
}
|
|
|
|
|
function lctPopClose() {
|
|
|
|
|
$('#pop1').hide();
|
|
|
|
|
$('html, body').removeClass('lock');
|
|
|
|
|
}
|
|
|
|
|
function showatt() {
|
|
|
|
|
$("#tbody1").html("");
|
|
|
|
|
capp("/fcommon/getattend", { lectno: @Model.croomlectno}, "cbgetatt");
|
|
|
|
|
}
|
|
|
|
|
function cbgetatt() {
|
|
|
|
|
var h = capResult.obj.h;
|
|
|
|
|
if (h.length > 0) {
|
|
|
|
|
$.each(h, function (i, hd) {
|
|
|
|
|
if (hd.isonline == 1) {
|
|
|
|
|
$("#tbody1").append("" +
|
|
|
|
|
"<tr>"
|
|
|
|
|
+ "<td>" + hd.iseq + "</td>"
|
|
|
|
|
+ "<td>" + hd.isonlinename2 + "</td>"
|
|
|
|
|
+ "<td>" + hd.ititle + "</td>"
|
|
|
|
|
+ "<td>" + hd.atimename + "</td>"
|
|
|
|
|
+ (getdb(hd.istatus)=="0" || getdb(hd.istatus) != "" ? ("<td><span class=\"atdOpen\" atdOpen=\"" + i + "\">" + hd.litotstudymin + "분(" + hd.ccount + ")</span></td>"
|
|
|
|
|
+ "<td>" + hd.listimeymdhms + " <span class=\"atdIp\">(" + hd.liispcsname + ":" + hd.lisips + ")</span></td>"
|
|
|
|
|
+ "<td>" + hd.lietimeymdhms + " <span class=\"atdIp\">(" + hd.liispcename + ":" + hd.lieips + ")</span></td>") : "<td>-</td><td>-</td><td>-</td>")
|
|
|
|
|
+"<td>" + hd.istatusname2 + "</td></tr>");
|
|
|
|
|
if (getdb(hd.istatus) != "" || getdb(hd.istatus)=="0") {
|
|
|
|
|
$.each(capResult.obj.d, function (i2, d) {
|
|
|
|
|
if (d.iseq == hd.iseq) {
|
|
|
|
|
$("#tbody1").append("<tr class=\"atdDown atdDown" + i + "\">"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td > "
|
|
|
|
|
+ "<td>" + d.totstudymin2 + "(" + d.pseqname + ")</td>"
|
|
|
|
|
+ "<td>" + d.stimeymdhms + " <span class=\"atdIp\">(" + d.ispcsname + ":" + d.sip + ")</span></td>"
|
|
|
|
|
+ "<td>" + d.etimeymdhms + " <span class=\"atdIp\">(" + d.eip + ")</span></td>"
|
|
|
|
|
+"<td>-</td ></tr > ");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$("#tbody1").append("" +
|
|
|
|
|
"<tr><td>" + hd.iseq + "</td><td>" + hd.isonlinename2 + "</td><td>" + hd.ititle + "</td><td>-</td>" +
|
|
|
|
|
"<td>-</td><td>-</td><td>-</td><td>" + hd.istatusname + "</td></tr>");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
$('html, body').addClass('lock'); lctpTab('01'); $('#pop1').show();
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
}
|