|
@@ -0,0 +1,383 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="zh-CN">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
|
|
+ <title>领福利活动</title>
|
|
|
+ <link rel="icon" href="../static/img/favicon2.ico" type="img/x-ico">
|
|
|
+ <link rel="stylesheet" href="../static/js/vender/bootstrap/css/bootstrap.min.css">
|
|
|
+ <link rel="stylesheet" href="../static/js/vender/toastr/toastr.min.css">
|
|
|
+ <link rel="stylesheet" href="../static/css/qqActivity.css">
|
|
|
+ <script src="../static/js/vender/jquery-3.4.1.min.js"></script>
|
|
|
+ <script src="../static/js/vender/toastr/toastr.min.js"></script>
|
|
|
+ <script src="../static/js/vender/config.js"></script>
|
|
|
+ <script src="../static/js/vender/crypto-js.js"></script>
|
|
|
+ <script src="../static/js/vender/ase.js"></script>
|
|
|
+</head>
|
|
|
+
|
|
|
+<body>
|
|
|
+ <div class="containers">
|
|
|
+ <div class="banner-wrap">
|
|
|
+ <div class="title-wrap">
|
|
|
+ <img class="title-img" src="../static/img/qqActivity/back.png">
|
|
|
+ <div class="title-text">双子星云手机</div>
|
|
|
+ </div>
|
|
|
+ <img class="banner-img" src="../static/img/qqActivity/banner.png">
|
|
|
+ <div class="rule-wrap">
|
|
|
+ <img class="rule-img" src="../static/img/qqActivity/rule.png">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="main-wrap">
|
|
|
+ <div class="middle-wrap">
|
|
|
+ <div class="ipt-row">
|
|
|
+ <img class="img" src="../static/img/qqActivity/phone.png">
|
|
|
+ <input class="phone-ipt ipt" type="number" placeholder="请输入11位手机号码" />
|
|
|
+ </div>
|
|
|
+ <div class="phone-tip">*请输入正确的手机号码</div>
|
|
|
+ <div class="ipt-row">
|
|
|
+ <img class="img" src="../static/img/qqActivity/code.png">
|
|
|
+ <input class="code-ipt ipt" type="number" placeholder="请输入验证码" />
|
|
|
+ <div class="get-code">获取验证码</div>
|
|
|
+ </div>
|
|
|
+ <div class="code-tip">*请输入正确的验证码</div>
|
|
|
+ <div class="btns">
|
|
|
+ <img class="btn-img" src="../static/img/qqActivity/btn.png">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="bottom-wrap">
|
|
|
+ <div class="title">
|
|
|
+ <img class="icon-title" src="../static/img/qqActivity/icon-title.png">
|
|
|
+ </div>
|
|
|
+ <div class="icon-wrap">
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon1.png">
|
|
|
+ <div class="icon-item-text">7*24小时在线</div>
|
|
|
+ <div class="icon-item-tip">全天应用托管</div>
|
|
|
+ </div>
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon2.png">
|
|
|
+ <div class="icon-item-text">云游戏</div>
|
|
|
+ <div class="icon-item-tip">即点即玩</div>
|
|
|
+ </div>
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon3.png">
|
|
|
+ <div class="icon-item-text">手机无限扩容</div>
|
|
|
+ <div class="icon-item-tip">一切在云</div>
|
|
|
+ </div>
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon4.png">
|
|
|
+ <div class="icon-item-text">低配变顶配</div>
|
|
|
+ <div class="icon-item-tip">玩转大型游戏</div>
|
|
|
+ </div>
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon5.png">
|
|
|
+ <div class="icon-item-text">三端通用</div>
|
|
|
+ <div class="icon-item-tip">适配无忧</div>
|
|
|
+ </div>
|
|
|
+ <div class="icon-item">
|
|
|
+ <img class="icon-item-img" src="../static/img/qqActivity/icon6.png">
|
|
|
+ <div class="icon-item-text">影音随心享</div>
|
|
|
+ <div class="icon-item-tip">云端缓存不占空间</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="rule-mask">
|
|
|
+ <div class="dialogs">
|
|
|
+ <div class="rule-dialog-wrap">
|
|
|
+ <div class="rule-title-wrap">
|
|
|
+ <div class="rule-text">活动规则</div>
|
|
|
+ <img class="rule-close" src="../static/img/qqActivity/rule-close.png">
|
|
|
+ </div>
|
|
|
+ <div class="rule-list">
|
|
|
+ <div class="rule-point">1.活动期间,通过本页面/QQ钱包渠道首次新注册的用户可获得3天双子星云手机兑换激活码,已注册用户无法领取;</div>
|
|
|
+ <div class="rule-point">2.云手机领取方式为激活码兑换,已领取兑换激活码的用户,可下载【双子星APP】,在APP内【我的】界面,选择【激活码】输入激活码进行兑换;</div>
|
|
|
+ <div class="rule-point">3.用户如果使用外挂、作弊器以及其他不正当的方式参加本活动的,双子星官方有权收回您非法获得的全部礼品,并就相关行为给予处罚;</div>
|
|
|
+ <div class="rule-point">4.双子星官方对活动具有最终解释权。</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="copy-mask">
|
|
|
+ <div class="copy-dialog">
|
|
|
+ <div class="imgs-block">
|
|
|
+ <img class="imgs" src="../static/img/icon-copy.png" />
|
|
|
+ <div class="imgs-text">注册成功</div>
|
|
|
+ <img class="imgs" src="../static/img/icon-copy.png" />
|
|
|
+ </div>
|
|
|
+ <div class="copy-tip">温馨提示:激活码使用教程</div>
|
|
|
+ <div class="point1">1、在双子星APP的工具栏,点击 <span class="my">[我的]</span></div>
|
|
|
+ <img class="point-img" src="../static/img/point1.png" />
|
|
|
+ <div class="point1 point2">2、找到 我的工具 - <span class="my">[激活码] </span>,点击激活码
|
|
|
+ 即可兑换使用激活码啦。</div>
|
|
|
+ <img class="point-img" src="../static/img/point2.png" />
|
|
|
+ <div class="get-success-block">
|
|
|
+ <div class="get-success">下载APP并复制激活码</div>
|
|
|
+ </div>
|
|
|
+ <img class="close" src="img/close.png" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <script>
|
|
|
+ toastr.options.positionClass = 'toast-center-center';
|
|
|
+ toastr.options.timeOut = '1500';
|
|
|
+ </script>
|
|
|
+ <script type="text/javascript">
|
|
|
+ // var baseUrl = 'https://per.cs.se.androidscloud.com'
|
|
|
+ let timer, flag = true;
|
|
|
+ let time = 60, codeTimer = null, isStart = false, myCode = '';
|
|
|
+ var url = window.location.href;
|
|
|
+ url = url.split('/')
|
|
|
+ var loc = window.location.search,
|
|
|
+ n1 = loc.length,//地址的总长度
|
|
|
+ n2 = loc.indexOf("="),//取得=号的位置
|
|
|
+ id = loc.substr(n2 + 1, n1 - n2),//从=号后面的内容
|
|
|
+ u = navigator.userAgent,
|
|
|
+ ua = navigator.userAgent.toLowerCase(),
|
|
|
+ isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
|
|
|
+ isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
|
|
|
+ //点击规则
|
|
|
+ $('.rule-wrap')[0].addEventListener('click',() => {
|
|
|
+ $('.dialogs').animate({bottom: '-3.56rem'},"fast");
|
|
|
+ $('.rule-mask').show();
|
|
|
+ document.documentElement.style.overflow='hidden';
|
|
|
+ },false);
|
|
|
+ //点击规则关闭按钮
|
|
|
+ $('.rule-close')[0].addEventListener('click',() => {
|
|
|
+ $('.dialogs').animate({bottom: '-10.96rem'},"fast");
|
|
|
+ $('.rule-mask').hide();
|
|
|
+ document.documentElement.style.overflow='auto';
|
|
|
+ },false);
|
|
|
+ //点击获取验证码
|
|
|
+ $('.get-code')[0].addEventListener('click',() => {
|
|
|
+ if(isStart){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let phone = $('.phone-ipt').eq(0).val();
|
|
|
+ phone = phone.replace(/\s+/g,"");
|
|
|
+ let phoneFlag = checkPhone();
|
|
|
+ if(!phoneFlag || phone.length < 11){
|
|
|
+ $('.phone-tip').eq(0).css('display', 'block');
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ getCode();
|
|
|
+ },false);
|
|
|
+ // 获取验证码接口
|
|
|
+ function getCode() {
|
|
|
+ let phone = $('.phone-ipt').eq(0).val();
|
|
|
+ phone = phone.replace(/\s+/g,"");
|
|
|
+ $.ajax({
|
|
|
+ url: baseUrl + '/api/user/v1/phone/v_code/send',
|
|
|
+ type: 'post',
|
|
|
+ data: JSON.stringify({
|
|
|
+ type: 'regist',
|
|
|
+ phone: phone
|
|
|
+ }),
|
|
|
+ contentType: "application/json",
|
|
|
+ dataType: 'json',
|
|
|
+ cache: false,
|
|
|
+ success: function (res) {
|
|
|
+ if(res.status == 0){
|
|
|
+ toastr.error(`验证码已发送`);
|
|
|
+ isStart = true;
|
|
|
+ $('.get-code').eq(0).text('60s');
|
|
|
+ $('.get-code')[0].className = 'get-code get-code-active';
|
|
|
+ codeTimer = setInterval(() => {
|
|
|
+ time--;
|
|
|
+ if(time > 0){
|
|
|
+ $('.get-code').eq(0).text(`${time}s`);
|
|
|
+ }else{
|
|
|
+ isStart = false;
|
|
|
+ time = 60;
|
|
|
+ clearInterval(codeTimer);
|
|
|
+ $('.get-code').eq(0).text('获取验证码');
|
|
|
+ $('.get-code-active')[0].className = 'get-code';
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+ }else{
|
|
|
+ toastr.error(res.msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //点击立即领取按钮
|
|
|
+ $('.btns')[0].addEventListener('click',() => {
|
|
|
+ let phone = $('.phone-ipt').eq(0).val();
|
|
|
+ phone = phone.replace(/\s+/g,"");
|
|
|
+ let code = $('.code-ipt').eq(0).val();
|
|
|
+ code = code.replace(/\s+/g,"");
|
|
|
+ let dataObj = {
|
|
|
+ phone: phone,
|
|
|
+ code: code
|
|
|
+ }
|
|
|
+ let phoneFlag = checkPhone();
|
|
|
+ if(!phoneFlag || phone.length < 11){
|
|
|
+ $('.phone-tip').eq(0).css('display', 'block');
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ let codeFlag = checkCode();
|
|
|
+ if(!codeFlag){
|
|
|
+ $('.code-tip').eq(0).css('display', 'block');
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(code.length < 6){
|
|
|
+ $('.code-tip').eq(0).css('display', 'block');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $.ajax({
|
|
|
+ url: baseUrl + '/api/user/web/register/qqWallet',
|
|
|
+ type: 'post',
|
|
|
+ data: JSON.stringify(dataObj),
|
|
|
+ contentType: "application/json",
|
|
|
+ dataType: 'json',
|
|
|
+ cache: false,
|
|
|
+ success: function (res) {
|
|
|
+ if(res.status == 0){
|
|
|
+ myCode = res.data;
|
|
|
+ $('.copy-dialog').animate({top: '1.8rem'},"fast");
|
|
|
+ $('.copy-mask').show();
|
|
|
+ document.documentElement.style.overflow='hidden';
|
|
|
+ }else{
|
|
|
+ toastr.error(res.msg);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },false);
|
|
|
+ //点击下载APP并复制激活码
|
|
|
+ $('.get-success-block')[0].addEventListener('click', (e) => {
|
|
|
+ operate('QQQB_下载APP并复制激活码');
|
|
|
+ copyUrl();
|
|
|
+ });
|
|
|
+ $('.phone-ipt')[0].oninput = checkPhone;
|
|
|
+ function checkPhone(){
|
|
|
+ let phone = $('.phone-ipt').eq(0).val();
|
|
|
+ phone = phone.replace(/\s+/g,"");
|
|
|
+ if(phone.length > 11){
|
|
|
+ phone = phone.slice(0,11);
|
|
|
+ $('.phone-ipt').eq(0).val(phone);
|
|
|
+ }
|
|
|
+ let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
|
|
|
+ if(!phone){
|
|
|
+ $('.phone-tip').eq(0).css('display', 'block');
|
|
|
+ return false;
|
|
|
+ }else if(!reg_tel.test(phone) && phone.length == 11){
|
|
|
+ $('.phone-tip').eq(0).css('display', 'block');
|
|
|
+ return false;
|
|
|
+ }else{
|
|
|
+ $('.phone-tip').eq(0).css('display', 'none');
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('.code-ipt')[0].oninput = checkCode;
|
|
|
+ function checkCode(e){
|
|
|
+ let code = $('.code-ipt').eq(0).val();
|
|
|
+ code = code.replace(/\s+/g,"");
|
|
|
+ if(code.length > 6){
|
|
|
+ code = code.slice(0,6);
|
|
|
+ $('.code-ipt').eq(0).val(code);
|
|
|
+ }
|
|
|
+ if(!code){
|
|
|
+ $('.code-tip').eq(0).css('display', 'block');
|
|
|
+ return false;
|
|
|
+ }else{
|
|
|
+ $('.code-tip').eq(0).css('display', 'none');
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('.phone-ipt')[0].addEventListener('blur',() => {
|
|
|
+ let phone = $('.phone-ipt').eq(0).val();
|
|
|
+ phone = phone.replace(/\s+/g,"");
|
|
|
+ let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
|
|
|
+ if(!reg_tel.test(phone)){
|
|
|
+ $('.phone-tip').eq(0).css('display', 'block');
|
|
|
+ }
|
|
|
+ },false);
|
|
|
+ $('.code-ipt')[0].addEventListener('blur',() => {
|
|
|
+ let code = $('.code-ipt').eq(0).val();
|
|
|
+ code = code.replace(/\s+/g,"");
|
|
|
+ if(code.length < 6){
|
|
|
+ $('.code-tip').eq(0).css('display', 'block');
|
|
|
+ }
|
|
|
+ },false);
|
|
|
+ function download() {
|
|
|
+ if (isAndroid) {
|
|
|
+ if (baseUrl == 'https://per.cs.se.androidscloud.com') {
|
|
|
+ window.location.href = 'http://per.cs.se.androidscloud.com:8888'
|
|
|
+ } else {
|
|
|
+ window.location.href = 'http://www.androidscloud.com?timestamp=' + Math.random();
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (isIOS) {
|
|
|
+ document.location.href = 'https://www.pgyer.com/gemini6?timestamp=' + Math.random();
|
|
|
+ } else {
|
|
|
+ document.location.href = 'https://www.androidscloud.com?timestamp=' + Math.random();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('.close')[0].addEventListener('click', (e) => {
|
|
|
+ $('.copy-dialog').animate({top: '-6.96rem'},"fast");
|
|
|
+ $('.copy-mask').hide();
|
|
|
+ document.documentElement.style.overflow='auto';
|
|
|
+ });
|
|
|
+ //复制
|
|
|
+ function copyUrl() {
|
|
|
+ var oInput = document.createElement('input'); //创建一个input
|
|
|
+ oInput.setAttribute("readonly", "readonly"); //设置只读,否则移动端使用复制功能时可能会造成软件盘弹出
|
|
|
+ setTimeout(() => {
|
|
|
+ oInput.value = myCode;
|
|
|
+ // oInput.select(); // 选择对象 ios不支持
|
|
|
+ document.body.appendChild(oInput)
|
|
|
+ selectText(oInput, 0, oInput.value.length);
|
|
|
+ document.execCommand("Copy"); // 执行浏览器复制命令
|
|
|
+ toastr.error(`复制成功`);
|
|
|
+ $('.copy-dialog').animate({top: '-6.96rem'},"fast");
|
|
|
+ $('.copy-mask').hide();
|
|
|
+ document.documentElement.style.overflow='auto';
|
|
|
+ oInput.style.display = 'none'; // 将input隐藏
|
|
|
+ oInput.blur();
|
|
|
+ oInput.remove(); // 将input销毁
|
|
|
+ setTimeout(() => {
|
|
|
+ download();
|
|
|
+ }, 1000)
|
|
|
+ }, 400)
|
|
|
+ }
|
|
|
+ // input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
|
|
|
+ // 选择文本。createTextRange(setSelectionRange)是input方法
|
|
|
+ function selectText(textbox, startIndex, stopIndex) {
|
|
|
+ if (textbox.createTextRange) {//ie
|
|
|
+ const range = textbox.createTextRange();
|
|
|
+ range.collapse(true);
|
|
|
+ range.moveStart('character', startIndex);//起始光标
|
|
|
+ range.moveEnd('character', stopIndex - startIndex);//结束光标
|
|
|
+ range.select();//不兼容苹果
|
|
|
+ } else {//firefox/chrome
|
|
|
+ textbox.setSelectionRange(startIndex, stopIndex);
|
|
|
+ textbox.focus();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function operate(pointName) {
|
|
|
+ $.ajax({
|
|
|
+ url: baseUrl + '/api/public/v1/systemBuriedPoint/stat',
|
|
|
+ type: 'post',
|
|
|
+ data: JSON.stringify({
|
|
|
+ pointName: pointName
|
|
|
+ }),
|
|
|
+ contentType: "application/json",
|
|
|
+ dataType: 'json',
|
|
|
+ cache: false,
|
|
|
+ success: function (res) {},
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //防止提示一秒内重复显示
|
|
|
+ function stopManyClick(fn) {
|
|
|
+ if (flag) {
|
|
|
+ fn();
|
|
|
+ }
|
|
|
+ flag = false;
|
|
|
+ if (timer) { clearTimeout(timer); }
|
|
|
+ timer = setTimeout(() => { flag = true }, 1500);
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|