@@ -3,6 +3,9 @@ using System.Data; | |||||
using Learun.Application.TwoDevelopment.EducationalAdministration; | using Learun.Application.TwoDevelopment.EducationalAdministration; | ||||
using System.Web.Mvc; | using System.Web.Mvc; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using Learun.Application.Base.SystemModule; | |||||
using System; | |||||
using System.Linq; | |||||
namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | ||||
{ | { | ||||
@@ -16,6 +19,11 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
public class ScoreCheckInfoController : MvcControllerBase | public class ScoreCheckInfoController : MvcControllerBase | ||||
{ | { | ||||
private ScoreCheckInfoIBLL scoreCheckInfoIBLL = new ScoreCheckInfoBLL(); | private ScoreCheckInfoIBLL scoreCheckInfoIBLL = new ScoreCheckInfoBLL(); | ||||
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); | |||||
private StuEncourgementIBLL stuEncourgementIBLL = new StuEncourgementBLL(); | |||||
private StuPunishmentIBLL stuPunishmentIBLL = new StuPunishmentBLL(); | |||||
private StuScoreIBLL stuScoreIBLL = new StuScoreBLL(); | |||||
private StudentCertificateIBLL studentCertificateIBLL = new StudentCertificateBLL(); | |||||
#region 视图功能 | #region 视图功能 | ||||
@@ -64,6 +72,42 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
{ | { | ||||
return View(); | return View(); | ||||
} | } | ||||
/// <summary> | |||||
/// 学业成绩考核记载表 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult RecordTablePrint(string keyValue) | |||||
{ | |||||
var entity = scoreCheckInfoIBLL.GetScoreCheckInfoEntity(keyValue); | |||||
if (entity == null) | |||||
{ | |||||
entity = new ScoreCheckInfoEntity(); | |||||
} | |||||
//意见盖章 | |||||
var annexesFileEntity = annexesFileIBLL.GetEntityByFolderId(entity.FilePath); | |||||
if (annexesFileEntity != null) | |||||
{ | |||||
entity.FilePath = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource")-1); | |||||
} | |||||
else | |||||
{ | |||||
entity.FilePath = ""; | |||||
} | |||||
//职业资格证书(-表中无学年学期字段) | |||||
entity.StudentCertificateList = studentCertificateIBLL.GetList(entity.StuNo).OrderByDescending(x=>x.CreateTime).ToList(); | |||||
//奖罚情况 | |||||
entity.StuEncourgementList = stuEncourgementIBLL.GetEncourgementListByStuNo(entity.AcademicYearNo,entity.Semester,entity.StuNo).ToList(); | |||||
entity.StuPunishmentList = stuPunishmentIBLL.GetPunishmentListByStuNo(entity.AcademicYearNo, entity.Semester, entity.StuNo).ToList(); | |||||
//学习成绩 | |||||
entity.StuScoreList = stuScoreIBLL.GetAllScoreListByStuNo(entity.StuNo).Where(x => x.AcademicYearNo ==entity.AcademicYearNo && x.Semester == entity.Semester && x.CheckMark=="1").ToList(); | |||||
//考勤 | |||||
//todo: | |||||
return View(entity); | |||||
} | |||||
#endregion | #endregion | ||||
#region 获取数据 | #region 获取数据 | ||||
@@ -13,12 +13,12 @@ | |||||
</div> | </div> | ||||
<div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | <div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | ||||
<div class="lr-form-item-title">学号<font face="宋体">*</font></div> | <div class="lr-form-item-title">学号<font face="宋体">*</font></div> | ||||
<input id="StuNo" type="text" class="form-control" readonly="readonly"/> | |||||
<input id="StuNo" type="text" class="form-control" readonly="readonly" /> | |||||
</div> | </div> | ||||
<div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | <div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | ||||
<div class="lr-form-item-title">姓名<font face="宋体">*</font></div> | <div class="lr-form-item-title">姓名<font face="宋体">*</font></div> | ||||
<input id="StuName" type="text" class="form-control" readonly="readonly" /> | <input id="StuName" type="text" class="form-control" readonly="readonly" /> | ||||
</div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | <div class="col-xs-6 lr-form-item" data-table="ScoreCheckInfo"> | ||||
<div class="lr-form-item-title">专业部<font face="宋体">*</font></div> | <div class="lr-form-item-title">专业部<font face="宋体">*</font></div> | ||||
<div id="DeptNo" isvalid="yes" checkexpession="NotNull" readonly="readonly"></div> | <div id="DeptNo" isvalid="yes" checkexpession="NotNull" readonly="readonly"></div> | ||||
@@ -37,6 +37,12 @@ | |||||
</div> | </div> | ||||
<div class="col-xs-12 lr-form-item" data-table="ScoreCheckInfo"> | <div class="col-xs-12 lr-form-item" data-table="ScoreCheckInfo"> | ||||
<div class="lr-form-item-title">班主任评语<font face="宋体">*</font></div> | <div class="lr-form-item-title">班主任评语<font face="宋体">*</font></div> | ||||
<textarea id="TeacherDemo" class="form-control" style="height: 100px;"></textarea> </div> | |||||
<textarea id="TeacherDemo" class="form-control" style="height: 100px;"></textarea> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item" data-table="ScoreCheckInfo"> | |||||
<div class="lr-form-item-title">意见盖章</div> | |||||
<div id="FilePath"></div> | |||||
</div> | |||||
</div> | </div> | ||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/ScoreCheckInfo/FormTeach.js") | @Html.AppendJsFile("/Areas/EducationalAdministration/Views/ScoreCheckInfo/FormTeach.js") |
@@ -34,6 +34,7 @@ var bootstrap = function ($, learun) { | |||||
$('#MajorNo').lrDataSourceSelect({ code: 'CdMajorInfo', value: 'majorno', text: 'majorno' }); | $('#MajorNo').lrDataSourceSelect({ code: 'CdMajorInfo', value: 'majorno', text: 'majorno' }); | ||||
$('#ClassNo').lrDataSourceSelect({ code: 'bjsj', value: 'classno', text: 'classname' }); | $('#ClassNo').lrDataSourceSelect({ code: 'bjsj', value: 'classno', text: 'classname' }); | ||||
$('#OperatingLevel').lrDataItemSelect({ code: 'OperatingLevel' }); | $('#OperatingLevel').lrDataItemSelect({ code: 'OperatingLevel' }); | ||||
$('#FilePath').lrUploader(); | |||||
}, | }, | ||||
initData: function () { | initData: function () { | ||||
if (!!keyValue) { | if (!!keyValue) { | ||||
@@ -56,8 +56,7 @@ | |||||
<a id="lr_Coordinator" class="btn btn-default"><i class="fa fa-plus"></i> 教师评语</a> | <a id="lr_Coordinator" class="btn btn-default"><i class="fa fa-plus"></i> 教师评语</a> | ||||
<a id="lr_submit" class="btn btn-default"><i class="fa fa-plus"></i> 提交</a> | <a id="lr_submit" class="btn btn-default"><i class="fa fa-plus"></i> 提交</a> | ||||
<a id="lr_lock" class="btn btn-default"><i class="fa fa-plus"></i> 审核</a> | <a id="lr_lock" class="btn btn-default"><i class="fa fa-plus"></i> 审核</a> | ||||
<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 打印</a> | |||||
@*<a id="lr_unlock" class="btn btn-default"><i class="fa fa-plus"></i> 去审核</a>*@ | |||||
<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 学业成绩考核记载表打印</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -144,19 +144,15 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
} | } | ||||
}); | }); | ||||
// 打印 | |||||
$('#lr_print').on('click', function () { | |||||
$('#gridtable').jqprintTable(); | |||||
}); | |||||
// 审核 | // 审核 | ||||
$('#lr_lock').on('click', function () { | $('#lr_lock').on('click', function () { | ||||
var keyValue = $('#gridtable').jfGridValue('ID'); | var keyValue = $('#gridtable').jfGridValue('ID'); | ||||
if (learun.checkrow(keyValue)) { | if (learun.checkrow(keyValue)) { | ||||
var CheckMark = $('#gridtable').jfGridValue('CheckStatus'); | var CheckMark = $('#gridtable').jfGridValue('CheckStatus'); | ||||
if (CheckMark.indexOf('1') > -1 || CheckMark.indexOf('2') > -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目,请勿重复提交!"); | |||||
return; | |||||
} | |||||
//if (CheckMark.indexOf('1') > -1 || CheckMark.indexOf('2') > -1) { | |||||
// learun.alert.warning("选中记录中包含已审核项目,请勿重复提交!"); | |||||
// return; | |||||
//} | |||||
learun.layerForm({ | learun.layerForm({ | ||||
id: 'formTeach', | id: 'formTeach', | ||||
title: '编辑', | title: '编辑', | ||||
@@ -177,11 +173,11 @@ var bootstrap = function ($, learun) { | |||||
learun.alert.warning("只能选择一条记录进行编辑!"); | learun.alert.warning("只能选择一条记录进行编辑!"); | ||||
return; | return; | ||||
} | } | ||||
var CheckMark = $('#gridtable').jfGridValue('CheckStatus'); | |||||
if (CheckMark.indexOf('1') > -1 || CheckMark.indexOf('2') > -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目,请勿重复提交!"); | |||||
return; | |||||
} | |||||
//var CheckMark = $('#gridtable').jfGridValue('CheckStatus'); | |||||
//if (CheckMark.indexOf('1') > -1 || CheckMark.indexOf('2') > -1) { | |||||
// learun.alert.warning("选中记录中包含已审核项目,请勿重复提交!"); | |||||
// return; | |||||
//} | |||||
learun.layerForm({ | learun.layerForm({ | ||||
id: 'formTeach', | id: 'formTeach', | ||||
title: '编辑', | title: '编辑', | ||||
@@ -226,10 +222,28 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
} | } | ||||
}); | }); | ||||
//学业成绩考核记载表打印 | |||||
$('#lr_print').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('ID'); | |||||
if (learun.checkrow(keyValue)) { | |||||
learun.layerForm({ | |||||
id: 'recordtableprint', | |||||
title: '学业成绩考核记载表', | |||||
url: top.$.rootUrl + '/EducationalAdministration/ScoreCheckInfo/RecordTablePrint?keyValue=' + keyValue, | |||||
width: 1200, | |||||
height: 800, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}, | }, | ||||
// 初始化列表 | // 初始化列表 | ||||
initGird: function () { | initGird: function () { | ||||
$('#gridtable').lrAuthorizeJfGrid({ | |||||
$('#gridtable').jfGrid({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/ScoreCheckInfo/GetPageList', | url: top.$.rootUrl + '/EducationalAdministration/ScoreCheckInfo/GetPageList', | ||||
headData: [ | headData: [ | ||||
{ label: "学年", name: "AcademicYearNo", width: 60, align: "left" }, | { label: "学年", name: "AcademicYearNo", width: 60, align: "left" }, | ||||
@@ -275,6 +289,24 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
{ label: "班主任评语", name: "TeacherDemo", width: 100, align: "left" }, | |||||
{ | |||||
label: "评语日期", name: "TDate", width: 130, align: "left" | |||||
}, | |||||
{ | |||||
label: "评语填写人", name: "Signed", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('custmerData', { | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'BaseUser', | |||||
key: value, | |||||
keyId: 'f_account', | |||||
callback: function (_data) { | |||||
callback(_data['f_realname']); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ | { | ||||
label: "操作等级", name: "OperatingLevel", width: 60, align: "left", | label: "操作等级", name: "OperatingLevel", width: 60, align: "left", | ||||
formatterAsync: function (callback, value, row, op, $cell) { | formatterAsync: function (callback, value, row, op, $cell) { | ||||
@@ -287,50 +319,29 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
{ label: "学校教务部门审核意见", name: "CheckOpinion", width: 150, align: "left" }, | |||||
{ | { | ||||
label: "评语填写人", name: "Signed", width: 100, align: "left", | |||||
label: "意见日期", name: "CheckTime", width: 130, align: "left" | |||||
}, | |||||
{ | |||||
label: "意见填写人", name: "CheckUser", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | formatterAsync: function (callback, value, row, op, $cell) { | ||||
learun.clientdata.getAsync('custmerData', { | learun.clientdata.getAsync('custmerData', { | ||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'EmpInfo', | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'BaseUser', | |||||
key: value, | key: value, | ||||
keyId: 'empno', | |||||
keyId: 'f_userid', | |||||
callback: function (_data) { | callback: function (_data) { | ||||
callback(_data['empname']); | |||||
callback(_data['f_realname']); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
{ label: "班主任评语", name: "TeacherDemo", width: 200, align: "left" }, | |||||
{ | |||||
label: "评价时间", name: "TDate", width: 100, align: "left", | |||||
formatter: function (cellvalue) { | |||||
return learun.formatDate(cellvalue, 'yyyy-MM-dd'); | |||||
} | |||||
}, | |||||
{ label: "学校教务部门审核意见", name: "CheckOpinion", width: 200, align: "left" }, | |||||
{ | |||||
label: "审核时间", name: "CheckTime", width: 100, align: "left", | |||||
formatter: function (cellvalue) { | |||||
return learun.formatDate(cellvalue, 'yyyy-MM-dd'); | |||||
} | |||||
}, | |||||
{ | |||||
label: "审核状态", name: "CheckStatus", width: 100, align: "left", | |||||
formatter: function (cellvalue, row) { | |||||
if (cellvalue == 1) { | |||||
return '<span class=\"label label-warning\" >审核中</span>'; | |||||
} else if (cellvalue == 2) { | |||||
return '<span class=\"label label-success\" >审核通过</span>'; | |||||
} else { | |||||
return '<span class=\"label label-default\" >草稿</span>'; | |||||
} | |||||
} | |||||
}, | |||||
], | ], | ||||
mainId: 'ID', | mainId: 'ID', | ||||
isPage: true, | isPage: true, | ||||
sidx: 'CreateTime desc', | |||||
isMultiselect: true, | |||||
sidx: 'AcademicYearNo desc,Semester desc,StuNo asc', | |||||
isMultiselect: false, | |||||
}); | }); | ||||
page.search(); | page.search(); | ||||
}, | }, | ||||
@@ -0,0 +1,436 @@ | |||||
@model Learun.Application.TwoDevelopment.EducationalAdministration.ScoreCheckInfoEntity | |||||
@{ | |||||
ViewBag.Title = "学业成绩考核记载表"; | |||||
Layout = null; | |||||
} | |||||
<!DOCTYPE html> | |||||
<html lang="en"> | |||||
<head> | |||||
<meta charset="UTF-8"> | |||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||||
<title>Document</title> | |||||
</head> | |||||
<body> | |||||
<div style="text-align: right;"> | |||||
<button id="print">打印表格</button> | |||||
</div> | |||||
<div class="table-page"> | |||||
<h1 class="table-title">学生成绩考核记载表( @Model.AcademicYearNo 学年,第 @Model.Semester 学期)</h1> | |||||
<table id="table" border="1" cellspacing="0" cellpadding="10" width="100%" align="center"> | |||||
<tr> | |||||
<td rowspan="9"> | |||||
<div style="width:20px;display: inline-block;">学业成绩</div> | |||||
</td> | |||||
<td rowspan="2">学科名称</td> | |||||
<td colspan="2">成 绩</td> | |||||
<td rowspan="2">学科名称</td> | |||||
<td colspan="2">成 绩</td> | |||||
</tr> | |||||
<tr> | |||||
<td>正考</td> | |||||
<td>补考</td> | |||||
<td>正考</td> | |||||
<td>补考</td> | |||||
</tr> | |||||
<tr> | |||||
<td>1</td> | |||||
<td>1</td> | |||||
<td>1</td> | |||||
<td>2</td> | |||||
<td>2</td> | |||||
<td>2</td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td colspan="2">学校教务部门审核意见</td> | |||||
<td colspan="5"> | |||||
<div style="text-align:left;">@Model.CheckOpinion</div> | |||||
<div class="text-right" style="padding-right: 64px;margin-top: 10px;position:relative;">(盖 章) | |||||
<img id="FilePath" src="" style="position:absolute;bottom:0;right:5px;width:50px;height:30px;"/> | |||||
</div> | |||||
<div class="text-right" style="padding-right: 8px;"> | |||||
@{ | |||||
if (Model.CheckTime.HasValue) | |||||
{ | |||||
<span>@Model.CheckTime.Value.Year 年 @Model.CheckTime.Value.Month 月 @Model.CheckTime.Value.Day 日</span> | |||||
} | |||||
else | |||||
{ | |||||
<span>年 月 日</span> | |||||
} | |||||
} | |||||
</div> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td rowspan="2">考勤</td> | |||||
<td style="padding: 6px;">事假(节)</td> | |||||
<td colspan="5" style="border: none;padding:0"> | |||||
<table border="1" cellspacing="0" cellpadding="6" width="100%" align="center" | |||||
style="border-width: 0px;"> | |||||
<tr> | |||||
<td>病假(节)</td> | |||||
<td>旷课(节)</td> | |||||
<td>迟到(次)</td> | |||||
<td>早退(次)</td> | |||||
</tr> | |||||
</table> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td></td> | |||||
<td colspan="5" style="border: none;padding:0"> | |||||
<table border="1" cellspacing="0" cellpadding="10" width="100%" align="center" | |||||
style="border-width: 0px;"> | |||||
<tr> | |||||
<td> </td> | |||||
<td> </td> | |||||
<td> </td> | |||||
<td> </td> | |||||
</tr> | |||||
</table> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td colspan="2">职业资格证书获得情况</td> | |||||
<td colspan="5"> | |||||
<div style="text-align:left"> | |||||
@foreach (var item in Model.StudentCertificateList) | |||||
{ | |||||
<span>@(Model.StudentCertificateList.IndexOf(item)+1)、@item.SCName @item.CreateTime.Value.ToShortDateString().Replace("/", "-")</span><br> | |||||
} | |||||
</div> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td colspan="2">奖 惩 记 载</td> | |||||
<td colspan="5"> | |||||
<div style="height: 42px;"> | |||||
@foreach (var item in Model.StuEncourgementList) | |||||
{ | |||||
<div class="tableTxt">@(Model.StuEncourgementList.IndexOf(item) + 1)、@item.EncourgeDate.Value.ToShortDateString().Replace("/", "-") @item.EncourgeName @item.Fee</div> | |||||
} | |||||
@foreach (var item in Model.StuPunishmentList) | |||||
{ | |||||
<div class="tableTxt">@(Model.StuPunishmentList.IndexOf(item) + 1 + Model.StuEncourgementList.Count())、@item.PunishDate.Value.ToShortDateString().Replace("/", "-") @item.PunishName</div> | |||||
} | |||||
</div> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td rowspan="2"> | |||||
<div style="width:20px;display: inline-block;">操行鉴定</div> | |||||
</td> | |||||
<td>操行等级</td> | |||||
<td colspan="5" id="OperatingLevel">@Model.OperatingLevel </td> | |||||
</tr> | |||||
<tr> | |||||
<td><div style="width:20px;display: inline-block;">班主任评估</div></td> | |||||
<td colspan="5"> | |||||
<div style="text-align:left;">@Model.TeacherDemo</div> | |||||
<div class="text-right" style="padding-right: 64px;margin-top: 140px;">班主任签名:<span id="Signed">@Model.Signed </span></div> | |||||
<div class="text-right" style="padding-right: 8px;margin-top: 12px;"> | |||||
@{ | |||||
if (Model.TDate.HasValue) | |||||
{ | |||||
<span>@Model.TDate.Value.Year 年 @Model.TDate.Value.Month 月 @Model.TDate.Value.Day 日</span> | |||||
} | |||||
else | |||||
{ | |||||
<span>年 月 日</span> | |||||
} | |||||
} | |||||
</div> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<div style="padding-left: 8px;margin-top: 4px;">注:操行等级分优、良、中、差四等</div> | |||||
<style> | |||||
.table-page { | |||||
font-size: 14px; | |||||
} | |||||
.table-title { | |||||
text-align: center; | |||||
} | |||||
table { | |||||
/* width: 540px; */ | |||||
} | |||||
td { | |||||
text-align: center; | |||||
font-size: 14px; | |||||
} | |||||
.text-right { | |||||
text-align: right; | |||||
} | |||||
#print { | |||||
padding: 6px 8px; | |||||
cursor: pointer; | |||||
display: inline-block; | |||||
} | |||||
</style> | |||||
</div> | |||||
<script src="~/Content/jquery/plugin/fullcalendar/js/jquery-1.7.2.min.js"></script> | |||||
<script> | |||||
const isDOM = (obj) => { | |||||
return typeof HTMLElement === "object" | |||||
? obj instanceof HTMLElement | |||||
: obj && | |||||
typeof obj === "object" && | |||||
obj.nodeType === 1 && | |||||
typeof obj.nodeName === "string"; | |||||
}; | |||||
/* const extend = (obj, obj2) => { | |||||
for (const k in obj2) { | |||||
if (obj2.hasOwnProperty(k)) obj[k] = obj2[k] | |||||
} | |||||
return obj | |||||
} */ | |||||
const isInBody = (node) => { | |||||
return node === document.body ? false : document.body.contains(node); | |||||
}; | |||||
const wrapperRefDom = (refDom) => { | |||||
let prevDom = null; | |||||
let currDom = refDom; | |||||
if (!isInBody(currDom)) return currDom; | |||||
while (currDom) { | |||||
if (prevDom) { | |||||
const element = currDom.cloneNode(false); | |||||
element.appendChild(prevDom); | |||||
prevDom = element; | |||||
} else { | |||||
prevDom = currDom.cloneNode(true); | |||||
} | |||||
currDom = currDom.parentElement; | |||||
} | |||||
return prevDom; | |||||
}; | |||||
const getStyle = (options) => { | |||||
let str = ""; | |||||
const styles = document.querySelectorAll("style,link"); | |||||
for (let i = 0; i < styles.length; i++) { | |||||
str += styles[i].outerHTML; | |||||
} | |||||
str += | |||||
"<style>" + | |||||
(options.noPrint ? options.noPrint : ".no-print") + | |||||
"{display:none;}</style>"; | |||||
return str; | |||||
}; | |||||
const getHtml = (dom, options) => { | |||||
const inputs = document.querySelectorAll("input"); | |||||
const textAreas = document.querySelectorAll("textarea"); | |||||
const selects = document.querySelectorAll("select"); | |||||
for (let k = 0; k < inputs.length; k++) { | |||||
if (inputs[k].type === "checkbox" || inputs[k].type === "radio") { | |||||
if (inputs[k].checked === true) { | |||||
inputs[k].setAttribute("checked", "checked"); | |||||
} else { | |||||
inputs[k].removeAttribute("checked"); | |||||
} | |||||
} else if (inputs[k].type === "text") { | |||||
inputs[k].setAttribute("value", inputs[k].value); | |||||
} else { | |||||
inputs[k].setAttribute("value", inputs[k].value); | |||||
} | |||||
} | |||||
for (let k2 = 0; k2 < textAreas.length; k2++) { | |||||
if (textAreas[k2].type === "textarea") { | |||||
textAreas[k2].innerHTML = textAreas[k2].value; | |||||
} | |||||
} | |||||
for (let k3 = 0; k3 < selects.length; k3++) { | |||||
if (selects[k3].type === "select-one") { | |||||
const child = selects[k3].children; | |||||
for (const i in child) { | |||||
if (child[i].tagName === "OPTION") { | |||||
if (child[i].selected === true) { | |||||
child[i].setAttribute("selected", "selected"); | |||||
} else { | |||||
child[i].removeAttribute("selected"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return options.noPrintParent ? dom.outerHTML : wrapperRefDom(dom).outerHTML; | |||||
}; | |||||
const toPrint = (frameWindow) => { | |||||
try { | |||||
setTimeout(function () { | |||||
frameWindow.focus(); | |||||
try { | |||||
if (!frameWindow.document.execCommand("print", false, null)) { | |||||
frameWindow.print(); | |||||
} | |||||
} catch (e) { | |||||
frameWindow.print(); | |||||
} | |||||
frameWindow.close(); | |||||
}, 10); | |||||
} catch (err) { | |||||
console.log("err", err); | |||||
} | |||||
}; | |||||
const writeIframe = (content) => { | |||||
const iframe = document.createElement("iframe"); | |||||
const f = document.body.appendChild(iframe); | |||||
iframe.id = "myIframe"; | |||||
iframe.setAttribute( | |||||
"style", | |||||
"position:absolute;width:0;height:0;top:-10px;left:-10px;" | |||||
); | |||||
const w = f.contentWindow || f.contentDocument; | |||||
const doc = f.contentDocument || f.contentWindow.document; | |||||
doc.open(); | |||||
doc.write(content); | |||||
doc.close(); | |||||
iframe.onload = function () { | |||||
toPrint(w); | |||||
setTimeout(function () { | |||||
document.body.removeChild(iframe); | |||||
}, 100); | |||||
}; | |||||
}; | |||||
const Print = (dom, options) => { | |||||
options = { ...options, noPrint: ".no-print" }; | |||||
let targetDom; | |||||
if (typeof dom === "string") { | |||||
targetDom = document.querySelector(dom); | |||||
} else { | |||||
targetDom = isDOM(dom) ? dom : dom.$el; | |||||
} | |||||
const content = getStyle(options) + getHtml(targetDom, options); | |||||
writeIframe(content); | |||||
}; | |||||
const printBtn = document.getElementById("print") | |||||
printBtn.addEventListener("click", () => { | |||||
Print(document.getElementsByClassName("table-page")[0]) | |||||
}) | |||||
</script> | |||||
<script> | |||||
//获取网站地址 | |||||
var a = window.location.protocol; | |||||
var b = window.location.host; | |||||
var c = a + "//" + b+"/"; | |||||
if ("@Model.FilePath" != "") { | |||||
$('#FilePath').attr('src',c + "@Model.FilePath"); | |||||
} | |||||
//绑定字典或源的值 | |||||
function GetDataSourceStr(code, value, text, valueStr, box) { | |||||
$(box).html(""); | |||||
$.ajax({ | |||||
url: "/OnlineRegistrate/GetDataSourceMap?code=" + code, | |||||
async: false, | |||||
success: function (msg) { | |||||
var msgObject = $.parseJSON(msg); | |||||
if (msgObject.code == 200) { | |||||
$.each(msgObject.data, function (i, item) { | |||||
if (item[value] == valueStr) { | |||||
$(box).html(item[text]); | |||||
return; | |||||
} | |||||
}); | |||||
} else { | |||||
layer.msg(msgObject.info); | |||||
} | |||||
}, | |||||
}); | |||||
return; | |||||
}; | |||||
function GetDataItemStr(code, valueStr, box) { | |||||
$(box).html(""); | |||||
$.ajax({ | |||||
url: "/OnlineRegistrate/GetDataItemMap?code=" + code, | |||||
async: false, | |||||
success: function (msg) { | |||||
var msgObject = $.parseJSON(msg); | |||||
if (msgObject.code == 200) { | |||||
$.each(msgObject.data, function (i, item) { | |||||
if (item["F_ItemValue"] == valueStr) { | |||||
$(box).html(item["F_ItemName"]); | |||||
return; | |||||
} | |||||
}); | |||||
} else { | |||||
layer.msg(msgObject.info); | |||||
} | |||||
}, | |||||
}); | |||||
return; | |||||
}; | |||||
GetDataItemStr("OperatingLevel", "@Model.OperatingLevel","#OperatingLevel"); | |||||
GetDataSourceStr("BaseUser", "f_account", "f_realname", "@Model.Signed", "#Signed"); | |||||
</script> | |||||
</body> | |||||
</html> |
@@ -1249,6 +1249,7 @@ | |||||
<Content Include="Areas\EducationalAdministration\Views\ScoreCheckInfo\FormTeach.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\ScoreCheckInfo\FormTeach.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\ScoreCheckInfo\FormAudit.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\ScoreCheckInfo\FormAudit.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\GraduateDiplomaReceiveForm.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\GraduateDiplomaReceiveForm.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\ScoreCheckInfo\RecordTablePrint.cshtml" /> | |||||
<None Include="Areas\EducationalAdministration\Views\StuInfoBasic\Printxjk.cshtml" /> | <None Include="Areas\EducationalAdministration\Views\StuInfoBasic\Printxjk.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\AllocationClassDC.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\AllocationClassDC.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\StatisticClassIndex.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\StatisticClassIndex.js" /> | ||||
@@ -65,7 +65,7 @@ | |||||
<add key="userKey" value="14B417B0-463D-4F2B-8075-0A20EEDB773A" /> | <add key="userKey" value="14B417B0-463D-4F2B-8075-0A20EEDB773A" /> | ||||
<!-- ==================注意附件上传地址 修改到部署目录下的Resource要不然飞星会报错================== --> | <!-- ==================注意附件上传地址 修改到部署目录下的Resource要不然飞星会报错================== --> | ||||
<add key="AnnexesFile" value="D:\work\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.Web\Resource" /> | |||||
<add key="AnnexesFile" value="D:\Job\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.Web\Resource" /> | |||||
<!-- ================== 8:流程服务地址 ================== --> | <!-- ================== 8:流程服务地址 ================== --> | ||||
<add key="workflowapi" value="http://localhost:8013" /> | <add key="workflowapi" value="http://localhost:8013" /> | ||||
<!--Redis 缓存前缀 --> | <!--Redis 缓存前缀 --> | ||||
@@ -1,5 +1,6 @@ | |||||
using Learun.Util; | using Learun.Util; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | |||||
using System.ComponentModel.DataAnnotations.Schema; | using System.ComponentModel.DataAnnotations.Schema; | ||||
namespace Learun.Application.TwoDevelopment.EducationalAdministration | namespace Learun.Application.TwoDevelopment.EducationalAdministration | ||||
@@ -138,6 +139,9 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
public void Create() | public void Create() | ||||
{ | { | ||||
this.ID = Guid.NewGuid().ToString(); | this.ID = Guid.NewGuid().ToString(); | ||||
var loginUserInfo = LoginUserInfo.Get(); | |||||
this.CreateUser = loginUserInfo.userId; | |||||
this.CreateTime = DateTime.Now; | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 编辑调用 | /// 编辑调用 | ||||
@@ -146,9 +150,18 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
public void Modify(string keyValue) | public void Modify(string keyValue) | ||||
{ | { | ||||
this.ID = keyValue; | this.ID = keyValue; | ||||
var loginUserInfo = LoginUserInfo.Get(); | |||||
this.UpdateUser = loginUserInfo.userId; | |||||
this.UpdateTime = DateTime.Now; | |||||
} | } | ||||
#endregion | #endregion | ||||
#region 扩展字段 | #region 扩展字段 | ||||
[NotMapped] public List<StuEncourgementEntity> StuEncourgementList { get; set; } | |||||
[NotMapped] public List<StuPunishmentEntity> StuPunishmentList { get; set; } | |||||
[NotMapped] public List<StuScoreEntity> StuScoreList { get; set; } | |||||
[NotMapped] public List<StudentCertificateEntity> StudentCertificateList { get; set; } | |||||
#endregion | #endregion | ||||
} | } | ||||
} | } | ||||
@@ -213,6 +213,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
entity.UpdateTime = DateTime.Now; | entity.UpdateTime = DateTime.Now; | ||||
entity.UpdateUser = userlogin.userId; | entity.UpdateUser = userlogin.userId; | ||||
entity.Signed = userlogin.account; | entity.Signed = userlogin.account; | ||||
entity.TDate = DateTime.Now; | |||||
this.BaseRepository("CollegeMIS").Update(entity); | this.BaseRepository("CollegeMIS").Update(entity); | ||||
} | } | ||||
} | } | ||||
@@ -296,6 +297,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
{ | { | ||||
var model = db.FindEntity<ScoreCheckInfoEntity>(x => x.ID == item); | var model = db.FindEntity<ScoreCheckInfoEntity>(x => x.ID == item); | ||||
model.CheckStatus = entity.CheckStatus; | model.CheckStatus = entity.CheckStatus; | ||||
model.CheckOpinion = entity.CheckOpinion; | |||||
model.CheckTime = DateTime.Now; | model.CheckTime = DateTime.Now; | ||||
model.CheckUser = userlogin.userId; | model.CheckUser = userlogin.userId; | ||||
model.UpdateTime = DateTime.Now; | model.UpdateTime = DateTime.Now; | ||||
@@ -67,6 +67,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public IEnumerable<StudentCertificateEntity> GetList(string stuNo) | |||||
{ | |||||
try | |||||
{ | |||||
return studentCertificateService.GetList(stuNo); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// 获取主表实体数据 | /// 获取主表实体数据 | ||||
/// </summary> | /// </summary> | ||||
@@ -28,6 +28,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
/// <param name="keyValue">主键</param> | /// <param name="keyValue">主键</param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
StudentCertificateEntity GetStudentCertificateEntity(string keyValue); | StudentCertificateEntity GetStudentCertificateEntity(string keyValue); | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
IEnumerable<StudentCertificateEntity> GetList(string stuNo); | |||||
/// <summary> | /// <summary> | ||||
/// 获取主表实体数据 | /// 获取主表实体数据 | ||||
/// </summary> | /// </summary> | ||||
@@ -142,6 +142,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public IEnumerable<StudentCertificateEntity> GetList(string stuNo) | |||||
{ | |||||
try | |||||
{ | |||||
return this.BaseRepository("CollegeMIS").FindList<StudentCertificateEntity>(x => x.StuNo == stuNo && x.Status==2); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | #endregion | ||||
#region 提交数据 | #region 提交数据 | ||||