event_join.htm 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="width=device-width; initial-scale=1.0;">
  5. <title>{lang xj_event:huodbm}</title>
  6. <link rel="stylesheet" href="source/plugin/xj_event/mobileui/jquery.mobile-1.4.5.css">
  7. <script src="source/plugin/xj_event/mobileui/jquery.js"></script>
  8. <script src="source/plugin/xj_event/mobileui/jquery.mobile-1.4.5.js"></script>
  9. <script type="text/javascript" src="source/plugin/xj_event/module/wsqcenter/js/jquery.form.js"></script>
  10. <script>
  11. var tabCounter = 2,weinum = 2,cj=0; //cj 是动态生成的表单是否已套用jquerymobile样式
  12. var event_number_max = {$items[event_number_max]};
  13. $(function(){
  14. $("#sumbitbtn").click(function(){
  15. <!--{if $setting[statements]}-->
  16. //是否同意活动声明
  17. if($("#shenming").is(':checked') == false){
  18. alert('{lang xj_event:tyhdsmhckybm}');
  19. return;
  20. }
  21. <!--{/if}-->
  22. var postjson = [];
  23. var a = false;
  24. for(var i=1;i<=tabCounter;i++){
  25. if($('#tabs-'+i).html()){
  26. var json = {};
  27. $('#tabs-'+i+' input').each(function(index) {
  28. if($(this).attr('type')=='text' || $(this).attr('type')=='hidden'){
  29. json[$(this).attr('name')] = $(this).val();
  30. }
  31. if($(this).attr('type')=='checkbox'){
  32. if($(this).is(':checked')){
  33. var checkboxname = $(this).attr('name').replace('[]','');
  34. if(json[checkboxname]){
  35. json[checkboxname] = json[checkboxname] + ',' + $(this).val();
  36. }else{
  37. json[checkboxname] = $(this).val();
  38. }
  39. }
  40. }
  41. if( $(this).attr('type')=='radio'){
  42. if($(this).is(':checked')){
  43. json[$(this).attr('name')] = $(this).val();
  44. }
  45. }
  46. if($(this).attr('type')=='date'){
  47. json[$(this).attr('name')] = $(this).val();
  48. }
  49. });
  50. $('#tabs-'+i+' select').each(function(index) {
  51. json[$(this).attr('name')] = $(this).val();
  52. });
  53. //判断是否有空的数据
  54. if(JSON.stringify(json).indexOf('""')>-1){
  55. a = true;
  56. }
  57. $('#tabs-'+i+' textarea').each(function(index) {
  58. json[$(this).attr('name')] = $(this).val();
  59. });
  60. //alert(JSON.stringify(json));
  61. postjson.push(json);
  62. }
  63. }
  64. //判断是否有空的数据
  65. if(a){
  66. showmessage('{lang xj_event:hbqndxxwtxwz}');
  67. $("#popupBasic").popup('open');
  68. return;
  69. }
  70. var postdata = JSON.stringify(postjson);
  71. $('#sumbitbtn').hide();
  72. $.ajax({
  73. cache: false,
  74. type: "POST",
  75. url: 'plugin.php?id=xj_event:event_join&tid={$tid}&action=joinfull&formhash={$_G[formhash]}',
  76. data: postdata,
  77. dataType: 'json',
  78. async: true,
  79. error: function(request) {
  80. //showmessage('Connection error');
  81. $('#sumbitbtn').show();
  82. },
  83. success: function(json) {
  84. if(json.full == 1){
  85. window.location.href='{$_G[siteurl]}plugin.php?id=xj_event:wsqcenter&mod=join_success&tid={$tid}';
  86. return true;
  87. /*
  88. $('#popup_complete').popup('open');
  89. if(json.url){
  90. $("#pagethree_retrunurl").attr('href',json.url);
  91. }else{
  92. $("#pagethree_retrunurl").attr('href','{$_G[siteurl]}plugin.php?id=xj_event:wsqcenter&mod=event_view&tid={$tid}');
  93. }
  94. if(json.btntxt){
  95. $("#pagethree_retrunurl").html(json.btntxt);
  96. }
  97. if(json.message){
  98. $("#message_content2").html(json.message);
  99. }
  100. return true;
  101. */
  102. }else if(json.full == 2){
  103. showmessage(json.message);
  104. //confirmDialog(json.message);
  105. $('#sumbitbtn').show();
  106. return false;
  107. }
  108. }
  109. });
  110. });
  111. $("#addbtn").click(function(){
  112. if(weinum<=event_number_max){
  113. $("#join_content").append('<div data-role="collapsible" id="tabs-'+tabCounter+'"><h3><b>{lang xj_event:di}'+weinum+'{lang xj_event:wei}</b><span onClick="deletejoin('+tabCounter+');" class="ui-btn ui-btn-inline ui-icon-delete ui-btn-icon-notext" style="float:right; border:0px;"></span></h3><p>'+$('#bmtemplate').html()+'</p></div>');
  114. $("#join_content").collapsibleset("refresh");
  115. if(cj==0){
  116. $(".join_text").textinput();
  117. $(".myuserfield_text").textinput();
  118. $("select").selectmenu();
  119. $("textarea").textinput();
  120. $(".pc").checkboxradio();
  121. cj=1;
  122. }
  123. tabCounter++;
  124. weinum++;
  125. }
  126. });
  127. //地区选择
  128. var residecity;
  129. $("body").on("click",".residecity", function () {
  130. residecity = $(this);
  131. $.ajax({
  132. cache: false,
  133. type: "POST",
  134. url: 'plugin.php?id=xj_event:city&level=1&mobile=yes',
  135. dataType: 'html',
  136. async: true,
  137. error: function(request) {
  138. //alert("Connection error");
  139. },
  140. success: function(html) {
  141. residecity.hide();
  142. residecity.next().html(html);
  143. $("#province").selectmenu();
  144. }
  145. });
  146. });
  147. $("body").on("change","#province",function(){
  148. var province = $(this).val();
  149. $.ajax({
  150. cache: false,
  151. type: "POST",
  152. url: 'plugin.php?id=xj_event:city&level=2&province='+province,
  153. dataType: 'html',
  154. async: true,
  155. error: function(request) {
  156. //alert("Connection error");
  157. },
  158. success: function(html) {
  159. residecity.next().html(html);
  160. $("#province").selectmenu();
  161. $("#city").selectmenu();
  162. }
  163. });
  164. // alert($(this).find("option:selected").text());
  165. });
  166. $("body").on("change","#city",function(){
  167. var city = $(this).val();
  168. var province = $("#province").val();
  169. $.ajax({
  170. cache: false,
  171. type: "POST",
  172. url: 'plugin.php?id=xj_event:city&level=2&province='+province+'&city='+city,
  173. dataType: 'html',
  174. async: true,
  175. error: function(request) {
  176. //alert("Connection error");
  177. },
  178. success: function(html) {
  179. residecity.next().html(html);
  180. $("#province").selectmenu();
  181. $("#city").selectmenu();
  182. $("#county").selectmenu();
  183. }
  184. });
  185. });
  186. $("body").on("change","#county",function(){
  187. var county = $(this).val();
  188. var province = $("#province").val();
  189. var city = $("#city").val();
  190. $.ajax({
  191. cache: false,
  192. type: "POST",
  193. url: 'plugin.php?id=xj_event:city&level=3&province='+province+'&city='+city+'&county='+county,
  194. dataType: 'html',
  195. async: true,
  196. error: function(request) {
  197. //alert("Connection error");
  198. },
  199. success: function(html) {
  200. if(html.indexOf('<!--end-->')>-1){
  201. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  202. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  203. residecity.next().html('');
  204. residecity.show();
  205. }else{
  206. residecity.next().html(html);
  207. $("#province").selectmenu();
  208. $("#city").selectmenu();
  209. $("#county").selectmenu();
  210. $("#town").selectmenu();
  211. }
  212. }
  213. });
  214. });
  215. $("body").on("change","#town",function(){
  216. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  217. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  218. residecity.next().html('');
  219. residecity.show();
  220. });
  221. //单选列表
  222. $('#join_content').on("click",".xjselect span",function(){
  223. $(this).siblings('span').css("background-color","#ccc");
  224. $(this).css("background-color","#48bd46");
  225. $(this).siblings('input').attr('value',$(this).attr('data-value'));
  226. });
  227. $('#popup_complete').css('width',$(window).width()*0.9);
  228. $('#popup_warning').css('width',$(window).width()*0.9);
  229. });
  230. function deletejoin(id){
  231. $("#tabs-"+id).remove();
  232. weinum = 1;
  233. $("#join_content b").each(function(index) {
  234. $(this).html('{lang xj_event:di}'+weinum+'{lang xj_event:wei}');
  235. weinum++;
  236. });
  237. event.stopPropagation();
  238. }
  239. function confirmDialog(text) {
  240. var popupDialogId = 'popupDialog';
  241. $('<div data-role="popup" id="'+popupDialogId+'" class="ui-content" data-theme="a">\
  242. <p>'+text+'</p>\
  243. </div>')
  244. .appendTo($.mobile.pageContainer);
  245. var popupDialogObj = $('#' + popupDialogId);
  246. popupDialogObj.trigger('create');
  247. popupDialogObj.popup();
  248. popupDialogObj.popup('open');
  249. }
  250. function showmessage(mess){
  251. $("#message_content").html(mess);
  252. $('#popup_warning').popup('open');
  253. }
  254. </script>
  255. </head>
  256. <body>
  257. <div data-role="page" id="pageone" style="background-color:#eef0f1;">
  258. <!--{if !$Appbyme && !$magapp && !$QianFan}-->
  259. <div data-role="header" style="background-color:#f7f7f7;">
  260. <h1>{lang xj_event:huodbm}</h1>
  261. </div>
  262. <!--{/if}-->
  263. <div data-role="content">
  264. <div data-role="collapsible-set" id="join_content" class="joinitem">
  265. <div data-role="collapsible" data-collapsed="false" id="tabs-1">
  266. <h3><b>{lang xj_event:di}1{lang xj_event:wei}</b></h3>
  267. <p>
  268. <!--{if $setting[session]}-->
  269. <div data-role="fieldcontain">
  270. <label for="select-native-1">{lang xj_event:huodongcc}:</label>
  271. <div class="xjselect">
  272. <input type="hidden" name="session" value="">
  273. <!--{loop $setting[session] $key $value}-->
  274. <span style="font-size: 14px; padding: 3px 12px; color:#fff; border-radius: 4px; margin-bottom: 5px; margin-right: 5px; float: left; font-weight: normal; text-shadow: none; background-color: #ccc;" data-value="$key">$value</span>
  275. <!--{/loop}-->
  276. <div style="clear:both;"></div>
  277. </div>
  278. </div>
  279. <!--{/if}-->
  280. <!--{if $setting[cost]}-->
  281. <div data-role="fieldcontain">
  282. <label for="select-native-2">{lang xj_event:baominglx}:</label>
  283. <select name="costclass" id="select-native-2">
  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 data-role="fieldcontain">
  294. <label for="textarea-1">$settings[$fieldid][title]</label>
  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 data-role="fieldcontain">
  307. <label for="textarea-1">{$value[title]}</label>
  308. {$value[html]}
  309. </div>
  310. <!--{/loop}-->
  311. <!--{/if}-->
  312. <div data-role="fieldcontain">
  313. <label for="textarea-1">{lang xj_event:liuyan}</label>
  314. <textarea name="message" maxlength="100" id="textarea-1"></textarea>
  315. </div>
  316. </p>
  317. </div>
  318. </div>
  319. <!--{if $items[event_number_max] > 1}-->
  320. <button class="ui-btn ui-icon-plus ui-btn-icon-left" id="addbtn">{lang xj_event:zenjiayiren}</button>
  321. <!--{/if}-->
  322. <!--{if $setting[statements]}-->
  323. <div id="shemming_content" style="padding:20px; background-color:#f0f0f0; display:none;">
  324. {$_G[cache][plugin][xj_event][event_statements]}
  325. </div>
  326. <script>
  327. function showshenming(){
  328. if($('#shemming_content').is(":hidden")){
  329. $('#shemming_content').show();
  330. }else{
  331. $('#shemming_content').hide();
  332. }
  333. }
  334. </script>
  335. <div style="padding:5px;">
  336. <input type="checkbox" id="shenming" value="yes" checked="checked" data-role="none"/>{lang xj_event:tongyi}<a href="javascript:" onclick="showshenming();">{lang xj_event:huodongsm}</a>
  337. </div>
  338. <!--{/if}-->
  339. <div style="height:20px;"></div>
  340. </div>
  341. <div data-role="footer" data-position="fixed" data-tap-toggle="false" style="background-color:#FFF;">
  342. <span data-role="none" style=" display:block; background-color:#57c21e; padding:12px; text-shadow:none; font-weight:normal; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none;" id="sumbitbtn">{lang xj_event:tijiaobaomin}</span>
  343. </div>
  344. <div data-role="popup" id="popup_complete" data-history="false" data-overlay-theme="b" data-theme="a" data-dismissible="true" style="max-width:400px;">
  345. <div style="padding:30px; text-align:center;"> <span style="color:#919191; font-size:20px;" id="message"></span> </div>
  346. <div style="padding:15px;">
  347. <div style="text-align:center; padding-top:40px; padding-bottom:30px;">
  348. <!--{if $setting[group_qrcode]}-->
  349. <img src="{$setting[group_qrcode]}" style="width:80%; margin-top:-100px;"><br>
  350. {lang xj_event:saomajiaruweixinqun}<br><br>
  351. <!--{else}-->
  352. <img src="source/plugin/xj_event/images/complete.png" style="width:30%;"><br><br>
  353. <!--{/if}-->
  354. <span id="message_content2" style=" font-size:18px; color:#a0a0a0;font-family:'Microsoft YaHei';">{lang xj_event:gxnbmcgqddsh}</span>
  355. </div>
  356. <a href="" data-ajax="false" data-role="none" id="pagethree_retrunurl" style="display:block;margin:5%; background-color:#57c21e; padding:10px; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none;">{lang xj_event:querenbfh}</a>
  357. </div>
  358. </div>
  359. <div data-role="popup" id="popup_warning" data-history="false" data-overlay-theme="b" data-theme="a" data-dismissible="true" style="max-width:400px;">
  360. <div style="padding:30px; text-align:center;"> <span style="color:#919191; font-size:20px;" id="message"></span> </div>
  361. <div style="padding:15px;">
  362. <div style="text-align:center; padding-top:40px; padding-bottom:30px;">
  363. <img src="source/plugin/xj_event/images/warning.png" style="width:30%;"><br><br>
  364. <span id="message_content" style=" font-size:18px; color:#a0a0a0;font-family:'Microsoft YaHei';"></span>
  365. </div>
  366. <span onClick="$('#popup_warning').popup('close');" style=" display:block;margin:5%; background-color:#f64242; padding:10px; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none;">{lang xj_event:fanhuict}</span>
  367. </div>
  368. </div>
  369. </div>
  370. <!--
  371. <div data-role="page" id="pagetwo" style="background-color:#eef0f1;">
  372. <div data-role="header" style="background-color:#f7f7f7;">
  373. <h1>{lang xj_event:huodbm}</h1>
  374. </div>
  375. <div style="text-align:center; padding-top:40px; padding-bottom:30px;">
  376. <img src="source/plugin/xj_event/images/warning.png" style="width:30%;"><br><br>
  377. <span id="message_content" style=" font-size:18px; color:#a0a0a0;font-family:'Microsoft YaHei';"></span>
  378. </div>
  379. <a href="#pageone" style=" display:block;margin:5%; background-color:#f64242; padding:10px; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none;">{lang xj_event:fanhuict}</a>
  380. </div>
  381. <div data-role="page" id="pagethree" style="background-color:#eef0f1;">
  382. <div data-role="header" style="background-color:#f7f7f7;">
  383. <h1>{lang xj_event:huodbm}</h1>
  384. </div>
  385. <div style="text-align:center; padding-top:40px; padding-bottom:30px;">
  386. <img src="source/plugin/xj_event/images/complete.png" style="width:30%;"><br><br>
  387. <span id="message_content2" style=" font-size:18px; color:#a0a0a0;font-family:'Microsoft YaHei';">{lang xj_event:gxnbmcgqddsh}</span>
  388. </div>
  389. <a href="" data-ajax="false" data-role="none" id="pagethree_retrunurl" style="display:block;margin:5%; background-color:#57c21e; padding:10px; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none;">{lang xj_event:querenbfh}</a>
  390. </div>
  391. -->
  392. <div id="bmtemplate" style="display:none;">
  393. <!--{if $setting[session]}-->
  394. <div data-role="fieldcontain">
  395. <label for="select-native-1">{lang xj_event:huodongcc}:</label>
  396. <div class="xjselect">
  397. <input type="hidden" name="session" value="">
  398. <!--{loop $setting[session] $key $value}-->
  399. <span style="font-size: 14px; padding: 3px 12px; color:#fff; border-radius: 4px; margin-bottom: 5px; margin-right: 5px; float: left; font-weight: normal; text-shadow: none; background-color: #ccc;" data-value="$key">$value</span>
  400. <!--{/loop}-->
  401. <div style="clear:both;"></div>
  402. </div>
  403. </div>
  404. <!--{/if}-->
  405. <!--{if $setting[cost]}-->
  406. <div data-role="fieldcontain">
  407. <label for="select-native-2">{lang xj_event:baominglx}:</label>
  408. <select name="costclass" id="select-native-2">
  409. <!--{loop $setting[cost] $value}-->
  410. <option value="{$value[id]}">{$value[cost_name]}</option>
  411. <!--{/loop}-->
  412. </select>
  413. </div>
  414. <!--{/if}-->
  415. <!--{if !empty($selectuserfield)}-->
  416. <!--{loop $selectuserfield $fieldid}-->
  417. <!--{if $settings[$fieldid][available]}-->
  418. <div data-role="fieldcontain">
  419. <label for="textarea-1">$settings[$fieldid][title]</label>
  420. <!--{if $settings[$fieldid][formtype] != 'file'}-->
  421. $htmls[$fieldid]
  422. <!--{else}-->
  423. <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;';}">
  424. <!--{/if}-->
  425. </div>
  426. <!--{/if}-->
  427. <!--{/loop}-->
  428. <!--{/if}-->
  429. <!--{if !empty($myuserfield)}-->
  430. <!--{loop $myuserfield $value}-->
  431. <div data-role="fieldcontain">
  432. <label for="textarea-1">{$value[title]}</label>
  433. {$value[html]}
  434. </div>
  435. <!--{/loop}-->
  436. <!--{/if}-->
  437. <div data-role="fieldcontain">
  438. <label for="textarea-1">{lang xj_event:liuyan}</label>
  439. <textarea name="message" maxlength="100" id="textarea-1"></textarea>
  440. </div>
  441. </div>
  442. <script language="javascript">
  443. $(function(){
  444. //上传图片
  445. $("body").on("change",".uploadfile",function(){
  446. var showimg = $(this).parent().parent().find('.showimg');
  447. var bar = $(this).parent().parent().find('.bar');
  448. var uploadcover = $(this).parent().parent().find('.uploadcover');
  449. var uploaderror = $(this).parent().parent().find('.uploaderror');
  450. var inputtext = $(this).parent().parent().find('.inputtext');
  451. bar.show();
  452. $(this).parent().parent().find('form').ajaxSubmit({
  453. dataType: 'json',
  454. beforeSend: function() {
  455. //showimg.empty();
  456. var percentVal = '0%';
  457. bar.width(percentVal);
  458. },
  459. uploadProgress: function(event, position, total, percentComplete) {
  460. var percentVal = percentComplete + '%';
  461. bar.width(percentVal);
  462. },
  463. success: function(data) {
  464. if(data.error){
  465. alert(data.error);
  466. var percentVal = '0%';
  467. bar.width(percentVal);
  468. return;
  469. }
  470. //progress.hide();
  471. bar.hide();
  472. //files.html("<b>"+data.name+"("+data.size+"k)</b> <span class='delimg' rel='"+data.pic+"'>删除</span>");
  473. if(data.pic!=null){
  474. var img = "{$_G[siteurl]}"+data.dir+data.pic;
  475. inputtext.val(img);
  476. showimg.html("<img src='"+img+"' style='width:100%;'>");
  477. uploadcover.hide();
  478. }
  479. },
  480. error:function(xhr){
  481. bar.width('0');
  482. uploaderror.html(xhr.responseText);
  483. }
  484. });
  485. });
  486. });
  487. </script>
  488. </body>
  489. </html>