main.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. import * as compnt from "../../../public/js/compnt.js";
  2. import * as unicom from "../../../public/js/unicom.js";
  3. import "../scss/main.scss";
  4. $(function() {
  5. var isPageHide = false;
  6. window.addEventListener('pageshow', function() {
  7. if (isPageHide) {
  8. window.location.reload();
  9. }
  10. });
  11. window.addEventListener('pagehide', function() {
  12. isPageHide = true;
  13. });
  14. if (window.location.href.indexOf('draw.html') >= 0) {
  15. var user = JSON.parse(localStorage.getItem('user'));
  16. if (user != null) {
  17. $('.usermob').val(user.usermob);
  18. }
  19. }
  20. })
  21. init();
  22. function init() {
  23. var message = localStorage.getItem('message');
  24. if (message != null && message != '') {
  25. compnt.showAlert(message);
  26. localStorage.removeItem('message');
  27. }
  28. compnt.showLoading();
  29. unicom.init().then(function(response) {
  30. compnt.hideLoading();
  31. unicom.product = response.product[0];
  32. unicom.fesname = response.festival;
  33. // alert(JSON.stringify(unicom.query))
  34. if (!!unicom.query.tradeno) {
  35. showPayQueryDialog();
  36. }
  37. unicom.loadUserInfo();
  38. if (location.href.indexOf("/index") >= 0) {
  39. showOrderPage();
  40. } else {
  41. openPage();
  42. }
  43. if (location.href.indexOf('/cancel') >= 0) {
  44. unicom.burypointLogId('110002'); // 退订页面pv, pv去重得到uv
  45. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'cancel_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  46. } else if (location.href.indexOf('/draw') >= 0) {
  47. unicom.burypointLogId('110003'); // 领取页面pv, pv去重得到uv
  48. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'draw_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  49. } else if (location.href.indexOf('/flow') >= 0) {
  50. unicom.burypointLogId('110004'); // 流量查询pv, pv去重得到uv
  51. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'flow_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  52. } else if (location.href.indexOf('/active') >= 0) {
  53. unicom.burypointLogId('110005'); // 激活页面pv, pv去重得到uv
  54. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'active_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  55. } else if (location.href.indexOf('/refund') >= 0) {
  56. unicom.burypointLogId('110006'); // 退款
  57. } else {
  58. // location.href.indexOf('/index') >= 0
  59. // location.href.indexOf('/order') >= 0
  60. unicom.burypointLogId('110001'); // 订购页面pv, pv去重得到uv
  61. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'open', ea: 'order_open' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  62. }
  63. })
  64. }
  65. function openPage(pageName) {
  66. if (pageName == null) {
  67. if (location.href.indexOf("index.html") >= 0) pageName = "order";
  68. if (location.href.indexOf("cancel.html") >= 0) pageName = "cancel";
  69. if (location.href.indexOf("draw.html") >= 0) pageName = "draw";
  70. if (location.href.indexOf("active.html") >= 0) pageName = "active";
  71. if (location.href.indexOf("flow.html") >= 0) pageName = "flow";
  72. }
  73. switch (pageName) {
  74. case "active":
  75. showActivePage();
  76. break;
  77. case "cancel":
  78. showCancelPage();
  79. break;
  80. case "draw":
  81. showDrawPage();
  82. break;
  83. case "flow":
  84. showFlowPage();
  85. break;
  86. default:
  87. showOrderPage();
  88. break;
  89. }
  90. }
  91. $('#gotoDrawPage').unbind('click').on('click', function() {
  92. showDrawPage(window.location.href.substring(window.location.href.lastIndexOf('/') + 1, window.location.href.lastIndexOf('.')))
  93. })
  94. function showOrderPage() {
  95. bindSend();
  96. bindOrder();
  97. }
  98. function bindSend() {
  99. var $container = $('.section-login').find('.form-group');
  100. $container.find('.sendcode').unbind('click').on('click', function() {
  101. unicom.sendSms($container, 'orderlogin');
  102. })
  103. }
  104. function bindOrder() {
  105. var $container = $('.section-login').find('.form-group');
  106. $container.find('.login').unbind('click').on('click', function() {
  107. compnt.showLoading();
  108. unicom.checkCode($container).then(function() {
  109. unicom.orderBack().then(function(response) {
  110. // console.log(response)
  111. compnt.hideLoading();
  112. var data = response;
  113. switch (data.resultCode) {
  114. case "0000":
  115. // compnt.showAlert('领取成功');
  116. // window.location.reload();
  117. // alert(data.web_url + '&redirect_url=' + encodeURIComponent(window.location.href + '&tradeno=' + data.out_trade_no));
  118. data.tradedate = unicom.getNowFormatDate();
  119. data.userid = unicom.user.userid;
  120. pay(data);
  121. break;
  122. default:
  123. compnt.showAlert(response.errorInfo);
  124. break;
  125. }
  126. }).catch(data => {
  127. compnt.hideLoading();
  128. })
  129. }).catch(data => {
  130. compnt.hideLoading();
  131. })
  132. })
  133. }
  134. function showDrawPage(back) {
  135. if (location.href.indexOf("draw.html") < 0) {
  136. window.location.href = "draw.html?fes=" + unicom.query.fes + "&sou=" + unicom.query.sou + '&back=' + (back == null ? '' : back);
  137. return;
  138. }
  139. var $container = $('.section-login').find('.form-group');
  140. $container.find('.sendcode').unbind('click').on('click', function() {
  141. var account = $container.find('.account').val();
  142. var arr = new Array()
  143. arr = account.split(' ')
  144. if (arr.length != 1) {
  145. compnt.showAlert('抖音短视频账号不能含有空格');
  146. return
  147. }
  148. if (account == null || account == "") {
  149. compnt.showAlert('请输入抖音短视频账号');
  150. return;
  151. }
  152. unicom.sendSms($container, 'drawlogin');
  153. })
  154. $container.find('.login').unbind('click').on('click', function() {
  155. var usermob = $container.find('.usermob').val();
  156. var account = $container.find('.account').val();
  157. var smscode = $container.find('.smscode').val();
  158. if (usermob == null || usermob == "") {
  159. compnt.showAlert('请输入联通手机号');
  160. return;
  161. }
  162. var arr = new Array()
  163. arr = account.split(' ')
  164. if (arr.length != 1) {
  165. compnt.showAlert('抖音短视频账号不能含有空格');
  166. return
  167. }
  168. if (account == null || account == "") {
  169. compnt.showAlert('请输入抖音短视频账号');
  170. return;
  171. }
  172. if (smscode == null || smscode == "") {
  173. compnt.showAlert('请输入验证码');
  174. return;
  175. }
  176. var $comfirm = showConfirmDialog(account);
  177. $comfirm.find('.cancel').on('click', function() {
  178. compnt.hideLoading();
  179. });
  180. $comfirm.find('.okay').on('click', function() {
  181. unicom.checkCode($container, true).done(function() {
  182. drawCoin(account);
  183. }).fail(function(data) {
  184. compnt.hideLoading();
  185. })
  186. });
  187. })
  188. }
  189. function drawCoin(account) {
  190. compnt.showLoading();
  191. unicom.drawCoin(account, '').done(function(response) {
  192. compnt.hideLoading();
  193. switch (response.resultCode) {
  194. case "0000":
  195. var $container = $('.section-login').find('.form-group');
  196. $container.find('.usermob').val('');
  197. $container.find('.smscode').val('');
  198. $container.find('.account').val('');
  199. compnt.showAlert('抖币充值中,详情结果以短信形式告知').then(function() {
  200. if (unicom.query.back != null && unicom.query.back != '') {
  201. showOrderPage(unicom.query.back + ".html");
  202. }
  203. });
  204. break;
  205. case "7605":
  206. compnt.showAlert(response.errorInfo);
  207. break;
  208. default:
  209. var prefix = '';
  210. if (response.errorInfo.indexOf('领取失败') < 0) {
  211. prefix = '领取失败,';
  212. }
  213. compnt.showAlert(prefix + response.errorInfo);
  214. break;
  215. }
  216. }).fail(function(data) {
  217. compnt.hideLoading();
  218. })
  219. //})
  220. }
  221. function checkEquip() {
  222. return true;
  223. }
  224. function showAlertDialog(action, message) {
  225. var className = '';
  226. switch (action) {
  227. case 'orderSuccess':
  228. className = 'dialog-message-order-success';
  229. break;
  230. case 'orderFailure':
  231. className = 'dialog-message-order-failure';
  232. break;
  233. case 'activeSuccess':
  234. className = 'dialog-message-active-success';
  235. break;
  236. case 'activeFailure':
  237. className = 'dialog-message-active-failure';
  238. break;
  239. case 'cancelSuccess':
  240. className = 'dialog-message-cancel-success';
  241. break;
  242. case 'cancelFailure':
  243. className = 'dialog-message-cancel-failure';
  244. break;
  245. default:
  246. break;
  247. }
  248. var $overlay = $('<div class="overlay"></div>');
  249. var $dialog = $(
  250. '<div class="dialog dialog-message ' + className + '">' +
  251. ' <div class="title"></div>' +
  252. ' <div class="content">' + message + '</div>' +
  253. ' <div class="actions">' +
  254. ' <div class="btn">确定</div>' +
  255. ' </div>' +
  256. '</div>');
  257. $overlay.appendTo($(document.body))
  258. $dialog.appendTo($(document.body))
  259. $dialog.find('.btn').unbind('click').on('click', function() {
  260. $dialog.close()
  261. })
  262. $dialog.close = function() {
  263. $overlay.remove();
  264. $dialog.remove();
  265. $dialog = null;
  266. }
  267. return $dialog;
  268. }
  269. function showConfirmDialog(account) {
  270. var $overlay = $('<div class="overlay"></div>')
  271. var $dialog = $(
  272. '<div class="dialog dialog-confirm">' +
  273. ' <div class="content">请确认是否领取抖音币到' + account + '账号?</div>' +
  274. ' <div class="actions">' +
  275. ' <div class="btn cancel">取消</div>' +
  276. ' <div class="btn okay">确认</div>' +
  277. ' </div>' +
  278. '</div>');
  279. $overlay.appendTo($(document.body))
  280. $dialog.appendTo($(document.body))
  281. $dialog.find('.btn').on('click', function() {
  282. $overlay.remove();
  283. $dialog.remove();
  284. $dialog = null;
  285. })
  286. $dialog.close = function() {
  287. $overlay.remove();
  288. $dialog.remove();
  289. $dialog = null;
  290. }
  291. return $dialog;
  292. }
  293. function showPayQueryDialog() {
  294. var $overlay = $('<div class="overlay"></div>');
  295. var $dialog = $(
  296. '<div class="dialog-pay">' +
  297. ' <div class="title">' +
  298. ' <span>请确认微信支付是否已完成</span>' +
  299. ' </div>' +
  300. ' <div class="finish">' +
  301. ' <span name="finishspan">已完成支付</span>' +
  302. ' </div>' +
  303. ' <div class="repay">' +
  304. ' <span name="repayspan">支付遇到问题,重新支付</span>' +
  305. ' </div>' +
  306. '</div>');
  307. $overlay.appendTo($(document.body))
  308. $dialog.appendTo($(document.body))
  309. $dialog.find('span[name="finishspan"]').on('click', function() {
  310. queryWxPay(decodeURIComponent(unicom.query.userid));
  311. })
  312. $dialog.find('span[name="repayspan"]').on('click', function() {
  313. var data = {
  314. userid: decodeURIComponent(unicom.query.userid),
  315. web_url: decodeURIComponent(unicom.query.payurl),
  316. out_trade_no: unicom.query.tradeno,
  317. tradedate: unicom.query.tradedate
  318. }
  319. // alert(JSON.stringify(data))
  320. pay(data);
  321. })
  322. }
  323. function pay(data) {
  324. var href = window.location.href;
  325. if (href.indexOf("&tradeno") > 0) {
  326. href = href.substring(0, href.indexOf("&tradeno"));
  327. }
  328. window.location.href = data.web_url +
  329. '&redirect_url=' + encodeURIComponent(href +
  330. '&tradeno=' + data.out_trade_no +
  331. '&tradedate=' + data.tradedate +
  332. '&userid=' + encodeURIComponent(encodeURIComponent(data.userid)) +
  333. '&payurl=' + encodeURIComponent(encodeURIComponent(data.web_url)));
  334. }
  335. function queryWxPay(userid) {
  336. unicom.queryWxPay(unicom.query.tradeno, unicom.query.tradedate, userid).then(function(response) {
  337. var result = response;
  338. if (result.resultCode == "0000" && result.trade_state == "SUCCESS") {
  339. compnt.showAlert('支付成功,请注意接收通知短信。').then(response => {
  340. window.location.href = window.location.href.replace("tradeno", "tno");
  341. });
  342. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_success' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  343. return;
  344. }
  345. $('.dialog-pay').css('display', 'none');
  346. switch (result.trade_state) {
  347. case "REFUND":
  348. compnt.showAlert('订购失败,转入退款').then(() => {
  349. $('.dialog-pay').css('display', 'block');
  350. window.location.href = unicom.root + "-s1api" + '/back/doubi/index.html?'
  351. });
  352. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  353. break;
  354. case "NOTPAY":
  355. compnt.showAlert('未支付').then(() => {
  356. $('.dialog-pay').css('display', 'block');
  357. });
  358. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  359. break;
  360. case "CLOSED":
  361. compnt.showAlert('已关闭').then(() => {
  362. $('.dialog-pay').css('display', 'block');
  363. });
  364. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  365. break;
  366. case "REVOKED":
  367. compnt.showAlert('已撤销(付款码支付)').then(() => {
  368. $('.dialog-pay').css('display', 'block');
  369. });
  370. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  371. break;
  372. case "USERPAYING":
  373. compnt.showAlert('用户支付中(付款码支付)').then(() => {
  374. $('.dialog-pay').css('display', 'block');
  375. });
  376. break;
  377. case "PAYERROR":
  378. compnt.showAlert('支付失败(其他原因,如银行返回失败)').then(() => {
  379. $('.dialog-pay').css('display', 'block');
  380. });
  381. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  382. break;
  383. default:
  384. compnt.showAlert('支付失败,' + result.trade_state || result.resultCode).then(() => {
  385. $('.dialog-pay').css('display', 'block');
  386. });
  387. // WoAnalytics.addPoint({ ad: $('#nanyanad').val(), ett: 'click', ea: 'order_failure' + $('#nanyanlabel').val(), ct: 'web', pm: parseInt(unicom.query.sou, 32) })
  388. break;
  389. }
  390. });
  391. return;
  392. }