diff --git a/web/pom.xml b/web/pom.xml index 4f12739e..321c1d83 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -76,7 +76,11 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - + <dependency> + <groupId>com.microsoft.sqlserver</groupId> + <artifactId>mssql-jdbc</artifactId> + <version>7.4.1.jre8</version> + </dependency> <!-- 看项目没用到thymeleaf 暂时先删除 --> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> diff --git a/web/src/main/resources/sql/jlw/logoInfo.md b/web/src/main/resources/sql/jlw/logoInfo.md new file mode 100644 index 00000000..199f431d --- /dev/null +++ b/web/src/main/resources/sql/jlw/logoInfo.md @@ -0,0 +1,47 @@ +findById +=== +select * from logo_info where id = #id# + +findByApplicationId +=== +select * from logo_info where application_id = #applicationId# and school_id is null + +findBySchoolIdAndApplicationId +=== +select * from logo_info where application_id = #applicationId# and school_id = #schoolId# + + +queryByCondition +=== +select +@pageTag(){ +l.* +@} +from logo_info l +left join universities_colleges u on l.school_id = u.universities_colleges_id +where 1=1 +@if(!isEmpty(applicationName)){ +and l.application_name like #"%"+applicationName+"%"# +@} +@if(!isEmpty(schoolName)){ +and u.universities_colleges_name like #"%"+schoolName+"%"# +@} +@pageIgnoreTag(){ +order by l.add_time desc +@} + + +getValuesByQueryNotWithPermission +=== +select +l.* +from logo_info l +left join universities_colleges u on l.school_id = u.universities_colleges_id +where 1=1 +@if(!isEmpty(applicationName)){ +and l.application_name like #"%"+applicationName+"%"# +@} +@if(!isEmpty(schoolName)){ +and u.universities_colleges_name like #"%"+schoolName+"%"# +@} + \ No newline at end of file diff --git a/web/src/main/resources/sql/jlw/schoolClass.md b/web/src/main/resources/sql/jlw/schoolClass.md index f13d45d6..0ac3a2e2 100644 --- a/web/src/main/resources/sql/jlw/schoolClass.md +++ b/web/src/main/resources/sql/jlw/schoolClass.md @@ -257,4 +257,12 @@ select school_class.class_id as classId,school_class.class_name as className from school_class join universities_colleges uc on school_class.universities_colleges_id = uc.universities_colleges_id join teacher t on uc.universities_colleges_id = t.universities_colleges_id -where t.old_id = #teacherId# \ No newline at end of file +where t.old_id = #teacherId# + + +userClassDalGetClassListById +=== +select old_class_id as classId, class_name as className, 3 as roleId +from school_class +where class_status = 1 +order by old_class_id \ No newline at end of file diff --git a/web/src/main/resources/sql/jlw/teacher.md b/web/src/main/resources/sql/jlw/teacher.md index d822cb10..a023ee7c 100644 --- a/web/src/main/resources/sql/jlw/teacher.md +++ b/web/src/main/resources/sql/jlw/teacher.md @@ -569,3 +569,17 @@ universities_colleges.universities_colleges_id where old_school_id =#schoolId# getByTeacherJobNameAndOrgId === select * from teacher where teacher_job_number = #teacherJobName# and org_id = #orgId# + + +userClassDalGetList +=== +SELECT +t.old_id AS UserId, +3 AS roleId, +( +SELECT GROUP_CONCAT(sc.old_class_id SEPARATOR ',') +FROM school_class sc +WHERE sc.universities_colleges_id = t.universities_colleges_id +) AS classIds +FROM +teacher t diff --git a/web/src/main/resources/static/js/jlw/logoInfo/index.js b/web/src/main/resources/static/js/jlw/logoInfo/index.js new file mode 100644 index 00000000..e946ef31 --- /dev/null +++ b/web/src/main/resources/static/js/jlw/logoInfo/index.js @@ -0,0 +1,114 @@ +layui.define([ 'form', 'laydate', 'table' ], function(exports) { + var form = layui.form; + var laydate = layui.laydate; + var table = layui.table; + var logoInfoTable = null; + var isSignRole = $("input[name='isSignRole']").val(); + var view = { + init:function(){ + this.initTable(); + this.initSearchForm(); + this.initToolBar(); + window.dataReload = function(){ + Lib.doSearchForm($("#searchForm"),logoInfoTable) + } + }, + initTable:function(){ + logoInfoTable = table.render({ + elem:'#logoInfoTable', + height:Lib.getTableHeight(), + cellMinWidth:100, + even:true, + //skin:'nob', + method:'post', + size:"lg", + // where:{classStatus:1}, + url:Common.ctxPath+'/jlw/logoInfo/list.json' + ,page:Lib.tablePage + ,limit:10 + ,cols:[[ + { + field:'applicationName', + title:'应用名称',align:"center" + }, + { + field:'schoolName', + title:'学校名称',align:"center" + }, + { + field:'path', + title:'图标路径',align:"center" + }, + { + field:'copyright', + title:'版权信息',align:"center" + }, + { + field:'createName', + title:'创建人',align:"center" + }, + { + field : 'userId',title : '操作',align:"center", templet: function (d) { + var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>'; + htm += '<a class="layui-table-link" lay-event="del">删除</a>'; + return htm; + } + } + ]] + }); + + table.on('checkbox(logoInfoTable)', function(obj){ + var logoInfo = obj.data; + if(obj.checked){ + //按钮逻辑Lib.buttonEnable() + }else{ + + } + }) + }, + initSearchForm:function(){ + Lib.initSearchForm( $("#searchForm"),logoInfoTable,form); + }, + + initToolBar:function(){ + toolbar = { + add : function() { // 获取选中数据 + var url = "/jlw/logoInfo/add.do"; + Common.openDlg(url,"图标管理/添加子系统图标"); + }, + refresh: function () {//刷新 + searchForm.reset(); + Lib.doSearchForm($("#searchForm"), logoInfoTable, 1); + }, + search:function () { + Lib.doSearchForm($("#searchForm"), logoInfoTable, 1); + } + + }; + $('.ext-toolbar').on('click', function() { + var type = $(this).data('type'); + toolbar[type] ? toolbar[type].call(this) : ''; + }); + }, initTableTool: table.on('tool(logoInfoTable)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + var url = "/jlw/logoInfo/add.do?classId="+data.classId; + Common.openDlg(url,"图标管理/编辑子系统图标"); + }else if(obj.event === "del"){ + layer.confirm('是否确定删除该信息?', function (index) { + var ret = Common.postAjax("/jlw/logoInfo/delete.json",{ids:data.id}); + layer.msg(ret.code == 0?"删除成功!":ret.msg, { + offset: ['50%'], + icon: ret.code == 0?1:2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + },function (){ + if(ret.code == 0){ + Lib.tableRefresh(); + } + }); + }); + } + }) + } + exports('index',view); +}); \ No newline at end of file diff --git a/web/src/main/resources/static/js/jlw/resourcesApplication/index.js b/web/src/main/resources/static/js/jlw/resourcesApplication/index.js index f378f783..15447936 100644 --- a/web/src/main/resources/static/js/jlw/resourcesApplication/index.js +++ b/web/src/main/resources/static/js/jlw/resourcesApplication/index.js @@ -9,7 +9,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { this.initSearchForm(); this.initToolBar(); window.dataReload = function(){ - Lib.doSearchForm($("#searchForm"),resourcesApplicationTable) + // Lib.doSearchForm($("#searchForm"),resourcesApplicationTable) } }, initTable:function(){ diff --git a/web/src/main/resources/templates/jlw/logoInfo/add.html b/web/src/main/resources/templates/jlw/logoInfo/add.html new file mode 100644 index 00000000..4733f139 --- /dev/null +++ b/web/src/main/resources/templates/jlw/logoInfo/add.html @@ -0,0 +1,117 @@ +<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/schoolClass/"}){ --> +<link href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all" rel="stylesheet" type="text/css"/> +<form class="layui-form" id="addForm"> + <div style="margin-left: 95px;"> + <layui:submitButtons buttonType="" id="addButton"/> + </div> + <!--isSignRole.get()!'' :1:admin+管理员 2:uniAdmin学院管理员 3:teacher 4student--> + <!--#if(isSignRole.get()!''== 2){ --> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label"><span class="req">*</span>所属院校:</label> + <div class="layui-input-inline"> + <input class="layui-input" data-value="${universitiesCollegesInfo.universitiesCollegesId}" + disabled="disabled" style="background-color: #e7e7e7" + type="text" value="${universitiesCollegesInfo.universitiesCollegesName}"> + <input class="layui-input" name="universitiesCollegesId" + type="hidden" + value="${universitiesCollegesInfo.universitiesCollegesId}"> + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label"><span class="req">*</span>所属院系:</label> + <div class="layui-input-inline"> + <layui:simpleDictSelect id="universityFacultyId" + lay-verify="required" + layFilter="select_universityFacultyIds" name="universityFacultyId" + style='layui-input-inline' type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${universitiesCollegesInfo.universitiesCollegesId!''},find_in_set(org_id, ${user.get().orgId!''})" + value="${universityFacultyId!''}"/> + </div> + </div> + </div> + </div> + <!--#}else if(isSignRole.get()!'' == 1){ --> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label"><span class="req">*</span>所属院校:</label> + <div class="layui-input-inline"> + <layui:simpleDictSelect id="universitiesCollegesId" lay-verify="required" + layFilter="select_universitiesColleges" + name="universitiesCollegesId" style='layui-input-inline' + type="universities_colleges.universities_colleges_name.universities_colleges_status=1" value="${schoolClass.universitiesCollegesId}"/> + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label"><span class="req">*</span>所属院系:</label> + <div class="layui-input-inline"> + <layui:simpleDictSelect id="universityFacultyId" + lay-verify="required" + layFilter="select_universityFacultyIds" name="universityFacultyId" + style='layui-input-inline' + type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${schoolClass.universitiesCollegesId!''}" + value="${schoolClass.universityFacultyId!''}"/> + </div> + </div> + </div> + </div> + <!--#} --> + + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + + <label class="layui-form-label"><span class="req">*</span>所属专业:</label> + <div class="layui-input-inline"> + <layui:simpleDictSelect id="universitySystemId" + lay-verify="required" + name="universitySystemId" style='layui-input-inline' + type="university_system.university_system_name.university_system_status=1,university_faculty_id=${universityFacultyId!''}" value="${schoolClass.universitySystemId!''}"/> + </div> + </div> + <!--<button type="button" class="layui-btn layui-btn-sm rightUniversitySystemAdd bg_button">去添加</button>--> + </div> + </div> + <!-- <div class="layui-row">--> + <!-- <div class="layui-form-item">--> + <!-- <div class="layui-inline">--> + <!-- <label class="layui-form-label"><span class="req">*</span>班级编号:</label>--> + <!-- <div class="layui-input-inline">--> + <!-- <input type="text" name="classSn" value="${schoolClass.classSn}" class="layui-input" lay-verify="required">--> + <!-- </div>--> + <!-- </div>--> + <!-- </div>--> + <!-- </div>--> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label"><span class="req">*</span>班级名称:</label> + <div class="layui-input-inline"> + <input class="layui-input" lay-verify="required" name="className" onafterpaste="this.value=this.value.replace(/:|:|-/g,'')" + onkeyup="this.value=this.value.replace(/:|:|-/g,'')" + type="text" + value="${schoolClass.className}"> + </div> + </div> + </div> + </div> + + <input name="classId" type="hidden" value="${schoolClass.classId}"/> + <input name="isSignRole" type="hidden" value="${isSignRole.get()!''}"/> +</form> +<!--#} --> +<script> + layui.use(['add'], function () { + var schoolClassAdd = layui.add + schoolClassAdd.init(); + }); +</script> diff --git a/web/src/main/resources/templates/jlw/logoInfo/edit.html b/web/src/main/resources/templates/jlw/logoInfo/edit.html new file mode 100644 index 00000000..b39ec439 --- /dev/null +++ b/web/src/main/resources/templates/jlw/logoInfo/edit.html @@ -0,0 +1,72 @@ +<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/schoolClass/"}){ --> + +<form class="layui-form layui-form-pane" id="updateForm"> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">院校ID</label> + <div class="layui-input-inline"> + <input class="layui-input" id="universitiesCollegesId" name="universitiesCollegesId" type="text" value="${schoolClass.universitiesCollegesId}" > + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">班级名称</label> + <div class="layui-input-inline"> + <input class="layui-input" id="className" name="className" type="text" value="${schoolClass.className}" > + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">班级编号1111111</label> + <div class="layui-input-inline"> + <input class="layui-input" id="classSn" name="classSn" type="text" value="${schoolClass.classSn}" > + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">状态(1正常 2删除)</label> + <div class="layui-input-inline"> + <input class="layui-input" id="classStatus" name="classStatus" type="text" value="${schoolClass.classStatus}" > + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">添加时间</label> + <div class="layui-input-inline"> + <input id="addTime" name="addTime" type="text" value="${schoolClass.addTime,"yyyy-MM-dd"}" class="layui-input input-date" > + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">组织机构ID</label> + <div class="layui-input-inline"> + <input class="layui-input" id="orgId" name="orgId" type="text" value="${schoolClass.orgId}" > + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">后台用户ID</label> + <div class="layui-input-inline"> + <input class="layui-input" id="userId" name="userId" type="text" value="${schoolClass.userId}" > + </div> + </div> + </div> + </div> + <!-- 业务对象须有hidden字段,保存delFlag和version字段--> + <input name="classId" type="hidden" value=${schoolClass.classId} /> + <layui:submitButtons buttonType="" id="updateButton" /> +</form> +<!--#} --> +<script> +layui.use(['edit'], function(){ + var schoolClassEdit = layui.edit + schoolClassEdit.init(); +}); +</script> diff --git a/web/src/main/resources/templates/jlw/logoInfo/importPage.html b/web/src/main/resources/templates/jlw/logoInfo/importPage.html new file mode 100644 index 00000000..1f3e6aa6 --- /dev/null +++ b/web/src/main/resources/templates/jlw/logoInfo/importPage.html @@ -0,0 +1,148 @@ +<!--#layout("/common/layout.html",{"jsBase":"/js/jlw/schoolClass/"}){ --> +<link href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all" rel="stylesheet" type="text/css"/> +<form class="layui-form" id="addForm"> + <div> + <layui:submitButtons buttonType="" id="addButton" /> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + 班级管理/批量添加班级 + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">批量导入模板下载:</label> + <div class="layui-form-mid layui-word-aux" style="cursor: pointer;"> + <a id="downloadTemplate"> + <i class="iconfont" style="font-size: 30px;color: #1296db;"></i>下载模板 + </a> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">上传批量导入文件:</label> + <div class="layui-form-mid layui-word-aux"> + <a id="importTemplate" style="cursor: pointer;"> + <i class="iconfont" style="font-size: 40px;color: #1296db;"></i> + </a> + </div> + </div> + </div> + </div> + <div class="layui-row"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">批量导入错误列表:</label> + </div> + </div> + </div> + <table class="layui-table" lay-even="true" lay-skin="nob" style="width: 1000px;border: 1px solid #eeeeee;"> + <colgroup> + <col width="60"> + <col> + <col width="120"> + </colgroup> + <thead> + <tr style="background-color: #e3e3e3;"> + <th style="text-align: center;">序号</th> + <th>提示信息</th> +<!-- <th style="text-align: center;border-left:1px solid #dddddd;">操作</th>--> + </tr> + </thead> + <tbody id="view" > + </tbody> + </table> +</form> +<script id="demo" type="text/html"> + {{# layui.each(d.list, function(index, item){ }} + <tr> + <td style="text-align: center;">{{index + 1}}</td> + <td>{{item.failMessage}}</td> +<!-- <td style="text-align: center;">--> +<!-- {{#if(item.length ==2){}}--> +<!-- <a studentId="{{item[1]}}" class="layui-btn layui-btn-sm bg_button del">删除</a>--> +<!-- {{#}}}--> +<!-- </td>--> + </tr> + {{# }); }} +</script> +<!--#} --> +<script> + layui.use(['upload'], function(){ + var upload = layui.upload; + var laytpl = layui.laytpl; + + /*var studentLocal = localStorage.getItem($.getKeyInfo("studentLocal")); //取出上次导入出现错误的数据 + if(!$.isEmpty(studentLocal)){ + var getTpl = demo.innerHTML + ,view = document.getElementById('view'); + laytpl(getTpl).render({list:JSON.parse(studentLocal)}, function(html){ + view.innerHTML = html; + $(".del").click(deleteInfo); + }); + }*/ + + upload.render({ + elem: '#importTemplate', + url: Common.ctxPath + "/api/schoolClass/importBatchTemplate.do", + size: 5120, + accept: 'file', + data: { + }, + before: function (obj) { //上传前 + layer.load(); + var getTpl = demo.innerHTML + ,view = document.getElementById('view'); + laytpl(getTpl).render({list:[]}, function(html){ + view.innerHTML = html; + $(".del").click(deleteInfo); + }); + }, + done: function (res, index, upload) { //上传后的回调 + layer.closeAll('loading'); + if (res.code == 0) { + parent.window.dataReload(); + layer.msg(res.msg, {icon: 1}); + } else { + // localStorage.setItem($.getKeyInfo("studentLocal"), JSON.stringify(res.msg)); //存入本次导入出现错误的数据 + var getTpl = demo.innerHTML + ,view = document.getElementById('view'); + laytpl(getTpl).render({list:JSON.parse(res.msg)}, function(html){ + view.innerHTML = html; + $(".del").click(deleteInfo); + }); + } + }, + error: function () { //请求异常回调 + layer.closeAll('loading'); + } + }); + + //删除数据 + function deleteInfo(){ + layer.confirm('是否确定删除该信息?', function (index) { + var studentId = $(this).attr("studentId"); + var ret = Common.postAjax("/jlw/student/delete.json", {ids: studentId}); + layer.msg(ret.code == 0 ? "删除成功!" : ret.msg, { + offset: ['50%'], + icon: ret.code == 0 ? 1 : 2, + time: 1500 //2秒关闭(如果不配置,默认是3秒) + }); + }); + } + + $("#downloadTemplate").click(function () { + $.downFile(Common.ctxPath + "/api/schoolClass/exportBatchTemplate.do",'批量班级导入模板.xlsx'); + }); + + $("#addButton").click(function(){ + Lib.closeFrame(); + }); + + $("#addButton-cancel").click(function(){ + Lib.closeFrame(); + }); + }); +</script> diff --git a/web/src/main/resources/templates/jlw/logoInfo/index.html b/web/src/main/resources/templates/jlw/logoInfo/index.html new file mode 100644 index 00000000..36b4598c --- /dev/null +++ b/web/src/main/resources/templates/jlw/logoInfo/index.html @@ -0,0 +1,42 @@ +<!--#layout("/common/layout.html",{"jsBase":"/js/jlw/logoInfo/"}){--> +<style> + /* 分页确定按钮*/ + .layui-laypage-btn{ + color: white!important; + } + .layui-table a { + margin-right: 10px; + } +</style> +<input name="isSignRole" type="hidden" value="${isSignRole.get()!''}" /> +<layui:searchForm condition="${search}" formId="searchForm" searchList=""> + <!--isSignRole.get()!'' :1:admin+管理员 2:uniAdmin学院管理员 3:teacher 4student--> + <!--#if(isSignRole.get()!''== 1){ --> + <!--#}else{ --> + <div class="layui-inline"> + <label class="layui-form-label">学校名称</label> + <div class="layui-input-inline"> + <layui:simpleDictSelect id="universityFacultyId" + name="universityFacultyId" + style='layui-input-inline' type="university_faculty.university_faculty_name.university_faculty_status=1,find_in_set(org_id, ${user.get().orgId!''})"/> + </div> + </div> + <!--#} --> + <input name="classStatus" type="hidden" value="1" /> +</layui:searchForm> + +<div class="layui-btn-group"> +<!-- <layui:accessButton function="schoolClass.query" id="searchFormSearch" action="search"><i class="layui-icon"></i>搜索</layui:accessButton>--> + <layui:accessButton action="add" function="logoInfo.add"><i class="layui-icon"></i>新增</layui:accessButton> +</div> + +<table id="logoInfoTable" lay-filter="logoInfoTable"></table> +<!--#} --> +<script> + +layui.use(['index'], function(){ + var index = layui.index; + index.init(); +}); + +</script>