doubleChristmasActivity.html 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737
  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/doubleChristmasActivity.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. <style>
  14. </style>
  15. </head>
  16. <body>
  17. <div class="container">
  18. <div class="header-container">
  19. <img class="top-banner" src="../static/img/doubleChristmasActivity/top-banner.png" />
  20. <div class="activity-meal">活动参与套餐:星耀套餐</div>
  21. <div class="meal-price">云机低至<span class="meal-price-num"></span>元/天</div>
  22. <div class="rest-time"></div>
  23. <div class="limit">PC端用户不参与本次活动</div>
  24. </div>
  25. <div class="middle-container">
  26. <img class="footer-cloud" src="../static/img/doubleChristmasActivity/footer-cloud.png" />
  27. <div class="step-container">
  28. <img class="tips" src="../static/img/doubleChristmasActivity/tip.png" />
  29. <div class="main-step-content">
  30. <div class="top-step">
  31. <div class="step-item">
  32. <img class="buyphone" src="../static/img/doubleElevenActivity/buyphone.png" />
  33. <span class="step-text">购买续费云机</span>
  34. </div>
  35. <img class="step" src="../static/img/doubleElevenActivity/step.png" />
  36. <div class="step-item">
  37. <img class="hongbao" src="../static/img/doubleChristmasActivity/hongbao.png" />
  38. <span class="step-text">累计云机时长</span>
  39. </div>
  40. <img class="step" src="../static/img/doubleElevenActivity/step.png" />
  41. <div class="step-item">
  42. <img class="buyphone" src="../static/img/doubleElevenActivity/buyphone.png" />
  43. <span class="step-text">获取额外奖励</span>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="join-activity-btn">
  48. <img class="join-activity" src="../static/img/doubleElevenActivity/button-join-activity.png" />
  49. <div class="activity-btn-content">
  50. <span class="activity-btn-text">立即参与</span>
  51. <img class="icon-left" src="../static/img/doubleElevenActivity/icon-left.png" />
  52. </div>
  53. </div>
  54. <img class="middle-cloud" src="../static/img/doubleChristmasActivity/middle-cloud.png" />
  55. </div>
  56. <div class="rest-tip">使用激活码,优惠券和星币支付不参与活动</div>
  57. <div class="tab-row">
  58. <div class="tab-item tab-active" data-index="0">充值奖励</div>
  59. <div class="tab-item" data-index="1">分配奖励(<span class="time-number"></span>)</div>
  60. <img class="tab-bg" src="../static/img/doubleChristmasActivity/tab-bg.png" />
  61. </div>
  62. <div class="reward-container">
  63. <div class="activity-finish">
  64. <div class="finish-text">活动已结束</div>
  65. </div>
  66. <div class="reward-time">
  67. <span class="reward-text">购买套餐累计时长</span>
  68. <span class="total-time-num"></span>
  69. <span class="reward-text">天</span>
  70. <span class="time-line">|</span>
  71. <span class="reward-text">距离下一个奖励还差</span>
  72. <span class="next-time-num"></span>
  73. <span class="reward-text">天</span>
  74. </div>
  75. <div class="reward-tip-row">
  76. <img class="reward-tip-img" src="../static/img/doubleChristmasActivity/reward-tip-img.png" />
  77. <div class="reward-tip">精彩不停的充值福利专场已经来临充值越多折扣越大</div>
  78. </div>
  79. <div class="reward-list"></div>
  80. </div>
  81. <div class="distribution-container">
  82. <div class="distribution-time">
  83. <div>
  84. <span class="distribution-text">奖励总时长</span>
  85. <span class="distribution-total-num"></span>
  86. <span class="distribution-text">天</span>
  87. </div>
  88. <span class="distribution-line">|</span>
  89. <div>
  90. <span class="distribution-text">未分配时长</span>
  91. <span class="no-distribution-num"></span>
  92. <span class="distribution-text">天</span>
  93. </div>
  94. </div>
  95. <div class="reward-list">
  96. <img class="left-ear" src="../static/img/doubleChristmasActivity/left-ear.png" />
  97. <img class="right-ear" src="../static/img/doubleChristmasActivity/right-ear.png" />
  98. <div class="slider" id="slider">
  99. <div class="slider-list flex" id="slider-list"></div>
  100. </div>
  101. <div class="page-row">
  102. <div class="schedule-line">
  103. <div class="schedule-child-line"></div>
  104. </div>
  105. <div class="page">1/4页</div>
  106. </div>
  107. <div class="distribution-reward-btn">
  108. <img class="reward-btn-img" src="../static/img/doubleChristmasActivity/distribution-reward-btn.png" />
  109. </div>
  110. </div>
  111. </div>
  112. <div class="distribution-container time-container">
  113. <div class="time-title-row">
  114. <img class="time-title-bg" src="../static/img/doubleChristmasActivity/time-title-bg.png" />
  115. <div class="time-title">分配时长记录(已分配时长<span class="time-title-usedDuration"></span>天)</div>
  116. </div>
  117. <div class="time-list">
  118. <div class="title-row">
  119. <div>云机名称</div>
  120. <div>时间</div>
  121. <div>时长</div>
  122. </div>
  123. <div class="no-time-data">暂无分配时长</div>
  124. </div>
  125. </div>
  126. <div class="rule-container">
  127. <img class="rule-tips" src="../static/img/doubleChristmasActivity/rule.png" />
  128. <div class="rule-content">
  129. <div class="rule-point">一、活动时间:2021年12月18日-2022年1月3日。</div>
  130. <div class="rule-point">二、任务奖励与获取说明</div>
  131. <div class="rule-point">1.活动期间购买星曜云机达累计天数,可获得相应奖励,同一个账号同一进度的奖励只能领取一次。</div>
  132. <div class="rule-point">任务奖励一览:</div>
  133. <div class="rule-point">1.1.累积购买天数小于等于2022天时 ,获得对应任务奖励。</div>
  134. <div class="rule-point">1.2.累积购买天数大于2022天时,超过2022天的部分按买一送二发放奖励。</div>
  135. <div class="rule-point">2.使用星币支付、激活码兑换、优惠劵购买和购买非星耀套餐不计入任务进度。</div>
  136. <div class="rule-point">3.奖励获取的云机时长仅可用于续费账号中现有的星曜云机设备。</div>
  137. <div class="rule-point blue">4.奖励领取日期为:2021年12月18日-2022年1月6日,超过领取时间未领取奖励则视为放弃任务奖励。</div>
  138. <div class="rule-point">5.从他人获取授权的云手机不能分配累计奖励时长。</div>
  139. <div class="rule-point">三、其他说明</div>
  140. <div class="rule-point">1.本次活动不与其他活动优惠叠加。</div>
  141. <div class="rule-point">2.本次活动期间购买的云手机套餐不支持退款。</div>
  142. <div class="rule-point">3.双子星官方对活动具有最终解释权。</div>
  143. </div>
  144. </div>
  145. </div>
  146. <div class="sure-distribution-wrap">
  147. <div class="sure-distribution-box">
  148. <div class="sure-distribution-title">确定分配奖励时长</div>
  149. <div class="sure-distribution-btn-list">
  150. <div class="sure-distribution-btn sure-distribution-cannel">取消</div>
  151. <div class="sure-distribution-btn sure-distribution-sure">确定</div>
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. <script>
  157. toastr.options.positionClass = 'toast-center-center';
  158. toastr.options.timeOut = '1500';
  159. </script>
  160. <script type="text/javascript">
  161. let timer,flag = true;
  162. var url = window.location.href;
  163. url = url.split('/');
  164. var topVal = -0.5;
  165. let obj = {};
  166. // 上线分享环境改为0,图片路径改为正式站路径
  167. var baseUrl = 'https://test.androidscloud.com'
  168. var loc = window.location.search,
  169. n1 = loc.length,//地址的总长度
  170. n2 = loc.indexOf("="),//取得=号的位置
  171. id = loc.substr(n2 + 1, n1 - n2),//从=号后面的内容
  172. u = navigator.userAgent,
  173. ua = navigator.userAgent.toLowerCase(),
  174. isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  175. isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  176. let s = loc.substr(1,loc.length-1);//取得=号的位置
  177. let userName = '';
  178. let totalTime = 0;
  179. let christmasDoubleReward = 0;
  180. let currTotalTime = 0;
  181. let distributionList = [];
  182. let totalRecords = [];
  183. var pageNum = 0;
  184. var distributionFlag = true;
  185. var distributionPageNum = 0;
  186. var distributionPages = 0;
  187. var sliderNumber = 0;//滑块是数量,控制溢出不能滑动
  188. getBaseData();
  189. //点击立即参与按钮
  190. $('.join-activity-btn')[0].addEventListener('click',() => {
  191. operate('dt_双旦_h5_立即参与');
  192. if(isAndroid){ // 安卓
  193. window.native.startPurchase(1,365);
  194. }else if(isiOS){
  195. window.webkit.messageHandlers.startPurchase.postMessage({type:2,day:365});
  196. }else {
  197. }
  198. })
  199. //点击去完成
  200. $('.reward-list')[0].addEventListener('click',(e) => {
  201. if(e.target.className === 'reward-btn'){
  202. let receive = e.target.dataset.receive;
  203. if(receive !== 'null'){
  204. return
  205. }
  206. if(isAndroid){ // 安卓
  207. window.native.startPurchase(1,365);
  208. }else if(isiOS){
  209. window.webkit.messageHandlers.startPurchase.postMessage({type:2,day:365});
  210. }else{
  211. }
  212. }
  213. });
  214. //点击tab选项卡
  215. $('.tab-row')[0].addEventListener('click',(e) => {
  216. const index = e.target.dataset.index;
  217. if(!index){
  218. return
  219. }
  220. if(index == 0){
  221. operate('dt_双旦_h5_tab_充值奖励');
  222. $('.tab-item')[1].className = 'tab-item';
  223. $('.tab-bg')[0].className = 'tab-bg tab-left';
  224. $('.reward-container').eq(0).css('display','block');
  225. $('.distribution-container').eq(0).css('display','none');
  226. $('.distribution-container').eq(1).css('display','none');
  227. }else{
  228. operate('dt_双旦_h5_tab_分配奖励');
  229. getLists();
  230. distributionRecord();
  231. $('.tab-item')[0].className = 'tab-item';
  232. $('.tab-bg')[0].className = 'tab-bg tab-right';
  233. $('.reward-container').eq(0).css('display','none');
  234. $('.distribution-container').eq(0).css('display','block');
  235. $('.distribution-container').eq(1).css('display','block');
  236. }
  237. $('.tab-item')[index].className = 'tab-item tab-active';
  238. })
  239. //获取倒计时
  240. function getBaseData(){
  241. $.ajax({
  242. url: baseUrl + '/api/user/v1/activity/getChristmasActivityConf',
  243. type: 'get',
  244. headers: {
  245. 'Authorization': id //id
  246. },
  247. contentType:"application/json",
  248. dataType: 'json',
  249. cache: false,
  250. success: function (res) {
  251. getList();
  252. const objData = res.data;
  253. userName = objData.userName;
  254. christmasDoubleReward = objData.christmasDoubleReward;
  255. // 解决ios时间显示为NaN
  256. objData.now = objData.now.replace(/T/g, ' ');
  257. objData.now = objData.now.replace(/\-/g, '/');
  258. objData.endTime = objData.endTime.replace(/T/g, ' ');
  259. objData.endTime = objData.endTime.replace(/\-/g, '/');
  260. $('.meal-price-num').eq(0).text(objData.price);
  261. let currTime = parseInt(Date.parse(objData.now)),
  262. closeTime = parseInt(Date.parse(objData.endTime)),
  263. result = closeTime - currTime,
  264. day = parseInt(result / 1000 / 60 / 60 / 24),
  265. hour = parseInt(result / 1000 / 60 / 60 % 24),
  266. minute = parseInt(result / 1000 / 60 % 60),
  267. seconds = parseInt(result / 1000 % 60),
  268. time = day + "天" + hour + "时" + minute + "分" + seconds + "秒";
  269. const timeInterval = setInterval(() =>{
  270. if(seconds > 0){
  271. seconds--;
  272. } else if(minute > 0) {
  273. seconds = 59;
  274. minute--;
  275. } else if(hour > 0) {
  276. minute = 59;
  277. hour--;
  278. } else if(day > 0) {
  279. hour = 59;
  280. day--;
  281. } else {
  282. clearInterval(timeInterval);
  283. }
  284. time = day + "天" + hour + "时" + minute + "分" + seconds + "秒";
  285. let str =`距离活动结束:${time}`
  286. $('.rest-time').eq(0).text(str);
  287. },1000)
  288. let str =`距离活动结束:${time}`
  289. if(day == 0 && hour == 0 && minute == 0 && seconds == 0 || objData.activityEnd){
  290. str = '已结束'
  291. getList()
  292. }
  293. $('.rest-time').eq(0).text(str);
  294. },
  295. })
  296. }
  297. //调用获取数据列表接口
  298. function getList(){
  299. $.ajax({
  300. url: baseUrl + '/api/user/v1/activity/getReceivingList',
  301. type: 'get',
  302. headers: {
  303. 'Authorization': id //id
  304. },
  305. contentType: "application/json",
  306. dataType: 'json',
  307. cache: false,
  308. success: function (res) {
  309. if(res.status === 0){
  310. if(res.data.open == 2){
  311. $('.activity-finish').eq(0).css('display','block');
  312. }
  313. if(res.data && res.data.operateActivityGoodsInfos.length > 0){
  314. var str = '',
  315. flag = true,
  316. nextDuration = 0,
  317. usedDuration = res.data.usedDuration,
  318. rewardDuration = res.data.rewardDuration,
  319. totalDuration = res.data.totalDuration,
  320. len = res.data.operateActivityGoodsInfos.length;
  321. for (var i = 0; i < len; i++) {
  322. let rewardDuration = res.data.operateActivityGoodsInfos[i].rewardDuration,
  323. receiveDuration = res.data.operateActivityGoodsInfos[i].receiveDuration,
  324. cumulativeDuration = res.data.operateActivityGoodsInfos[i].cumulativeDuration;
  325. str += `<div class="reward-row">
  326. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  327. <div class="reward-row-content">
  328. <img class="reward-img" src="../static/img/doubleChristmasActivity/reward.png" />
  329. <div class="reward-day-text">
  330. <div class="reward-day">奖励天数${rewardDuration}天</div>
  331. <div class="total-day">购买套餐累计时长达${cumulativeDuration}天</div>
  332. </div>
  333. <img class="reward-btn" data-receive=${receiveDuration} src="../static/img/doubleChristmasActivity/${receiveDuration ? 'get-btn' : 'finish-btn'}.png" />
  334. </div>
  335. </div>`
  336. if(totalDuration - cumulativeDuration < 0 && flag){
  337. flag = false;
  338. nextDuration = cumulativeDuration - totalDuration;
  339. }
  340. }
  341. str += `<div class="reward-row">
  342. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  343. <div class="reward-row-content">
  344. <img class="reward-img" src="../static/img/doubleChristmasActivity/three-reward.png" />
  345. <div class="reward-day-text">
  346. <div class="reward-day">星曜套餐买一送二</div>
  347. <div class="total-day">购买套餐累计时长达高于${christmasDoubleReward}天</div>
  348. </div>
  349. <img class="reward-btn" data-receive='null' src="../static/img/doubleChristmasActivity/finish-btn.png" />
  350. </div>
  351. </div>`
  352. str +=`<div class="reward-last-tip">已获得奖励请在分配奖励栏中进行时长分配</div>`
  353. $('.reward-list').eq(0).append(str);
  354. $('.time-number').eq(0).text(rewardDuration);
  355. $('.total-time-num').eq(0).text(totalDuration);
  356. $('.next-time-num').eq(0).text(nextDuration);
  357. $('.distribution-total-num').eq(0).text(rewardDuration);
  358. const noDistributionDuration = rewardDuration - usedDuration;
  359. $('.time-title-usedDuration').eq(0).text(usedDuration);
  360. totalTime = noDistributionDuration;
  361. $('.no-distribution-num').eq(0).text(noDistributionDuration);
  362. }
  363. }else{
  364. stopManyClick(() => {
  365. toastr.error(res.msg);
  366. })
  367. }
  368. }
  369. })
  370. }
  371. // 获取分配列表数据
  372. function distributionRecord(){
  373. $.ajax({
  374. url: baseUrl + '/api/user/v1/activity/queryUserDistribution',
  375. type: 'get',
  376. data:{
  377. pageNum: distributionPageNum + 1,
  378. pageSize: 10,
  379. userName: userName
  380. },
  381. headers: {
  382. 'Authorization': id //id
  383. },
  384. contentType: "application/json",
  385. dataType: 'json',
  386. cache: false,
  387. success: function (res) {
  388. if(res.status === 0){
  389. distributionFlag = true;
  390. let records = res.data.records;
  391. let distributionPages = res.data.pages;
  392. if(res.data && records.length > 0){
  393. var str = '',
  394. len = records.length;
  395. for (var i = 0; i < len; i++) {
  396. var diskName = records[i].diskName,
  397. createTime = records[i].createTime,
  398. increaseDuration = records[i].increaseDuration;
  399. str += `<div class="time-content-row">
  400. <div class="time-content-diskName">${diskName}</div>
  401. <div class="time-content-time">${createTime.substring(0,4)}年${createTime.substring(5,7)}月${createTime.substring(8,10)}日 ${createTime.substring(11,19)}</div>
  402. <div class="time-content-day">${increaseDuration}天</div>
  403. </div>`
  404. }
  405. $('.time-list').eq(0).append(str);
  406. if(len !== 0){
  407. $('.no-time-data').eq(0).css('display','none');
  408. }
  409. }
  410. }else{
  411. stopManyClick(() => {
  412. toastr.error(res.msg);
  413. })
  414. }
  415. },
  416. })
  417. }
  418. //分配列表数据下拉加载
  419. $('.time-container')[0].addEventListener('scroll',function () {
  420. let scrollTop = $('.time-container')[0].scrollTop;
  421. let clientHeight = $('.time-container')[0].clientHeight;
  422. let scrollHeight = $('.time-container')[0].scrollHeight;
  423. if(scrollTop + clientHeight + 100 > scrollHeight){
  424. if(distributionFlag && distributionPageNum <= distributionPages + 1){
  425. distributionFlag = false;
  426. distributionPageNum++;
  427. distributionRecord();
  428. }
  429. }
  430. });
  431. // 活动获取用户云机列表,分页
  432. function getLists(){
  433. const sliderLen = Array.from($('.slider-item')).length;
  434. if(sliderLen != 0 && sliderLen >= sliderNumber){
  435. return
  436. }
  437. $.ajax({
  438. url: baseUrl + '/api/user/v1/activity/getUserCardPage',
  439. type: 'get',
  440. data:{
  441. pageNum: pageNum + 1,
  442. pageSize: 4,
  443. phoneType : 'SVIP'
  444. },
  445. headers: {
  446. 'Authorization': id //id
  447. },
  448. contentType: "application/json",
  449. dataType: 'json',
  450. cache: false,
  451. success: function (res) {
  452. if(res.status === 0){
  453. let records = res.data.userCardPage.records;
  454. totalRecords = [...totalRecords, ...records];
  455. if(records.length === 0){
  456. $('.page-row').eq(0).css('display','none');
  457. let sliderItemDom = `<div class="slider-item no-slider">暂无可分配的云手机</div>`;
  458. $('#slider-list').append(sliderItemDom);
  459. return
  460. }
  461. if(res.data && records.length > 0){
  462. sliderNumber = res.data.userCardPage.pages;
  463. var str = '',
  464. len = records.length;
  465. for (var i = 0; i < len; i++) {
  466. // 解决ios时间显示为NaN
  467. var now = res.data.now.replace(/T/g, ' ');
  468. now = now.replace(/\-/g, '/');
  469. var exceptTime = records[i].exceptTime.replace(/T/g, ' ');
  470. exceptTime = exceptTime.replace(/\-/g, '/');
  471. var diskName = records[i].diskName,
  472. currTime = parseInt(Date.parse(now)),
  473. closeTime = parseInt(Date.parse(exceptTime)),
  474. resultTime = closeTime - currTime,
  475. day = parseInt(resultTime / 1000 / 60 / 60 / 24),
  476. hour = parseInt(resultTime / 1000 / 60 / 60 % 24),
  477. time = day + "天" + hour + "时";
  478. recordsId = records[i].id;
  479. str += `<div class="reward-row">
  480. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  481. <div class="reward-row-content">
  482. <img class="icon_xingyao" src="../static/img/doubleChristmasActivity/home_list_icon_xingyao.png" />
  483. <div class="reward-day-text">
  484. <div class="reward-day">${diskName}</div>
  485. <div class="total-day time-row">
  486. <img class="time-icon" src="../static/img/doubleChristmasActivity/time-icon.png" />
  487. <span>${time}</span>
  488. </div>
  489. </div>
  490. <div class="compute-block">
  491. <img class="compute-icon cut" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/cut.png" />
  492. <input class="ipt" data-id=${recordsId} data-index=${i} type="number" onkeyup="this.value=this.value.replace(/-/g,'')" value="0" />
  493. <img class="compute-icon add" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/add.png" />
  494. </div>
  495. </div>
  496. </div>`
  497. }
  498. let sliderItemDom = `<div class="slider-item">${str}</div>`;
  499. $('#slider-list').append(sliderItemDom);
  500. $('.left-ear').eq(0).css('display','block');
  501. $('.right-ear').eq(0).css('display','block');
  502. $('.distribution-reward-btn').eq(0).css('display','block');
  503. $('.schedule-child-line').eq(0).css('width',`${36/sliderNumber}px`);
  504. $('.page').eq(0).text(`${pageNum + 1}/${sliderNumber}页`);
  505. if(sliderNumber === 1){
  506. $('.page-row').eq(0).css('display','none');
  507. $('.distribution-reward-btn').eq(0).css('margin-top','20px');
  508. }
  509. for(var i = 0; i < len; i++){
  510. iptIndex = (pageNum)*4 + parseInt(i);
  511. $('.ipt')[iptIndex].oninput = function(e){
  512. const id = e.target.dataset.id;
  513. let oldDuration = 0;
  514. let preTotalTime = 0;
  515. let index = e.target.dataset.index;
  516. let value = $('.ipt').eq(index).val();
  517. var position = String(value).indexOf(".");//获取小数点的位置
  518. if(position != -1){
  519. value = value.substr(0, position);
  520. }
  521. distributionList.map(item => { // 上一次的总数据
  522. preTotalTime += parseInt(item.duration);
  523. })
  524. //这一次操作
  525. if(value == 0){
  526. if(!distributionList.find((item) => item.cardId == id)){
  527. distributionList.push({
  528. cardId: id,
  529. duration: +value
  530. });
  531. }
  532. }else{
  533. distributionList.map(item => {
  534. if(item.cardId == id){
  535. oldDuration = item.duration;
  536. item.duration = +value;
  537. }
  538. })
  539. }
  540. currTotalTime = 0;
  541. distributionList.map(item => { // 这一次的总数据
  542. currTotalTime += parseInt(item.duration);
  543. })
  544. if(currTotalTime > totalTime){ // 当前已分配大于总分配时长
  545. let val = totalTime - preTotalTime + oldDuration;
  546. distributionList.map(item => {
  547. if(item.cardId == id){
  548. item.duration = val;
  549. }
  550. })
  551. $('.ipt').eq(index).val(val);
  552. stopManyClick(() => {
  553. toastr.error('分配时常不能大于未分配总时常');
  554. })
  555. return
  556. }
  557. console.log(distributionList)
  558. if(value.length > 5) value=value.slice(0, 5);
  559. $('.ipt').eq(index).val(value);
  560. }
  561. }
  562. }
  563. }else{
  564. stopManyClick(() => {
  565. toastr.error(res.msg);
  566. })
  567. }
  568. }
  569. })
  570. }
  571. //点击分配时常按钮
  572. $('.distribution-reward-btn')[0].addEventListener('click',(e) => {
  573. if(distributionList.length === 0){
  574. stopManyClick(() => {
  575. toastr.error('未选中任何云手机');
  576. })
  577. }else{
  578. $('.sure-distribution-wrap').eq(0).css('display','block');
  579. }
  580. });
  581. //点击分配时常取消按钮
  582. $('.sure-distribution-cannel')[0].addEventListener('click',(e) => {
  583. operate('dt_双旦_h5_分配奖励_取消');
  584. $('.sure-distribution-wrap').eq(0).css('display','none');
  585. });
  586. //点击分配时常确定按钮
  587. $('.sure-distribution-sure')[0].addEventListener('click',(e) => {
  588. $.ajax({
  589. url: baseUrl + '/api/user/v1/activity/distributeRewardDuration',
  590. type: 'post',
  591. data:JSON.stringify(distributionList),
  592. headers: {
  593. 'Authorization': id //id
  594. },
  595. contentType: "application/json",
  596. dataType: 'json',
  597. cache: false,
  598. success: function (res) {
  599. if(res.status === 0){
  600. operate('dt_双旦_h5_分配奖励_确定');
  601. $('.sure-distribution-wrap').eq(0).css('display','none');
  602. $('.reward-list').eq(0).text('');
  603. getList();
  604. getLists();
  605. distributionRecord();
  606. distributionList.map((val) => {
  607. totalRecords.map((item, indexs) => {
  608. if(val.cardId == item.id){
  609. console.log('indexs',indexs)
  610. $('.ipt').eq(indexs).val(0);
  611. }
  612. })
  613. })
  614. distributionList = [];
  615. stopManyClick(() => {
  616. toastr.error('分配成功,请前往云机列表查看');
  617. })
  618. }else{
  619. stopManyClick(() => {
  620. toastr.error(res.msg);
  621. })
  622. }
  623. },
  624. })
  625. });
  626. //点击加号
  627. $('.slider-list')[0].addEventListener('click',(e) => {
  628. if(e.target.className === 'compute-icon add'){
  629. const id = e.target.dataset.id;
  630. let currTotalTime = 0;
  631. let index = e.target.dataset.index;
  632. index = (pageNum)*4 + parseInt(index);
  633. let number = $('.ipt').eq(index).val();
  634. // 这一次操作
  635. if(number == 0){
  636. if(!distributionList.find((item) => item.cardId == id)){
  637. distributionList.push({
  638. cardId: id,
  639. duration: +number + 1
  640. });
  641. }else{
  642. distributionList.map(item => {
  643. if(item.cardId == id){
  644. item.duration++;
  645. }
  646. })
  647. }
  648. }else{
  649. distributionList.map(item => {
  650. if(item.cardId == id){
  651. item.duration++;
  652. }
  653. })
  654. }
  655. distributionList.map(item => { // 这一次的总数据
  656. currTotalTime += parseInt(item.duration);
  657. })
  658. console.log(currTotalTime)
  659. console.log(totalTime)
  660. if(currTotalTime <= totalTime){
  661. number++;
  662. $('.ipt').eq(index).val(number);
  663. }else{
  664. distributionList.map(item => {
  665. if(item.cardId == id){
  666. item.duration = +number;
  667. }
  668. })
  669. stopManyClick(() => {
  670. toastr.error('分配时常不能大于未分配总时常');
  671. })
  672. }
  673. console.log(distributionList)
  674. }
  675. });
  676. //点击减号
  677. $('.slider-list')[0].addEventListener('click',(e) => {
  678. if(e.target.className === 'compute-icon cut'){
  679. const id = e.target.dataset.id;
  680. let index = e.target.dataset.index;
  681. index = (pageNum)*4 + parseInt(index);
  682. let number = $('.ipt').eq(index).val();
  683. if(number > 0){
  684. distributionList.map(item => {
  685. if(item.cardId == id){
  686. item.duration--;
  687. }
  688. })
  689. number--;
  690. currTotalTime--;
  691. $('.ipt').eq(index).val(number);
  692. }else{
  693. stopManyClick(() => {
  694. toastr.error('分配的时常不能小于0');
  695. })
  696. }
  697. }
  698. });
  699. //埋点
  700. operate('dt_双旦_h5_活动首页');
  701. function operate(pointName,type){
  702. $.ajax({
  703. url: baseUrl + '/api/public/v1/systemBuriedPoint/stat',
  704. type: 'post',
  705. data:JSON.stringify({
  706. pointName: pointName
  707. }),
  708. contentType:"application/json",
  709. dataType: 'json',
  710. cache: false,
  711. success: function (res) {
  712. },
  713. })
  714. }
  715. //防止提示一秒内重复显示
  716. function stopManyClick(fn) {
  717. if (flag) {
  718. fn();
  719. }
  720. flag = false;
  721. if(timer){clearTimeout(timer);}
  722. timer = setTimeout(() => {flag = true}, 1500);
  723. }
  724. </script>
  725. <script src="../static/js/vender/move.js"></script>
  726. </body>
  727. </html>