From 285b4f2dc069c887f0822c4ffdf6238b2ad7e748 Mon Sep 17 00:00:00 2001 From: yangdj <18302547071@163> Date: Tue, 31 Jan 2023 12:02:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jlw/courseInfo/courseConfigureNew.html | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html b/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html index a5dae63a..94db8067 100644 --- a/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html +++ b/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html @@ -237,7 +237,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find courseInfoAllData.forEach((item,index) => { /*根据课程类型值判断章节*/ if(item.courseInfoType == 2){ - item.courseInfoNo = index_parent; + item.courseInfoNo = numberfilter(index_parent); index_parent++; courseInfoParentIdOld = item.courseInfoParentId; courseInfoIdOld = item.courseInfoId; @@ -247,7 +247,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find courseInfoAllData.forEach((em,i) => { if(item.courseInfoType == 2 && (item.courseInfoId == em.courseInfoParentId)){ - em.courseInfoNo = index_parent-1 + "." + index_child; + em.courseInfoNo = index_parent-1; index_child ++; } if(item.courseInfoType == 3 && (item.courseInfoId == em.courseInfoParentId)){ @@ -889,5 +889,37 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find }); }, 50); } + + /** + * 阿拉伯转中文 + * @param num + * @returns {string|string|string} + */ + function numberfilter (num) { + const changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'] // changeNum[0] = "零" + const unit = ['', '十', '百'] + num = parseInt(num) + const getWan = (temp) => { + const strArr = temp.toString().split('').reverse() + let newNum = '' + for (var i = 0; i < strArr.length; i++) { + newNum = (i == 0 && strArr[i] == 0 ? '' : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? '' : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum + } + return newNum + } + const overWan = Math.floor(num / 100) + let noWan = num % 100 + if (noWan.toString().length < 2) noWan = '0' + noWan + let strr = (overWan ? getWan(overWan) + '百' + getWan(noWan) : getWan(num)) + if(strr.split('')[0] == '一'){ + if($.isEmpty(strr.substring(1))){ + return strr.split('')[0]; + }else{ + return strr.substring(1) + } + }else{ + return overWan ? getWan(overWan) + '百' + getWan(noWan) : getWan(num) + } + } }); </script> \ No newline at end of file From 4b89837095795cff489d048eb9d4374a0856d8ed Mon Sep 17 00:00:00 2001 From: yangdj <18302547071@163> Date: Thu, 2 Feb 2023 01:59:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=AD=E4=B8=8A=E4=BC=A0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=97=A0=E6=B3=95=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E5=8F=8A=E4=B8=8A=E4=BC=A0=E8=BD=AC=E6=8D=A2=E6=88=90PDF?= =?UTF-8?q?=EF=BC=8C=E9=A2=84=E8=A7=88=E6=97=B6=E7=9A=84=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/static/js/lib.js | 2 + .../static/plugins/jsZip/FileSaver.js | 2 +- .../jlw/web/ResourcesInfoController.java | 1 + .../jlw/courseInfo/courseConfigureNew.html | 128 +++++++++++++----- .../jlw/previewPage/previewData.html | 38 +++++- 5 files changed, 134 insertions(+), 37 deletions(-) diff --git a/admin-core/src/main/resources/static/js/lib.js b/admin-core/src/main/resources/static/js/lib.js index 6dc56227..72bee20c 100644 --- a/admin-core/src/main/resources/static/js/lib.js +++ b/admin-core/src/main/resources/static/js/lib.js @@ -1092,6 +1092,8 @@ var Lib = { }); layui.form.render(); },downloadFile:function (data){ //下载指定文件/或者预览文件 resourcesInfoType:资源类型(1视频 2课件(ppt 、pdf) 3附件) + window.location.href = Common.ctxPath + "/jlw/resourcesInfo/previewData.do?resourcesInfoId="+data.resourcesInfoId; + return; if(data.resourcesInfoType == 3){//前端下载文件 var a = document.createElement('a'); a.setAttribute('href', Common.ctxPath + data.resourcesInfoContent); //a.href='文件链接' diff --git a/admin-core/src/main/resources/static/plugins/jsZip/FileSaver.js b/admin-core/src/main/resources/static/plugins/jsZip/FileSaver.js index 52bb25a3..7b2b523a 100644 --- a/admin-core/src/main/resources/static/plugins/jsZip/FileSaver.js +++ b/admin-core/src/main/resources/static/plugins/jsZip/FileSaver.js @@ -102,7 +102,7 @@ var saveAs = saveAs if (target_view) { target_view.location.href = object_url; } else { - window.open(object_url, "_blank"); + `window.open(object_url, "_blank");` } filesaver.readyState = filesaver.DONE; dispatch_all(); diff --git a/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java b/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java index 7230e92a..c646ecf3 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java @@ -130,6 +130,7 @@ public class ResourcesInfoController{ ModelAndView view = new ModelAndView("/jlw/previewPage/previewData.html"); ResourcesInfo resourcesInfo = resourcesInfoService.getById(resourcesInfoId); view.addObject("resourcesInfo", resourcesInfo); + view.addObject("resourcesInfoContent", resourcesInfo.getResourcesInfoContent().replaceAll("\\\\","/")); return view; } diff --git a/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html b/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html index 94db8067..cbbcf288 100644 --- a/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html +++ b/web/src/main/resources/templates/jlw/courseInfo/courseConfigureNew.html @@ -5,7 +5,9 @@ .layui-table a { margin-right: 10px; } - + a{ + cursor: pointer; + } .shiping { color: red; border: 2px solid red; @@ -58,14 +60,16 @@ <table id="courseInfoTable" lay-filter="courseInfoTable"></table> <!--本地上传--> <div style="display: none;" id="resources_demo"> - <div class="layui-col-xs6" style="padding: 20px;border-right:thin solid #f4f4f4;height:270px"> + <div class="layui-col-xs6" style="padding: 20px;border-right:thin solid #f4f4f4;height:200px"> <div class="grid-demo"> <div class="layui-upload-drag" id="resourcesUpload"> <i class="layui-icon" style="color: #3a71a8"></i> <p>点击上传,或将文件拖拽到此处</p> - <div class="layui-hide" id="uploadDemoView"> + <div id="uploadDemoView" style="display: none;"> <hr> - <img src="" alt="上传成功后渲染" style="max-width: 196px"> + <span style="color: #1E9FFF;">上传成功</span> + <input type="hidden" name="resourcesInfoContent" /> + <input type="hidden" name="resourcesInfoId" /> </div> </div> </div> @@ -80,10 +84,15 @@ </div>--> </div> </div> - + <div class="layui-form-item"> + <label class="layui-form-label" style="width: 90px;">资源名称:</label> + <div class="layui-input-block" style="margin-left: 120px"> + <input type="text" style="width: 90%;" name="resourcesInfoName" placeholder="请输入资源名称" autocomplete="off" class="layui-input"> + </div> + </div> </div> <!--资源库上传--> -<div id="edit_dialog" class="layui-form" style="display: none;padding: 20px 20px 20px;height: 490px;overflow: auto;"> +<div id="edit_dialog" class="layui-form" style="display: none;padding: 20px 20px 0;overflow: auto;"> <div class="layui-inline"> <label class="layui-form-label" style="width: 80px">资源名称:</label> <div class="layui-input-block" style="margin-left: 110px;"> @@ -128,7 +137,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find </div> <!--添加图文--> -<div id="addPW_dialog" class="layui-form" style="display: none;padding-top: 20px"> +<div id="addPW_dialog" class="layui-form" style="display: none;padding: 20px 20px 0 0;width: 900px;height:370px;"> <div class="layui-row"> <div class="layui-form-item"> <label class="layui-form-label" style="width: 80px"><span style="color: red">*</span>名称:</label> @@ -140,22 +149,22 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find <div class="layui-row"> <div class="layui-form-item"> <label class="layui-form-label" style="width: 80px">内容:</label> - <div class="layui-input-inline" style="width: 60% !important;min-width: 500px;"> + <div class="layui-input-block" style="margin-left: 110px"> <textarea id="resourcesInfoContent" name="resourcesInfoContent" style="display:none;"></textarea> </div> </div> </div> - <div class="layui-row"> - <div class="layui-form-item"> - <label class="layui-form-label" style="width: 80px">文件:</label> - <div class="layui-input-inline" style="width: 130px!important"> - <button type="button" class="layui-btn" id="picWordUp"> - <i class="layui-icon"></i>上传图片 - </button> - </div> - <div class="layui-form-mid">支持CS格式</div> - </div> - </div> +<!-- <div class="layui-row">--> +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label" style="width: 80px">文件:</label>--> +<!-- <div class="layui-input-inline" style="width: 130px!important">--> +<!-- <button type="button" class="layui-btn" id="picWordUp">--> +<!-- <i class="layui-icon"></i>上传图片--> +<!-- </button>--> +<!-- </div>--> +<!-- <div class="layui-form-mid">支持CS格式</div>--> +<!-- </div>--> +<!-- </div>--> </div> <!--# } --> <script type="text/javascript" src="${ctxPath}/plugins/xm-select.js?v=${jsVer}"></script> @@ -204,9 +213,20 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find elem: '#resourcesUpload' ,url: Common.ctxPath + '/jlw/file/update.do' , accept: 'file' + ,exts:"ppt|pptx|pdf|mp4|doc|docx" ,done: function(res){ - layer.msg('上传成功'); - layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', Common.ctxPath + res.data.src); + if(res.code == 0){ + $("#uploadDemoView").show(); + layer.msg('上传成功'); + $('#resources_demo input[name="resourcesInfoName"]').val(res.data.name); + if (!$.isEmpty(res.data.cvPDFUrl)){ + $('#resources_demo input[name="resourcesInfoContent"]').val(res.data.cvPDFUrl); + }else { + $('#resources_demo input[name="resourcesInfoContent"]').val(res.data.src); + } + }else { + layer.msg(res.msg); + } } }); var uploadInst = upload.render({ @@ -247,12 +267,13 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find courseInfoAllData.forEach((em,i) => { if(item.courseInfoType == 2 && (item.courseInfoId == em.courseInfoParentId)){ - em.courseInfoNo = index_parent-1; + em.courseInfoNo = index_child; index_child ++; } if(item.courseInfoType == 3 && (item.courseInfoId == em.courseInfoParentId)){ em.courseInfoNo = item.courseInfoNo+"."+index_child_child; - index_child_child++ + index_child_child++; + } }); @@ -353,8 +374,12 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find htm += '<a class="layui-table-link" lay-event="addPW">添加图文</a>'; } if (!$.isEmpty(d.resourcesInfoType)) { - htm += '<a class="layui-table-link" lay-event="look">查看</a>'; - htm += '<a class="layui-table-link" lay-event="update">上传</a>'; + if (d.resourcesInfoType != 4){ + htm += '<a class="layui-table-link" lay-event="look">查看</a>'; + // htm += '<a href='+Common.ctxPath + '/jlw/resourcesInfo/previewData.do?resourcesInfoId='+d.resourcesInfoId+' style="color: #01AAED" target="_blank">查看</a>'; + }else { + htm += '<a href="http://www.baidu.com" style="color: #01AAED" target="_blank">查看</a>'; + } } htm += '<a class="layui-table-link" lay-event="edit">编辑</a>'; htm += '<a class="layui-table-link" lay-event="del">删除</a>'; @@ -424,11 +449,18 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find title = "资源名称"; param.resourcesInfoId= data.resourcesInfoId; id = data.resourcesInfoId; + if (data.resourcesInfoType === 5) { + addPW(data,1); + } else if (data.resourcesInfoType === 4) { + addLine(data,1); + } else { + updataResourcesOpenLocal(data,""); + } }else { id = courseInfoId; param.courseInfoId = courseInfoId; + addOpen(id,title,data,param); } - addOpen(id,title,data,param); }else if (obj.event === 'del') { layer.confirm('是否确定删除该信息?', function (index) { layer.load(); @@ -568,10 +600,12 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find } else if (data.resourcesInfoType === 4) { addLine(data,1); } else { - updataResourcesOpenLocal(); + $('#resources_demo input[name="resourcesInfoId"]').val(""); + updataResourcesOpenLocal({},data.courseInfoId); } } else { - updataResourcesOpenLocal(); + $('#resources_demo input[name="resourcesInfoId"]').val(""); + updataResourcesOpenLocal({},data.courseInfoId); } }else { if (!$.isEmpty(data.resourcesInfoType)) { @@ -589,7 +623,11 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find } /*本地资源上传弹出框*/ - function updataResourcesOpenLocal() { + function updataResourcesOpenLocal(data,courseInfoId) { + $('#resources_demo input[name="resourcesInfoName"]').val(data.resourcesInfoName || ''); + $('#resources_demo input[name="resourcesInfoContent"]').val(data.resourcesInfoContent || ''); + $('#resources_demo input[name="resourcesInfoId"]').val(data.resourcesInfoId || ''); + $("#uploadDemoView").hide(); layer.open({ title: '本地上传' ,type:1 @@ -598,7 +636,35 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find , area: ['650px','380px'] , btn: ['确定', '关闭'] ,yes:function (index, layero){ - layer.close(index); + var resourcesInfoName = $('#resources_demo input[name="resourcesInfoName"]').val(); + var resourcesInfoContent = $('#resources_demo input[name="resourcesInfoContent"]').val(); + var resourcesInfoId = $('#resources_demo input[name="resourcesInfoId"]').val(); + //1 视频 2 PPT 3 PDF 4 链接 5 图文 + if ($.isEmpty(resourcesInfoContent)){ + layer.msg("请上传资源!", {icon: 2}); + return; + } + if ($.isEmpty(resourcesInfoName)){ + layer.msg("请输入资源名称!", {icon: 2}); + return; + } + var param = { + resourcesInfoType:"", + resourcesInfoName:resourcesInfoName, + resourcesInfoContent:resourcesInfoContent, + resourcesInfoId:resourcesInfoId, + courseInfoId:courseInfoId + } + if(resourcesInfoContent.indexOf(".PPT") >=0 || resourcesInfoContent.indexOf(".ppt") >=0|| resourcesInfoContent.indexOf(".PPTX") >=0|| resourcesInfoContent.indexOf(".pptx") >=0){ + param.resourcesInfoType = 2; + } + if(resourcesInfoContent.indexOf(".MP4") >=0 || resourcesInfoContent.indexOf(".mp4") >=0){ + param.resourcesInfoType = 1; + } + if(resourcesInfoContent.indexOf(".PDF") >=0 || resourcesInfoContent.indexOf(".pdf") >=0){ + param.resourcesInfoType = 3; + } + postResourcesInfo(resourcesInfoId, param,index) } , btn2: function (index, layero) { layer.close(index); @@ -614,7 +680,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find shadeClose: true, btn: ['保存', '关闭'], btnAlign: 'c', - area: ['820px', '580px'], + area: ['820px', '600px'], content: $("#edit_dialog"), success: function (layero, index) { loadResourcesInfo(sign); diff --git a/web/src/main/resources/templates/jlw/previewPage/previewData.html b/web/src/main/resources/templates/jlw/previewPage/previewData.html index a9b78bbe..ae23b3d3 100644 --- a/web/src/main/resources/templates/jlw/previewPage/previewData.html +++ b/web/src/main/resources/templates/jlw/previewPage/previewData.html @@ -27,16 +27,30 @@ .pdfobject{ height: 100% !important; } + #twxs img{ + max-width: 100%; + } </style> <div style="margin: 20px;"> <input type="hidden" name="resourcesInfoType" value="${resourcesInfo.resourcesInfoType}" /> - <input type="hidden" name="resourcesInfoContent" value="${resourcesInfo.resourcesInfoContent}" /> <!-- resourcesInfoType:资源类型(1视频 2课件(ppt\pdf\word) 3附件) --> <div style="width: 100%;margin-top: 20px;height:calc(100vh - 40px);"> <div class="wordHeader" style="position: absolute;width: calc(100% - 56px);height: 88px;background-color: #f3f2f1;margin: 2px;"> <div style="background-color: #185abd;width: 100%;height: 50px;line-height: 50px;font-size: 20px;color: white;margin-top:-20px;"> - <p style="padding-left: 20px;float: left;position:absolute;font-size: 15px;margin-top:0;">在线课件预览</p> + <p style="padding-left: 20px;float: left;position:absolute;font-size: 15px;margin-top:0;">在线预览</p> + <p style="text-align: center;">${resourcesInfo.courseInfoName}</p> + <a class="layui-btn layui-btn-primary addButton-cancel_" style="float: right;margin-right:20px;cursor: pointer;">返回</a> + </div> + </div> + + <div id="twxs" style="width: 100%;height: 100%;"> + <div style="background-color: #185abd;width: 100%;height: 50px;line-height: 50px;font-size: 20px;color: white;margin-top:-20px;"> + <p style="padding-left: 20px;float: left;position:absolute;font-size: 15px;margin-top:0;">在线预览</p> <p style="text-align: center;">${resourcesInfo.courseInfoName}</p> + <a class="layui-btn layui-btn-primary addButton-cancel_" style="float: right;margin-right:20px;cursor: pointer;">返回</a> + </div> + <div name="nrInfo" style="border: 1px solid #185abd;border-top: none;padding: 20px;min-height: 400px;"> + </div> </div> <iframe id="InformationURL" src='' @@ -54,23 +68,25 @@ </body> <script> var resourcesInfoType = $("input[name='resourcesInfoType']").val(); - var resourcesInfoContent = $("input[name='resourcesInfoContent']").val(); + var resourcesInfoContent = '${resourcesInfoContent}'; //resourcesInfoContent = 'http://www.905.cn/server/filesystem/temp/banner/465wgghpca5.pdf'; - if(resourcesInfoType == 2 && fileType(resourcesInfoContent) == 'pdf'){ + if(resourcesInfoType == 3 && (fileType(resourcesInfoContent) == 'pdf' || fileType(resourcesInfoContent) == 'PDF')){ $(".wordHeader").show();//显示 addPDF(resourcesInfoContent); - $(".wordHeader").height(50).width('calc(100% - 77px)').find("div").css("background-color","#000000"); + $(".wordHeader").height(50).width('calc(100% - 77px)').find("div").css("background-color","#185abd"); }else if(resourcesInfoType == 2){ $(".wordHeader").show();//显示 $(".wordHeader").height(88).width('calc(100% - 56px)').find("div").css("background-color","#185abd"); $("#pdfInfo").hide(); $("#InformationURL").show(); + $("#twxs").hide(); $("#player-con").hide(); $('#InformationURL').attr('src', 'https://view.officeapps.live.com/op/view.aspx?src='+Common.isHttp(resourcesInfoContent)); }else if(resourcesInfoType == 1){ $(".wordHeader").hide();//隐藏 $("#pdfInfo").hide(); $("#InformationURL").hide(); + $("#twxs").hide(); $("#player-con").show(); //$("#roomVideo source").attr("src",Common.isHttp(resourcesInfoContent)); @@ -114,11 +130,23 @@ // }, function (player) { // console.log("The player is created"); // }); + }else if(resourcesInfoType == 5){ //图文 + $(".wordHeader").hide();//显示 + $(".wordHeader").height(88).width('calc(100% - 56px)').find("div").css("background-color","#185abd"); + $("#pdfInfo").hide(); + $("#InformationURL").hide(); + $("#player-con").hide(); + $("#twxs").show(); + $("#twxs div[name='nrInfo']").html(resourcesInfoContent); } + $(".addButton-cancel_").click(function () { + history.go(-1); + }); function addPDF(url){ $("#pdfInfo").show(); $("#InformationURL").hide(); + $("#twxs").hide(); $("#player-con").hide(); var options = { height: "550px",