mobileclient/packkey/reduce.html

384 lines
15 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,viewport-fit=cover" />
<title>立减金领取</title>
<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>
<link rel="stylesheet" href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/homepage2_0.css" />
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/api2_0.js"></script>
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/libs.js?v=sdfhksdfklwrwer"></script>
<style>
* {
margin: 0 auto;
padding: 0;
font-family: HYQiHei;
}
html {
font-size: 26.66666667vw;
}
body {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
</style>
</head>
<body>
<div id="reduce">
<!-- 弹出框 -->
<div class="mask" v-if="maskshow"></div>
<!-- 单条弹出框 -->
<div class="prompt" :class="promtshow?'proactive':''">
{{this.promttip}}
</div>
<!-- 弹出提示 -->
<div class="popboxshow" v-if="popboxshow" :class="popboxshow?'active':''">
<div class="tip">
<p>{{tiptext}}</p>
<span @click="knowFn">知道了</span>
</div>
</div>
<!-- 复制提示 -->
<div class="popboxshow" v-if="copyshow" :class="copyshow?'active':''">
<div class="tip">
<p>请点击下方[复制]按钮,复制链接到浏览器打开!</p>
<span @click="copyFn">复制</span>
</div>
</div>
<div class="countdown" v-if="this.outTime.length>0">
<span>链接有效期:</span>
<p>{{this.outTime[0]}}</p>
<p>{{this.outTime[1]}}</p>
<p>{{this.outTime[2]}}</p>
</div>
<div class="couponShow">
<span>
<img @click="backgoodsFn" v-if="backAble" class="backIcon"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/backprepageBtn.png" alt="">
</span>
<div class="coupon-left">
<p class="coupon_money" :style="{fontSize:this.fonts()}">
<span></span>{{parseFloat(reduceInfo.reduce_amount)}}
</p>
<p class="full_money">满{{parseFloat(reduceInfo.denomination)}}可用</p>
</div>
<div class="coupon-right">
<p class="title">
{{reduceInfo.batch_goods_name}}
<span class="send_num" v-if="reduceInfo.send_num>1">x{{reduceInfo.send_num}}</span>
</p>
<p style="font-size: 0.11rem">
{{reduceInfo.card_type|cardType}}可用
</p>
<p class="validity" v-if="receive_time.timer_show!=2">
有效期:{{receive_time.effect_time.start_time}}至{{receive_time.effect_time.end_time}}
</p>
<p class="validity" v-if="receive_time.use_time.type=='received'">
领取后{{receive_time.use_time.effect_date_type==0?'立即':'次日凌晨'}}生效,有效期
{{receive_time.use_time.effect_day}}天
</p>
<p class="validity" v-if="receive_time.use_time.type=='fiexd'">
可用时间:{{receive_time.use_time.fiexd_time.start_time}}-{{receive_time.use_time.fiexd_time.end_time}}
</p>
</div>
</div>
<div class="receiveBtn" @click="receiveFn" :class="goodInfo.available!=1?'readOnly':''">立即领取</div>
<div class="coupon_explain">
<h1>- 兑换说明 -</h1>
<div class="content">
<h3 v-if="receive_time.use_time.type=='week'||receive_time.use_time.type=='irregular'">可用时间</h3>
<ul v-if="receive_time.use_time.type=='week'" class="weekTime">
<li v-for="(item,index) in receive_time.use_time.week" :key="index">
<p>{{item}}</p>
<div>
<p v-for="(item2,index2) in receive_time.use_time.time" :key="index2">
{{item2[0]}}~{{item2[1]}}
</p>
</div>
</li>
</ul>
<ul v-if="receive_time.use_time.type=='irregular'">
<li v-for="(item,index) in receive_time.use_time.day" :key="index">
<p>{{item[0]}}至{{item[1]}}</p>
<div>
<p v-for="(item2,index2) in receive_time.use_time.time" :key="index2">
{{item2[0]}}~{{item2[1]}}
</p>
</div>
</li>
</ul>
</div>
<div class="content">
<h3>使用须知</h3>
<p>
1、在{{reduceInfo.channel==1?'支付宝H5':'微信APP内打开链接'}},点击【一键领取】完成领取{{reduceInfo.channel==1?'支付宝':'微信'}}立减金<br />
2、{{reduceInfo.channel==1?'支付宝':'微信'}}立减金一旦领取不可撤销、不可转让。注意不要将兑换券泄露给他人
</p>
</div>
<div class="content">
<h3>使用规则</h3>
<p v-html="goodInfo.instruction"></p>
</div>
</div>
</div>
</body>
<script>
const bm_obj_data = sessionStorage.getItem("bm_auth") ? JSON.parse(sessionStorage.getItem("bm_auth")) : null;
let goodsDetail = null, goodsCount = null;
new Vue({
el: "#reduce",
data() {
return {
plaflam: 1, //支付宝
promtshow: false,
promttip: "警告提示",
copyshow: false,//解决ios必须触发按钮复制
copyLink: '',//存储链接
popboxshow: false,
maskshow: false,
openId: localStorage.getItem('openid'),
bindClick: false,
tiptext: "错误提示",
goodInfo: {}, //商品信息
reduceInfo: {}, //券信息
orderId: '',
outTime: [],
backAble: true,
loading: false,
receive_time: {},//领取立减金时间
tip: `1、立减金自领取之日起0天有效请在有效期内使用<br />
2、微信立减金自领取后每个立减金一次性使用不兑换不找零到期后自动失效逾期未使用不再补发。使用微信支付进行付款大于立减金面额0.01元以上)即可自动抵扣<br />
3、多张立减金可在单笔微信支付订单中一起使用但当用户的立减金超过8张时系统会选取其中一部分使用不保证在一张订单中全部使用<br />
4、在中国境内商户使用微信支付即可使用少数特定商户包括但不限于CoCo奶茶、优衣库、星巴克、肯德基、必胜客、同程艺龙、热风、太平鸟、孩子王、航联保险、华为商城、Miss
Sixty、Ochirly、Apple商城、FivePlus、信用卡还款、零钱通、理财通等、以及社交支付如转账、红包、个人收款码支付等及合单支付微信支付订单号为44开头的交易无法使用立减金<br />
5、使用立减金的微信支付订单如发生全额退款且立减金仍在有效期内立减金将自动退还给用户如立减金已过期则不退还给用户如发生部分退款用户支付金额将按比例原路退还立减金将不退还给用户<br />`,
};
},
created() {
document.title = localStorage.getItem('title');
/* 获取立减金信息*/
goodsDetail = JSON.parse(sessionStorage.getItem("goodsInfo"));
this.goodInfo = goodsDetail;
/*默认显示*/
// if (goodsDetail.available != 1) {
// this.openErrorDialog(product_status(goodsDetail.available, goodsDetail));
// this.bindClick = true;
// }
goodsCount = sessionStorage.getItem('goodsCount');
this.backAble = goodsCount > 1;//多个商品才有返回
this.reduceInfo = goodsDetail.entity;
this.plaflam = goodsDetail.entity.channel;
if (goodsDetail.entity.time_limit.use_time && goodsDetail.entity.time_limit.use_time.type == 'week') { //处理星期连贯操作
goodsDetail.entity.time_limit.use_time.week = sortWeeks(goodsDetail.entity.time_limit.use_time.week);
}
this.receive_time = goodsDetail.entity.time_limit;
/* 倒计时 */
const key_expiration_time = sessionStorage.getItem('key_expiration_time');
if (key_expiration_time != 0) {
const cls = setInterval(() => {
const time = pageOutTime(key_expiration_time);
if (time) {
this.outTime = time;
} else {
this.outTime = ['00', '00', '00'];
clearInterval(cls);
}
}, 1000);
} else {
this.outTime = [];
}
},
filters: {
cardType(val) {
return val.map((item) => {
return item == 1 ? "借记卡" : "信用卡" + " ";
}).join(" ");
},
},
methods: {
backgoodsFn() {
if (goodsCount > 1) {
locationReplace('./homepage.html');
} else {
history.go(-2);
}
},
receiveFn() {
if (this.loading) return;
this.loading = true;
let self = this;
if (self.goodInfo.available != 1) {
self.openErrorDialog(product_status(self.goodInfo.available, self.goodInfo));
this.loading = false;
return;
}
let data = {
key: localStorage.getItem("key"),
goods_id: this.goodInfo.entity.goods_id,
code_batch_id: this.goodInfo.code_batch_id,
token: localStorage.getItem("token"),
};
req.axiosPost("/key/usage", data)
.then((res) => {
this.loading = false;
if (res.code == 200) {
// 领取结算 4
if (bm_obj_data && !bm_obj_data.settlement_data.is_settlement && bm_obj_data.settlement_data.settlement_type === 4) {
settlementFun(bm_obj_data.token, bm_obj_data.settlement_data.settlement_type);
}
sessionStorage.setItem("lastid", self.goodInfo.product_id);
this.orderId = res.data.order_number;
let ua = navigator.userAgent.toLowerCase(); //判断用户打开链接环境
setTimeout(() => {
if (self.plaflam == 1) {
//支付宝-微信环境中不能唤起支付宝
self.toLinkAlipay();
}
if (self.plaflam == 2) {
//微信
// if (ua.indexOf("dingtalk") > -1) {
// //在钉钉内置环境打开,不能唤起微信小程序
// self.openErrorDialog("请在其他浏览器打开!");
// } else {
if (this.goodInfo.entity.is_webview == 1) {
this.publicCollection(res.data.order_number);
} else {
//唤起微信福利官小程序
window.location.replace(res.data.redirect_url);
}
// }
}
}, 300);
} else {
self.openErrorDialog(res.message);
if (res.code == 403) {
if (goodsCount > 1) {
setTimeout(() => {
locationReplace("./homepage.html");
}, 3000);
} else {
self.openErrorDialog(res.message);
// window.location.replace("./index.html");
}
}
}
})
.catch((err) => { this.loading = false; });
},
/* 公众号领取 */
publicCollection(order_number) {
let params = {
order_number,
channel: 2,
channel_user_id: this.openId,
is_webview: 1
};
req.axiosPost("/voucher/grant", params)
.then((res) => {
if (res.code == 200) {
// 领取成功结算 5
if (bm_obj_data && !bm_obj_data.settlement_data.is_settlement && bm_obj_data.settlement_data.settlement_type === 5) {
settlementFun(bm_obj_data.token, bm_obj_data.settlement_data.settlement_type);
}
this.openErrorDialog('领取成功');
this.goodInfo.available = 9;
sessionStorage.setItem('goodInfo', JSON.stringify(this.goodInfo));
} else {
this.openErrorDialog(res.message);
}
})
.catch((err) => { this.loading = false; });
;
},
toLinkAlipay() {
// 领取成功结算 5
if (bm_obj_data && !bm_obj_data.settlement_data.is_settlement && bm_obj_data.settlement_data.settlement_type === 5) {
settlementFun(bm_obj_data.token, bm_obj_data.settlement_data.settlement_type);
}
//支付宝H5跳转
let self = this;
let banklink = encodeURIComponent(
window.location.origin +
"/packkey/alipay.html?orderNumber=" + this.orderId
);
let link = "http://openapi.1688sup.com/alipay/oauth?jump=" + banklink;
let ua = navigator.userAgent.toLowerCase(); //判断用户打开链接环境
if (ua.indexOf("micromessenger") > -1 || ua.indexOf("baiduboxapp") > -1 || ua.indexOf("firefox") > -1) {
//复制链接地址,提醒去浏览器打开
this.copyLink = link;
this.copyshow = true;
this.maskshow = true;
} else {
//唤起支付宝
window.location.replace(link);
}
},
//错误弹出框关闭
knowFn() {
this.popboxshow = false;
this.maskshow = false;
},
//错误弹出框
openErrorDialog(tip) {
this.maskshow = true;
this.tiptext = tip;
this.popboxshow = true;
},
// 单条弹框
openDialog(tip) {
this.promtshow = true;
this.promttip = tip;
setTimeout(() => {
this.promtshow = false;
this.promttip = "";
}, 3000);
},
/* 动态font */
fonts() {
const defaultCss = '0.32rem';
const count = String(parseFloat(this.reduceInfo.reduce_amount)).length + 1;
if (count > 4) {
return 0.32 - ((count - 3) / 100 * 2.2) + 'rem';
} else {
return defaultCss;
}
},
//复制文本
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;
},
},
});
</script>
</html>