mobileclient/index.html

338 lines
10 KiB
HTML
Raw Normal View History

2021-11-26 14:40:45 +08:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,viewport-fit=cover">
2022-04-18 15:05:31 +08:00
<title>权益兑换页12</title>
2021-11-26 14:40:45 +08:00
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/common/vue.min.js?v=1367936144322" type="text/javascript"
charset="utf-8"></script>
<script type="text/javascript" src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/common/axios.js?v=1367936144322">
</script>
2021-11-26 14:40:45 +08:00
<link rel="stylesheet" href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/loading.css">
2022-06-13 16:49:06 +08:00
<link rel="stylesheet" href="http://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/homepage1_3_0.css">
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/loading.js"></script>
<script src="http://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/api1_3_0.js"></script>
2021-11-26 14:40:45 +08:00
</head>
<style scoped>
html {
font-size: 26.66666667vw;
2022-01-14 13:48:14 +08:00
height: 100%;
2021-11-26 14:40:45 +08:00
}
2022-04-18 15:21:35 +08:00
2021-11-26 14:40:45 +08:00
body {
padding: 0;
font-size: .14rem;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
* {
padding: 0;
margin: 0;
}
</style>
<body>
2022-01-14 13:48:14 +08:00
<div id="app" :style={background:bgcolor}>
<!-- 单条弹出框 -->
<div class="prompt" :class="promtshow?'proactive':''">
{{this.promttip}}
</div>
<!-- 弹出提示 -->
<div class="mask" v-if="maskshow"></div>
<div class="popboxshow" v-if="popboxshow" :class="popboxshow?'active':''">
<div class="tip">
<p class="yettip">{{tiptext}}</p>
<span @click="successchangeBtn" class="yetexchange">知道了</span>
2021-11-26 14:40:45 +08:00
</div>
</div>
2022-06-13 16:49:06 +08:00
<div class="um-content" v-if="loading" ref="load">
<preload-component/>
</div>
<div v-show="!loading">
<div class="top">
2022-01-14 13:48:14 +08:00
<img :src="topImg" id="top">
</div>
<div class="center" id="center">
2022-01-14 13:48:14 +08:00
<img :src="middleImg" style="position: absolute;z-index: 1;" id="center_img">
2022-01-18 17:37:45 +08:00
<input class="key" :maxlength="16" v-if="pageType==3" :style={color:ftcolor?ftcolor:'#333'} placeholder="请输入兑换码"
2022-01-14 13:48:14 +08:00
v-model="key" />
2022-01-18 17:37:45 +08:00
<input class="code" :maxlength="5" v-if="pageType==3" :style={color:ftcolor?ftcolor:'#333'} placeholder="请输入验证码"
2022-01-14 13:48:14 +08:00
v-model="code" />
2021-12-29 11:51:28 +08:00
2022-01-18 17:37:45 +08:00
<input class="key" :maxlength="11" v-if="pageType==1" :style={color:ftcolor?ftcolor:'#333'} placeholder="请输入手机号"
2022-01-14 13:48:14 +08:00
v-model="key" />
2022-01-18 17:37:45 +08:00
<input class="code" :maxlength="6" v-if="pageType==1" :style={color:ftcolor?ftcolor:'#333'} placeholder="请输入验证码"
2022-01-14 13:48:14 +08:00
v-model="code" />
2021-12-29 11:51:28 +08:00
2022-06-13 16:49:06 +08:00
<img src="#" alt="" class="codeimg" v-if="pageType==3" id="captcha_img" @click="captchaimg()" />
2022-01-18 17:37:45 +08:00
<button class="codeimg" :class="disabled?'disabledstyle':'active'" v-if="pageType==1" @click="getcode()"
2022-01-14 13:48:14 +08:00
:disabled="disabled">{{codetip}}</button>
<div class="submit" @click="submit"></div>
</div>
<div class="bottom" id="bottom">
2022-01-14 13:48:14 +08:00
<img :src="describe.bg_image" v-show="describe.type&&describe.bg_image">
<div v-html="describe.content" class="tipBottomtext" v-show="describe.type==2&&describe.content"></div>
</div>
</div>
2021-11-26 14:40:45 +08:00
</div>
</body>
<script>
new Vue({
el: '#app',
data() {
return {
2022-05-30 13:35:00 +08:00
loading: true,
2022-01-24 09:44:14 +08:00
pageType: 1,
key: '',
code: '',
2022-01-14 13:48:14 +08:00
disabled: true,
codetip: '获取验证码',
topImg: '',
middleImg: '',
describe: {},
ftcolor: '',
bgcolor: '#333',
promttip: '',
promtshow: false,
popboxshow: false,
tiptext: '提示信息',
2022-01-18 17:37:45 +08:00
plan_id: '',
maskshow: false,
disabledBtn:false
2021-11-26 14:40:45 +08:00
}
},
created() {
let self = this;
2021-11-26 14:40:45 +08:00
//获取链接携带的参数
let linkId = this.getQueryString('id');
2022-01-14 13:48:14 +08:00
let keyCode = this.getQueryString('key');
2022-06-13 16:49:06 +08:00
if (!linkId) {//地址栏无携带id
2022-01-18 17:37:45 +08:00
let path = window.location.pathname;
let parmas = path.split('/');
let parmasResult = parmas.filter(n => n);
linkId = parmasResult.length > 0 ? parmasResult[0] : null; //链接携带落地页渲染id
keyCode = parmasResult.length > 1 ? parmasResult[1] : null; //链接携带key
2022-01-14 13:48:14 +08:00
}
2022-04-18 15:21:35 +08:00
if (linkId.length > 10) {
2022-06-13 16:49:06 +08:00
req.axiosGet('/plan/plan_theme/' + linkId).then(res => {
2022-04-18 15:21:35 +08:00
if (res.code == 200) {
2022-01-24 20:37:17 +08:00
window.location.replace(res.data);
2022-06-13 16:49:06 +08:00
self.loading = false;
2022-01-24 10:46:44 +08:00
return;
2022-04-18 15:21:35 +08:00
} else {
2022-06-13 16:49:06 +08:00
self.openErrorDialog(res.message);
2022-01-24 10:46:44 +08:00
}
2022-06-13 16:49:06 +08:00
}).catch(err=>{})
2022-01-24 10:46:44 +08:00
}
2022-06-13 16:49:06 +08:00
req.axiosGet('/plan/plan_theme/' + linkId).then(res => {
if (res.code == 200) {
2022-04-18 15:21:35 +08:00
//内置页顶图
document.title = res.data.title;
self.plan_id = res.data.plan_id
this.pageType = res.data.page;
sessionStorage.setItem('title', res.data.title);
if (res.data.page == 3) {
sessionStorage.setItem('product_list', JSON.stringify(res.data['exchange'].product_list));
sessionStorage.setItem('product_detail', JSON.stringify(res.data['exchange'].product_detail));
} else if (res.data.page == 1) {
sessionStorage.setItem('product_list', JSON.stringify(res.data['access_conf'].product_list));
sessionStorage.setItem('product_detail', JSON.stringify(res.data['access_conf'].product_detail));
}
2022-06-13 16:49:06 +08:00
self.loading = false;
2022-04-18 15:21:35 +08:00
sessionStorage.setItem('linkId', linkId);
//是否携带token
if (keyCode) {
let data = {
key: keyCode
2022-01-22 16:47:11 +08:00
}
2022-06-13 16:49:06 +08:00
req.axiosPost('/key/loginFromLink', data).then(res => {
2022-04-18 15:21:35 +08:00
if (res.code == 200) {
sessionStorage.setItem('key', keyCode);
sessionStorage.setItem('token', res.data.token);
sessionStorage.setItem('haskey', keyCode);
2022-06-13 16:49:06 +08:00
this.openDialog('正在加载商品...');
sessionStorage.setItem('entryLink',window.location.href);//存储起始页链接
2022-04-18 15:21:35 +08:00
window.location.replace("/homepage.html");
2022-04-18 15:21:35 +08:00
} else {
2022-06-13 16:49:06 +08:00
self.openErrorDialog(res.message);
2022-01-22 18:06:29 +08:00
}
2022-06-13 16:49:06 +08:00
}).catch(err => {});
2022-04-18 15:21:35 +08:00
} else {
let keyName;
if (this.pageType == 3) {
captchaimg();
keyName = 'exchange';
} else if (this.pageType == 1) {
keyName = 'access_conf';
2022-01-18 17:37:45 +08:00
}
2022-04-18 15:21:35 +08:00
self.bgcolor = res.data[keyName].land.bg_color;
self.ftcolor = res.data[keyName].land.font_color;
self.topImg = res.data[keyName].land.top_image;
self.middleImg = res.data[keyName].land.middle_image;
self.describe = res.data[keyName].land.describe;
}
2021-11-26 14:40:45 +08:00
}
2022-06-13 16:49:06 +08:00
}).catch(err => {});
2022-01-24 09:44:14 +08:00
},
2021-11-26 14:40:45 +08:00
mounted() {
this.$nextTick(() => {
let img = document.getElementById("center_img")
let center = document.getElementById("center")
img.onload = function (e) {
center.style.height = img.clientHeight + "px";
}
})
2021-11-26 14:40:45 +08:00
},
methods: {
successchangeBtn() {
this.popboxshow = false;
this.maskshow = false;
},
2022-06-13 16:49:06 +08:00
//获取白名单验证码
2022-01-14 13:48:14 +08:00
getcode() {
let self = this;
let data = {
2022-01-18 17:37:45 +08:00
'mobile': this.key,
'plan_id': this.plan_id
2022-01-14 13:48:14 +08:00
}
2022-06-13 16:49:06 +08:00
req.axiosPost('/sms/sendMobileExchangeCode', data).then(res => {
2022-01-14 13:48:14 +08:00
if (res.code == 200) {
let timeId = 60;
let timer = setInterval(() => {
timeId--;
if (timeId > 0) {
self.codetip = timeId + 's';
self.disabled = true;
} else {
clearInterval(timer);
self.codetip = '获取验证码';
self.disabled = false;
}
}, 1000);
} else {
2022-06-13 16:49:06 +08:00
self.openErrorDialog(res.message);
2021-12-29 11:51:28 +08:00
}
2022-01-18 17:37:45 +08:00
}).catch(err => {});
2021-12-29 11:51:28 +08:00
},
2021-11-26 14:40:45 +08:00
submit() {
2022-01-22 17:03:48 +08:00
let self = this;
2022-06-13 16:49:06 +08:00
if(!this.key){
this.openDialog('请输入兑换码');
return
}
if(!this.code){
this.openDialog('请输入验证码');
return
}
if(this.disabledBtn){
return
}
this.disabledBtn=true;
2022-06-13 16:49:06 +08:00
if(this.pageType == 3){//兑换码
let data = {
"key": this.key,
"code": this.code,
"code_unique_str": sessionStorage.getItem('unique_str')
}
req.axiosPost('/key/login', data).then(res => {
setTimeout(()=>{
self.disabledBtn=false;
},2000);
2022-06-13 16:49:06 +08:00
if (res.code == 200) {
sessionStorage.setItem('key', self.key);
sessionStorage.setItem('token', res.data.token);
this.openDialog('正在加载商品...');
sessionStorage.setItem('entryLink',window.location.href);//存储起始页链接
2022-06-13 16:49:06 +08:00
setTimeout(() => {
window.location.href = './homepage.html';
}, 1000);
2022-06-13 16:49:06 +08:00
} else {
self.openErrorDialog(res.message);
}
}).catch(err => {});
}else if (this.pageType == 1){//白名单
let par = {
"code": this.code,
"mobile": this.key,
"plan_id": this.plan_id
}
let getTokenList = [];//多个批次下的key存放token
req.axiosPostgetKey('/key/getKeyByMobile', par).then(async res => {
setTimeout(()=>{
self.disabledBtn=false;
},2000);
2022-06-13 16:49:06 +08:00
if (res.data.code == 200) {
sessionStorage.setItem('key', self.key);
sessionStorage.setItem('token', res.data.data);
sessionStorage.setItem('showType', 1);
sessionStorage.setItem('white_link', window.location.href);
let tokenArr = res.data.data;
let istoGoods = false;
for (item of tokenArr) {
let obj = {}
let data = {
"code_unique_str": res.headers['unique-str'],
"key": item
2022-01-22 17:03:48 +08:00
}
2022-06-13 16:49:06 +08:00
let wait = await req.axiosPost('/key/loginFromMobileKey', data).then(res => {
if (res.code == 200) {
getTokenList.push(res.data.token);
istoGoods = true;
2022-04-18 15:21:35 +08:00
} else {
2022-06-13 16:49:06 +08:00
if (res.message == '活动暂停中') {
self.tiptext = res.message;
istoGoods = false;
} else {
self.tiptext = res.message;
}
2022-01-22 17:03:48 +08:00
}
2022-06-13 16:49:06 +08:00
}).catch(err => {});
};
if (istoGoods) {
sessionStorage.setItem('getTokenList', JSON.stringify(getTokenList));
this.openDialog('正在加载商品...');
sessionStorage.setItem('entryLink',window.location.href);//存储起始页链接
2022-06-13 16:49:06 +08:00
setTimeout(() => {
window.location.href = './homepage.html';
}, 1000);
2022-06-13 16:49:06 +08:00
} else {
self.openErrorDialog(self.tiptext);
}
} else {
self.openErrorDialog(res.data.message);
2022-01-22 17:03:48 +08:00
}
2022-06-13 16:49:06 +08:00
}).catch(err => {});
2022-01-22 17:03:48 +08:00
}
2021-11-26 14:40:45 +08:00
},
getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
},
// 单条弹框
2022-06-13 16:49:06 +08:00
openDialog(tip) {
2021-11-26 14:40:45 +08:00
this.promtshow = true;
2022-06-13 16:49:06 +08:00
this.promttip=tip
2021-11-26 14:40:45 +08:00
setTimeout(() => {
this.promtshow = false;
this.promttip = '';
}, 3000)
},
2022-06-13 16:49:06 +08:00
//错误弹出框
openErrorDialog(tip) {
this.maskshow = true;
this.tiptext = tip;
this.popboxshow = true;
2021-11-26 14:40:45 +08:00
}
},
2022-01-14 13:48:14 +08:00
watch: {
key(val) {
2022-06-13 16:49:06 +08:00
this.disabled =Boolean(!(this.pageType == 1&&val.length == 11));
2022-01-14 13:48:14 +08:00
}
}
2021-11-26 14:40:45 +08:00
});
</script>
</html>