anniversaryCelebrate.html 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  6. <title>周年庆活动</title>
  7. <link rel="icon" href="../static/img/favicon2.ico" type="img/x-ico">
  8. <link rel="stylesheet" href="../static/js/vender/toastr/toastr.min.css">
  9. <link rel="stylesheet" href="../static/css/anniversaryCelebrate.css">
  10. <script src="../static/js/vender/jquery-3.4.1.min.js"></script>
  11. <script src="../static/js/vender/toastr/toastr.min.js"></script>
  12. <script src="../static/js/vender/config.js"></script>
  13. </head>
  14. <body>
  15. <div class="container">
  16. <div class="rule-wrap">
  17. <img class="rule" src="../static/img/anniversaryCelebrate/rule.png" />
  18. </div>
  19. <div class="activity-text-wrap">
  20. <img class="activity-text" src="../static/img/anniversaryCelebrate/activity-text.png" />
  21. </div>
  22. <div class="activity-tips-wrap">
  23. <img class="activity-tips" src="../static/img/anniversaryCelebrate/activity-tips.png" />
  24. </div>
  25. <div class="star-wrap">
  26. <img class="star" src="../static/img/anniversaryCelebrate/star.png" />
  27. <img class="light-show" src="../static/img/anniversaryCelebrate/light-show.gif" />
  28. <img class="award-success" src="../static/img/anniversaryCelebrate/award-success.png" />
  29. <div class="point-wrap"></div>
  30. </div>
  31. <div class="station-wrap">
  32. <img class="station" src="../static/img/anniversaryCelebrate/station.png" />
  33. <div class="station-text-wrap">
  34. <div class="once-text">购买/续费星曜月卡,获得 1次 点亮资格</div>
  35. <div class="ten-text">购买/续费星曜年卡,获得 10次 点亮资格</div>
  36. </div>
  37. <div class="btn-list">
  38. <img class="once-btn btn" src="../static/img/anniversaryCelebrate/once.png" />
  39. <img class="five-btn btn" src="../static/img/anniversaryCelebrate/fifce.png" />
  40. </div>
  41. </div>
  42. <div class="award-get-wrap">
  43. <div class="number-wrap">
  44. <div class="rest-times">剩余次数<span class="rest-number"></span>次</div>
  45. <div class="process-wrap">
  46. <div class="small-star-wrap">
  47. <img class="small-star" src="../static/img/anniversaryCelebrate/small-star.png" />
  48. </div>
  49. <div class="line-wrap">
  50. <img class="icon icon1" src="../static/img/anniversaryCelebrate/icon1.png" />
  51. <img class="icon icon2" src="../static/img/anniversaryCelebrate/icon2.png" />
  52. </div>
  53. </div>
  54. </div>
  55. <img class="get-times" src="../static/img/anniversaryCelebrate/get-times.png" />
  56. </div>
  57. <div class="no-join-activity">激活码、优惠券、星币购买的订单不参与本次活动</div>
  58. <div class="light-record-wrap">
  59. <div class="record-title-wrap">
  60. <img class="record-title" src="../static/img/anniversaryCelebrate/record-title.png" />
  61. </div>
  62. <div class="record-main-wrap">
  63. <div class="change-wrap">
  64. <div class="get-award-wrap">
  65. <img class="award-img" src="../static/img/anniversaryCelebrate/left-bg.png" />
  66. <img class="get-award-img" src="../static/img/anniversaryCelebrate/get-award-show.png" />
  67. <div class="get-award-text">充值奖励</div>
  68. </div>
  69. <div class="get-award-wrap get-award-right-wrap">
  70. <img class="award-img right-bg" src="../static/img/anniversaryCelebrate/right-bg.png" />
  71. <img class="get-award-img" src="../static/img/anniversaryCelebrate/get-award-success-hidden.png" />
  72. <div class="get-award-text used-text">分配奖励</div>
  73. <div class="no-distribution-award">999+</div>
  74. </div>
  75. </div>
  76. <div class="light-content-container">
  77. <div class="light-content-list">
  78. <div class="light-content-text">点亮一颗星获得星曜7天时长奖励</div>
  79. </div>
  80. <div class="all-light">已全部点亮<text class="light-number"></text>次</div>
  81. </div>
  82. </div>
  83. <div class="activity-intrduction-wrap">
  84. <div>活动时间:2022年6月18日-2022年6月27日</div>
  85. <div>活动参与套餐:星曜套餐月卡年卡(自动续费除外)</div>
  86. </div>
  87. <div class="law-statement">请阅读相关《法律声明》文件</div>
  88. </div>
  89. <div class="reward-list">
  90. <img class="left-ear" src="../static/img/doubleChristmasActivity/left-ear.png" />
  91. <img class="right-ear" src="../static/img/doubleChristmasActivity/right-ear.png" />
  92. <div class="slider" id="slider">
  93. <div class="slider-list flex" id="slider-list"></div>
  94. </div>
  95. <div class="page-row">
  96. <div class="schedule-line">
  97. <div class="schedule-child-line"></div>
  98. </div>
  99. <div class="page">1/4页</div>
  100. </div>
  101. <div class="distribution-reward-btn">
  102. <img class="reward-btn-img" src="../static/img/doubleChristmasActivity/distribution-reward-btn.png" />
  103. </div>
  104. </div>
  105. <div class="award-result-mask">
  106. <div class="award-result-dialog-sure">
  107. <div class="have-times-wrap">
  108. <div class="award-result-tip"></div>
  109. <div class="line"></div>
  110. <div class="card-wrap award-result-wrap"></div>
  111. <div class="btn-row">
  112. <img class="award-btn continue-lighten" src="../static/img/anniversaryCelebrate/continue-lighten.png" />
  113. <img class="award-btn distribution-award" src="../static/img/anniversaryCelebrate/sure-btn.png" />
  114. </div>
  115. <div class="times-text">还剩次数:<span class="times-text-number"></span>次</div>
  116. </div>
  117. <img class="award-result-close" src="../static/img/anniversaryCelebrate/close.png" />
  118. </div>
  119. </div>
  120. <div class="rule-mask">
  121. <div class="rule-result-dialog">
  122. <div class="rule-content">
  123. <div class="rule-point">1、本次活动参与活动的套餐是星曜月卡、年卡套餐,其他套餐不参与活动,现金购买及续费皆可参与活动</div>
  124. <div class="rule-point">2、激活码、优惠券、星币购买的订单不参与本次活动</div>
  125. <div class="rule-point">3、本次活动购买限时折扣次数不限,获得赠送天数,可分配在购买套餐的云机账户上,单账号购买新增云机总数上限为200台</div>
  126. <div class="rule-point">4、本次活动赠送星曜机型,单次点亮赠送天数1~30天随机,外环全部点亮额外获得88天,内环全部点亮额外赠送188天,10次可全部点亮</div>
  127. <div class="rule-point">5、已点亮位置单次不会重复点亮,活动奖励即时领取,单次活动全部点亮后重置点亮进度,可再次进行点亮活动。</div>
  128. <div class="rule-point">6、运营平台有权对用户购买数据进行审核,如发现活动订单中存在异常情况(包括任何形式的用户作弊行为),有权取消优惠,退款处理。</div>
  129. </div>
  130. <img class="rule-close" src="../static/img/anniversaryCelebrate/close.png" />
  131. </div>
  132. </div>
  133. <div class="law-mask">
  134. <div class="law-result-dialog">
  135. <div class="rule-content law-content">
  136. <div class="rule-point">
  137. 法律声明:
  138. </div>
  139. <div class="rule-point">
  140. 1.同一用户是指使用同一帐号、同一手机号、同一设备或同一提现账户的用户。上述与用户身
  141. 份相关的信息,其中任意一项或数项相同,或通过特定标记形成关联,或活动平台有合理理由认
  142. 为存在关联的,都视为同一个用户。部分参与方式中,对用户帐号有限制,同一个设备最多可使
  143. 用一个帐号参与活动,同一帐号最多可以使用一台设备参与活动;用户使用多个帐号在同一个设
  144. 备上登录的,视为同一用户,仅有一个帐号可参与本活动。
  145. </div>
  146. <div class="rule-point">
  147. 2.用户不得采取任何不正当或作弊的违规手段参与本活动,一经发现,活动平台有权限制或取
  148. 消用户参与活动的资格,有权取消奖励、追讨用户已领取的奖励(或同等价值的现金)。活动平
  149. 台有权对违规用户采取限制登录、封禁帐号、限制提现的措施,并保留追究用户其他法律责任的
  150. 权利。违规手段包括但不仅限于:
  151. </div>
  152. <div class="rule-point">2.1通过不正当手段参与活动。例如使用模拟器、插件、软件外挂、物理外挂等违规工具参与活动,与其他用户串通采取不正当手段谋取活动奖励等;</div>
  153. <div class="rule-point">2.2扰乱本活动秩序。例如使用多个帐号参与活动,修改个人位置信息,篡改设备数据,买卖用户帐号,买卖活动权益,买卖领奖资格等;</div>
  154. <div class="rule-point">2.3干扰活动平台正常运营。例如批量注册用户帐号,违规使用用户帐号,采用技术手段对活动平台进行干扰、破坏、修改或施加其他影响;</div>
  155. <div class="rule-point">2.4利用本活动进行违法犯罪。例如利用本活动洗钱、套现、诈骗,或开展其他违反国家法律法规的活动;</div>
  156. <div class="rule-point">2.5其他违反法律法规,违背诚实信用原则,违反活动规则,或活动平台认为的不正当手段。</div>
  157. <div class="rule-point">
  158. 3.如因以下原因导致活动不能正常举办、用户无法参与或参与失败、活动奖励发放错误等,活
  159. 动平台/本活动有权暂停或取消活动,且不承担任何法律责任或不利后果:
  160. </div>
  161. <div class="rule-point">3.1不可抗力,包括但不仅限于自然灾害,有权机关的政策要求,政府机关指令,重大疫情影响等不能预见、不可避免、不能克服的情况;</div>
  162. <div class="rule-point">3.2活动平台发生技术故障,本活动受到不正当技术手段干扰、破坏、篡改或被施加其他影响,第三方平台限制活动平台或本活动,或其他导致本活动的正常秩序受到干扰的情况;</div>
  163. <div class="rule-point">3.3用户所在地区网络故障、支付平台故障、电信运营商故障等非活动平台所能控制的情况。</div>
  164. <div class="rule-point">
  165. 4.活动平台不支持用户通过众包或类似方式参与活动。如用户因此遭受经济损失的,活动平台
  166. 不承担任何赔偿或补偿责任。
  167. </div>
  168. <div class="rule-point">
  169. 5.商品展示的划线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或品牌供应商提供
  170. 的指导价、建议零售价或该商品在电商平台及/或其他渠道曾展示过的销售价,并非原价;由于
  171. 地区等差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与电商平台展示的不一致,
  172. 该价格仅供用户参考。
  173. </div>
  174. <div class="rule-point">
  175. 6.若由于用户自身原因(包括但不限于参与方式不符合活动规则、未按活动规则要求提供收件
  176. 地址、操作不当造成产品功能故障等)导致无法实际享有奖励的,视为用户自愿放弃奖励,活动
  177. 平台将不会也无义务给予任何形式的补偿。
  178. </div>
  179. <div class="rule-point">
  180. 7.任何第三方以活动平台名义从事欺诈行为造成用户损失的,活动平台无需为此承担法律责任。
  181. </div>
  182. <div class="rule-point">
  183. 8.活动平台和电商平台的《用户协议》《隐私政策》(以手机客户端对应名称为准)及其他规
  184. 范同样适用于本活动,本活动规则与活动平台和电商平台《用户协议》《隐私政策》及其他规范
  185. 相冲突的,以本活动规则为准。本活动规则未约定的内容,以活动平台和电商平台的《用户协议》
  186. 《隐私政策》及其他平台规范为准。
  187. </div>
  188. <div class="rule-point">
  189. 9.在法律法规允许的范围内,活动平台有权对本活动规则进行变动或调整,相关变动或调整将
  190. 公布在活动规则页面上,并于公布时即时生效,用户继续参与活动则视为同意并接受变动或者调
  191. 整后的活动规则。如果用户拒绝活动规则的变更或者调整,请放弃参与变更后的活动。
  192. </div>
  193. </div>
  194. <img class="law-close" src="../static/img/anniversaryCelebrate/close.png" />
  195. </div>
  196. </div>
  197. <div class="no-start-mask">
  198. <div class="no-start-dialog"></div>
  199. </div>
  200. </div>
  201. <script>
  202. toastr.options.positionClass = 'toast-center-center';
  203. toastr.options.timeOut = '1500';
  204. </script>
  205. <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
  206. <script type="text/javascript">
  207. var baseUrl = 'http://14.18.190.141:1280'
  208. let timer,flag = true;
  209. var url = window.location.href;
  210. url = url.split('/')
  211. var loc = window.location.search,
  212. n1 = loc.length,//地址的总长度
  213. n2 = loc.indexOf("="),//取得=号的位置
  214. id = loc.substr(n2 + 1, n1 - n2),//从=号后面的内容
  215. u = navigator.userAgent,
  216. ua = navigator.userAgent.toLowerCase(),
  217. isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  218. isMiniprogram = false,
  219. anniversarySwitch = 0,
  220. animationFlag = true,
  221. residueDegree = 0,
  222. awardTimes = 0,
  223. pageNum = 1,
  224. pages = 1,
  225. receive = 0,
  226. lighten = [],
  227. notReceive = true,
  228. phoneRemainQuantity = 0,
  229. totalTime = 0,
  230. currTotalTime = 0,
  231. distributionList = [],
  232. totalRecords = [],
  233. pageNums = 0,
  234. distributionFlag = true,
  235. distributionPageNum = 0,
  236. distributionPages = 0,
  237. sliderNumber = 0,//滑块是数量,控制溢出不能滑动
  238. isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  239. // 初始化数据
  240. window.onload = function(){
  241. if (isAndroid && window.native) {
  242. window.native.enableSharePage(
  243. '您的好友送你一台免费云机',
  244. '您的好友送你一台免费云机',
  245. `${baseUrl}/h5/microserviceUserH5/vcloud/anniversaryCelebrate.html`,
  246. 'https://test.androidscloud.com/file-center/fileOperate/getImage?id=215553'
  247. );
  248. }
  249. }
  250. init();
  251. function init() {
  252. $.ajax({
  253. url: baseUrl + '/api/activity/v1/anniversary/getAnniversary',
  254. type: 'get',
  255. headers: {
  256. 'Authorization': id //id
  257. },
  258. contentType: "application/json",
  259. dataType: 'json',
  260. cache: false,
  261. success: function (res) {
  262. if(res.status === 0){
  263. residueDegree = res.data.residueDegree;
  264. anniversarySwitch = res.data.anniversarySwitch;
  265. result = res.data.lighten;
  266. lighten = result && result.split(',') || [], str = '';
  267. $('.rest-number').eq(0).text(residueDegree);
  268. $('.light-number').eq(0).text(res.data.allTotal);
  269. if(residueDegree == 0){
  270. $('.line-wrap')[0].className = 'line-wrap';
  271. $('.icon1')[0].src = '../static/img/anniversaryCelebrate/icon1.png';
  272. $('.icon2')[0].src = '../static/img/anniversaryCelebrate/icon2.png';
  273. }else if(residueDegree >=1 && residueDegree < 5){
  274. $('.line-wrap')[0].className = 'line-wrap line-wrap-one';
  275. $('.icon1')[0].src = '../static/img/anniversaryCelebrate/icon4.png';
  276. $('.icon2')[0].src = '../static/img/anniversaryCelebrate/icon2.png';
  277. } else if(residueDegree >= 5){
  278. $('.line-wrap')[0].className = 'line-wrap line-wrap-two';
  279. $('.icon1')[0].src = '../static/img/anniversaryCelebrate/icon4.png';
  280. $('.icon2')[0].src = '../static/img/anniversaryCelebrate/icon3.png';
  281. }
  282. if(anniversarySwitch !== 0){
  283. let awardText = anniversarySwitch == 1 ? '<div>活动暂未开启</div>请稍安勿躁' : '<div>活动已结束</div>期待下次的见面'
  284. $('.no-start-dialog').eq(0).append(awardText);
  285. $('.no-start-dialog').animate({top: '50%'},"fast");
  286. $('.no-start-mask').show();
  287. document.documentElement.style.overflow='hidden';
  288. }
  289. if(result == '' || !lighten){
  290. return
  291. }
  292. //更新点亮星星
  293. $('.point-wrap').eq(0).empty();
  294. for (let i = 0; i < lighten.length; i++) {
  295. if([1, 3, 5, 7, 12].includes(lighten[i])){
  296. str += `<img class="in-point point${lighten[i]}" src="../static/img/anniversaryCelebrate/out-point.png" />`
  297. } else {
  298. str += `<img class="out-point point${lighten[i]}" src="../static/img/anniversaryCelebrate/out-point.png" />`
  299. }
  300. }
  301. $('.point-wrap').eq(0).append(str);
  302. }else{
  303. stopManyClick(() =>{
  304. toastr.error(res.msg)
  305. })
  306. }
  307. },
  308. })
  309. };
  310. // getAward();
  311. //点击抽奖
  312. $('.once-btn')[0].addEventListener('click',() => {
  313. if(!animationFlag) return;
  314. $('.continue-lighten')[0].src = '../static/img/anniversaryCelebrate/continue-lighten.png';
  315. if(lighten.length == 9){
  316. $('.point-wrap').eq(0).empty();
  317. $('.light-show').show();
  318. setTimeout(() => {
  319. $('.light-show').hide();
  320. $('.award-success').show();
  321. },800)
  322. }
  323. handleAward(1);
  324. operate('sf_2022_h5_抽奖1次');
  325. },false);
  326. $('.five-btn')[0].addEventListener('click',() => {
  327. if(!animationFlag) return;
  328. $('.continue-lighten')[0].src = '../static/img/anniversaryCelebrate/five-click.png';
  329. if(lighten.length + 5 >= 10){
  330. $('.point-wrap').eq(0).empty();
  331. $('.light-show').show();
  332. setTimeout(() => {
  333. $('.light-show').hide();
  334. $('.award-success').show();
  335. },800)
  336. }
  337. handleAward(5);
  338. operate('znq_2022_h5_抽奖5次');
  339. },false);
  340. //点击再抽
  341. $('.continue-lighten')[0].addEventListener('click',() => {
  342. if(!animationFlag) return;
  343. let pams = `sf_2022_h5_抽奖${awardTimes}次`;
  344. operate(pams);
  345. handleAward(awardTimes,'report')
  346. },false);
  347. function handleAward(times,type) {
  348. awardTimes = times;
  349. animationFlag = false;
  350. $.ajax({
  351. url: baseUrl + '/api/activity/v1/anniversary/luckDraw',
  352. type: 'post',
  353. headers: {
  354. 'Authorization': id //id
  355. },
  356. data:JSON.stringify({
  357. frequency: times
  358. }),
  359. contentType: "application/json",
  360. dataType: 'json',
  361. cache: false,
  362. success: function (res) {
  363. if(res.status === 0){
  364. let imgNumber = 0,
  365. str = '',
  366. otherData = [],
  367. list = res.data.anniversaryAwards;
  368. // 188 88放在最后
  369. list.map(item => {
  370. if(item.awardType != 0){
  371. otherData.push(item)
  372. }
  373. });
  374. if(otherData.length > 0) {
  375. $('.line').show();
  376. } else {
  377. $('.line').hide();
  378. }
  379. let currData = list.filter(item => item.awardType == 0);
  380. list = [...currData, ...otherData];
  381. getAward();
  382. if(type !== 'report'){
  383. $('.award-result-dialog-sure').animate({top: '1.86rem'},"fast");
  384. $('.award-result-mask').show();
  385. document.documentElement.style.overflow='hidden';
  386. }
  387. if(lighten.length != 10){
  388. $('.award-success').hide();
  389. }
  390. $('.award-result-wrap').eq(0).text('');
  391. if(times === 1){
  392. $('.award-result-dialog-sure')[0].className = 'award-result-dialog-sure award-result-one-dialog';
  393. $('.award-result-tip').eq(0).text('换个姿势,再抽一次');
  394. $('.award-result-wrap')[0].className = 'card-wrap award-result-wrap one-result';
  395. for (let i = 0; i < list.length; i++) {
  396. if(list[i].awardType == 0){
  397. str += `<div class="card-item one-card-item">
  398. <img class="one-card" src="../static/img/anniversaryCelebrate/day-card.png" />
  399. <div class="card-text">星曜${list[0].awardDurations}天卡</div>
  400. </div>`
  401. } else {
  402. if(list[i].awardDurations == 88){
  403. str += `<div class="card-item many-one-card">
  404. <img class="many-card" src="../static/img/anniversaryCelebrate/first.png" />
  405. <div class="card-text">星曜${list[1].awardDurations}天卡</div>
  406. </div>`
  407. } else {
  408. str += `<div class="card-item many-two-card">
  409. <img class="many-card" src="../static/img/anniversaryCelebrate/second.png" />
  410. <div class="card-text">星曜${list[2].awardDurations}天卡</div>
  411. </div>`
  412. }
  413. }
  414. }
  415. setTimeout(() => {
  416. animationFlag = true;
  417. },1000);
  418. } else {
  419. $('.award-result-dialog-sure')[0].className = 'award-result-dialog-sure award-result-dialog';
  420. $('.award-result-tip').eq(0).text('善良的人,好运气最终是会眷顾你');
  421. $('.award-result-wrap')[0].className = 'card-wrap award-result-wrap many-card-wrap'
  422. for (let i = 0; i < list.length; i++) {
  423. if(list[i].awardType == 0){
  424. str += `<div class="card-item many-card-item">
  425. <img class="many-card" src="../static/img/anniversaryCelebrate/day-card.png" />
  426. <div class="card-text">星曜${list[i].awardDurations}天卡</div>
  427. </div>`
  428. } else {
  429. if(list[i].awardDurations == 88){
  430. str += `<div class="card-item many-card-item">
  431. <img class="many-card" src="../static/img/anniversaryCelebrate/first.png" />
  432. <div class="card-text">星曜${list[i].awardDurations}天卡</div>
  433. </div>`
  434. } else {
  435. str += `<div class="card-item many-card-item">
  436. <img class="many-card" src="../static/img/anniversaryCelebrate/second.png" />
  437. <div class="card-text">星曜${list[i].awardDurations}天卡</div>
  438. </div>`
  439. }
  440. }
  441. }
  442. var imgTimer2 = setInterval(() => {
  443. $('.many-card-item').eq(imgNumber).css('display', 'block');
  444. if(imgNumber >= 6){
  445. clearInterval(imgTimer2);
  446. animationFlag = true;
  447. }
  448. imgNumber++;
  449. },400)
  450. }
  451. $('.times-text-number').eq(0).text(residueDegree - times);
  452. $('.award-result-wrap').eq(0).append(str);
  453. init();
  454. }else{
  455. stopManyClick(() =>{
  456. toastr.error(res.msg)
  457. })
  458. }
  459. },
  460. })
  461. }
  462. //点击确定
  463. $('.distribution-award')[0].addEventListener('click',() => {
  464. animationFlag = true;
  465. $('.award-result-dialog').animate({top: '-10.96rem'},"fast");
  466. $('.award-result-mask').hide();
  467. document.documentElement.style.overflow='auto';
  468. },false);
  469. //点击抽奖关闭按钮
  470. $('.award-result-close')[0].addEventListener('click',() => {
  471. animationFlag = true;
  472. $('.award-result-dialog').animate({top: '-10.96rem'},"fast");
  473. $('.award-result-mask').hide();
  474. document.documentElement.style.overflow='auto';
  475. },false);
  476. // 点击领取tab切换
  477. $('.get-award-wrap')[0].addEventListener('click',(e) => {
  478. $('.light-content-list').eq(0).empty();
  479. pageNum = 1;
  480. pages = 0;
  481. receive = 0;
  482. recordFlag = true;
  483. getAward();
  484. $('.get-award-img')[0].src = '../static/img/anniversaryCelebrate/get-award-show.png';
  485. $('.get-award-img')[1].src = '../static/img/anniversaryCelebrate/get-award-success-hidden.png';
  486. $('.award-img').eq(1).css('display', 'none');
  487. $('.award-img').eq(0).css('display', 'block');
  488. $('.record-main-wrap')[0].className = 'record-main-wrap';
  489. $('.get-award-text')[1].className = 'get-award-text used-text';
  490. $('.get-award-text')[0].className = 'get-award-text';
  491. },false);
  492. $('.get-award-wrap')[1].addEventListener('click',(e) => {
  493. $('.light-content-list').eq(0).empty();
  494. pageNum = 1;
  495. pages = 0;
  496. receive = 1;
  497. recordFlag = true;
  498. getAward();
  499. $('.get-award-img')[0].src = '../static/img/anniversaryCelebrate/get-award-hidden.png';
  500. $('.get-award-img')[1].src = '../static/img/anniversaryCelebrate/get-award-success-show.png';
  501. $('.award-img').eq(0).css('display', 'none');
  502. $('.award-img').eq(1).css('display', 'block');
  503. $('.record-main-wrap')[0].className = 'record-main-wrap record-main-active-wrap';
  504. $('.get-award-text')[0].className = 'get-award-text used-text';
  505. $('.get-award-text')[1].className = 'get-award-text';
  506. },false);
  507. //获取抽奖记录
  508. function getAward(type){
  509. $.ajax({
  510. url: baseUrl + `/api/activity/v1/anniversary/rewardList?pageNum=${pageNum}&pageSize=10&receive=${receive}`,
  511. type: 'get',
  512. headers: {
  513. 'Authorization': id //id
  514. },
  515. contentType: "application/json",
  516. dataType: 'json',
  517. cache: false,
  518. success: function (res) {
  519. if(res.status === 0){
  520. recordFlag = true;
  521. let str = '',
  522. records = res.data.records;
  523. pages = res.data.pages;
  524. if(type != 'down'){
  525. $('.light-content-list').eq(0).empty();
  526. }
  527. if(records.length === 0){
  528. $('.title-row').eq(0).css('display', 'none');
  529. if(receive == 1 && parseInt(notReceive) > 0){
  530. str = '<div class="no-award">暂无已分配云手机</div>'
  531. }else{
  532. str = `<div class="no-award">没有${receive === 1 ? '已使用' : '领取'}记录,我都替你着急</div>`
  533. }
  534. }else{
  535. $('.title-row').eq(0).css('display', 'flex');
  536. }
  537. for (var i = 0; i < records.length; i++) {
  538. str += `<div class="light-content-wrap">
  539. <div class="light-content-text">获得星曜${records[i].awardDurations}天时长</div>
  540. <div class="light-content-time" >${records[i].createTime.substr(6)}</div>
  541. <div class="get-btn ${records[i].receive === 1 ? 'btn-active' : ''}" data-awardid=${records[i].id} data-day=${records[i].day}>领取</div>
  542. </div>`
  543. }
  544. $('.light-content-list').eq(0).append(str)
  545. }else{
  546. stopManyClick(() =>{
  547. toastr.error(res.msg)
  548. })
  549. }
  550. },
  551. })
  552. }
  553. //点击领取按钮
  554. $('.light-content-list')[0].addEventListener('click',(e) => {
  555. if (e.target.className === 'get-btn ') {
  556. let awardId = parseInt(e.target.dataset.awardid);
  557. let day = parseInt(e.target.dataset.day);
  558. if (isMiniprogram) { // 小程序
  559. wx.miniProgram.navigateTo({
  560. url: `/packageA/activityCloudPhone/index?id=${awardId.toString()}&day=${day}`
  561. })
  562. } else if (isAndroid) { // 安卓
  563. window.native.activatePhone(3, awardId, day);
  564. } else if (isiOS) {
  565. window.webkit.messageHandlers.activatePhone.postMessage({ type: 3, awardId: awardId, day: day });
  566. }
  567. }
  568. },false);
  569. //点击规则
  570. $('.rule-wrap')[0].addEventListener('click',(e) => {
  571. $('.rule-result-dialog').animate({top: '1.86rem'},"fast");
  572. $('.rule-mask').show();
  573. document.documentElement.style.overflow='hidden';
  574. },false);
  575. //关闭规则
  576. $('.rule-close')[0].addEventListener('click',() => {
  577. $('.rule-result-dialog').animate({top: '-10.96rem'},"fast");
  578. $('.rule-mask').hide();
  579. document.documentElement.style.overflow='auto';
  580. },false);
  581. //点击法律声明
  582. $('.law-statement')[0].addEventListener('click',(e) => {
  583. $('.law-result-dialog').animate({top: '1.86rem'},"fast");
  584. $('.law-mask').show();
  585. document.documentElement.style.overflow='hidden';
  586. },false);
  587. //关闭法律声明
  588. $('.law-close')[0].addEventListener('click',() => {
  589. $('.law-result-dialog').animate({top: '-10.96rem'},"fast");
  590. $('.law-mask').hide();
  591. document.documentElement.style.overflow='auto';
  592. },false);
  593. //点击获取次数
  594. $('.get-times')[0].addEventListener('click',() => {
  595. operate('znq_2022_h5_获取次数按钮');
  596. stopManyClick(() =>{
  597. if (isMiniprogram) { // 小程序
  598. if(phoneRemainQuantity > 0){
  599. wx.miniProgram.navigateTo({
  600. url: '/packageA/order/buy/index?type=activity'
  601. })
  602. } else {
  603. wx.miniProgram.navigateTo({
  604. url: '/packageA/order/renew/index?type=activity'
  605. })
  606. }
  607. } else if (isAndroid) { // 安卓
  608. if(phoneRemainQuantity > 0){
  609. window.native.startPurchase('SVIP', 365);
  610. } else {
  611. window.native.startRenew();
  612. }
  613. } else if (isiOS) {
  614. if(phoneRemainQuantity > 0){
  615. window.webkit.messageHandlers.startPurchase.postMessage({ type: 1, day: 365 });
  616. } else {
  617. window.webkit.messageHandlers.startRenew.postMessage({ type: 1, day: 365 });
  618. }
  619. }
  620. })
  621. },false);
  622. //抽奖记录数据下拉加载
  623. $('.light-content-list')[0].addEventListener('scroll',function () {
  624. let scrollTop = $('.light-content-list')[0].scrollTop;
  625. let clientHeight = $('.light-content-list')[0].clientHeight;
  626. let scrollHeight = $('.light-content-list')[0].scrollHeight;
  627. if(scrollTop + clientHeight + 100 > scrollHeight){
  628. if(recordFlag && pageNum < pages && pages > 1){
  629. recordFlag = false;
  630. pageNum++;
  631. getAward('down');
  632. }
  633. }
  634. });
  635. // 活动获取用户云机列表,分页
  636. getLists();
  637. function getLists(){
  638. const sliderLen = Array.from($('.slider-item')).length;
  639. // if(sliderLen != 0 && sliderLen >= sliderNumber){
  640. // return
  641. // }
  642. // $.ajax({
  643. // url: baseUrl + '/api/user/v1/activity/getUserCardPage',
  644. // type: 'get',
  645. // data: {
  646. // pageNum: pageNum + 1,
  647. // pageSize: 4,
  648. // phoneType: 'SVIP'
  649. // },
  650. // headers: {
  651. // 'Authorization': id //id
  652. // },
  653. // contentType: "application/json",
  654. // dataType: 'json',
  655. // cache: false,
  656. // success: function (res) {
  657. // if (res.status === 0) {
  658. let res = {
  659. data: {
  660. userCardPage: {
  661. records: [{id: 1, exceptTime: '2022-11-11 12:21:22',diskName: 'fdf',}]
  662. },
  663. pages: 1
  664. },
  665. now: '2022-11-11 12:21:22'
  666. }
  667. let records = res.data.userCardPage.records;
  668. totalRecords = [...totalRecords, ...records];
  669. if(records.length === 0){
  670. $('.page-row').eq(0).css('display','none');
  671. let sliderItemDom = `<div class="slider-item no-slider">暂无可分配的云手机</div>`;
  672. $('#slider-list').append(sliderItemDom);
  673. return
  674. }
  675. if(res.data && records.length > 0){
  676. sliderNumber = res.data.userCardPage.pages;
  677. let sliderItemText = $('.slider-item').eq(pageNums).text();
  678. var str = '',
  679. len = records.length;
  680. for (var i = 0; i < len; i++) {
  681. // 解决ios时间显示为NaN
  682. // var now = res.data.now.replace(/T/g, ' ');
  683. // now = now.replace(/\-/g, '/');
  684. var exceptTime = records[i].exceptTime.replace(/T/g, ' ');
  685. exceptTime = exceptTime.replace(/\-/g, '/');
  686. var diskName = records[i].diskName,
  687. // currTime = parseInt(Date.parse(now)),
  688. closeTime = parseInt(Date.parse(exceptTime)),
  689. // resultTime = closeTime - currTime,
  690. // day = parseInt(resultTime / 1000 / 60 / 60 / 24),
  691. // hour = parseInt(resultTime / 1000 / 60 / 60 % 24),
  692. time = 1 + "天" + 1 + "时",
  693. recordsId = records[i].id;
  694. // if(day == 0 && hour <= 0){
  695. // time = '已过期';
  696. // }
  697. if(sliderItemText){
  698. $('.reward-diskName').eq(pageNums*4 + i).text(diskName);
  699. $('.reward-time-content').eq(pageNums*4 + i).text(time);
  700. }
  701. str += `<div class="reward-row">
  702. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  703. <div class="reward-row-content">
  704. <img class="icon_xingyao" src="../static/img/doubleChristmasActivity/home_list_icon_xingyao.png" />
  705. <div class="reward-day-text">
  706. <div class="reward-day reward-diskName">${diskName}</div>
  707. <div class="total-day time-row">
  708. <img class="time-icon" src="../static/img/doubleChristmasActivity/time-icon.png" />
  709. <span class="reward-time-content ${time === '已过期'?'time-overdue':''}">${time}</span>
  710. </div>
  711. </div>
  712. <div class="compute-block">
  713. <img class="compute-icon cut" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/cut.png" />
  714. <input class="ipt" data-id=${recordsId} data-index=${(pageNums)*4 + i} type="number" onkeyup="this.value=this.value.replace(/-/g,'')" value="0" />
  715. <img class="compute-icon add" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/add.png" />
  716. </div>
  717. </div>
  718. </div>`
  719. }
  720. let sliderItemDom = `<div class="slider-item">${str}</div>`;
  721. $('#slider-list').append(sliderItemDom);
  722. // if(!sliderItemText){
  723. // $('#slider-list').append(sliderItemDom);
  724. // }else{
  725. // return
  726. // }
  727. $('.left-ear').eq(0).css('display','block');
  728. $('.right-ear').eq(0).css('display','block');
  729. $('.distribution-reward-btn').eq(0).css('display','block');
  730. $('.schedule-child-line').eq(0).css('width',`${36/sliderNumber}px`);
  731. $('.page').eq(0).text(`${pageNums + 1}/${sliderNumber}页`);
  732. if(sliderNumber === 1){
  733. $('.left-ear').eq(0).css('display','none');
  734. $('.right-ear').eq(0).css('display','none');
  735. $('.page-row').eq(0).css('display','none');
  736. $('.distribution-reward-btn').eq(0).css('margin-top','20px');
  737. }
  738. for (var i = 0; i < len; i++) {
  739. iptIndex = (pageNums) * 4 + parseInt(i);
  740. // $('.ipt')[iptIndex].oninput = function (e) {
  741. // const id = e.target.dataset.id;
  742. // let oldDuration = 0;
  743. // let preTotalTime = 0;
  744. // let index = e.target.dataset.index;
  745. // let value = $('.ipt').eq(index).val();
  746. // if(value.length >= 5){
  747. // value = value.substr(0, 5);
  748. // }
  749. // console.log('value',value)
  750. // var position = String(value).indexOf(".");//获取小数点的位置
  751. // if(position != -1){
  752. // value = value.substr(0, position);
  753. // }
  754. // distributionList.map(item => { // 上一次的总数据
  755. // preTotalTime += parseInt(item.duration);
  756. // })
  757. // //这一次操作
  758. // if(value == 0){
  759. // if(!distributionList.find((item) => item.cardId == id)){
  760. // distributionList.push({
  761. // cardId: id,
  762. // duration: +value
  763. // });
  764. // }else{
  765. // distributionList = distributionList.filter(item => item.cardId != id);
  766. // }
  767. // distributionList = distributionList.filter(item => item.duration != 0);
  768. // }else{
  769. // if(!distributionList.find((item) => item.cardId == id)){
  770. // distributionList.push({
  771. // cardId: id,
  772. // duration: Math.abs(value)
  773. // });
  774. // }else{
  775. // distributionList.map(item => {
  776. // if (item.cardId == id) {
  777. // oldDuration = item.duration;
  778. // item.duration = +value;
  779. // }
  780. // })
  781. // }
  782. // }
  783. // currTotalTime = 0;
  784. // distributionList.map(item => { // 这一次的总数据
  785. // currTotalTime += parseInt(item.duration);
  786. // })
  787. // if(currTotalTime > totalTime){ // 当前已分配大于总分配时长
  788. // let val = totalTime - preTotalTime + oldDuration;
  789. // distributionList.map(item => {
  790. // if (item.cardId == id) {
  791. // item.duration = val;
  792. // }
  793. // })
  794. // $('.ipt').eq(index).val(val);
  795. // stopManyClick(() => {
  796. // toastr.error('分配时长不能大于未分配总时长');
  797. // })
  798. // return
  799. // }
  800. // console.log(distributionList)
  801. // if(value.length > 5) value=value.slice(0, 5);
  802. // $('.ipt').eq(index).val(value);
  803. // }
  804. }
  805. }
  806. // } else {
  807. // stopManyClick(() => {
  808. // toastr.error(res.msg);
  809. // })
  810. // }
  811. // }
  812. // })
  813. }
  814. //获取云机数量
  815. getPhoneNumber();
  816. function getPhoneNumber(){
  817. $.ajax({
  818. url: baseUrl + '/api/pay/v2/meal/info?phoneType=SVIP',
  819. type: 'get',
  820. headers: {
  821. 'Authorization': id //id
  822. },
  823. contentType: "application/json",
  824. dataType: 'json',
  825. cache: false,
  826. success: function (res) {
  827. if(res.status === 0){
  828. phoneRemainQuantity = res.data.list[0].phoneRemainQuantity;
  829. }else{
  830. stopManyClick(() =>{
  831. toastr.error(res.msg)
  832. })
  833. }
  834. },
  835. })
  836. }
  837. //埋点
  838. function operate(pointName){
  839. $.ajax({
  840. url: baseUrl + '/api/public/v1/systemBuriedPoint/stat',
  841. type: 'post',
  842. data:JSON.stringify({
  843. pointName: pointName
  844. }),
  845. contentType:"application/json",
  846. dataType: 'json',
  847. cache: false,
  848. success: function (res) {
  849. console.log(res)
  850. },
  851. })
  852. }
  853. //防止提示一秒内重复显示
  854. function stopManyClick(fn) {
  855. if (flag) {
  856. fn();
  857. }
  858. flag = false;
  859. if(timer){clearTimeout(timer);}
  860. timer = setTimeout(() => {flag = true}, 1500);
  861. }
  862. </script>
  863. </body>
  864. </html>