You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

684 lines
29 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>教学计划</title>
<meta http-equiv="Content-Type" content="text/html; 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="../../static/css/font.css">
<link rel="stylesheet" href="../../static/css/weadmin.css">
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
<script src="../../lib/jquery-1.12.4.min.js"></script>
<script src="../../lib/ztree/jquery.ztree.core-3.5.min.js"></script>
<!-- 让IE8/9支持媒体查询从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
select {
width: 180px;
height: 38px;
line-height: 38px;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 15px;
padding-left: 6px;
color: #666;
}
.inline {
display: inline-block;
vertical-align: top;
}
ul.log li {
color: #666666;
list-style: none;
padding-left: 10px;
}
</style>
</head>
<body>
<div class="weadmin-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">教学基础数据支撑</a>
<a>
<cite id="module_name">教学计划</cite></a>
</span>
<a class="layui-btn layui-btn-sm" style="line-height:1.6em;margin-top:3px;float:right"
href="javascript:location.reload();" title="刷新">
<i class="layui-icon layui-icon-refresh-3" style="line-height:30px"></i></a>
</div>
<div class="weadmin-body">
<div class="layui-form-item inline" id="div7">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;">
版本
</label>
<div class="layui-input-inline" id="select_7"></div>
<script type="text/html" id="test7">
<select id="sel7" name="service_type" onchange="changeZhuanYe()" lay-filter="top1">
<option value="">全部</option>
<% for (var i = 0; i < data.length;i ++) { %>
<option value="<%=data[i].year%>"><%=data[i].year%></option>
<% } %></select>
</script>
</div>
<div class="layui-form-item inline " id="div3">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;">
入学年份
</label>
<div class="layui-input-inline" id="select_3" style="width: 188px"></div>
<script type="text/html" id="test3">
<select name="service_type" id="sel3" onchange="changeYear()">
<% for (var i = 0; i < data.length; i ++) { %>
<option value="<%=data[i].batch_year%>"><%=data[i].batch_year%></option>
<% } %>
</select>
</script>
</div>
<div class="layui-form-item inline" id="div4">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;">
专业
</label>
<div class="layui-input-inline" id="select_4"></div>
<script type="text/html" id="test4">
<select id="sel4" name="service_type" onchange="changeZhuanYe()" lay-filter="top1">
<option value="-1">全部</option>
<% for (var i = 0; i < data.length;i ++) { %>
<option value="<%=data[i].zhuanye_code%>"><%=data[i].zhuanye_name%></option>
<% } %></select>
</script>
</div>
<div class="layui-form-item inline" id="div5">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;">
招生类型
</label>
<div class="layui-input-inline" id="select_5"></div>
<script type="text/html" id="test5">
<select id="sel5" name="service_type" onchange="changeZhuanYe()" lay-filter="top1">
<option value="-1">全部</option>
<% for (var i = 0; i < data.length;i ++) { %>
<option value="<%=data[i].type_id%>"><%=data[i].type_name%></option>
<% } %></select>
</script>
</div>
<div class="layui-form-item inline" id="div6">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;">
发布状态
</label>
<div class="layui-input-inline" lay-filter="myDiv">
<select name="sel6" id="sel6" lay-filter="mySelect" onchange="changeZhuanYe()">
<option value="-1">全部</option>
<option value="1">已发布</option>
<option value="0">未发布</option>
</select>
</div>
</div>
<div class="layui-form-item inline" style="float:right">
<span id="importAcc">
<div class="layui-btn layui-btn-primary" type="button" id="setViewColumns" onclick="setViewColumns();">
<span class="layui-icon layui-icon-shrink-right"></span>设置显示列
</div>
<div class="layui-btn" type="button" id="addRule" onclick="addRule();">
<span class="layui-icon layui-icon-shrink-right"></span>增加
</div>
<div class="layui-btn layui-btn-normal" type="button" id="exportYearRule" onclick="exportYearRule();">
<span class="layui-icon layui-icon-shrink-right"></span>按年导出计划表
</div>
</span>
</div>
<div class="layui-form-item">
<table class="layui-table" lay-filter="idTest" id="idTest"></table>
<script type="text/html" id="barDemo">
{{#if(d.flag==0 && d.verificationStatus==-1||d.verificationStatus==null){ }}
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="setCourse">设置课程</a>
{{#} }}
{{#if(d.is_checked===1 && d.flag!=0){ }}
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="viewTermCourse">查看学期课程</a>
<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="exportTerm">学期课程</a>
{{#} }}
{{#if(d.flag==0 && d.verificationStatus===1){ }}
<a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="copy">复制</a>
{{#} }}
<a class="layui-btn layui-btn-xs" lay-event="export">计划表</a>
{{#if(d.flag==0){ }}
{{#if(d.is_checked!=1&&d.verificationStatus==null||d.verificationStatus==-1){ }}
<a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="setSubmit">提交</a>
{{#} }}
{{#if(d.flag==0 && d.verificationStatus==-1||d.verificationStatus==null){ }}
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="update">修改</a>
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
{{#} }}
{{#}else{ }}
{{#if(d.is_checked!=1){ }}
{{#if(d.flag==2){ }}
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="update">修改</a>
{{#} }}
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
{{#} }}
{{#} }}
</script>
<script type="text/html" id="switchTplChecked">
<input type="checkbox" name="checked_select" value="{{d.is_checked}}" lay-skin="switch" lay-text="已发布|待发布"
lay-filter="checked_select"
id="checked_{{d.rule_id}}"
{{ d.is_checked===1 ?'checked' : '' }}>
</script>
</div>
</div>
<script src="../../lib/layui/layui.js"></script>
<script src="../../lib/template.js"></script>
<script src="../../lib/base64.js"></script>
<script src="../../lib/JqueryExtend.js"></script>
<script src="../../lib/layuiExtend.js"></script>
<script>
layui.extend({
admin: '{/}../../static/js/admin'
});
layui.use(['form', 'jquery', 'laytpl', 'admin', 'layer', 'table'], function () {
var form = layui.form,
$ = layui.jquery,
admin = layui.admin,
layer = layui.layer,
table = layui.table,
laytpl = layui.laytpl;
//接收flag参数flag=0表示是教学计划标准版,flag=1表示执行教学计划
var flag = GetQueryString("flag");
if (flag == "0") {
window.setViewColumns = function () {
WeAdminShow('正在设置显示列', 'rule_0_set_view_columns.html', 600, 250);
};
}
if (flag == "1") {
window.setViewColumns = function () {
WeAdminShow('正在设置显示列', 'rule_1_set_view_columns.html', 600, 250);
};
}
//根据flag=0,flag=1显示不同的名称
var module_name = "";
switch (flag) {
case "0":
module_name = "标准教学计划";
//隐藏入学年份
$("#div3").hide();
//隐藏按年导出计划表
$("#exportYearRule").hide();
break;
case "1":
module_name = "执行教学计划";
$("#div7").hide();
break;
}
$("#module_name").text(module_name);
// 获取年份
window.getYearList = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/teachbase/getRuleYear",
success: function (data) {
var html = template.render('test3', data);
document.getElementById('select_3').innerHTML = html;
}
})
};
getYearList();
//绑定专业下拉框
function bindZhuanYeSelect() {
$.ajax({
type: "GET",
dataType: "json",
async: false,
url: "/baseService/zhaosheng/getZhuanYe",
success: function (data) {
var html = template.render('test4', data);
document.getElementById('select_4').innerHTML = html;
}
});
}
bindZhuanYeSelect();
//对权限进行限制,系内的管理人员,只能看到本系下的专业
$.ajax({
type: "GET",
dataType: "json",
async: false,
url: "/baseService/base/getZhuanYeList",
success: function (data) {
if (data.data.length > 0) {
//清空
$("#sel4").empty();
//增加内容
for(var i=0;i<data.data.length;i++){
var zhuanye_code=data.data[i].zhuanye_code;
var zhuanye_name=data.data[i].zhuanye_name;
$("#sel4").append("<option value='"+zhuanye_code+"'>"+zhuanye_name+"</option>");
}
}
}
});
//绑定招生类型
window.getZhaoShengType = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/dic/getZhaoshengType?page=1&limit=10",
success: function (data) {
var html = template.render('test5', data);
document.getElementById('select_5').innerHTML = html;
}
})
};
getZhaoShengType();
//绑定发布状态
layui.form.render('select', 'myDiv');
//绑定年份
window.getYear = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/teachbase/getYear",
success: function (data) {
var html = template.render('test7', data);
document.getElementById('select_7').innerHTML = html;
}
})
};
getYear();
//变更年份
window.changeYear = function () {
bindRuleList();
};
//变更专业
window.changeZhuanYe = function () {
bindRuleList();
};
//增加教学计划
window.addRule = function () {
var entry_year = $("#sel3").val();
var zhuanye_code = $("#sel4").val();
var h = 505 - 80;
var n = "增加执行教学计划";
if (flag == "0") {
n = "增加标准教学计划"
h = 505 - 80;
}
var url = "ruleUpdate_nianji.html";
if (flag == "0") {
url = "ruleUpdate.html";
}
WeAdminShow(n, './' + url + '?action=add&entry_year=' + entry_year + "&zhuanye_code=" + zhuanye_code + "&flag=" + flag, 650, h);
};
//按年份导出
window.exportYearRule = function () {
var entry_year = $("#sel3").val();
window.location.href = "/baseService/teachbase/exportZhuanYeRuleCourseExcelByYear?entry_year=" + entry_year;
};
// 绑定教学计划
window.bindRuleList = function () {
var entry_year = $("#sel3").val();
//如果是标准版
if (flag == "0") {
entry_year = "-1";
}
var zhuanye_code = $("#sel4").val();
//招生类型
var zhaosheng_type_id = $("#sel5").val();
//审核状态
var is_checked = $("#sel6").val();
//年份
var year = $("#sel7").val();
var cols_base = [[]];
//如果是标准版,那么删除掉年份,规则代码
if (flag == "0") {
cols_base = [[
{field: 'rule_id', title: '序号', align: 'center', type: 'numbers', width: 40}
, {field: 'rule_name', title: '名称', align: 'center', width: 250}
, {field: 'alias', title: '简称', align: 'center', width: 250}
, {field: 'zhuanye_name', title: '专业', align: 'center'}
, {field: 'zhaosheng_type_name', title: '招生类型', align: 'center', width: 100}
, {field: 'year', title: '版本', align: 'center', width: 100}
, {field: 'person_name', title: '创建人', align: 'center', width: 150}
, {field: 'length', title: '学制', align: 'center'}
//, {field: 'low_required_points', title: '最低必修学分', align: 'center'}
//, {field: 'low_credit_points', title: '最低毕业学分', align: 'center'}
, {
field: 'is_checked',
title: '发布状态',
align: 'center',
templet: '#switchTplChecked',
unresize: true
}
]];
}
//执行教学计划
if (flag == "1") {
cols_base = [[
{field: 'rule_id', title: '序号', align: 'center', type: 'numbers', width: 40}
, {field: 'rule_code', title: '代码', align: 'center'}
, {field: 'rule_name', title: '名称', align: 'center', width: 250}
, {field: 'zhuanye_name', title: '专业', align: 'center'}
, {field: 'zhaosheng_type_name', title: '招生类型', align: 'center', width: 140}
, {field: 'entry_year', title: '年份', align: 'center'}
, {field: 'length', title: '学制', align: 'center'}
, {field: 'low_required_points', title: '最低必修学分', align: 'center'}
, {field: 'low_credit_points', title: '最低毕业学分', align: 'center'}
, {
field: 'is_checked',
title: '发布状态',
align: 'center',
templet: '#switchTplChecked',
unresize: true
}
]];
}
var cols = [[]];
if (flag == "0") {
var cookieData = getCookie("showRule_0");
}
if (flag == "1") {
var cookieData = getCookie("showRule_1");
}
if (cookieData != null) {
var show_columns = cookieData.split(",");
for (var i = 0; i < show_columns.length; i++) {
for (var j = 0; j < cols_base.length; j++) {
for (var k = 0; k < cols_base[j].length; k++) {
if (cols_base[j][k].field != null) {
if (show_columns[i] === cols_base[j][k].field) {
cols[0].push(cols_base[j][k]);
break;
}
}
}
}
}
} else {
for (var j = 0; j < cols_base.length; j++) {
for (var k = 0; k < cols_base[j].length; k++) {
if (cols_base[j][k].field != null) {
cols[0].push(cols_base[j][k]);
}
}
}
}
cols[0].push({fixed: 'right', title: '操作', toolbar: '#barDemo', width: 310});
if (flag == "0") {
table.render({
elem: '#idTest',
url: '/baseService/teachbase/biaoZhunRuleList?entry_year=' + entry_year + "&zhuanye_code=" + zhuanye_code + "&flag=" + flag + "&zhaosheng_type_id=" + zhaosheng_type_id + "&is_checked=" + is_checked + "&year=" + year,
cols: cols
, page: true
, height: 'full'
, done: function (res, curr, count) {
}
});
} else {
table.render({
elem: '#idTest',
url: '/baseService/teachbase/bindRuleList?entry_year=' + entry_year + "&zhuanye_code=" + zhuanye_code + "&flag=" + flag + "&zhaosheng_type_id=" + zhaosheng_type_id + "&is_checked=" + is_checked,
cols: cols
, page: true
, height: 'full'
, done: function (res, curr, count) {
}
});
}
};
//监听发布状态变更
form.on('switch(checked_select)', function (obj) {
//处理教务处处长发布,其它角色不能发布
var havePrivilage = true;
//从已发布修改为未发布,目前要求是禁止
if (!obj.elem.checked) {
var swt = $(obj.elem);
layer.msg('在发布通过后,禁止再次修改为未发布状态!', {icon: 2, time: 2000, shade: 0.1});
swt.prop('checked', !obj.elem.checked); //修改switch开关
layui.form.render();//刷新表格
return false;
}
//没有通过审核的教学计划不能发布
var rule_id = $(this).attr("id").split("_")[1];
if (flag == 0) {
$.ajax({
type: "GET",
dataType: "json",
async: false,
url: "/baseService/base/isVerificationPass?module_id=1&business_id=" + rule_id,
success: function (data) {
if (!data.success) {
havePrivilage = false;
}
}
});
if (!havePrivilage) {
var swt = $(obj.elem);
layer.msg('该教学计划还未通过审核,无法发布!!', {icon: 2, time: 2000, shade: 0.1});
swt.prop('checked', !obj.elem.checked); //修改switch开关
layui.form.render();//刷新表格
return false;
}
}
//开始保存
var is_checked = 0;
if (obj.elem.checked) {
is_checked = 1;
}
//弹出一个确认框
layer.confirm('确定要将规则设置为已发布状态吗? 一旦修改为发布通过,将不可再次修改为未发布!!', {icon: 0}, function (index) {
//保存
var data = {"rule_id": rule_id, "is_checked": is_checked};
$.ajax({
type: "POST",
dataType: "json",
async: false,
data: data,
url: "/baseService/teachbase/saveRuleChecked",
success: function (data) {
layer.close(layer.index);
layui.table.reload('idTest', {
where: {}
});
}
});
}, function () {
layer.close(layer.index);
var swt = $(obj.elem);
swt.prop('checked', !obj.elem.checked); //修改switch开关
layui.form.render();//刷新表格
return false;
});
});
//编辑与删除
table.on('tool(idTest)', function (obj) {
var data = obj.data;
var rule_id = data.rule_id;
var rule_name = data.rule_name;
//设置课程
if (obj.event === "setCourse") {
//修改链接地址
rule_name = encode64(rule_name);
//多传参数是为了返回规则列表进行定位
window.location.href = './courseModuleList.html?rule_id=' + rule_id + '&length=' + data.length + '&entry_year=' + data.entry_year
+ "&zhuanye_code=" + data.zhuanye_code + "&rule_name=" + rule_name + "&is_checked=" + data.is_checked + "&flag=" + flag;
}
;
//查看学期课程
if (obj.event === "viewTermCourse") {
WeAdminShow('学期课程', './termCourse.html?rule_id=' + rule_id, window.innerWidth - 100, window.innerHeight - 100);
}
//复制
if (obj.event === 'copy') {
WeAdminShow("正在为" + rule_name + '执行拷贝操作', './ruleUpdate.html?rule_id=' + rule_id + "&action=copy&flag=0", 650, 505);
}
;
//修改操作
if (obj.event === 'update') {
var rule_id = data.rule_id;
var rule_name = data.rule_name;
var h = 505;
if (flag == "0") {
h = h - 80;
}
WeAdminShow("正在为" + rule_name + '修改相关信息', './ruleUpdate.html?rule_id=' + rule_id + "&action=update&flag=" + flag, 650, h);
}
;
//导出
if (obj.event === "export") {
var rule_id = obj.data.rule_id;
window.location.href = "/baseService/teachbase/exportZhuanYeRuleCourseExcel?rule_id=" + rule_id;
}
;
//导出专业学期课程
if (obj.event === "exportTerm") {
var rule_id = obj.data.rule_id;
window.location.href = "/baseService/teachbase/exportZhuanYeRuleTermCourseExcel?rule_id=" + rule_id;
}
if (obj.event === "setSubmit") {
layer.confirm("您确定要提交“" + rule_name + "”教学计划?提交后将不允许修改!", {btn: ['确定', '取消']}, function (index, layero) {
$.ajax({
type: "GET",
dataType: "json",
async: false,
data: {
"business_id": rule_id,
"module_id": 1
},
url: "/baseService/verification/canApplyVerification",
success: function (data) {
if (data.success = "true") {
$.ajax({
type: "POST",
dataType: "json",
async: false,
data: {
"business_id": rule_id,
"module_id": 1
},
url: "/baseService/verification/insertVerificationRecord",
success: function (data) {
layer.msg(data.message, {
icon: 1,
time: 3000,
shade: [0.5, '#000', true]
}, function () {
var index = layer.getFrameIndex(window.name);
layer.close(index);
layui.table.reload('idTest', {
where: {}
, page: {
curr: 1
}
});
WeAdminShow('发送模板消息情况', 'ruleVerificationSendRecord.html', 400, 450);
});
}
});
} else {
layer.msg(data.message, {icon: 2, time: 3000, shade: [0.5, '#000', true]}, function () {
var index = layer.getFrameIndex(window.name);
layer.close(index);
layui.table.reload('idTest', {
where: {}
, page: {
curr: 1
}
});
});
}
}
});
});
}
;
//删除
if (obj.event === "delete") {
//删除功能
var rule_id = data.rule_id;
var rule_name = data.rule_name;
var tip = '您确定要删除规则' + rule_name + '吗?';
layer.confirm(tip, {
btn: ['确定', '取消']
}, function (index, layero) {
$.ajax({
type: "POST",
dataType: "json",
async: false,
data: {
"rule_id": rule_id
},
url: "/baseService/teachbase/deleteRule",
success: function (data) {
if (data.success) {
layer.msg(data.message, {icon: 1, time: 1000, shade: [0.5, '#000', true]}, function () {
var index = layer.getFrameIndex(window.name);
layer.close(index);
layui.table.reload('idTest', {
where: {}
, page: {
curr: 1
}
});
});
} else {
layer.msg(data.message, {icon: 2, time: 3000, shade: [0.5, '#000', true]}, function () {
layer.close(index);
});
}
}
});
}
);
}
});
//定位
var back_entry_year = GetQueryString("entry_year");
var back_zhuanye_code = GetQueryString("zhuanye_code");
if (back_entry_year != null) {
$("#sel3").val(back_entry_year);
$("#sel4").val(back_zhuanye_code);
}
//绑定教学计划
bindRuleList();
})
</script>
</body>
</html>