CINXE.COM
留言板-南京大学
<!DOCTYPE html> <html lang="zh-cn"> <head> <base target="_blank"> <!-- lga 20231117 这个会使得A标签在新页面打开--> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="format-detection" content="telephone=no" /> <meta name="format-detection" content="address=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"> <title>留言板-南京大学</title><meta name="pageType" content="2"> <meta name="pageTitle" content="留言板"> <META Name="keywords" Content="南京大学,留言板" /> <meta name="description" content="" /> <meta name="author" content="Miso" /> <meta name="mobile-web-app-capable" content="yes"> <link rel="icon" sizes="192x192" href="images/app-icon72x72@2x.png"> <!-- Add to homescreen for Safari on iOS --> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-title" content="" /> <link rel="apple-touch-icon-precomposed" href="images/app-icon72x72@2x.png"> <!-- Tile icon for Win8 (144x144 + tile color) --> <meta name="msapplication-TileImage" content="images/app-icon72x72@2x.png"> <meta name="msapplication-TileColor" content=""> <!-- Set render engine for 360 browser --> <meta name="renderer" content="webkit"> <!-- Set render engine for 360 browser --> <meta name="renderer" content="webkit"> <link rel="stylesheet" href="css/font-awesome.min.css"> <link rel="stylesheet" href="css/a_reset.css"> <link rel="stylesheet" href="css/swiper.min.css"> <link rel="stylesheet" href="css/a_style.css"> <link rel="stylesheet" href="css/a_media.css"> <link rel="stylesheet" href="css/a_animate.css"> <link rel="stylesheet" href="css/ny.css"> <script type="text/javascript" src="js/a_jquery.js"></script> <script type="text/javascript" src="js/a_miso.js"></script> <script type="text/javascript" src="js/swiper.min.js"></script> <!--[if lte IE 9]> <script type="text/javascript" src="js/a_ijr.js"></script> <![endif]--> <script type="text/javascript" src="js/set.js"></script> <style> .information { width: 100%; max-width:1000px; height: auto; margin: 45px auto;} .information2{ margin:0 auto; width: 100%; max-width:1000px; height: auto; background:#fff; box-shadow: 0px 1px 11px 0px rgba(205, 208, 214, 0.44); border-radius: 8px;} .information p { font-size: 16px; font-family: Microsoft YaHei; font-weight: 400; color: #333333; line-height: 30px;} .inner {padding: 0.5rem 0;} .ban_zt{position:absolute;top:50%;left:50%;width: auto !important;transform: translate(-50%, -50%);max-width: 100%;} .content{background:url(images/bj1.png) no-repeat center bottom;padding-bottom:1rem;border:none !important;} .cont-ny {min-height: 3rem;background: #fff;} .inner .wp{padding:0 10%;} </style> <!--Announced by Visual SiteBuilder 9--> <link rel="stylesheet" type="text/css" href="_sitegray/_sitegray_d.css" /> <script language="javascript" src="_sitegray/_sitegray.js"></script> <!-- CustomerNO:7765626265723230776446575254574200020005475c --> <link rel="stylesheet" type="text/css" href="lyb.vsb.css" /> <script type="text/javascript" src="/system/resource/js/vsbscreen.min.js" id="_vsbscreen" devices="pc|mobile|pad"></script> <script type="text/javascript" src="/system/resource/js/counter.js"></script> <script type="text/javascript">_jsq_(3641,'/lyb.jsp',-1,1889051832)</script> </head> <body style="width:100%"> <!-- <div class="loader"> <div class="logoload"><img src="images/load.svg" alt=""></div> <ul><li></li><li></li><li></li><li></li></ul> </div> --> <!--============================头部 开始=============================--> <section class="body_home"> <section class="nav_mask"></section> <!-- ban --> <div class="ban"> <img src="images/af13d4ed-67f8-4d06-ad61-d85129b69ced.jpg" /> <img src="images/zt.png" class="ban_zt"> </div> <!-- cont --> <div class="inner" style="background:url(images/content_bg.jpg) center top no-repeat; background-size: 100% auto"> <!-- 二级栏目 --> <div class="content"> <div class="wp"> <div class="information"><script language="javascript" src="/system/resource/js/news/mp4video.js"></script> <p> 2024年是中华人民共和国成立75周年,是南京大学贯彻落实党的二十大精神和习近平总书记重要回信精神,实现“十四五”规划目标的关键一年,也是“奋进行动”承上启下的攻坚之年。学校党委已把2024年明确为“管理提质增效年”。要牢牢把握强化管理、提质增效这一关键抓手,集全校之力抓好改革攻坚,强化高效管理、科学管理、精细管理、规范管理,狠抓落实,以“奋进行动”全面推进中国特色世界一流南大建设。</p> <p> 为此,学校开通“我为管理来建言”留言板,通过常态化参与机制,持续集思广益、凝聚众智,热烈欢迎广大师生员工校友在留言板提供宝贵意见建议!感谢大家!</p> <p><br></p></div> <div class="information2"> <script language="javascript" src="/system/resource/js/jquery/jquery.min.js"></script><script language="javascript" src="/system/resource/vue/vue.js"></script><script language="javascript" src="/system/resource/vue/bluebird.min.js"></script><script language="javascript" src="/system/resource/vue/axios.js"></script><script language="javascript" src="/system/resource/vue/polyfill.js"></script><script language="javascript" src="/system/resource/vue/token.js"></script><script language="javascript" src="/system/resource/js/openapp/api.js"></script><script src="/system/resource/js/openapp/base64.js"> </script> <script src="/system/resource/openapp/ueditor/ueditor.config.js"> </script> <script src="/system/resource/openapp/ueditor/ueditor.all.js"> </script> <script src="/system/resource/openapp/layer/layer.js"> </script> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <style> input { outline: none;} .tip { padding: 0; margin: 0;} .pure-title-input { width: 100%;} .message-div .pure-u-1-8{ width: 100%;} .message-lists p{ width: 500px;} #msgUEditor>div #edui8_iframeholder{ margin-left: -21px; overflow: unset !important;} #main1100825{ padding: 0px 40px 40px;} #main1100825 .MessageTitle{ text-align: center; font-size: 20px; color: #5a115c; line-height: 100px; font-weight: bolder;} #main1100825 .defineFields .clear{ clear: both;} #main1100825 .defineFields .defineFieldsItem{ float: left; width: 32%; min-width: 200px; margin-right: 2%; margin-bottom: 20px;} #main1100825 .defineFieldsItem span{ font-size:16px; float: left; display: inline-block; width: 40px; line-height: 38px;} #main1100825 .defineFieldsItem input{ float: left; width: calc(100% - 40px) !important;} #main1100825 .defineFieldsItem select{ width: calc(100% - 40px); height: 38px; border: 1px solid rgb(204, 204, 204);} #main1100825 .defineFields .defineFieldsItem:nth-child(3n){ margin-right: 0px;} #main1100825 .defineFieldsItem{ width: 100%; float: none;} #main1100825 .marginTopDefineFields{ margin-top: 20px;} #main1100825 .marginTopDefineFields span{ width: 50px;} #main1100825 .marginTopDefineFields input{ width: calc(100% - 50px);} #main1100825 .defineFieldsItem input:focus{ border: 1px solid #ccc;} #main1100825 .messageSubmitBtnBox{ margin-top: 10px; width: 100%; text-align: center;} #main1100825 .messageSubmitBtnBox .messageSubmitBtn{ width: 140px; text-align: center; height: 36px; line-height: 36px; background: #5a115c; color: #fff; font-size: 14px; cursor: pointer; margin: 0 auto; border-radius: 18px; padding: 0px;} #main1100825 .messageSubmitBtnBox .messageSubmitBtn:hover{ background: #5a115c !important; opacity: 0.8;} #main1100825 .messageSubmitBtnBox .messageSubmitBtn:active{ background: #5a115c !important; opacity: 1;} @media screen and (max-width: 500px) { #main1100825{ padding: 0px 20px 20px;} #main1100825 .edui-editor { width: 100% !important;} } .edui-default .edui-editor-bottomContainer{display: none;} </style> <link rel="stylesheet" href="/system/resource/openapp/css/pure-min.css"> <div id="main1100825" class="clearBoxStyle box1100825" v-cloak> <h4 class="MessageTitle">我为管理来建言</h4> <div v-show="!isError" class="show-reply"> <form @submit.prevent="submit($event)"> <div class="defineFields"> <div class="defineFieldsItem"> <span>姓名</span> <input v-model="info.messageUserName" placeholder="请输入姓名" class="pure-title-input" maxlength="60"> <div class="clear"></div> </div> <div class="defineFieldsItem"> <span>单位</span> <input v-model="info.defineFields[0].defineContent" placeholder="请输入单位" class="pure-title-input" maxlength="60"> <div class="clear"></div> </div> <div class="defineFieldsItem"> <span>邮箱</span> <input v-model="info.defineFields[1].defineContent" placeholder="请输入邮箱" class="pure-title-input" maxlength="60"> <div class="clear"></div> </div> <div class="defineFieldsItem"> <span>您是</span> <select v-model="info.defineFields[2].defineContent"> <option value="学生">学生</option> <option value="教职工">教职工</option> <option value="校友">校友</option> <option value="热心人士">热心人士</option> </select> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="defineFieldsItem" style="margin-bottom: 20px;"> <span>标题</span> <input v-model="info.messageTitle" placeholder="请输入标题" class="pure-title-input" maxlength="60"> <div class="clear"></div> </div> <script id="msgUEditor" name="content" type="text/plain" style="width:100%;height:250px"></script> <div class="defineFields marginTopDefineFields"> <div class="defineFieldsItem"> <span>验证码</span> <input type="text" class="pure-title-input" maxlength="4" v-model.trim="info.verifyCode" placeholder="请输入验证码"> <div class="clear"></div> </div> <div class="defineFieldsItem"> <img :src="verifyCodeSrc" v-on:click="codeRload()" style="width: 100px; height: 35px;cursor: pointer;" /> </div> <div class="clear"></div> </div> <div class="messageSubmitBtnBox"> <input type="submit" class="pure-button messageSubmitBtn" value="确认提交" /> </div> </form> </div> </div> <script> //图片预览 var imgHtml = ""; $("body").on("click",function(e){ var tagName=e.target.tagName; if(tagName == 'IMG'){ if(document.body.clientWidth>500){ imgHtml = e.target.outerHTML; } } }); //获取传递到本页面的参数 function getParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) { if (unescape(r[2]) === "undefined") { return null; } return unescape(r[2]); } return null; } var vm = new Vue({ el: '#main1100825', data: { canClick: true, countNum:'', isPaginator:false, style1:true, style2:false, style3:false, style4:true, style5:false, style6:false, style7:false, current : 1, leaveMessages: '全部留言', size : 2, self:'N', all : 1, isError:0, errMsg: '', messageList:{}, currentTab:1, showReplyList:false, replyList:{}, replayNumber:[], replyWindow:false, replyContent:'', currentMsg:{}, msgEditor:{}, replyEditor:{}, replyStatus: null, auditStatus: null, replyAble: true, setting: {}, messageType: 'all', messageTypeList: new Array(), messageTypeAvaliableList: new Array(), info:{ "messageTitle": "", "messageContent": "", "messageType": "wwglljy1716108108192", "anonymousName": "Y", "visibleOnly": "N", "msgCode": "Y", "verifyUuid": "", "defineFields": [{ "id": "e87ccdd72b77d4a2c0b68c89a9e780ed", "messageTypeId": "421dbefe2ae6485a92e487b5acd8117d", "fieldName": "单位", "required": "N", "createTime": null, "updateTime": null, "defineContent": "" }, { "id": "8d661eebba01eef7f9d8c4f3bb46914a", "messageTypeId": "421dbefe2ae6485a92e487b5acd8117d", "fieldName": "邮箱", "required": "N", "createTime": null, "updateTime": null, "defineContent": "" }, { "id": "ee844b5314466cf87a23bf41dc77e83c", "messageTypeId": "421dbefe2ae6485a92e487b5acd8117d", "fieldName": "您是", "required": "N", "createTime": null, "updateTime": null, "defineContent": "" } ], "messageUserName": "", "messageUserTel": "", "verifyCode": "" }, tabs:[ { type:'留言列表', view:'tab1' }, { type:'我要留言', view:'tab2' }, { type:'我的留言', view:'tab3' } ], ifToken:"", defineFields:[], verifyCodeSrc:'' }, computed: { indexs: function(){ var left = 1; var right = this.all; var ar = []; if(this.all >= 5){ if(this.current > 3 && this.current < this.all-2){ left = this.current - 2 right = this.current + 2 }else{ if(this.current <= 3){ left = 1 right = 5 }else{ right = this.all left = this.all -4 } } } while (left <= right){ ar.push(left) left ++ } return ar } }, mounted: function() { var _this = this; var toolBar = []; toolBar = ['fullscreen', 'undo', 'redo', 'bold','italic','fontsize','horizontal','blockquote','indent']; UE.Editor.prototype.getActionUrl = function(action){ if(action == 'upload'){ return '/aop_component//filesystem/file/msgBoardUpload'; } }, this.msgEditor = UE.getEditor('msgUEditor',{ toolbars: [toolBar], imageUrlPrefix:'/aop_component//filesystem/file/msgBoardUpload', // imagePathFormat: '', //上传保存路径 imageFieldName:'file', //提交的图片表单的名称 imageActionName: 'upload', catcherActionName: 'show', catcherUrlPrefix:'/aop_component//filesystem/fileshow', emotionLocalization:true, autoHeightEnabled: true, autoFloatEnabled: true }); _this.codeRload() }, methods:{ filterSensitive:function(content){ // var pattern = new RegExp('',"g"); // content = content.replace(pattern,"***"); return content ; }, // 获取验证码; codeRload: function (){ // if(this.isMsgCode == true){ var _this = this; getWithLogin('/aop_component//webber/messageboard/front/generate/code?t=' + Math.random(), {}, 10,1889051832, function(res) { if(res.code=="0000"){ _this.verifyCodeSrc = res.data.img _this.info.verifyUuid = res.data.id; } }); // } }, validateEmail:function(email) { var regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/; return regex.test(email); }, checkIsXSS:function (v) { return (new RegExp("\\b(document|onload|eval|script|img|svg|onerror|javascript|alert)\\b")).test(v); }, submit: function(event) { var _this = this; var info = _this.info; if(info.messageUserName == null || info.messageUserName.trim() == ''){ layer.msg("请输入姓名",{time:1000}); return false; } if(this.checkIsXSS(info.messageUserName)){ layer.msg("姓名输入异常!",{time:1000}); return false; } if(info.defineFields[0].defineContent == '' || info.defineFields[0].defineContent.trim() == ''){ layer.msg("请输入单位",{time:1000}); return false; } if(this.checkIsXSS(info.defineFields[0].defineContent)){ layer.msg("单位输入异常!",{time:1000}); return false; } if(info.defineFields[1].defineContent == '' || info.defineFields[1].defineContent.trim() == ''){ layer.msg("请输入邮箱",{time:1000}); return false; } if(!this.validateEmail(info.defineFields[1].defineContent)){ layer.msg("邮箱格式错误",{time:1000}); return false; } if(this.checkIsXSS(info.defineFields[1].defineContent)){ layer.msg("邮箱输入异常!",{time:1000}); return false; } if(info.defineFields[2].defineContent == ''){ layer.msg("请选择您的身份",{time:1000}); return false; } if(info.messageTitle == null || info.messageTitle.trim() == ''){ layer.msg("请输入留言标题",{time:1000}); return false; } if(this.checkIsXSS(info.messageTitle)){ layer.msg("留言标题输入异常!",{time:1000}); return false; } if(!_this.msgEditor.hasContents()){ layer.msg("请输入留言内容",{time:1000}); return false; } var msgContent = _this.msgEditor.getContent(); if(this.checkIsXSS(msgContent)){ layer.msg("留言内容输入异常!",{time:1000}); return false; } if((info.verifyCode == null || info.verifyCode.trim() == '') && info.msgCode == "Y" ){ layer.msg("请输入验证码",{time:1000}); return false; } if(this.checkIsXSS(info.verifyCode)){ layer.msg("验证码输入异常!",{time:1000}); return false; } var base64 = new Base64(); info.messageContent = base64.encode(_this.filterSensitive(msgContent)) info.messageTitle=info.messageTitle.trim() if (_this.canClick == true) { _this.canClick = false; postWithLogin('/aop_component//webber/messageboard/front/add',JSON.stringify(info) ,10,1889051832,function(ret){ vm.isError = 0; if(ret.code == '0000'){ layer.msg("留言"+ret.msg+",请等待管理员回复",{time:3000}); setTimeout(function(){ window.location.reload() },4000) } else { layer.msg(ret.msg,{time:3000}); if (ret.msg=="验证码错误,请重新填写!") { _this.codeRload() } setTimeout(function() { _this.canClick = true; },500) } }, function(response){ setTimeout(function() { _this.canClick = true; },500) if(response.msg){ layer.msg(response.msg,{time:1000}); }else{ _this.isError = 1; _this.errMsg = '应用维护中!'; } }); } }, } }) </script></div> </div> </div> </div> <!--============================主体 结束=============================--> <!--============================底部 开始=============================--> <footer> <div class="fl01"> <div class="wp"> <div class="left"><div class="box"> <h3>仙林校区</h3> <p>南京市栖霞区仙林大道163号</p> <p>(86)-25-89683186</p> <p>(86)-25-83302728(fax)</p> <p>210023</p> <p> </p></div> <div class="box"> <h3>鼓楼校区</h3> <p>南京市鼓楼区汉口路22号</p> <p>(86)-25-83593186</p> <p>(86)-25-83302728(fax)</p> <p>210093</p> <p> </p></div> <div class="box"> <h3>浦口校区</h3> <p>南京市浦口区学府路8号</p> <p>(86)-25-58646684</p> <p>210089</p></div> <div class="box"> <h3>苏州校区</h3> <p>苏州市太湖大道1520号</p> <p>(86)-25-89681766</p> <p>(86)-512-68768001</p> <p>215163</p> <p><br></p></div></div> <div class="center"> <script language="javascript" src="/system/resource/js/dynclicks.js"></script><a href="index.htm" onclick="_addDynClicks("wbimage", 1889051832, 75228)" target="_blank"> <img src="images/footer_logo.svg" alt="" class="img1"> </a> </div> <div class="right"> <ul class="list12"> <li class=""><div class="a"> <img src="images/list12_ico3.png" alt=""> <div class="ewm"> <img src="images/a_erm9.png" alt=""> </div> </div></li> <li class=""><div class="a"> <img src="images/list12_ico4.png" alt=""> <div class="ewm"> <img src="images/erweima1.png" alt=""> </div> </div></li> <li class=""><div class="a"> <img src="images/list12_ico5.png" alt=""> <div class="ewm"> <img src="images/erweima2.png" alt=""> </div> </div></li> <li class=""><div class="a"> <img src="images/list12_ico6.png" alt=""> <div class="ewm"> <img src="images/d4eaf3c6-503e-4dc8-9b32-28a71b08171c.jpg" alt=""> </div> </div></li> </ul> </div> </div> </div> <div class="fl02"><!-- 版权内容请在本组件"内容配置-版权"处填写 --> <div class="wp"><p>Copyright © Nanjing University All Rights Reserved | <a href="https://beian.miit.gov.cn/">苏ICP备10085945号 </a> webmaster@nju.edu.cn</p></div></div> </footer> <div style="display: none;"> <!-- 下面这个div是二维码容器,ID不能变--> <div id="outputu10"></div> <!-- 下面是生成二维码调用的JS,不要动--> <script language="javascript" src="/system/resource/js/jquery/jquery-latest.min.js"></script> <script src="/system/resource/qrcode/js/jquery.qrcode.js"></script> <script src="/system/resource/qrcode/js/qrcode.js"></script> <script> var codeInfo = "" ==""? window.location.href:""; jQuery(function(){ jQuery('#outputu10').qrcode({ text:codeInfo, render: !!document.createElement('canvas').getContext?"canvas":"table",//设置渲染方式 width: 200, //设置宽度 height: 200, //设置高度 correctLevel: 0,//纠错等级 background: "#ffffff",//背景颜色 foreground: "#000000",//前景颜色 logo:""//图像logo }); }) </script></div> </section> <script type="text/javascript" src="js/anime.min.js"></script> <script type="text/javascript" src="js/jquery.parallax.js"></script> <!--============================底部 结束=============================--> <!--============================动画 开始=============================--> <script src="js/a_style.js"></script> <script src="js/a_animate.js"></script> <script src="js/share.js"></script> <script> AOS.init({ disable: 'mobile', // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function startEvent: 'DOMContentLoaded', // name of the event dispatched on the document, that AOS should initialize on initClassName: 'aos-init', // class applied after initialization animatedClassName: 'aos-animate', // class applied on animation useClassNames: false, // if true, will add content of `data-aos` as classes on scroll disableMutationObserver: false, // disables automatic mutations' detections (advanced) debounceDelay: 50, // the delay on debounce used while resizing window (advanced) throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced) // Settings that can be overridden on per-element basis, by `data-aos-*` attributes: offset: 150, // offset (in px) from the original trigger point delay: 0, // values from 0 to 3000, with step 50ms duration: 1000, // values from 0 to 3000, with step 50ms easing: 'ease', // default easing for AOS animations mirror: false, // whether elements should animate out while scrolling past them anchorPlacement: 'top-bottom', // defines which position of the element regarding to window should trigger the animation }); </script> <!--============================动画 结束=============================--> <script> $('#share-2').share({ sites: ['wechat','weibo','qzone'] }); $(".new-cont table").wrap("<div class='tbsc'></div>"); </script> </body> </html>