updateGoods.jsp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
  5. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  6. <!DOCTYPE HTML>
  7. <html>
  8. <head>
  9. <meta charset="utf-8">
  10. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  11. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  12. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  13. <meta http-equiv="Cache-Control" content="no-siteapp" />
  14. <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.min.css" rel="stylesheet" type="text/css" />
  15. <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.login.css" rel="stylesheet" type="text/css" />
  16. <link href="${pageContext.request.contextPath }/common/admin/css/style.css" rel="stylesheet" type="text/css" />
  17. <link href="${pageContext.request.contextPath }/common/admin/lib/Hui-iconfont/1.0.1/iconfont.css"rel="stylesheet" type="text/css" />
  18. <title>修改商品</title>
  19. </head>
  20. <body>
  21. <div class="pd-20">
  22. <form action="${pageContext.request.contextPath }/admin/goods/updateGoods" class="form form-horizontal" id="form-addGoods" method="POST" enctype="multipart/form-data">
  23. <input name="goodsInfoId" type="hidden" value="${goodsGoodinfo.goodsInfoId }">
  24. <div class="row cl">
  25. <label class="form-label col-2"><span class="c-red">*</span>商品名称:</label>
  26. <div class="formControls col-10">
  27. <input id="goodsInfoGoodname" name="goodsInfoGoodname" value="${goodsGoodinfo.goodsInfoGoodname }" type="text" class="input-text" value="" placeholder="" >
  28. </div>
  29. </div>
  30. <div class="row cl">
  31. <label class="form-label col-2">商品简称:</label>
  32. <div class="formControls col-10">
  33. <input id="goodsInfoDescname" name="goodsInfoDescname" value="${goodsGoodinfo.goodsInfoDescname }" type="text" class="input-text" placeholder="">
  34. </div>
  35. </div>
  36. <div class="row cl">
  37. <label class="form-label col-2"><span class="c-red">*</span>商品类型:</label>
  38. <div class="formControls col-2"> <span class="select-box">
  39. <select id="goodstype" name="goodsInfoType" class="select" onchange="showHidden();">
  40. <option value="1" ${goodsGoodinfo.goodsInfoType==1?'selected':''}>销售产品</option>
  41. <option value="2" ${goodsGoodinfo.goodsInfoType==2?'selected':''}>积分产品</option>
  42. </select>
  43. </span>
  44. </div>
  45. <label id="integralLabel" class="form-label col-2" style="display: none">所需积分:</label>
  46. <div id="integralDiv" class="formControls col-2" style="display: none">
  47. <input id="integral" name="goodsInfoIntegralNum" type="text" value="${goodsGoodinfo.goodsInfoIntegralNum }" class="input-text" placeholder="" >
  48. </div>
  49. </div>
  50. <div class="row cl">
  51. <label class="form-label col-2"><span class="c-red">*</span>所属分类:</label>
  52. <div class="formControls col-2"> <span class="select-box">
  53. <select id="" name="goodsInfoTId" class="select" >
  54. <c:forEach items="${typeNameList }" var="infolist">
  55. <option value="${infolist.goodTypeId }" ${goodsGoodinfo.goodsInfoType==infolist.goodTypeId?'selected':''}>${infolist.goodTypename }</option>
  56. </c:forEach>
  57. </select>
  58. </span>
  59. </div>
  60. <label class="form-label col-2">商品重量:</label>
  61. <div class="formControls col-4">
  62. <input id="goodsInfoWeight" type="text" name="goodsInfoWeight" value="${goodsGoodinfo.goodsInfoWeight }" id="" placeholder="" class="input-text" style="width:90%">kg</div>
  63. </div>
  64. <div class="row cl">
  65. <label class="form-label col-2">商品原价:</label>
  66. <div class="formControls col-2">
  67. <input id="goodsInfoPrice" type="text" name="goodsInfoPrice" id="" placeholder="" value="${goodsGoodinfo.goodsInfoPrice }" class="input-text" style="width:90%">元</div>
  68. <label class="form-label col-2">商品优惠价:</label>
  69. <div class="formControls col-2">
  70. <input id="goodsInfoDiscount" type="text" name="goodsInfoDiscount" id="" placeholder="" value="${goodsGoodinfo.goodsInfoDiscount }" class="input-text" style="width:90%">元</div>
  71. </div>
  72. <div class="row cl">
  73. <label id="integralLabel" class="form-label col-2">品牌:</label>
  74. <div id="integralDiv" class="formControls col-2">
  75. <input id="goodsInfoBrand" name="goodsInfoBrand" type="text" class="input-text" value="${goodsGoodinfo.goodsInfoBrand }" placeholder="">
  76. </div>
  77. <label id="integralLabel" class="form-label col-2">商品原料:</label>
  78. <div id="integralDiv" class="formControls col-2">
  79. <input id="goodsInfoIngredients" name="goodsInfoIngredients" type="text" class="input-text" value="${goodsGoodinfo.goodsInfoIngredients }" placeholder="">
  80. </div>
  81. </div>
  82. <div class="row cl">
  83. <label id="integralLabel" class="form-label col-2">是否推荐上首页:</label>
  84. <div class="formControls col-2"> <span class="select-box">
  85. <select id="goodsInfoIndex" name="goodsInfoIndex" class="select">
  86. <option value="1" ${goodsGoodinfo.goodsInfoIndex==1?'selected':''} >推荐到首页</option>
  87. <option value="2" ${goodsGoodinfo.goodsInfoIndex==2?'selected':''}>不推荐到首页</option>
  88. </select>
  89. </span>
  90. </div>
  91. <label class="form-label col-2">产地:</label>
  92. <div class="formControls col-2">
  93. <input id="goodsInfoOrigin" name="goodsInfoOrigin" value="${goodsGoodinfo.goodsInfoOrigin }" type="text" class="input-text" value="" placeholder="">
  94. </div>
  95. </div>
  96. <div class="row cl">
  97. <label id="integralLabel" class="form-label col-2">安装方式:</label>
  98. <div class="formControls col-2">
  99. <input id="goodsInfoInstallation" name="goodsInfoInstallation" value="${goodsGoodinfo.goodsInfoInstallation }" type="text" class="input-text" value="" placeholder="">
  100. </div>
  101. <label class="form-label col-2">寿命:</label>
  102. <div class="formControls col-2">
  103. <input id="goodsInfoLife" name="goodsInfoLife" value="${goodsGoodinfo.goodsInfoLife }" type="text" class="input-text" value="" placeholder="">
  104. </div>
  105. </div>
  106. <div class="row cl">
  107. <label id="integralLabel" class="form-label col-2">是否属于净水机:</label>
  108. <div class="formControls col-2"> <span class="select-box">
  109. <select id="goodsInfoIs" name="goodsInfoIs" class="select">
  110. <option value="1" ${goodsGoodinfo.goodsInfoIs==1?'selected':''}>属于净水机</option>
  111. <option value="2" ${goodsGoodinfo.goodsInfoIs==2?'selected':''}>滤芯</option>
  112. <option value="3" ${goodsGoodinfo.goodsInfoIs==3?'selected':''}>其他</option>
  113. </select>
  114. </span>
  115. </div>
  116. </div>
  117. <div class="row cl">
  118. <label id="integralLabel" class="form-label col-2">保质期:</label>
  119. <div id="integralDiv" class="formControls col-2">
  120. <input id="goodsInfoShelf" name="goodsInfoShelf" type="text" class="input-text" value="${goodsGoodinfo.goodsInfoShelf }" placeholder="">天
  121. </div>
  122. <label id="integralLabel" class="form-label col-2">备注:</label>
  123. <div id="integralDiv" class="formControls col-2">
  124. <textarea id="" name="goodsInfoNote" class="textarea-text" placeholder="">${goodsGoodinfo.goodsInfoNote }</textarea>
  125. </div>
  126. </div>
  127. <div class="row cl">
  128. <label class="form-label col-2"><span class="c-red">*</span>包装类型:</label>
  129. <div id="integralDiv" class="formControls col-2">
  130. <input id="goodsInfoPackagingType" name="goodsInfoPackagingType" type="text" class="input-text" value="${goodsGoodinfo.goodsInfoPackagingType }" placeholder="">
  131. </div>
  132. </div>
  133. <div class="row cl">
  134. <label class="form-label col-2">商品介绍:</label>
  135. <div class="formControls col-5">
  136. <textarea id="goodsInfoGooddesc" name="goodsInfoGooddesc" cols="" rows="" class="textarea">${goodsGoodinfo.goodsInfoGooddesc }</textarea>
  137. </div>
  138. </div>
  139. <div class="row cl">
  140. <label class="form-label col-2">商品封面图:</label>
  141. <div class="col-10 ">
  142. <input type="file" name="file" size="50"><img style="border:2px solid #0A6999;" id="goodsimage" src="${pageContext.request.contextPath }${goodsGoodinfo.goodsInfoDescImage }" width="50" height="50"></img>
  143. <input type="hidden" name="goodsInfoDescImage" value="${goodsGoodinfo.goodsInfoDescImage } " >
  144. </div>
  145. <label class="form-label col-2">商品介绍图:</label>
  146. <input id="goodsImaLength" type="hidden" value="${fn:length(goodsImage)}">
  147. <input name="goodsimages" class="urlClass1" type="text" id="url" value="" /> <i class="Hui-iconfont">&#xe642;</i> <input type="button" class="addImagesClass btn btn-primary radius upload-btn" id="imageFile1" value="选择图片" />
  148. <c:forEach items="${goodsImage }" var="infolist">
  149. <img style="border:2px solid #0A6999;" src="${infolist.goodsImageUrl }" onclick="deleteImg(${infolist.goodsImageId },this)" width="50" height="50"></img>
  150. </c:forEach>
  151. </div>
  152. <div id="spots" class="row cl">
  153. <label class="form-label col-2"></label>
  154. <input id="addimages" type="button" class="btn btn-primary radius upload-btn" value="新增介绍图" />
  155. </div>
  156. <div class="row cl">
  157. <div class="col-10 col-offset-2">
  158. <button id="submit" onClick="return admin_updateGoods();" class="btn btn-primary radius" type="submit"><i class="Hui-iconfont">&#xe632;</i> 保存</button>
  159. </div>
  160. </div>
  161. </form>
  162. </div>
  163. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/jquery/1.9.1/jquery.min.js"></script>
  164. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/layer/1.9.3/layer.js"></script>
  165. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.js"></script>
  166. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.admin.js"></script>
  167. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/tips.js"></script>
  168. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/ueditor.all.min.js"></script>
  169. <script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/ueditor.config.js"></script>
  170. <script type="text/javascript" src="${pageContext.request.contextPath }/common/js/utils/tools.js"></script>
  171. <script type="text/javascript" src="${pageContext.request.contextPath }/common/js/utils/jquery-1.9.1.min.js"></script>
  172. <script charset="utf-8" src="/ratfw/common/other/kingedit/kindeditor-min.js"></script>
  173. <script charset="utf-8" src="/ratfw/common/other/kingedit/lang/zh_CN.js"></script>
  174. <script type="text/javascript">
  175. KindEditor.ready(function(K) {
  176. window.editor = K.create('#goodsInfoGooddesc',{
  177. fileManagerJson : '/ratfw/common/other/kingedit/jsp/file_manager_json.jsp',
  178. uploadJson : '/ratfw/common/other/kingedit/jsp/upload_json.jsp',
  179. allowFileManager : true,
  180. width : '920px'
  181. });
  182. });
  183. </script>
  184. <script type="text/javascript">
  185. $(document).ready(function(){
  186. //回显商品类型
  187. showHidden();
  188. //绑定上传事件
  189. addBtnEvent(1);
  190. var imagelength = $("#goodsImaLength").val();
  191. var ids = document.getElementsByName('goodsimages').length;
  192. if(Number(imagelength)+Number(ids)>=10) {
  193. $("input#addimages").hide();
  194. }
  195. $("input#addimages").click(function(){
  196. addSpot(this);
  197. });
  198. })
  199. function addSpot(obj) {
  200. var goodsimagess = document.getElementsByName('goodsimages').length;
  201. var sm = (10 - $("#goodsImaLength").val());
  202. var ids = "imageFile"+(goodsimagess+1);
  203. var urls = "url"+(goodsimagess+1);
  204. var imagesClass = "urlClass"+(goodsimagess+1);
  205. $('div#spots').before(
  206. '<div class="row cl">'+
  207. '<label class="form-label col-2"></label>'+
  208. '<input name="goodsimages" class='+imagesClass+' type="text" id='+urls+'/>'+
  209. '&nbsp;<i class="Hui-iconfont">&#xe642;</i>&nbsp;'+
  210. '<input type="button" class="addImagesClass btn btn-primary radius upload-btn" id='+ids+' value="选择图片" />' +
  211. '&nbsp;<input type="button" class="remove btn btn-primary radius upload-btn" onclick="removes(this)" value="删除" /></div>')
  212. //新增完成后在获取上传组件的个数
  213. var goodsimage = document.getElementsByName('goodsimages').length;
  214. if(goodsimage >= sm) {
  215. $("input#addimages").hide();
  216. }
  217. //给新增的按钮绑定事件
  218. addBtnEvent((goodsimagess+1));
  219. };
  220. //删除新增的按钮
  221. function removes(obj){
  222. $(obj).parent().remove();
  223. $("input#addimages").show();
  224. }
  225. function addBtnEvent(goodsimagess){
  226. KindEditor.ready(function(K) {
  227. var editor = K.editor({
  228. fileManagerJson : '/ratfw/common/other/kingedit/jsp/file_manager_json.jsp',
  229. uploadJson : '/ratfw/common/other/kingedit/jsp/upload_json.jsp',
  230. allowFileManager : true
  231. });
  232. K('#imageFile'+goodsimagess).click(function() {
  233. var imgid = $(this).attr("id");//获取当前ID
  234. var imagesClass = "urlClass"+imgid.substr(imgid.length-1,1);
  235. editor.loadPlugin('image', function() {
  236. editor.plugin.imageDialog({
  237. showRemote : false,
  238. imageUrl : K('.'+imagesClass).val(),
  239. clickFn : function(url, title, width, height, border, align) {
  240. K('.'+imagesClass).val(url);
  241. editor.hideDialog();
  242. return false;
  243. }
  244. });
  245. });
  246. });
  247. });
  248. }
  249. //控制所需积分显示或隐藏
  250. function showHidden(){
  251. var showhidden = $("#goodstype").val();
  252. if(showhidden == "2"){
  253. document.getElementById("integralDiv").style.display="";//隐藏
  254. document.getElementById("integralLabel").style.display="";//隐藏
  255. $("#integralLabel").val("");//清空所需积分的值
  256. }else{
  257. document.getElementById("integralDiv").style.display="none";//显示
  258. document.getElementById("integralLabel").style.display="none";//显示
  259. }
  260. }
  261. function deleteImg(imgId,obj){
  262. layer.confirm('确定要删除吗?',function(index){
  263. var _this = $(obj);
  264. $.ajax({
  265. url: '${pageContext.request.contextPath }/admin/goods/deleteGoodsImage',
  266. type: "POST",
  267. dataType: "json",
  268. data: {objVal : imgId},
  269. error:function(){
  270. layer.msg(data.status,{icon: 5,time:1000});
  271. },
  272. success: function(data){
  273. layer.msg(data.status,{icon: 1,time:1000});
  274. _this.remove();
  275. var goodsimagess = document.getElementsByName('goodsimages').length;
  276. var imagelength = (Number($("#goodsImaLength").val())-1);//将当前的图片个数减一并添加到该隐藏域
  277. $("#goodsImaLength").val(imagelength);
  278. if(Number(goodsimagess)+Number(imagelength)<10){
  279. $("input#addimages").show();//显示图片新增按钮
  280. }
  281. }
  282. });
  283. });
  284. }
  285. /*商品-添加*/
  286. function admin_updateGoods(){
  287. //商品名称数据验证
  288. if(!commonLengthJdg('goodsInfoGoodname',1,30,null,true)){
  289. layer.msg("商品名称长度为1-30位",{icon: 5,time:3000});
  290. return;
  291. }
  292. //商品简称数据验证
  293. if(!commonLengthJdg('goodsInfoDescname',1,10,null,true)){
  294. layer.msg("商品简称长度为1-10位",{icon: 5,time:3000});
  295. return;
  296. }
  297. //商品简称数据验证
  298. if(!commonLengthJdg('goodsInfoDescname',1,10,null,true)){
  299. layer.msg("商品简称长度为1-10位",{icon: 5,time:3000});
  300. return;
  301. }
  302. if($("#goodstype").val() == 2){
  303. //所需积分数据验证
  304. if(!commonLengthJdg('integral',1,9,null,true)){
  305. layer.msg("所需积分长度为1-9位",{icon: 2,time:3000});
  306. return false;
  307. }
  308. if(!commonTypeJdg('integral','money',null,true)){
  309. layer.msg("积分不能为空或格式错误",{icon: 2,time:3000});
  310. return false;
  311. }
  312. }
  313. //商品重量数据验证
  314. if(!commonLengthJdg('goodsInfoWeight',1,100,null,true)){
  315. layer.msg("商品重量长度为1-100位",{icon: 5,time:3000});
  316. return;
  317. }
  318. //商品原价数据验证
  319. if(!commonTypeJdg('goodsInfoPrice','money',null,true)){
  320. layer.msg("商品原价须为金钱格式",{icon: 5,time:3000});
  321. return;
  322. }
  323. //商品优惠价数据验证
  324. if(!commonTypeJdg('goodsInfoDiscount','money',null,true)){
  325. layer.msg("商品优惠价须为金钱格式",{icon: 5,time:3000});
  326. return;
  327. }
  328. //品牌数据验证
  329. if(!commonLengthJdg('goodsInfoBrand',1,100,null,true)){
  330. layer.msg("品牌长度为1-50位",{icon: 5,time:3000});
  331. return;
  332. }
  333. //商品原料数据验证
  334. if(!commonLengthJdg('goodsInfoIngredients',1,500,null,true)){
  335. layer.msg("商品原料长度为1-250位",{icon: 5,time:3000});
  336. return;
  337. }
  338. //保质期数据验证
  339. if(!commonLengthJdg('goodsInfoShelf',1,10,null,true)){
  340. layer.msg("保质期长度为1-5位",{icon: 5,time:3000});
  341. return;
  342. }
  343. //商品包装数据验证
  344. if(!commonLengthJdg('goodsInfoPackagingType',1,10,null,true)){
  345. layer.msg("商品包装长度为1-5位",{icon: 2,time:3000});
  346. return false;
  347. }
  348. //场地数据验证
  349. if(!commonLengthJdg('goodsInfoOrigin',1,10,null,true)){
  350. layer.msg("场地长度为1-5位",{icon: 2,time:2000});
  351. return false;
  352. }
  353. //安装方式数据验证
  354. if(!commonLengthJdg('goodsInfoInstallation',1,10,null,true)){
  355. layer.msg("安装方式长度为1-5位",{icon: 2,time:2000});
  356. return false;
  357. }
  358. //寿命数据验证
  359. if(!commonLengthJdg('goodsInfoLife',1,10,null,true)){
  360. layer.msg("寿命长度为1-5位",{icon: 2,time:2000});
  361. return false;
  362. }
  363. }
  364. </script>
  365. </body>
  366. </html>