pointprod.add.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. <?php defined('InShopNC') or exit('Access Invalid!');?>
  2. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
  3. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquery-ui/jquery.ui.js"></script>
  4. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquery-ui/i18n/zh-CN.js" charset="utf-8"></script>
  5. <link rel="stylesheet" type="text/css" href="<?php echo RESOURCE_SITE_URL;?>/js/jquery-ui/themes/ui-lightness/jquery.ui.css" />
  6. <div class="page">
  7. <div class="fixed-bar">
  8. <div class="item-title">
  9. <h3><?php echo $lang['nc_pointprod'];?></h3>
  10. <ul class="tab-base">
  11. <li><a href="index.php?act=pointprod&op=pointprod" ><span><?php echo $lang['admin_pointprod_list_title'];?></span></a></li>
  12. <li><a href="JavaScript:void(0);" class="current"><span><?php echo $lang['admin_pointprod_add_title'];?></span></a></li>
  13. <li><a href="index.php?act=pointorder&op=pointorder_list" ><span><?php echo $lang['admin_pointorder_list_title'];?></span></a></li>
  14. </ul>
  15. </div>
  16. </div>
  17. <div class="fixed-empty"></div>
  18. <form id="pointprod_form" method="post" enctype="multipart/form-data" >
  19. <input type="hidden" name="form_submit" value="ok" />
  20. <table class="table tb-type2">
  21. <thead>
  22. <tr class="space">
  23. <th colspan="3"><?php echo $lang['admin_pointprod_baseinfo']; ?></th>
  24. </tr>
  25. </thead>
  26. <tbody>
  27. <tr>
  28. <th class="required" style="line-height:normal; border-top: 1px dotted #CBE9F3;"><label for=""><?php echo $lang['admin_pointprod_goods_image'];?>:</label></th>
  29. <td colspan="2" class="required"><label class="validation" for="goodsname"><?php echo $lang['admin_pointprod_goods_name']; ?>:</label></td>
  30. </tr>
  31. <tr class="noborder">
  32. <th rowspan="6" class="picture"><div class="size-200x200"><span class="thumb size-200x200"><i></i><img src="<?php echo UPLOAD_SITE_URL.DS.ATTACH_COMMON.DS.C('default_goods_image'); ?>" onload="javascript:DrawImage(this,200,200);" nc_type="goods_image" /></span></div>
  33. </th>
  34. <td class="vatop rowform"><input type="text" name="goodsname" id="goodsname" class="txt"/></td>
  35. <td class="vatop tips"></td>
  36. </tr>
  37. <tr>
  38. <td colspan="2" class="required"><label class="validation" for="goodsprice"><?php echo $lang['admin_pointprod_goods_price']; ?>:</label></td>
  39. </tr>
  40. <tr class="noborder">
  41. <td class="vatop rowform"><input type="text" name="goodsprice" id="goodsprice" class="txt"/></td>
  42. <td class="vatop tips"></td>
  43. </tr>
  44. <tr>
  45. <td colspan="2" class="required"><label class="validation" for="goodspoints"><?php echo $lang['admin_pointprod_goods_points']; ?>:</label></td>
  46. </tr>
  47. <tr class="noborder">
  48. <td class="vatop rowform"><input type="text" name="goodspoints" id="goodspoints" class="txt"/></td>
  49. <td class="vatop tips"></td>
  50. </tr>
  51. <tr>
  52. <td colspan="2" class="required"><label class="validation" for="goodsserial"><?php echo $lang['admin_pointprod_goods_serial']; ?>:</label></td>
  53. </tr>
  54. <tr class="noborder">
  55. <th style="line-height:normal;"><span class="type-file-box">
  56. <input name="goods_images" type="file" class="type-file-file" id="goods_images" size="30" hidefocus="true" nc_type="change_goods_image">
  57. </span> </th>
  58. <td class="vatop rowform"><input type="text" name="goodsserial" id="goodsserial" class="txt"/></td>
  59. <td class="vatop tips"></td>
  60. </tr>
  61. <tr>
  62. <th class="required" style="line-height:normal; border-top: 1px dotted #CBE9F3;"><label for="goodstag"><?php echo $lang['admin_pointprod_goods_tag']; ?>:</label></th>
  63. <td colspan="2" class="required"><label class="validation" for="goodsstorage"><?php echo $lang['admin_pointprod_goods_storage']; ?>:</label></td>
  64. </tr>
  65. <tr class="noborder">
  66. <td class="vatop rowform"><input type="text" name="goodstag" id="goodstag" class="txt"/></td>
  67. <td class="vatop rowform"><input type="text" name="goodsstorage" id="goodsstorage" class="txt"/></td>
  68. <td class="vatop tips"></td>
  69. </tr>
  70. <tr class="space">
  71. <th colspan="3"><?php echo $lang['admin_pointprod_requireinfo']; ?></th>
  72. </tr>
  73. <tr>
  74. <td colspan="3" class="required"><label><?php echo $lang['admin_pointprod_limittip']; ?>:</label></td>
  75. </tr>
  76. <tr class="noborder">
  77. <td class="vatop rowform"><input type="radio" name="islimit" id="islimit_1" value="1" onclick="showlimit();"/>
  78. &nbsp;<?php echo $lang['admin_pointprod_limit_yes']; ?>&nbsp;
  79. <input type="radio" name="islimit" id="islimit_0" value="0" checked="checked" onclick="showlimit();"/>
  80. &nbsp;<?php echo $lang['admin_pointprod_limit_no']; ?></td>
  81. <td colspan="2" class="vatop tips"></td>
  82. </tr>
  83. </tbody>
  84. <tbody id="limitnum_div">
  85. <tr class="noborder">
  86. <td colspan="3" class="required"><label for="limitnum"><?php echo $lang['admin_pointprod_limitnum']; ?>:</label></td>
  87. </tr>
  88. <tr class="noborder">
  89. <td class="vatop rowform"><input type="text" name="limitnum" id="limitnum" class="txt" value="1" /></td>
  90. <td colspan="2" class="vatop tips"></td>
  91. </tr>
  92. </tbody>
  93. <tbody>
  94. <tr>
  95. <td colspan="3" class="required"><label><?php echo $lang['admin_pointprod_limittimetip']; ?>:</label></td>
  96. </tr>
  97. <tr class="noborder">
  98. <td class="vatop rowform"><input type="radio" name="islimittime" id="islimittime_1" value="1" onclick="showlimittime();"/>
  99. &nbsp;<?php echo $lang['admin_pointprod_limittime_yes']; ?>&nbsp;
  100. <input type="radio" name="islimittime" id="islimittime_0" value="0" checked="checked" onclick="showlimittime();"/>
  101. &nbsp;<?php echo $lang['admin_pointprod_limittime_no']; ?></td>
  102. <td colspan="2" class="vatop tips"></td>
  103. </tr>
  104. </tbody>
  105. <tbody name="limittime_div">
  106. <tr class="noborder">
  107. <td class="required"><label><?php echo $lang['admin_pointprod_starttime']; ?>: </label></td>
  108. <td colspan="2" class="required"><label><?php echo $lang['admin_pointprod_endtime'] ?>: </label></td>
  109. </tr>
  110. <tr class="noborder">
  111. <td class="vatop rowform"><input type="text" name="starttime" id="starttime" class="txt date" style="width:100px;" value="<?php echo @date('Y-m-d',time()); ?>"/><?php echo $lang['admin_pointprod_time_day']; ?>
  112. <select id="starthour" name="starthour" style="margin-left: 8px; _margin-left: 4px; width:50px;">
  113. <?php foreach ($output['hourarr'] as $item){ ?>
  114. <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
  115. <?php }?>
  116. </select>
  117. <?php echo $lang['admin_pointprod_time_hour']; ?></td>
  118. <td class="vatop rowform"><input type="text" name="endtime" id="endtime" class="txt date" style="width:100px;" value="<?php echo @date('Y-m-d',time()); ?>" />
  119. <?php echo $lang['admin_pointprod_time_day']; ?>
  120. <select id="endhour" name="endhour" style="margin-left: 8px; _margin-left: 4px; width:50px;">
  121. <?php foreach ($output['hourarr'] as $item){ ?>
  122. <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
  123. <?php }?>
  124. </select>
  125. <?php echo $lang['admin_pointprod_time_hour']; ?></td>
  126. <td class="vatop tips"></td>
  127. </tr>
  128. </tbody>
  129. <tbody>
  130. <tr>
  131. <td colspan="3" class="required"><label>限制参与兑换的会员级别:</label></td>
  132. </tr>
  133. <tr class="noborder">
  134. <td>
  135. <select name="limitgrade">
  136. <?php if ($output['member_grade']){?>
  137. <?php foreach ($output['member_grade'] as $k=>$v){?>
  138. <option value="<?php echo $v['level'];?>">V<?php echo $v['level'];?></option>
  139. <?php }?>
  140. <?php }?>
  141. </select>
  142. </td>
  143. <td colspan="2" class="vatop tips">当会员兑换积分商品时,需要达到该级别或者以上级别后才能参与兑换</td>
  144. </tr>
  145. </tbody>
  146. <tbody>
  147. <tr class="space">
  148. <th colspan="3"><?php echo $lang['admin_pointprod_stateinfo']; ?></th>
  149. </tr>
  150. <tr>
  151. <td colspan="3" class="required"><label><?php echo $lang['admin_pointprod_isshow']; ?>:</label></td>
  152. </tr>
  153. <tr class="noborder">
  154. <td class="vatop rowform onoff"><label for="showstate_1" class="cb-enable selected"><span><?php echo $lang['admin_pointprod_yes']; ?></span></label>
  155. <label for="showstate_0" class="cb-disable"><span><?php echo $lang['admin_pointprod_no']; ?></span></label>
  156. <input id="showstate_1" name="showstate" checked="checked" value="1" type="radio">
  157. <input id="showstate_0" name="showstate" value="0" type="radio"></td>
  158. <td colspan="2" class="vatop tips"></td>
  159. </tr>
  160. <tr>
  161. <td colspan="3" class="required"><label><?php echo $lang['admin_pointprod_iscommend']; ?>:</label></td>
  162. </tr>
  163. <tr class="noborder">
  164. <td class="vatop rowform onoff"><label for="commendstate_1" class="cb-enable"><span><?php echo $lang['admin_pointprod_yes']; ?></span></label>
  165. <label for="commendstate_0" class="cb-disable selected"><span><?php echo $lang['admin_pointprod_no']; ?></span></label>
  166. <input id="commendstate_1" name="commendstate" value="1" type="radio">
  167. <input id="commendstate_0" name="commendstate" checked="checked" value="0" type="radio"></td>
  168. <td colspan="2" class="vatop tips"></td>
  169. </tr>
  170. </tbody>
  171. <tbody id="forbidreason_div">
  172. <tr class="noborder">
  173. <td colspan="3" class="required"><label for="forbidreason"><?php echo $lang['admin_pointprod_forbidreason']; ?>: </label></td>
  174. </tr>
  175. <tr class="noborder">
  176. <td class="vatop rowform"><textarea name="forbidreason" id="forbidreason" rows="6" class="tarea"></textarea></td>
  177. <td colspan="2" class="vatop tips"></td>
  178. </tr>
  179. </tbody>
  180. <tbody>
  181. <tr class="space">
  182. <th colspan="3"><?php echo $lang['admin_pointprod_seoinfo']; ?></th>
  183. </tr>
  184. <tr>
  185. <td colspan="3" class="required"><label for="keywords"><?php echo $lang['admin_pointprod_seokey']; ?>:</label></td>
  186. </tr>
  187. <tr class="noborder">
  188. <td class="vatop rowform"><input type="text" name="keywords" id="keywords" class="txt"/></td>
  189. <td colspan="2" class="vatop tips"></td>
  190. </tr>
  191. <tr>
  192. <td colspan="3" class="required"><label for="description"><?php echo $lang['admin_pointprod_seodescription']; ?>:</label></td>
  193. </tr>
  194. <tr class="noborder">
  195. <td class="vatop rowform"><textarea class="tarea" rows="6" id="description" name="description"></textarea></td>
  196. <td colspan="2" class="vatop tips"></td>
  197. </tr>
  198. </tbody>
  199. <tbody>
  200. <tr class="space">
  201. <th colspan="3"><?php echo $lang['admin_pointprod_otherinfo']; ?></th>
  202. </tr>
  203. <tr>
  204. <td colspan="3" class="required"><label for="sort"><?php echo $lang['admin_pointprod_sort']; ?>:</label></td>
  205. </tr>
  206. <tr class="noborder">
  207. <td class="vatop rowform"><input type="text" name="sort" id="sort" class="txt" value="0" /></td>
  208. <td colspan="2" class="vatop tips"><?php echo $lang['admin_pointprod_sorttip']; ?></td>
  209. </tr>
  210. <tr class="space">
  211. <th colspan="3"><?php echo $lang['admin_pointprod_descriptioninfo']; ?></th>
  212. </tr>
  213. <tr>
  214. <td colspan="3"><?php showEditor('pgoods_body',$output['goods']['goods_body'],'600px','400px','visibility:hidden;',"false",$output['editor_multimedia']);?></td>
  215. </tr>
  216. <tr>
  217. <td colspan="3" class="required"><?php echo $lang['admin_pointprod_uploadimg']; ?>:</td>
  218. </tr>
  219. <tr class="noborder">
  220. <td colspan="3" id="divComUploadContainer"><input type="file" multiple="multiple" id="fileupload" name="fileupload" /></td>
  221. </tr>
  222. <tr>
  223. <td colspan="3" class="required"><?php echo $lang['admin_pointprod_uploadimg_complete'];?>:</td>
  224. </tr>
  225. <tr class="noborder">
  226. <td colspan="3"><ul id="thumbnails" class="thumblists">
  227. <?php if(is_array($output['file_upload'])){?>
  228. <?php foreach($output['file_upload'] as $k => $v){ ?>
  229. <li id="<?php echo $v['upload_id'];?>" class="picture" >
  230. <input type="hidden" name="file_id[]" value="<?php echo $v['upload_id'];?>" />
  231. <div class="size-64x64"><span class="thumb"><i></i><img src="<?php echo $v['upload_path'];?>" alt="<?php echo $v['file_name'];?>" onload="javascript:DrawImage(this,64,64);"/></span></div>
  232. <p><span><a href="javascript:insert_editor('<?php echo $v['upload_path'];?>');"><?php echo $lang['admin_pointprod_uploadimg_add'];?></a></span><span><a href="javascript:del_file_upload('<?php echo $v['upload_id'];?>');"><?php echo $lang['nc_del'];?></a></span></p>
  233. </li>
  234. <?php } ?>
  235. <?php } ?>
  236. </ul></td>
  237. </tr>
  238. </tbody>
  239. <tfoot>
  240. <tr class="tfoot">
  241. <td colspan="3"><a href="JavaScript:void(0);" class="btn" id="submitBtn"><span><?php echo $lang['nc_submit'];?></span></a></td>
  242. </tr>
  243. </tfoot>
  244. </table>
  245. </form>
  246. </div>
  247. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/fileupload/jquery.iframe-transport.js" charset="utf-8"></script>
  248. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/fileupload/jquery.ui.widget.js" charset="utf-8"></script>
  249. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/fileupload/jquery.fileupload.js" charset="utf-8"></script>
  250. <script>
  251. // 模拟上传input type='file'样式
  252. $(function(){
  253. var textButton="<input type='text' name='textfield' id='textfield1' class='type-file-text' /><input type='button' name='button' id='button1' value='' class='type-file-button' />"
  254. $(textButton).insertBefore("#goods_images");
  255. $("#goods_images").change(function(){
  256. $("#textfield1").val($("#goods_images").val());
  257. });
  258. });
  259. //按钮先执行验证再提交表单
  260. $(function(){$("#submitBtn").click(function(){
  261. if($("#pointprod_form").valid()){
  262. $("#pointprod_form").submit();
  263. }
  264. });
  265. });
  266. //
  267. function showlimit(){
  268. //var islimit = $('input[name=islimit][checked]').val();
  269. var islimit = $(":radio[name=islimit]:checked").val();
  270. if(islimit == '1'){
  271. $("#limitnum_div").show();
  272. $("#limitnum").val('');
  273. }else{
  274. $("#limitnum_div").hide();
  275. $("#limitnum").val('1');//为了减少提交表单的验证,所以添加一个虚假值
  276. }
  277. }
  278. function showforbidreason(){
  279. var forbidstate = $(":radio[name=forbidstate]:checked").val();
  280. if(forbidstate == '1'){
  281. $("#forbidreason_div").show();
  282. }else{
  283. $("#forbidreason_div").hide();
  284. }
  285. }
  286. function showlimittime(){
  287. var islimit = $(":radio[name=islimittime]:checked").val();
  288. if(islimit == '1'){
  289. $("[name=limittime_div]").show();
  290. $("#starttime").val('');
  291. $("#endtime").val('');
  292. }else{
  293. $("[name=limittime_div]").hide();
  294. $("#starttime").val('<?php echo @date('Y-m-d',time()); ?>');
  295. $("#endtime").val('<?php echo @date('Y-m-d',time()); ?>');
  296. }
  297. }
  298. $(function(){
  299. $('input[nc_type="change_goods_image"]').change(function(){
  300. var src = getFullPath($(this)[0]);
  301. $('img[nc_type="goods_image"]').attr('src', src);
  302. $('input[nc_type="change_goods_image"]').removeAttr('name');
  303. $(this).attr('name', 'goods_image');
  304. });
  305. showlimit();
  306. showforbidreason();
  307. showlimittime();
  308. $('#starttime').datepicker({dateFormat: 'yy-mm-dd'});
  309. $('#endtime').datepicker({dateFormat: 'yy-mm-dd'});
  310. $('#pointprod_form').validate({
  311. errorPlacement: function(error, element){
  312. error.appendTo(element.parent().parent().prev().find('td:first'));
  313. },
  314. rules : {
  315. goodsname : {
  316. required : true
  317. },
  318. goodsprice : {
  319. required : true,
  320. number : true,
  321. min : 0
  322. },
  323. goodspoints : {
  324. required : true,
  325. digits : true,
  326. min :0
  327. },
  328. goodsserial : {
  329. required : true
  330. },
  331. goodsstorage : {
  332. required : true,
  333. digits : true
  334. },
  335. limitnum : {
  336. required : true,
  337. digits : true,
  338. min : 0
  339. },
  340. starttime : {
  341. required : true,
  342. date : false
  343. },
  344. endtime : {
  345. required : true,
  346. date : false
  347. },
  348. sort : {
  349. required : true,
  350. digits : true,
  351. min :0
  352. }
  353. },
  354. messages : {
  355. goodsname : {
  356. required : '<?php echo $lang['admin_pointprod_add_goodsname_error']; ?>'
  357. },
  358. goodsprice : {
  359. required: '<?php echo $lang['admin_pointprod_add_goodsprice_null_error']; ?>',
  360. number : '<?php echo $lang['admin_pointprod_add_goodsprice_number_error']; ?>',
  361. min : '<?php echo $lang['admin_pointprod_add_goodsprice_number_error']; ?>'
  362. },
  363. goodspoints : {
  364. required: '<?php echo $lang['admin_pointprod_add_goodspoint_null_error']; ?>',
  365. digits : '<?php echo $lang['admin_pointprod_add_goodspoint_number_error']; ?>',
  366. min : '<?php echo $lang['admin_pointprod_add_goodspoint_number_error']; ?>'
  367. },
  368. goodsserial:{
  369. required : '<?php echo $lang['admin_pointprod_add_goodsserial_null_error']; ?>'
  370. },
  371. goodsstorage : {
  372. required: '<?php echo $lang['admin_pointprod_add_storage_null_error']; ?>',
  373. digits : '<?php echo $lang['admin_pointprod_add_storage_number_error']; ?>'
  374. },
  375. limitnum : {
  376. required: '<?php echo $lang['admin_pointprod_add_limitnum_error']; ?>',
  377. digits : '<?php echo $lang['admin_pointprod_add_limitnum_digits_error']; ?>',
  378. min : '<?php echo $lang['admin_pointprod_add_limitnum_digits_error']; ?>'
  379. },
  380. starttime : {
  381. required: '<?php echo $lang['admin_pointprod_add_limittime_null_error']; ?>'
  382. },
  383. endtime : {
  384. required: '<?php echo $lang['admin_pointprod_add_limittime_null_error']; ?>'
  385. },
  386. sort : {
  387. required: '<?php echo $lang['admin_pointprod_add_sort_null_error']; ?>',
  388. digits : '<?php echo $lang['admin_pointprod_add_sort_number_error']; ?>',
  389. min : '<?php echo $lang['admin_pointprod_add_sort_number_error']; ?>'
  390. }
  391. }
  392. });
  393. // 替换图片
  394. $('#fileupload').each(function(){
  395. $(this).fileupload({
  396. dataType: 'json',
  397. url: 'index.php?act=pointprod&op=pointprod_pic_upload',
  398. done: function (e,data) {
  399. if(data != 'error'){
  400. add_uploadedfile(data.result);
  401. }
  402. }
  403. });
  404. });
  405. });
  406. function add_uploadedfile(file_data)
  407. {
  408. var newImg = '<li id="' + file_data.file_id + '" class="picture"><input type="hidden" name="file_id[]" value="' + file_data.file_id + '" /><div class="size-64x64"><span class="thumb"><i></i><img src="<?php echo UPLOAD_SITE_URL.'/'.ATTACH_POINTPROD.'/';?>' + file_data.file_name + '" alt="' + file_data.file_name + '" width="64px" height="64px"/></span></div><p><span><a href="javascript:insert_editor(\'<?php echo UPLOAD_SITE_URL.'/'.ATTACH_POINTPROD.'/';?>' + file_data.file_name + '\');"><?php echo $lang['admin_pointprod_uploadimg_add'];?></a></span><span><a href="javascript:del_file_upload(' + file_data.file_id + ');"><?php echo $lang['nc_del'];?></a></span></p></li>';
  409. $('#thumbnails').prepend(newImg);
  410. }
  411. function insert_editor(file_path){
  412. KE.appendHtml('pgoods_body', '<img src="'+ file_path + '" alt="'+ file_path + '">');
  413. }
  414. function del_file_upload(file_id)
  415. {
  416. if(!window.confirm('<?php echo $lang['nc_ensure_del'];?>')){
  417. return;
  418. }
  419. $.getJSON('index.php?act=pointprod&op=ajaxdelupload&file_id=' + file_id, function(result){
  420. if(result){
  421. $('#' + file_id).remove();
  422. }else{
  423. alert('<?php echo $lang['admin_pointprod_delfail'];?>');
  424. }
  425. });
  426. }
  427. </script>