event_join.htm 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>{lang xj_event:wycj}</title>
  6. <link href="source/plugin/xj_event/ui/jquery-ui.css" rel="stylesheet">
  7. <style>
  8. body{ font-size:12px; padding:0px 10px;font-family: "Microsoft YaHei" ! important;}
  9. #dialog label, #dialog input { display:block; }
  10. #dialog label { margin-top: 0.5em; }
  11. #dialog input, #dialog textarea { width: 95%; }
  12. #tabs { margin-top: 1em; }
  13. #tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
  14. #add_tab { cursor: pointer; }
  15. </style>
  16. <script src="source/plugin/xj_event/ui/jquery.1.10.2.js"></script>
  17. <script src="source/plugin/xj_event/ui/jquery-ui.js"></script>
  18. <script type="text/javascript" src="source/plugin/xj_event/module/wsqcenter/js/jquery.form.js"></script>
  19. <script>
  20. $(function() {
  21. var event_number_max = {$items[event_number_max]};
  22. var tabCounter = 2,weinum = 2
  23. tabTemplate = "<li><a href='#{href}'>#{label}</a> </li>";
  24. var tabs = $( "#tabs" ).tabs();
  25. $("#button").button().click(function(event) {
  26. if(weinum<=event_number_max){
  27. addTab();
  28. }
  29. });
  30. tabs.delegate( "span.ui-icon-close", "click", function() {
  31. var panelId = $( this ).closest( "li" ).remove().attr( "aria-controls" );
  32. $( "#" + panelId ).remove();
  33. tabs.tabs( "refresh" );
  34. //刷新一下位数
  35. weinum = 1;
  36. $('#tabs ul li').each(function(index) {
  37. $(this).children("a").html('{lang xj_event:di}'+weinum+'{lang xj_event:wei}');
  38. weinum++;
  39. });
  40. });
  41. //地区选择
  42. var residecity;
  43. $(".residecity").button();
  44. $("body").on("click",".residecity", function () {
  45. residecity = $(this);
  46. $.ajax({
  47. cache: false,
  48. type: "POST",
  49. url: 'plugin.php?id=xj_event:city&level=1',
  50. dataType: 'html',
  51. async: true,
  52. error: function(request) {
  53. alert("Connection error");
  54. },
  55. success: function(html) {
  56. residecity.hide();
  57. residecity.next().html(html);
  58. }
  59. });
  60. });
  61. $("body").on("change","#province",function(){
  62. var province = $(this).val();
  63. $.ajax({
  64. cache: false,
  65. type: "POST",
  66. url: 'plugin.php?id=xj_event:city&level=2&province='+province,
  67. dataType: 'html',
  68. async: true,
  69. error: function(request) {
  70. alert("Connection error");
  71. },
  72. success: function(html) {
  73. residecity.next().html(html);
  74. }
  75. });
  76. // alert($(this).find("option:selected").text());
  77. });
  78. $("body").on("change","#city",function(){
  79. var city = $(this).val();
  80. var province = $("#province").val();
  81. $.ajax({
  82. cache: false,
  83. type: "POST",
  84. url: 'plugin.php?id=xj_event:city&level=2&province='+province+'&city='+city,
  85. dataType: 'html',
  86. async: true,
  87. error: function(request) {
  88. alert("Connection error");
  89. },
  90. success: function(html) {
  91. residecity.next().html(html);
  92. }
  93. });
  94. });
  95. $("body").on("change","#county",function(){
  96. var county = $(this).val();
  97. var province = $("#province").val();
  98. var city = $("#city").val();
  99. $.ajax({
  100. cache: false,
  101. type: "POST",
  102. url: 'plugin.php?id=xj_event:city&level=3&province='+province+'&city='+city+'&county='+county,
  103. dataType: 'html',
  104. async: true,
  105. error: function(request) {
  106. alert("Connection error");
  107. },
  108. success: function(html) {
  109. if(html.indexOf('<!--end-->')>-1){
  110. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  111. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  112. residecity.next().html('');
  113. residecity.show();
  114. }else{
  115. residecity.next().html(html);
  116. }
  117. }
  118. });
  119. });
  120. $("body").on("change","#town",function(){
  121. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  122. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  123. residecity.next().html('');
  124. residecity.show();
  125. });
  126. //生日时期选择
  127. $("body").on("focus",".dateselect",function(){
  128. $(this).next().html('<input type="text" id="datepicker">');
  129. $( "#datepicker" ).datepicker({
  130. defaultDate: '{$mybirthday}',
  131. monthNamesShort:['{lang xj_event:yiyue}', '{lang xj_event:eryue}', '{lang xj_event:sanyue}', '{lang xj_event:siyue}', '{lang xj_event:wuyue}', '{lang xj_event:niuyue}', '{lang xj_event:qiyue}', '{lang xj_event:bayue}', '{lang xj_event:jiuyue}', '{lang xj_event:shiyue}', '{lang xj_event:shiyiyue}', '{lang xj_event:shieryue}'],
  132. dayNamesMin :['{lang xj_event:ri}', '{lang xj_event:yi}', '{lang xj_event:er}', '{lang xj_event:san}', '{lang xj_event:si}', '{lang xj_event:wu}', '{lang xj_event:niu}'],
  133. changeMonth: true,
  134. changeYear: true,
  135. dateFormat: 'yy-mm-dd',
  136. onClose: function( selectedDate ) {
  137. //$( "#to" ).datepicker( "option", "minDate", selectedDate );
  138. $(this).parent().prev().val(selectedDate);
  139. $(this).parent().prev().show();
  140. $(this).parent().html('');
  141. }
  142. });
  143. $(this).hide();
  144. $(this).next().find("input").focus();
  145. });
  146. //提交
  147. $("#sumbit").button().click(function(event) {
  148. <!--{if $setting[statements]}-->
  149. //是否同意活动声明
  150. if($("#shenming").is(':checked') == false){
  151. alert('{lang xj_event:tyhdsmhckybm}');
  152. return;
  153. }
  154. <!--{/if}-->
  155. var postjson = [];
  156. var a = false;
  157. $('#tabs ul li').each(function(index) {
  158. var json = {};
  159. $('#'+$(this).attr('aria-controls')+' input').each(function(index) {
  160. if($(this).attr('type')=='text' || $(this).attr('type')=='hidden'){
  161. json[$(this).attr('name')] = $(this).val();
  162. }
  163. if($(this).attr('type')=='checkbox'){
  164. if($(this).is(':checked')){
  165. var checkboxname = $(this).attr('name').replace('[]','');
  166. if(json[checkboxname]){
  167. json[checkboxname] = json[checkboxname] + ',' + $(this).val();
  168. }else{
  169. json[checkboxname] = $(this).val();
  170. }
  171. }
  172. }
  173. if( $(this).attr('type')=='radio'){
  174. if($(this).is(':checked')){
  175. json[$(this).attr('name')] = $(this).val();
  176. }
  177. }
  178. });
  179. $('#'+$(this).attr('aria-controls')+' select').each(function(index) {
  180. json[$(this).attr('name')] = $(this).val();
  181. });
  182. //判断是否有空的数据
  183. if(JSON.stringify(json).indexOf('""')>-1){
  184. a = true;
  185. }
  186. $('#'+$(this).attr('aria-controls')+' textarea').each(function(index) {
  187. json[$(this).attr('name')] = $(this).val();
  188. });
  189. postjson.push(json);
  190. });
  191. //判断是否有空的数据
  192. if(a){
  193. showmessage('{lang xj_event:bmzlqtxwz}');
  194. return;
  195. }
  196. var postdata = JSON.stringify(postjson);
  197. $('#tabs').hide();
  198. $('#sumbit').hide();
  199. $.ajax({
  200. cache: false,
  201. type: "POST",
  202. url: 'plugin.php?id=xj_event:event_join&tid={$tid}&action=joinfull&formhash={$_G[formhash]}',
  203. data: postdata,
  204. dataType: 'json',
  205. async: true,
  206. error: function(request) {
  207. alert("Connection error");
  208. $('#tabs').show();
  209. $('#sumbit').show();
  210. },
  211. success: function(json) {
  212. if(json.full == 1){
  213. showmessage(json.message);
  214. $('body,html').animate({scrollTop:0},0);
  215. if(json.url){
  216. window.parent.parent.location.href=json.url;
  217. }else{
  218. window.parent.parent.location.href='forum.php?mod=viewthread&tid={$tid}';
  219. }
  220. return true;
  221. }else if(json.full == 2){
  222. $('#tabs').show();
  223. $('#sumbit').show();
  224. showmessage(json.message);
  225. $('body,html').animate({scrollTop:0},1000);
  226. return false;
  227. }
  228. }
  229. });
  230. });
  231. function addTab() {
  232. var label = '' || "Tab " + tabCounter,
  233. id = "tabs-" + tabCounter,
  234. li = "<li><a href='#"+id+"'>{lang xj_event:di}"+weinum+"{lang xj_event:wei}</a><span class='ui-icon ui-icon-close' role='presentation'>Remove Tab</span></li>",
  235. tabContentHtml = '' || "Tab " + tabCounter + " content.";
  236. tabs.find( ".ui-tabs-nav" ).append( li );
  237. tabs.append( "<div id='"+id+"' aria-labelledby='ui-id-"+tabCounter+"' class='ui-tabs-panel ui-widget-content ui-corner-bottom' role='tabpanel' aria-hidden='true' style='display: none;'>"+$("#bmtemplate").html()+"</div>" );
  238. tabs.tabs( "refresh" );
  239. tabCounter++;
  240. weinum++;//第几位位数增加
  241. }
  242. function showmessage(mm){
  243. $('#warning_mm').html(mm);
  244. $('#warning').show();
  245. function closemm(){
  246. $('#warning').hide();
  247. clearTimeout(mmtime);
  248. }
  249. var mmtime = setTimeout(function(){
  250. closemm()
  251. },4000);
  252. }
  253. });
  254. </script>
  255. </head>
  256. <body>
  257. <div class="ui-widget" id="warning" style="display:none;">
  258. <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
  259. <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span><span id="warning_mm"></span></p>
  260. </div>
  261. </div>
  262. <!-- Tabs -->
  263. <div id="tabs">
  264. <ul>
  265. <li><a href="#tabs-1">{lang xj_event:di}1{lang xj_event:wei}</a></li>
  266. <button id="button"><span class="ui-icon ui-icon-plus"></span></button>
  267. </ul>
  268. <div id="tabs-1">
  269. <!--{if $setting[session]}-->
  270. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  271. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:huodongcc}</div>
  272. <select name="session" style="width:120px;">
  273. <option value="" selected="selected">{lang choose_please}</option>
  274. <!--{loop $setting[session] $key $value}-->
  275. <option value="$key">$value</option>
  276. <!--{/loop}-->
  277. </select>
  278. </div>
  279. <!--{/if}-->
  280. <!--{if $setting[cost]}-->
  281. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  282. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:baominglx}</div>
  283. <select name="costclass" style="width:120px;">
  284. <!--{loop $setting[cost] $value}-->
  285. <option value="{$value[id]}">{$value[cost_name]}</option>
  286. <!--{/loop}-->
  287. </select>
  288. </div>
  289. <!--{/if}-->
  290. <!--{if !empty($selectuserfield)}-->
  291. <!--{loop $selectuserfield $fieldid}-->
  292. <!--{if $settings[$fieldid][available]}-->
  293. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  294. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">$settings[$fieldid][title]</div>
  295. <!--{if $settings[$fieldid][formtype] != 'file'}-->
  296. $htmls[$fieldid]
  297. <!--{else}-->
  298. <input id="activitypic_$fieldid" type="text" tabindex="1" value="" placeholder="{lang xj_event:qsrtpdz}" class="px" name="$fieldid" onblur="if(!this.value.match(/^https?:\/\/.+\/.+\.(jpg|png|gif|jpeg|bmp)$/i)){ $('showerror_$fieldid').innerHTML='{lang xj_event:tpdzcw}';}else{ $('showerror_$fieldid').innerHTML='&nbsp;';}">
  299. <!--{/if}-->
  300. </div>
  301. <!--{/if}-->
  302. <!--{/loop}-->
  303. <!--{/if}-->
  304. <!--{if !empty($myuserfield)}-->
  305. <!--{loop $myuserfield $value}-->
  306. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  307. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{$value[title]}</div>
  308. {$value[html]}
  309. </div>
  310. <!--{/loop}-->
  311. <!--{/if}-->
  312. <!--{if in_array('bmmessage',$selectuserfield)}-->
  313. <div style=" padding:10px 10px;">
  314. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:liuyan}</div>
  315. <textarea name="message" maxlength="100" cols="38" rows="3" class="pt" tabindex="4"></textarea>
  316. </div>
  317. <!--{/if}-->
  318. </div>
  319. </div>
  320. <!--{if $setting[statements]}-->
  321. <div id="shemming_content" style="padding:20px; background-color:#f0f0f0; display:none;">
  322. {$_G[cache][plugin][xj_event][event_statements]}
  323. </div>
  324. <script>
  325. function showshenming(){
  326. if($('#shemming_content').is(":hidden")){
  327. $('#shemming_content').show();
  328. }else{
  329. $('#shemming_content').hide();
  330. }
  331. }
  332. </script>
  333. <div style="padding:5px;">
  334. <input type="checkbox" id="shenming" value="yes" checked="checked" />{lang xj_event:tongyi}<a href="javascript:" onclick="showshenming();">{lang xj_event:huodongsm}</a>
  335. </div>
  336. <!--{/if}-->
  337. <div style="padding:10px; text-align:center;">
  338. <button id="sumbit">{lang xj_event:tijiao}</button>
  339. </div>
  340. <div id="bmtemplate" style="display:none;">
  341. <!--{if $setting[session]}-->
  342. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  343. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:huodongcc}</div>
  344. <select id="selectmenu" name="session" style="width:120px;">
  345. <option value="" selected="selected">{lang choose_please}</option>
  346. <!--{loop $setting[session] $key $value}-->
  347. <option value="$key">$value</option>
  348. <!--{/loop}-->
  349. </select>
  350. </div>
  351. <!--{/if}-->
  352. <!--{if $setting[cost]}-->
  353. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  354. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:baominglx}</div>
  355. <select name="costclass" style="width:120px;">
  356. <!--{loop $setting[cost] $value}-->
  357. <option value="{$value[id]}">{$value[cost_name]}</option>
  358. <!--{/loop}-->
  359. </select>
  360. </div>
  361. <!--{/if}-->
  362. <!--{if !empty($selectuserfield)}-->
  363. <!--{loop $selectuserfield $fieldid}-->
  364. <!--{if $settings[$fieldid][available]}-->
  365. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  366. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">$settings[$fieldid][title]</div>
  367. <!--{if $settings[$fieldid][formtype] != 'file'}-->
  368. $htmls[$fieldid]
  369. <!--{else}-->
  370. <input id="activitypic_$fieldid" type="text" tabindex="1" value="" placeholder="{lang xj_event:qsrtpdz}" class="px" name="$fieldid" onblur="if(!this.value.match(/^https?:\/\/.+\/.+\.(jpg|png|gif|jpeg|bmp)$/i)){ $('showerror_$fieldid').innerHTML='{lang xj_event:tpdzcw}';}else{ $('showerror_$fieldid').innerHTML='&nbsp;';}">
  371. <!--{/if}-->
  372. </div>
  373. <!--{/if}-->
  374. <!--{/loop}-->
  375. <!--{/if}-->
  376. <!--{if !empty($myuserfield)}-->
  377. <!--{loop $myuserfield $value}-->
  378. <div style=" padding:10px 10px; border-bottom:1px dashed #CCC;">
  379. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{$value[title]}</div>
  380. {$value[html]}
  381. </div>
  382. <!--{/loop}-->
  383. <!--{/if}-->
  384. <div style=" padding:10px 10px;">
  385. <div style="width:80px; float:left; line-height:30px; font-size:12px; color:#999;">{lang xj_event:liuyan}</div>
  386. <textarea name="message" maxlength="100" cols="38" rows="3" class="pt" tabindex="4"></textarea>
  387. </div>
  388. </div>
  389. <script language="javascript">
  390. $(function(){
  391. //上传图片
  392. $("body").on("change",".uploadfile",function(){
  393. var showimg = $(this).parent().parent().find('.showimg');
  394. var bar = $(this).parent().parent().find('.bar');
  395. var uploadcover = $(this).parent().parent().find('.uploadcover');
  396. var uploaderror = $(this).parent().parent().find('.uploaderror');
  397. var inputtext = $(this).parent().parent().find('.inputtext');
  398. bar.show();
  399. $(this).parent().parent().find('form').ajaxSubmit({
  400. dataType: 'json',
  401. beforeSend: function() {
  402. //showimg.empty();
  403. var percentVal = '0%';
  404. bar.width(percentVal);
  405. },
  406. uploadProgress: function(event, position, total, percentComplete) {
  407. var percentVal = percentComplete + '%';
  408. bar.width(percentVal);
  409. },
  410. success: function(data) {
  411. if(data.error){
  412. alert(data.error);
  413. var percentVal = '0%';
  414. bar.width(percentVal);
  415. return;
  416. }
  417. //progress.hide();
  418. bar.hide();
  419. //files.html("<b>"+data.name+"("+data.size+"k)</b> <span class='delimg' rel='"+data.pic+"'>删除</span>");
  420. if(data.pic!=null){
  421. var img = "{$_G[siteurl]}"+data.dir+data.pic;
  422. inputtext.val(img);
  423. showimg.html("<img src='"+img+"' style='width:100%;'>");
  424. uploadcover.hide();
  425. }
  426. },
  427. error:function(xhr){
  428. bar.width('0');
  429. uploaderror.html(xhr.responseText);
  430. }
  431. });
  432. });
  433. });
  434. </script>
  435. </body>
  436. </html>