doubleChristmasActivity.html 25 KB

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