mobileclient/combining.html

261 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<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" />
<title>组合立减金</title>
<link rel="stylesheet" href="./combining.css">
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/common/vue.min.js?v=20210302151401"
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>
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/api2_0.js"></script>
</head>
<body>
<div id="app">
<img @click="backGoodsFn" v-if="backAble" class="backIcon"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/backprepageBtn.png" alt="">
<div class="prompt" :class="promptShow?'proactive':''">
{{prompt_text}}
</div>
<div class="mask" @touchmove.prevent @mousewheel.prevent v-show="message">
<div class="model">
<p class="m-title">温馨提示</p>
<p class="m-msg">{{message}}</p>
<button class="m-but" @click="copyFn" v-if="copyLink">复制</button>
<button class="m-but" @click="message = ''" v-else>知道了</button>
</div>
</div>
<div class="content">
<div class="logo">
<img :src="goods.group_cover" alt="">
</div>
<div class="box">
<div class="box-top">
<p class="b-t-t">{{goods.title}}</p>
<p class="time">生效时间:{{goods.time_limit.effect_time.start_time}} ~
{{goods.time_limit.effect_time.end_time}}</p>
<p class="time" v-if="goods.time_limit.receive_time.start_time">
领取时间:{{goods.time_limit.receive_time.start_time}} ~
{{goods.time_limit.receive_time.end_time}}</p>
</div>
<div class="box-cotent" v-if="goods.channel==3||goods.channel==1&&goods.receive_mode==2">
<p class="b-c-t">
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/common_title_sm.png"
alt="">
{{goods.channel==3?'云闪付账号':'支付宝账号'}}
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/common_title_sm.png"
alt="">
</p>
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')"
onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" maxlength="11"
placeholder="请输入账号" v-model="form.confirm">
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')"
onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" maxlength="11"
placeholder="请再次输入账号" v-model="form.receive_account">
<p class="tips">{{goods.channel==3?'*温馨提示单笔交易大于100.1元可减99.99元':'*您可在支付宝的个人信息中查看【支付宝账号】'}}</p>
<button class="but" @click="submit">立即领取</button>
</div>
<div class="flex-but" v-else>
<button class="but" @click="directSubmit">立即领取</button>
</div>
<div class="box-footer"
:style="{marginBottom:goods.channel==3||goods.channel==1&&goods.receive_mode==2?'0rem':'0.9rem'}">
<template v-if="!goods.group_image">
<p class="b-f-t">
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/common_title_sm.png"
alt="">使用须知 <img
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/common_title_sm.png"
alt="">
</p>
<div class="b-f-i" v-html="goods.instruction">
</div>
</template>
<img :src="goods.group_image" alt="" class="group_image">
</div>
</div>
</div>
</div>
</body>
<script>
const phoneReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
const emailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
new Vue({
el: "#app",
data () {
return {
goods: JSON.parse(sessionStorage.getItem('goodsInfo')).entity,
backAble: (~~sessionStorage.getItem('goodsCount')) > 1,
token: localStorage.getItem('token'),
key: localStorage.getItem('key'),
promptShow: false,
popShow: false,
is: false,
cls: null,
prompt_text: '',
receive_time: '',
message: '',
loading: false,
copyLink: '',
form: {
confirm: null,
receive_account: null
}
};
},
mounted () {
document.title = localStorage.getItem('title');
},
methods: {
/* ******************************************** 官方领取 ******************************************** */
/* 直接领取 */
directSubmit () {
const data = {
key: this.key,
token: this.token,
code_batch_id: this.goods.code_batch_id,
receive_mode: 1
};
req.axiosPost("/key/couponGroupUsage", data)
.then((res) => {
if (res.code == 200) {
if (this.goods.channel == 1 && this.goods.receive_mode == 1) {
/* 支付宝官方领取 */
this.toLinkAlipay();
} else if (this.goods.channel == 2) {
/* 微信官方领取 */
window.location.replace(res.data.redirect_url);
}
} else {
this.axiosErrorFun(res.code, res.message);
}
})
.catch((err) => { this.loading = false; });
},
/* 支付宝官方领取H5跳转 */
toLinkAlipay () {
let self = this;
let banklink = encodeURIComponent(
window.location.origin +
`/combiningAlipay.html?codeBatchId=${this.goods.code_batch_id}&token=${this.token}`
);
let link = "http://openapi.1688sup.com/alipay/oauth?jump=" + banklink;
let ua = navigator.userAgent.toLowerCase(); //判断用户打开链接环境
if (isWx() ||
(ua.indexOf("android") > -1 &&
ua.indexOf("baiduboxapp") > -1) ||
ua.indexOf("windows") > -1) {
//复制链接地址,提醒去浏览器打开
this.message = '请点击下方[复制]按钮,复制链接到浏览器打开!';
this.copyLink = link;
} else {
//唤起支付宝
window.location.replace(link);
}
},
/* ******************************************** 账号领取 ******************************************** */
/* 立即领取 */
submit () {
const { confirm, receive_account } = this.form;
if (this.loading) return;
if (confirm !== receive_account) return this.tips('两次输入账号不一致');
/* 云闪付校验手机号 支付宝校验手机号/邮箱号 */
if ((phoneReg.test(receive_account) && this.goods.channel == 3 || this.goods.channel == 1 && (emailReg.test(receive_account) || phoneReg.test(receive_account)))) {
this.finalSubmit();
} else {
this.tips('请输入正确的账号');
}
},
/* 验证后 最终提交 */
finalSubmit () {
this.loading = true;
const self = this;
let data = {
key: this.key,
code_batch_id: this.goods.code_batch_id,
token: localStorage.getItem("token"),
account: this.form.receive_account,
receive_mode: 2
};
/* 领取立减金 */
req.axiosPost("/key/couponGroupUsage", data)
.then(({ code, message }) => {
if (code == 200) {
this.loading = false;
this.message = '领取成功';
} else {
this.axiosErrorFun(code, message);
}
})
.catch((err) => { this.loading = false; });
},
/* 返回 */
backGoodsFn () {
if (this.backAble) {
window.location.replace('./homepage.html');
} else {
history.go(-2);
}
},
/* 接口异常处理 */
axiosErrorFun (code, message) {
this.loading = false;
if (code == 403) {
if (this.backAble) {
this.message = message;
setTimeout(() => {
window.location.href = localStorage.getItem('entryLink');
}, 3000);
} else {
this.message = message;
}
} else {
this.message = message;
}
},
//复制文本
copyFn () {
var textArea = document.createElement("textarea");
textArea.value = this.copyLink;
document.body.appendChild(textArea);
textArea.select();
document.execCommand("copy");
this.openDialog("复制成功,请到浏览器打开");
document.body.removeChild(textArea);
this.copyshow = false;
this.maskshow = false;
this.copyLink = null;
this.message = '';
},
/* 触发提示 */
tips (text) {
this.cls && clearTimeout(this.cls);
this.prompt_text = text;
this.promptShow = true;
this.cls = setTimeout(() => {
this.promptShow = false;
}, 3000);
},
}
})
</script>
</html>