doubleChristmasActivity.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718
  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" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
  161. <script type="text/javascript">
  162. let timer, flag = true;
  163. var url = window.location.href;
  164. url = url.split('/');
  165. var topVal = -0.5;
  166. let obj = {};
  167. // 上线分享环境改为0,图片路径改为正式站路径
  168. // var baseUrl = 'https://test.androidscloud.com'
  169. var loc = window.location.search,
  170. n1 = loc.length,//地址的总长度
  171. n2 = loc.indexOf("="),//取得=号的位置
  172. id = loc.substr(n2 + 1, n1 - n2),//从=号后面的内容
  173. u = navigator.userAgent,
  174. ua = navigator.userAgent.toLowerCase(),
  175. isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  176. isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
  177. isMiniprogram = false;
  178. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  179. //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
  180. wx.miniProgram.getEnv((res) => {
  181. if (res.miniprogram) {
  182. isMiniprogram = true;
  183. } else {
  184. isMiniprogram = false;
  185. }
  186. })
  187. } else {
  188. isMiniprogram = false;
  189. }
  190. let s = loc.substr(1, loc.length - 1);//取得=号的位置
  191. let userName = '';
  192. let totalTime = 0;
  193. let christmasDoubleReward = 0;
  194. let currTotalTime = 0;
  195. let distributionList = [];
  196. var pageNum = 0;
  197. var distributionFlag = true;
  198. var distributionPageNum = 0;
  199. var distributionPages = 0;
  200. var sliderNumber = 0;//滑块是数量,控制溢出不能滑动
  201. getBaseData();
  202. //点击立即参与按钮
  203. $('.join-activity-btn')[0].addEventListener('click', () => {
  204. operate('dt_双旦_h5_立即参与');
  205. if (isMiniprogram) { // 小程序
  206. wx.miniProgram.navigateTo({
  207. url: '/packageA/order/buy/index'
  208. })
  209. } else if (isAndroid) { // 安卓
  210. window.native.startPurchase(1, 365);
  211. } else if (isiOS) {
  212. window.webkit.messageHandlers.startPurchase.postMessage({ type: 2, day: 365 });
  213. }
  214. })
  215. //点击去完成
  216. $('.reward-list')[0].addEventListener('click', (e) => {
  217. if (e.target.className === 'reward-btn') {
  218. let receive = e.target.dataset.receive;
  219. if (receive !== 'null') {
  220. return
  221. }
  222. if (isMiniprogram) { // 小程序
  223. wx.miniProgram.navigateTo({
  224. url: '/packageA/order/buy/index'
  225. })
  226. } else if (isAndroid) { // 安卓
  227. window.native.startPurchase(1, 365);
  228. } else if (isiOS) {
  229. window.webkit.messageHandlers.startPurchase.postMessage({ type: 2, day: 365 });
  230. }
  231. }
  232. });
  233. //点击tab选项卡
  234. $('.tab-row')[0].addEventListener('click', (e) => {
  235. const index = e.target.dataset.index;
  236. if (!index) {
  237. return
  238. }
  239. if (index == 0) {
  240. operate('dt_双旦_h5_tab_充值奖励');
  241. $('.tab-item')[1].className = 'tab-item';
  242. $('.tab-bg')[0].className = 'tab-bg tab-left';
  243. $('.reward-container').eq(0).css('display', 'block');
  244. $('.distribution-container').eq(0).css('display', 'none');
  245. $('.distribution-container').eq(1).css('display', 'none');
  246. } else {
  247. operate('dt_双旦_h5_tab_分配奖励');
  248. getLists();
  249. distributionRecord();
  250. $('.tab-item')[0].className = 'tab-item';
  251. $('.tab-bg')[0].className = 'tab-bg tab-right';
  252. $('.reward-container').eq(0).css('display', 'none');
  253. $('.distribution-container').eq(0).css('display', 'block');
  254. $('.distribution-container').eq(1).css('display', 'block');
  255. }
  256. $('.tab-item')[index].className = 'tab-item tab-active';
  257. })
  258. //获取倒计时
  259. function getBaseData() {
  260. $.ajax({
  261. url: baseUrl + '/api/user/v1/activity/getChristmasActivityConf',
  262. type: 'get',
  263. headers: {
  264. 'Authorization': id //id
  265. },
  266. contentType: "application/json",
  267. dataType: 'json',
  268. cache: false,
  269. success: function (res) {
  270. getList();
  271. const objData = res.data;
  272. userName = objData.userName;
  273. christmasDoubleReward = objData.christmasDoubleReward;
  274. $('.meal-price-num').eq(0).text(objData.price);
  275. let currTime = parseInt(Date.parse(objData.now)),
  276. closeTime = parseInt(Date.parse(objData.endTime)),
  277. result = closeTime - currTime,
  278. day = parseInt(result / 1000 / 60 / 60 / 24),
  279. hour = parseInt(result / 1000 / 60 / 60 % 24),
  280. minute = parseInt(result / 1000 / 60 % 60),
  281. seconds = parseInt(result / 1000 % 60),
  282. time = day + "天" + hour + "时" + minute + "分" + seconds + "秒";
  283. const timeInterval = setInterval(() => {
  284. if (seconds > 0) {
  285. seconds--;
  286. } else if (minute > 0) {
  287. seconds = 59;
  288. minute--;
  289. } else if (hour > 0) {
  290. minute = 59;
  291. hour--;
  292. } else if (day > 0) {
  293. hour = 59;
  294. day--;
  295. } else {
  296. clearInterval(timeInterval);
  297. }
  298. time = day + "天" + hour + "时" + minute + "分" + seconds + "秒";
  299. let str = `距离活动结束:${time}`
  300. $('.rest-time').eq(0).text(str);
  301. }, 1000)
  302. let str = `距离活动结束:${time}`
  303. if (day == 0 && hour == 0 && minute == 0 && seconds == 0 || objData.activityEnd) {
  304. str = '已结束'
  305. getList()
  306. }
  307. $('.rest-time').eq(0).text(str);
  308. },
  309. })
  310. }
  311. //调用获取数据列表接口
  312. function getList() {
  313. $.ajax({
  314. url: baseUrl + '/api/user/v1/activity/getReceivingList',
  315. type: 'get',
  316. headers: {
  317. 'Authorization': id //id
  318. },
  319. contentType: "application/json",
  320. dataType: 'json',
  321. cache: false,
  322. success: function (res) {
  323. if (res.status === 0) {
  324. if (res.data.open == 2) {
  325. $('.activity-finish').eq(0).css('display', 'block');
  326. }
  327. if (res.data && res.data.operateActivityGoodsInfos.length > 0) {
  328. var str = '',
  329. flag = true,
  330. nextDuration = 0,
  331. usedDuration = res.data.usedDuration,
  332. rewardDuration = res.data.rewardDuration,
  333. totalDuration = res.data.totalDuration,
  334. len = res.data.operateActivityGoodsInfos.length;
  335. for (var i = 0; i < len; i++) {
  336. let rewardDuration = res.data.operateActivityGoodsInfos[i].rewardDuration,
  337. receiveDuration = res.data.operateActivityGoodsInfos[i].receiveDuration,
  338. cumulativeDuration = res.data.operateActivityGoodsInfos[i].cumulativeDuration;
  339. str += `<div class="reward-row">
  340. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  341. <div class="reward-row-content">
  342. <img class="reward-img" src="../static/img/doubleChristmasActivity/reward.png" />
  343. <div class="reward-day-text">
  344. <div class="reward-day">奖励天数${rewardDuration}天</div>
  345. <div class="total-day">购买套餐累计时长达${cumulativeDuration}天</div>
  346. </div>
  347. <img class="reward-btn" data-receive=${receiveDuration} src="../static/img/doubleChristmasActivity/${receiveDuration ? 'get-btn' : 'finish-btn'}.png" />
  348. </div>
  349. </div>`
  350. if (totalDuration - cumulativeDuration < 0 && flag) {
  351. flag = false;
  352. nextDuration = cumulativeDuration - totalDuration;
  353. }
  354. }
  355. str += `<div class="reward-row">
  356. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  357. <div class="reward-row-content">
  358. <img class="reward-img" src="../static/img/doubleChristmasActivity/three-reward.png" />
  359. <div class="reward-day-text">
  360. <div class="reward-day">星曜套餐买一送二</div>
  361. <div class="total-day">购买套餐累计时长达高于${christmasDoubleReward}天</div>
  362. </div>
  363. <img class="reward-btn" data-receive='null' src="../static/img/doubleChristmasActivity/finish-btn.png" />
  364. </div>
  365. </div>`
  366. str += `<div class="reward-last-tip">已获得奖励请在分配奖励栏中进行时长分配</div>`
  367. $('.reward-list').eq(0).append(str);
  368. $('.time-number').eq(0).text(rewardDuration);
  369. $('.total-time-num').eq(0).text(totalDuration);
  370. $('.next-time-num').eq(0).text(nextDuration);
  371. $('.distribution-total-num').eq(0).text(rewardDuration);
  372. const noDistributionDuration = rewardDuration - usedDuration;
  373. $('.time-title-usedDuration').eq(0).text(usedDuration);
  374. totalTime = noDistributionDuration;
  375. $('.no-distribution-num').eq(0).text(noDistributionDuration);
  376. }
  377. } else {
  378. stopManyClick(() => {
  379. toastr.error(res.msg);
  380. })
  381. }
  382. }
  383. })
  384. }
  385. // 获取分配列表数据
  386. function distributionRecord() {
  387. $.ajax({
  388. url: baseUrl + '/api/user/v1/activity/queryUserDistribution',
  389. type: 'get',
  390. data:{
  391. pageNum: distributionPageNum + 1,
  392. pageSize: 10,
  393. userName: userName
  394. },
  395. headers: {
  396. 'Authorization': id //id
  397. },
  398. contentType: "application/json",
  399. dataType: 'json',
  400. cache: false,
  401. success: function (res) {
  402. if(res.status === 0){
  403. distributionFlag = true;
  404. let records = res.data.records;
  405. let distributionPages = res.data.pages;
  406. if(res.data && records.length > 0){
  407. var str = '',
  408. len = records.length;
  409. for (var i = 0; i < len; i++) {
  410. var diskName = records[i].diskName,
  411. createTime = records[i].createTime,
  412. increaseDuration = records[i].increaseDuration;
  413. str += `<div class="time-content-row">
  414. <div class="time-content-diskName">${diskName}</div>
  415. <div class="time-content-time">${createTime.substring(0,4)}年${createTime.substring(5,7)}月${createTime.substring(8,10)}日 ${createTime.substring(11,19)}</div>
  416. <div class="time-content-day">${increaseDuration}天</div>
  417. </div>`
  418. }
  419. $('.time-list').eq(0).append(str);
  420. if (len !== 0) {
  421. $('.no-time-data').eq(0).css('display', 'none');
  422. }
  423. }
  424. } else {
  425. stopManyClick(() => {
  426. toastr.error(res.msg);
  427. })
  428. }
  429. },
  430. })
  431. }
  432. $('.time-container')[0].addEventListener('scroll',function () {
  433. let scrollTop = $('.time-container')[0].scrollTop;
  434. let clientHeight = $('.time-container')[0].clientHeight;
  435. let scrollHeight = $('.time-container')[0].scrollHeight;
  436. if(scrollTop + clientHeight + 100 > scrollHeight){
  437. if(distributionFlag && distributionPageNum <= distributionPages + 1){
  438. distributionFlag = false;
  439. distributionPageNum++;
  440. distributionRecord();
  441. }
  442. }
  443. });
  444. // 活动获取用户云机列表,分页
  445. function getLists(){
  446. const sliderLen = Array.from($('.slider-item')).length;
  447. if (sliderLen > sliderNumber) {
  448. return
  449. }
  450. $.ajax({
  451. url: baseUrl + '/api/user/v1/activity/getUserCardPage',
  452. type: 'get',
  453. data: {
  454. pageNum: pageNum + 1,
  455. pageSize: 4,
  456. phoneType: 'SVIP'
  457. },
  458. headers: {
  459. 'Authorization': id //id
  460. },
  461. contentType: "application/json",
  462. dataType: 'json',
  463. cache: false,
  464. success: function (res) {
  465. if (res.status === 0) {
  466. let records = res.data.userCardPage.records;
  467. if (res.data && records.length > 0) {
  468. sliderNumber = res.data.userCardPage.pages;
  469. var str = '',
  470. len = records.length;
  471. for (var i = 0; i < len; i++) {
  472. var diskName = records[i].diskName,
  473. exceptTime = records[i].exceptTime,
  474. now = res.data.now,
  475. currTime = parseInt(Date.parse(now)),
  476. closeTime = parseInt(Date.parse(exceptTime)),
  477. resultTime = closeTime - currTime,
  478. day = parseInt(resultTime / 1000 / 60 / 60 / 24),
  479. hour = parseInt(resultTime / 1000 / 60 / 60 % 24),
  480. time = day + "天" + hour + "时";
  481. recordsId = records[i].id;
  482. str += `<div class="reward-row">
  483. <img class="reward-row-bg" src="../static/img/doubleChristmasActivity/reward-row-bg.png" />
  484. <div class="reward-row-content">
  485. <img class="icon_xingyao" src="../static/img/doubleChristmasActivity/home_list_icon_xingyao.png" />
  486. <div class="reward-day-text">
  487. <div class="reward-day">${diskName}</div>
  488. <div class="total-day time-row">
  489. <img class="time-icon" src="../static/img/doubleChristmasActivity/time-icon.png" />
  490. <span>${time}</span>
  491. </div>
  492. </div>
  493. <div class="compute-block">
  494. <img class="compute-icon cut" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/cut.png" />
  495. <input class="ipt" data-id=${recordsId} data-index=${i} type="number" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" value="0" />
  496. <img class="compute-icon add" data-id=${recordsId} data-index=${i} src="../static/img/doubleChristmasActivity/add.png" />
  497. </div>
  498. </div>
  499. </div>`
  500. }
  501. let sliderItemDom = res.data.length === 0 ? `<div class="slider-item no-slider">暂无可分配的云手机</div>` : `<div class="slider-item">${str}</div>`;
  502. $('#slider-list').append(sliderItemDom);
  503. if (records.length === 0) {
  504. $('.left-ear').eq(0).css('display', 'none');
  505. $('.right-ear').eq(0).css('display', 'none');
  506. $('.page-row').eq(0).css('display', 'none');
  507. $('.distribution-reward-btn').eq(0).css('display', 'none');
  508. }
  509. $('.page').eq(0).text(`${pageNum + 1}/${sliderNumber}页`);
  510. if (sliderNumber === 1) {
  511. $('.page-row').eq(0).css('display', 'none');
  512. $('.distribution-reward-btn').eq(0).css('margin-top', '20px');
  513. }
  514. for (var i = 0; i < len; i++) {
  515. iptIndex = (pageNum) * 4 + parseInt(i);
  516. $('.ipt')[iptIndex].oninput = function (e) {
  517. const id = e.target.dataset.id;
  518. let oldDuration = 0;
  519. let preTotalTime = 0;
  520. let index = e.target.dataset.index;
  521. let value = $('.ipt').eq(index).val();
  522. distributionList.map(item => { // 上一次的总数据
  523. preTotalTime += parseInt(item.duration);
  524. })
  525. //这一次操作
  526. if(value == 0){
  527. if(!distributionList.find((item) => item.cardId == id)){
  528. distributionList.push({
  529. cardId: id,
  530. duration: +value
  531. });
  532. }
  533. }else{
  534. distributionList.map(item => {
  535. if (item.cardId == id) {
  536. oldDuration = item.duration;
  537. item.duration = +value;
  538. }
  539. })
  540. }
  541. currTotalTime = 0;
  542. distributionList.map(item => { // 这一次的总数据
  543. currTotalTime += parseInt(item.duration);
  544. })
  545. if(currTotalTime > totalTime){ // 当前已分配大于总分配时长
  546. let val = totalTime - preTotalTime + oldDuration;
  547. distributionList.map(item => {
  548. if (item.cardId == id) {
  549. item.duration = val;
  550. }
  551. })
  552. $('.ipt').eq(index).val(val);
  553. stopManyClick(() => {
  554. toastr.error('分配时常不能大于未分配总时常');
  555. })
  556. return
  557. }
  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. console.log(res)
  600. if (res.status === 0) {
  601. operate('dt_双旦_h5_分配奖励_确定');
  602. $('.sure-distribution-wrap').eq(0).css('display', 'none');
  603. $('.reward-list').eq(0).text('');
  604. getList();
  605. getLists();
  606. stopManyClick(() => {
  607. toastr.error('分配时长成功,请前往云机列表查看');
  608. })
  609. } else {
  610. stopManyClick(() => {
  611. toastr.error(res.msg);
  612. })
  613. }
  614. },
  615. })
  616. });
  617. //点击加号
  618. $('.slider-list')[0].addEventListener('click',(e) => {
  619. if(e.target.className === 'compute-icon add'){
  620. const id = e.target.dataset.id;
  621. let currTotalTime = 0;
  622. let index = e.target.dataset.index;
  623. index = (pageNum)*4 + parseInt(index);
  624. let number = $('.ipt').eq(index).val();
  625. // 这一次操作
  626. if(number == 0){
  627. if(!distributionList.find((item) => item.cardId == id)){
  628. distributionList.push({
  629. cardId: id,
  630. duration: +number + 1
  631. });
  632. }
  633. }else{
  634. distributionList.map(item => {
  635. if(item.cardId == id){
  636. item.duration++;
  637. }
  638. })
  639. }
  640. distributionList.map(item => { // 这一次的总数据
  641. currTotalTime += parseInt(item.duration);
  642. })
  643. if(currTotalTime <= totalTime){
  644. number++;
  645. $('.ipt').eq(index).val(number);
  646. }else{
  647. distributionList.map(item => {
  648. if(item.cardId == id){
  649. item.duration = +number;
  650. }
  651. })
  652. stopManyClick(() => {
  653. toastr.error('分配时常不能大于未分配总时常');
  654. })
  655. }
  656. console.log(distributionList)
  657. }
  658. });
  659. //点击减号
  660. $('.slider-list')[0].addEventListener('click',(e) => {
  661. if(e.target.className === 'compute-icon cut'){
  662. const id = e.target.dataset.id;
  663. let index = e.target.dataset.index;
  664. index = (pageNum)*4 + parseInt(index);
  665. let number = $('.ipt').eq(index).val();
  666. if(number > 0){
  667. distributionList.map(item => {
  668. if(item.cardId == id){
  669. item.duration--;
  670. }
  671. })
  672. number--;
  673. currTotalTime--;
  674. $('.ipt').eq(index).val(number);
  675. }else{
  676. stopManyClick(() => {
  677. toastr.error('分配的时常不能小于0');
  678. })
  679. }
  680. }
  681. });
  682. //埋点
  683. operate('dt_双旦_h5_活动首页');
  684. function operate(pointName, type) {
  685. $.ajax({
  686. url: baseUrl + '/api/public/v1/systemBuriedPoint/stat',
  687. type: 'post',
  688. data: JSON.stringify({
  689. pointName: pointName
  690. }),
  691. contentType: "application/json",
  692. dataType: 'json',
  693. cache: false,
  694. success: function (res) {
  695. },
  696. })
  697. }
  698. //防止提示一秒内重复显示
  699. function stopManyClick(fn) {
  700. if (flag) {
  701. fn();
  702. }
  703. flag = false;
  704. if (timer) { clearTimeout(timer); }
  705. timer = setTimeout(() => { flag = true }, 1500);
  706. }
  707. </script>
  708. <script src="../static/js/vender/move.js"></script>
  709. </body>
  710. </html>