newsadd.jsp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  4. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  5. <%
  6. String base = pageContext.getServletContext().getContextPath();
  7. %>
  8. <script type="text/javascript">
  9. window.UEDITOR_SERVER_URL = '<%=base%>';
  10. </script>
  11. <html>
  12. <head>
  13. <meta charset="utf-8">
  14. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  15. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  16. <meta name="viewport"
  17. content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
  18. <meta http-equiv="Cache-Control" content="no-siteapp"/>
  19. <link rel="Bookmark" href="/favicon.ico">
  20. <link rel="Shortcut Icon" href="/favicon.ico"/>
  21. <!--[if lt IE 9]>
  22. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/html5shiv.js"></script>
  23. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/respond.min.js"></script>
  24. <![endif]-->
  25. <link rel="stylesheet" type="text/css"
  26. href="${pageContext.request.contextPath}/static/static/h-ui/css/H-ui.min.css"/>
  27. <link rel="stylesheet" type="text/css"
  28. href="${pageContext.request.contextPath}/static/static/h-ui.admin/css/H-ui.admin.css"/>
  29. <link rel="stylesheet" type="text/css"
  30. href="${pageContext.request.contextPath}/static/lib/Hui-iconfont/1.0.8/iconfont.css"/>
  31. <link rel="stylesheet" type="text/css"
  32. href="${pageContext.request.contextPath}/static/static/h-ui.admin/skin/default/skin.css" id="skin"/>
  33. <link rel="stylesheet" type="text/css"
  34. href="${pageContext.request.contextPath}/static/static/h-ui.admin/css/style.css"/>
  35. <!--[if IE 6]>
  36. <script type="text/javascript"
  37. src="${pageContext.request.contextPath}/static/lib/DD_belatedPNG_0.0.8a-min.js"></script>
  38. <script>DD_belatedPNG.fix('*');</script>
  39. <![endif]-->
  40. <!--/meta 作为公共模版分离出去-->
  41. <title>新增文章 - 资讯管理 - H-ui.admin v3.1</title>
  42. <meta name="keywords" content="H-ui.admin v3.1,H-ui网站后台模版,后台模版下载,后台管理系统模版,HTML后台模版下载">
  43. <meta name="description" content="H-ui.admin v3.1,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
  44. </head>
  45. <body>
  46. <article class="page-container">
  47. <form class="form form-horizontal" id="form-article-add" enctype="multipart/form-data" action="${pageContext.request.contextPath}/news/insertnews.html" method="post">
  48. <input name="id" hidden="hidden" value="${news.id}" />
  49. <div class="row cl">
  50. <label class="form-label col-xs-4 col-sm-2"><span class="c-red">*</span>新闻标题:</label>
  51. <div class="formControls col-xs-8 col-sm-9">
  52. <input type="text" class="input-text" value="${news.title}" placeholder="" id="title" name="title">
  53. </div>
  54. </div>
  55. <div class="row cl">
  56. <label class="form-label col-xs-4 col-sm-2">新闻概要:</label>
  57. <div class="formControls col-xs-8 col-sm-9">
  58. <input type="text" class="input-text" value="${news.outline}" placeholder="" id="outline"
  59. name="outline">
  60. </div>
  61. </div>
  62. <div class="row cl">
  63. <label class="form-label col-xs-4 col-sm-2">作者:</label>
  64. <div class="formControls col-xs-8 col-sm-9">
  65. <input type="text" name="author" id="author" placeholder="" value="${news.author}"
  66. class="input-text">
  67. </div>
  68. </div>
  69. <div class="row cl">
  70. <label class="form-label col-xs-4 col-sm-2">排序值:</label>
  71. <div class="formControls col-xs-8 col-sm-9">
  72. <c:if test="${news.sort != null && news.sort != ''}">
  73. <input type="text" class="input-text" value="${news.sort}" placeholder="0" id="sort" name="sort">
  74. </c:if>
  75. <c:if test="${news.sort == null || news.sort == ''}">
  76. <input type="text" class="input-text" value="0" placeholder="0" id="sort" name="sort">
  77. </c:if>
  78. </div>
  79. </div>
  80. <div class="row cl">
  81. <label class="form-label col-xs-4 col-sm-2">封面图:</label>
  82. <div class="formControls col-xs-8 col-sm-4">
  83. <input type="file" class="input-text" name="file">
  84. </div>
  85. <div class="formControls col-xs-8 col-sm-2">
  86. <c:if test="${news.img != null && news.img != ''}">
  87. <img alt="" src="${pageContext.request.contextPath}/${news.img }" width="90" height="60">
  88. </c:if>
  89. </div>
  90. <div class="formControls col-xs-8 col-sm-4">
  91. <span class="c-red">图片最佳尺寸(像素):200 x 164</span>
  92. </div>
  93. </div>
  94. <div class="row cl">
  95. <label class="form-label col-xs-4 col-sm-2">文章内容:</label>
  96. <div class="formControls col-xs-8 col-sm-9">
  97. <script id="introduction" type="text/plain" style="width:100%;height:400px;" >
  98. ${news.content}
  99. </script>
  100. </div>
  101. </div>
  102. <div class="row cl">
  103. <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
  104. <button class="btn btn-primary radius" onclick="checkform();" type="submit"><i class="Hui-iconfont">&#xe632;</i> 保存</button>
  105. <button class="btn btn-default radius" type="button">&nbsp;&nbsp;取消&nbsp;&nbsp;</button>
  106. </div>
  107. </div>
  108. </form>
  109. </article>
  110. <!--_footer 作为公共模版分离出去-->
  111. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/jquery/1.9.1/jquery.min.js"></script>
  112. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/layer/2.4/layer.js"></script>
  113. <script type="text/javascript" src="${pageContext.request.contextPath}/static/static/h-ui/js/H-ui.min.js"></script>
  114. <script type="text/javascript" src="${pageContext.request.contextPath}/static/static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer /作为公共模版分离出去-->
  115. <!--请在下方写此页面业务相关的脚本-->
  116. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/My97DatePicker/4.8/WdatePicker.js"></script>
  117. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
  118. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/jquery.validation/1.14.0/validate-methods.js"></script>
  119. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/jquery.validation/1.14.0/messages_zh.js"></script>
  120. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/webuploader/0.1.5/webuploader.min.js"></script>
  121. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/ueditor/1.4.3/ueditor.config.js"></script>
  122. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/ueditor/1.4.3/ueditor.all.min.js"></script>
  123. <script type="text/javascript" src="${pageContext.request.contextPath}/static/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
  124. <script type="text/javascript">
  125. /**
  126. *添加
  127. * @returns {boolean}
  128. */
  129. function checkform() {
  130. document.getElementById("form-article-add").submit();
  131. return true;
  132. }
  133. $(function () {
  134. $('.skin-minimal input').iCheck({
  135. checkboxClass: 'icheckbox-blue',
  136. radioClass: 'iradio-blue',
  137. increaseArea: '20%'
  138. });
  139. //表单验证
  140. $("#form-article-add").validate({
  141. rules: {
  142. articletitle: {
  143. required: true,
  144. },
  145. articletitle2: {
  146. required: true,
  147. },
  148. articlecolumn: {
  149. required: true,
  150. },
  151. articletype: {
  152. required: true,
  153. },
  154. articlesort: {
  155. required: true,
  156. },
  157. keywords: {
  158. required: true,
  159. },
  160. abstract: {
  161. required: true,
  162. },
  163. author: {
  164. required: true,
  165. },
  166. sources: {
  167. required: true,
  168. },
  169. allowcomments: {
  170. required: true,
  171. },
  172. commentdatemin: {
  173. required: true,
  174. },
  175. commentdatemax: {
  176. required: true,
  177. },
  178. },
  179. onkeyup: false,
  180. focusCleanup: true,
  181. success: "valid",
  182. submitHandler: function (form) {
  183. //$(form).ajaxSubmit();
  184. var index = parent.layer.getFrameIndex(window.name);
  185. //parent.$('.btn-refresh').click();
  186. parent.layer.close(index);
  187. }
  188. });
  189. $list = $("#fileList"),
  190. $btn = $("#btn-star"),
  191. state = "pending",
  192. uploader;
  193. var uploader = WebUploader.create({
  194. auto: true,
  195. swf: 'lib/webuploader/0.1.5/Uploader.swf',
  196. // 文件接收服务端。
  197. server: 'fileupload.php',
  198. // 选择文件的按钮。可选。
  199. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  200. pick: '#filePicker',
  201. // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
  202. resize: false,
  203. // 只允许选择图片文件。
  204. accept: {
  205. title: 'Images',
  206. extensions: 'gif,jpg,jpeg,bmp,png',
  207. mimeTypes: 'image/*'
  208. }
  209. });
  210. uploader.on('fileQueued', function (file) {
  211. var $li = $(
  212. '<div id="' + file.id + '" class="item">' +
  213. '<div class="pic-box"><img></div>' +
  214. '<div class="info">' + file.name + '</div>' +
  215. '<p class="state">等待上传...</p>' +
  216. '</div>'
  217. ),
  218. $img = $li.find('img');
  219. $list.append($li);
  220. // 创建缩略图
  221. // 如果为非图片文件,可以不用调用此方法。
  222. // thumbnailWidth x thumbnailHeight 为 100 x 100
  223. uploader.makeThumb(file, function (error, src) {
  224. if (error) {
  225. $img.replaceWith('<span>不能预览</span>');
  226. return;
  227. }
  228. $img.attr('src', src);
  229. }, thumbnailWidth, thumbnailHeight);
  230. });
  231. // 文件上传过程中创建进度条实时显示。
  232. uploader.on('uploadProgress', function (file, percentage) {
  233. var $li = $('#' + file.id),
  234. $percent = $li.find('.progress-box .sr-only');
  235. // 避免重复创建
  236. if (!$percent.length) {
  237. $percent = $('<div class="progress-box"><span class="progress-bar radius"><span class="sr-only" style="width:0%"></span></span></div>').appendTo($li).find('.sr-only');
  238. }
  239. $li.find(".state").text("上传中");
  240. $percent.css('width', percentage * 100 + '%');
  241. });
  242. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  243. uploader.on('uploadSuccess', function (file) {
  244. $('#' + file.id).addClass('upload-state-success').find(".state").text("已上传");
  245. });
  246. // 文件上传失败,显示上传出错。
  247. uploader.on('uploadError', function (file) {
  248. $('#' + file.id).addClass('upload-state-error').find(".state").text("上传出错");
  249. });
  250. // 完成上传完了,成功或者失败,先删除进度条。
  251. uploader.on('uploadComplete', function (file) {
  252. $('#' + file.id).find('.progress-box').fadeOut();
  253. });
  254. uploader.on('all', function (type) {
  255. if (type === 'startUpload') {
  256. state = 'uploading';
  257. } else if (type === 'stopUpload') {
  258. state = 'paused';
  259. } else if (type === 'uploadFinished') {
  260. state = 'done';
  261. }
  262. if (state === 'uploading') {
  263. $btn.text('暂停上传');
  264. } else {
  265. $btn.text('开始上传');
  266. }
  267. });
  268. $btn.on('click', function () {
  269. if (state === 'uploading') {
  270. uploader.stop();
  271. } else {
  272. uploader.upload();
  273. }
  274. });
  275. var ue = UE.getEditor('introduction',{
  276. //关闭字数统计
  277. wordCount:false,
  278. toolbars:[['fullscreen', 'source', '|', 'undo', 'redo', '|',
  279. 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
  280. 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
  281. 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
  282. 'directionalityltr', 'directionalityrtl', 'indent', '|',
  283. 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
  284. 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
  285. 'insertimage', 'emotion', 'insertvideo', 'attachment', 'map', 'template', 'background', '|',
  286. 'horizontal', 'date', 'time', 'spechars', 'wordimage', '|',
  287. 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
  288. 'print', 'preview', 'searchreplace', 'help'
  289. ]],
  290. //关闭elementPath
  291. elementPathEnabled:false,
  292. });
  293. });
  294. </script>
  295. <!--/请在上方写此页面业务相关的脚本-->
  296. <script type="text/javascript">
  297. var currentBrowserId;
  298. function browserImage(targetId){
  299. currentBrowserId = targetId;
  300. var weboxTemp = $.webox({
  301. height:600,
  302. width:1024,
  303. bgvisibel:true,
  304. title:'图片管理',
  305. iframe:'<%=base%>/admin/image/imgbox.html?'+Math.random()
  306. });
  307. }
  308. function setImagepath(imgPath){
  309. $('#'+currentBrowserId).val(imgPath);
  310. }
  311. function closeFrame(){
  312. $('#locked .span').click();
  313. }
  314. </script>
  315. <script type="text/javascript" src="${pageContext.request.contextPath}/static/admin/js/laydate.dev.js"></script>
  316. <script type="text/javascript">
  317. laydate({
  318. elem: '#J-xl'
  319. });
  320. document.getElementById('J-xl-2-btn').onclick = function(){
  321. laydate({
  322. elem: '#J-xl-2'
  323. });
  324. }
  325. laydate({
  326. elem: '#J-xl-3'
  327. });
  328. laydate({
  329. elem: document.getElementById('J-xl-4')
  330. });
  331. </script>
  332. </body>
  333. </html>