mobileclient/v1_5_0_C/couponCollection.html

530 lines
26 KiB
HTML
Raw Normal View History

2022-09-21 17:30:39 +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-09-22 14:13:46 +08:00
<title>商品页</title>
2022-09-21 17:30:39 +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>
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/siteqiexchange/js/swiper.min.js"></script>
<link href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/siteqiexchange/css/swiper.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/loading.css">
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/loading.js"></script>
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/api2_0.js"></script>
<link rel="stylesheet"
href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/couponCollection.css">
<link rel="stylesheet" href="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/css/tabbar.css">
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/modelPop.js"></script>
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/js/tabbar.js"></script>
2022-09-21 17:30:39 +08:00
</head>
<body>
2022-09-27 11:28:09 +08:00
<div id="homepage" :style="{background:
(viewConfig.backgroundImg.iswitch&&viewConfig.backgroundImg.bgImg?
`url(${viewConfig.backgroundImg.bgImg})`
:viewConfig.backgroundImg.bgColor),
backgroundSize: '100% 100%',
}">
2022-09-21 17:30:39 +08:00
<div v-show="loading">
<preload-component />
</div>
<div v-show="!loading&&!suspension" class="main-body"
:style="{paddingBottom: (viewConfig.bottomBar.iswitch!=='1'||calculateTabLength()<2)?'0.14rem':'0.55rem'}">
2022-09-22 14:13:46 +08:00
2022-09-21 17:30:39 +08:00
<!-- 配置的顶部banner -->
<div class="topBanner">
2022-09-27 11:28:09 +08:00
<div class="search-backpresty" :style="{
background:(viewConfig.search.iswitch==='1'?(viewConfig.search.bgColor):'none'),
position:(viewConfig.search.iswitch!=='1'?'fixed':'absolute')
}">
<img class="backpresty" @click="backHandler" v-if="goodsShow&&!isKey"
2022-09-21 17:30:39 +08:00
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/backprepageBtn.png"
alt="">
2022-09-27 11:28:09 +08:00
<div class="search-box" v-if="viewConfig.search.iswitch==='1'">
<input type="text" class="search" :style="{
color:viewConfig.search.fontColor,
textAlign:viewConfig.search.textAlign,
background:viewConfig.search.borderColor,
borderRadius:(viewConfig.search.shape==='circular'?'0.15rem':0) }"
:placeholder="viewConfig.search.placeholder">
<img class="search-img"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/search.png" alt="">
2022-09-21 17:30:39 +08:00
</div>
</div>
2022-09-27 11:28:09 +08:00
<img class="banner" :src="viewConfig.top_image" alt="">
2022-09-21 17:30:39 +08:00
</div>
<!-- 配置的图片 -->
2022-09-27 11:28:09 +08:00
<div class="autoImg" v-if="viewConfig.picture.img">
<img :src="viewConfig.picture.img" @click="autoImgHandle" alt="">
2022-09-21 17:30:39 +08:00
</div>
<!-- 配置的标题 -->
2022-09-27 11:28:09 +08:00
<div class="title" v-if="viewConfig.title.iswitch==='1'">
<img :src="viewConfig.title.pic" alt="" class="or" v-if="viewConfig.title.comstyle==='2'">
<p :style="{
color:viewConfig.title.fontColor,
fontSize:(viewConfig.title.fontSize==='1'?'0.13rem'
:(viewConfig.title.fontSize==='2'?'.16rem':'0.19rem')),
textAlign:viewConfig.title.textAlign }" v-if="viewConfig.title.comstyle==='1'">
{{viewConfig.title.text}}
</p>
2022-09-21 17:30:39 +08:00
</div>
<!-- 轮播展示 -->
2022-09-27 11:28:09 +08:00
<div id="rotation" v-if="viewConfig.list==='2'">
2022-09-21 17:30:39 +08:00
<div class="saleNull" v-if="!goodsNum">
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/saleNull.png" alt="">
</div>
<div class="commodity" v-if="goodsNum">
<div class="swiper-container" :class="swiperDataList.length>1?'':'oneItem'">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item,index) in swiperDataList" :key="index">
<div class="imgitemMask" v-if="item.available!=1">
<span>
<img v-if="item.available==4"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/yet.png"
alt="">
<img v-if="item.available==2"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/future.png"
alt="">
<img v-if="item.available==11"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/overdue.png"
alt="">
<img v-if="item.available==6"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/empty.png"
alt="">
</span>
</div>
<div class="imgbox">
<!-- type :1 兑换码 2:立减金,channel:1支付宝2微信 -->
<img class="le-img"
2022-09-23 17:46:58 +08:00
:src="item.type==1?item.entity.show_url:(item.entity.channel==1?'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/zfbreduce.png':'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/wxreduce.png')"
:class="item.stock&&(item.stock<0||item.available!=1)&&(item.available!=2?'changegray':'')"></img>
2022-09-21 17:30:39 +08:00
</div>
<div class="item-name"
v-html="item.type==1?item.entity.product_name:item.entity.batch_goods_name"
2022-09-23 17:46:58 +08:00
:class="item.stock&&(item.stock<0||item.available!=1)&&(item.available!=2?'changegray':'')">
2022-09-21 17:30:39 +08:00
</div>
<template v-if="item.origin_price!==item.coupon_price">
<p class="price">
原价¥{{item.origin_price}}
</p>
<p class="money">
券后价
<span class="sign"></span>
<span class="current-price">{{item.coupon_price}}</span>
</p>
</template>
<p class="money" v-else>
2022-09-21 17:30:39 +08:00
<span class="sign"></span>
<span class="current-price">{{item.origin_price}}</span>
2022-09-21 17:30:39 +08:00
</p>
</div>
</div>
</div>
</div>
</div>
<!-- 列表 展示-->
2022-09-27 11:28:09 +08:00
<div id="list" v-if="viewConfig.list==='1'">
2022-09-21 17:30:39 +08:00
<div class="saleNull" v-if="!goodsNum">
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/saleNull.png" alt="">
</div>
<ul class="listcommity" v-if="goodsNum">
<li v-for="(item,i) in swiperDataList" :key="i" @click="exchangeBtn(item)">
<div class="box">
<div class="imgBG">
2022-09-23 17:46:58 +08:00
<img :src="item.type==1?item.entity.show_url:(item.entity.channel==1?'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/zfbreduce.png':'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/wxreduce.png')"
2022-09-21 17:30:39 +08:00
alt=""
:class="item.stock&&item.stock<0||item.available!=1&&item.available!=2?'changegray':''">
</div>
<div>
<font
:class="item.stock&&item.stock<0||item.available!=1&&item.available!=2?'changegray':''">
{{item.type==1?item.entity.product_name:item.entity.batch_goods_name}}</font>
<div class="details">
<p class="sign"></p>
2022-10-08 10:31:21 +08:00
<p class="price">{{item.coupon_price}}</p>
<template v-if="item.origin_price!==item.coupon_price">
<p class="coupon">券后价</p>
<p class="original-price">
2022-10-08 10:31:21 +08:00
原价¥{{item.origin_price}}
</p>
</template>
2022-09-21 17:30:39 +08:00
</div>
</div>
</div>
</li>
</ul>
</div>
<!-- 矩阵展示 -->
2022-09-27 11:28:09 +08:00
<div id="matrix" v-if="viewConfig.list==='3'">
2022-09-21 17:30:39 +08:00
<div class="saleNull" v-if="!goodsNum">
<img src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/saleNull.png" alt="">
</div>
<ul class="listcommity" v-if="goodsNum">
<li :class="item.stock&&item.stock<0||item.available!=1&&item.available!=2?'changegray':''"
v-for="(item,i) in swiperDataList" :key="i" @click="exchangeBtn(item)">
<div class="goodsNum-frist">
<span class="goodsIcon">
<img v-if="item.available==4"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/yet.png"
alt="">
<img v-if="item.available==2"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/future.png"
alt="">
<img v-if="item.available==11"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/overdue.png"
alt="">
<img v-if="item.available==6"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/empty.png"
alt="">
</span>
<img class="img"
2022-09-23 17:46:58 +08:00
:src="item.type==1?item.entity.show_url:(item.entity.channel==1?'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/zfbreduce.png':'http://lsxdemall.oss-cn-beijing.aliyuncs.com/commonproductlogo/wxreduce.png')"
2022-09-21 17:30:39 +08:00
alt="" />
</div>
<div class="detail-text">
<font>{{item.type==1?item.entity.product_name:item.entity.batch_goods_name}}</font>
<template v-if="item.origin_price!==item.coupon_price">
<p class="original-price">原价¥{{item.origin_price}}</p>
<p>
<span class="sign"></span>
<span class="price">{{item.coupon_price}}</span>
<span class="coupon">券后价</span>
</p>
</template>
<p v-else style="margin-top:0.05rem">
2022-09-21 17:30:39 +08:00
<span class="sign"></span>
<span class="price">{{item.origin_price}}</span>
2022-09-21 17:30:39 +08:00
</p>
</div>
</li>
</ul>
</div>
2022-09-27 11:28:09 +08:00
<div class="bottom" id="bottom" :class="viewConfig.list===2?'tipset':''" v-show="describe.type">
2022-09-21 17:30:39 +08:00
<img :src="describe.bg_image" v-show="describe.type==1&&describe.bg_image">
<div v-html="describe.content" class="goodsTip" v-show="describe.type==3&&describe.content"></div>
</div>
2022-09-27 11:28:09 +08:00
<div class="exchangeBtn"
:class="(viewConfig.bottomBar.iswitch!=='1'||calculateTabLength()<2)?'bottomBtn':''"
v-if="viewConfig.list==='2'" :style="{background: viewConfig.bgcolor,color:viewConfig.font_color}"
@click="exchangeBtn()">
立即支付
</div>
2022-09-21 17:30:39 +08:00
</div>
<!-- 悬浮提示 -->
<div v-if="suspension" class="suspensionDom">
<img @click="closeTip"
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/backprepageBtn.png" alt="">
<h4>活动规则</h4>
<div v-html="describe.content"></div>
2022-09-21 17:30:39 +08:00
</div>
<!-- 悬浮使用说明 -->
<img class="susTip" @click="susTipFn" :style="{top:viewConfig.search.iswitch!=='1'?'0.2rem':'0.8rem'}"
v-if="describe.type==2&&describe.content&&!suspension&&!loading"
2022-09-21 17:30:39 +08:00
src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/img/acticeTextTip.png" alt="">
<!-- 单条弹出框 -->
<div class="prompt" :class="promtshow?'proactive':''">
{{this.promttip}}
</div>
<!-- 弹出提示 -->
<model-pop :show.sync="popShow" :title="popTitle" :status="popStatus" :text="popText"
@backFunction="backFunctionPop"></model-pop>
<!-- tab -->
2022-09-27 11:28:09 +08:00
<tab-component v-if="!suspension" :current="1" />
2022-09-21 17:30:39 +08:00
</div>
</body>
<script>
new Vue({
el: '#homepage',
data () {
return {
swiperDataList: [], //轮播
promtshow: false,
promttip: '',
loading: true,
lastid: 0,
gstatus: 1,
suspension: false,
goodsShow: true,
goodsNum: false,
exchangeCommity: {}, //兑换选择的商品
describe: {},
2022-09-27 11:28:09 +08:00
isKey: true,
2022-09-21 17:30:39 +08:00
showType: 0,
viewConfig: {}, //动态数据
/* 提示框状态 */
popShow: false,
popTitle: '',
popText: '',
popStatus: 1 /*1 成功 2提示 3失败 */
2022-09-21 17:30:39 +08:00
}
},
2022-09-21 18:35:54 +08:00
components: {
tabComponent,
modelPop
2022-09-21 18:35:54 +08:00
},
2022-09-21 17:30:39 +08:00
created () {
this.getGoods();
let productConfig = JSON.parse(sessionStorage.getItem('product_list'));
document.title = sessionStorage.getItem('title');
2022-09-27 11:28:09 +08:00
this.isKey = sessionStorage.getItem('haskey');
2022-09-21 17:30:39 +08:00
this.describe = productConfig.describe;
2022-09-27 11:28:09 +08:00
this.viewConfig = productConfig
2022-09-21 17:30:39 +08:00
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
methods: {
tabHandle (id) {
this.tabActive = id
},
closeTip () {
this.suspension = false;
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
susTipFn () {
this.suspension = true;
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
onSelected (item) {
this.exchangeCommity = item;
this.gstatus = item.available;
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
backHandler () {
let backUrl = window.history.length;
if (window.history.length) {
history.go(-backUrl + 1);
}
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
// 单条弹框
openDialog () {
this.promtshow = true;
setTimeout(() => {
this.promtshow = false;
this.promttip = '';
}, 3000)
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
//根据token获取商品信息
async getGoods () {
let self = this;
let showType = sessionStorage.getItem('showType');
this.showType = showType;
let data = {
"last_product_id": sessionStorage.getItem('lastid') | 0,
}
if (showType == 1) { //白名单
let tokenList = JSON.parse(sessionStorage.getItem('getTokenList'));
let goodsList = [];
for (item of tokenList) {
let goodsItem = [];
data.token = item;
let waitGoods = await req.axiosPost('/key/products', data).then(res => {
if (res.code == 200) {
res.data.forEach(it => {
it.token = item;
});
goodsItem = res.data;
} else {
this.popTitle = '温馨提示'
this.popText = res.message
this.popStatus = 2
this.popShow = true
2022-09-21 17:30:39 +08:00
if (res.code == -1) {
setTimeout(() => {
window.location.href = sessionStorage.getItem('white_link');
}, 3000);
}
}
});
goodsList = goodsList.concat(goodsItem);
};
let duplicate = []; //去重
let goodsArr = []; //最终的商品集合
goodsList.forEach(item => {
if (duplicate.indexOf(item.product_id) == -1) {
duplicate.push(item.product_id);
}
});
let similar = []
duplicate.forEach(it => {
similar = goodsList.filter(iten => { //goodshow为去重后的数据
return iten.product_id == it;
});
let flag = [1, 2, 6, 8, 7, 5, 4, 11, 3, 10, 20, 21]; //显示的avarivble规则
let minIndex = 7;
similar.forEach(item => {
let flagIndex = flag.indexOf(item.available);
if (flagIndex > -1) {
if (flagIndex < minIndex)
minIndex = flagIndex;
}
})
let obj = similar.find((o) => {
return o.available == flag[minIndex]
})
goodsArr.push(obj);
});
/*商品自定义排序0-100降序排列100第一个展示0最后一个展示*/
var objectArraySort = (keyName) => {
return (objectN, objectM) => {
var valueN = objectN[keyName]
var valueM = objectM[keyName]
if (valueN < valueM) return 1
else if (valueN > valueM) return -1
else return 0
}
}
goodsArr.sort(objectArraySort('weight'))
self.swiperDataList = goodsArr;
self.goodsShow = goodsArr.length > 1;
sessionStorage.setItem('goodsCount', goodsArr.length);
if (goodsArr && goodsArr.length == 1 && goodsArr[0].available == 1) {
sessionStorage.setItem('goodsInfo', JSON.stringify(goodsArr[0]));
sessionStorage.setItem('key', goodsArr[0].key);
sessionStorage.setItem('token', goodsArr[0].token);
window.location.replace(goodsArr[0].type == 1 ? "./exchange.html" : "./index.html");
2022-09-21 17:30:39 +08:00
return false;
} else if (goodsArr && goodsArr.length >= 1) {
self.goodsNum = true;
self.onSelected(goodsArr[0])
self.$nextTick(function () {
var swiper = new Swiper('.swiper-container', {
slidesPerView: "auto",
loopAdditionalSlides: 1000,
centeredSlides: true,
observer: true,
observeParents: true,
loop: self.goodsShow,
onSlideChangeEnd: function (swiper) {
let row = goodsArr[swiper.realIndex];
self.onSelected(goodsArr[swiper.realIndex])
}
})
})
setTimeout(() => {
self.loading = false;
}, 100);
} else {
self.goodsNum = false;
}
} else { //兑换码
data.token = sessionStorage.getItem('token')
req.axiosPost('/key/products', data).then(res => {
if (res.code == 200) {
self.swiperDataList = res.data;
sessionStorage.setItem('goodsCount', res.data.length);
self.goodsShow = res.data.length > 1;
if (res.data && res.data.length == 1) {//单个商品直接进入详情页面
sessionStorage.setItem('goodsInfo', JSON.stringify(res.data[0]));
window.location.replace(res.data[0].type == 1 ? "./exchange.html" : "./reduce.html");
return false;
} else if (res.data && res.data.length >= 1) {
self.goodsNum = true;
self.onSelected(res.data[0])
self.$nextTick(function () {
var swiper = new Swiper('.swiper-container', {
slidesPerView: "auto",
loopAdditionalSlides: 1000,
centeredSlides: true,
observer: true,
observeParents: true,
loop: self.goodsShow,
onSlideChangeEnd: function (swiper) {
let row = res.data[swiper.realIndex];
self.onSelected(res.data[swiper.realIndex])
}
})
})
setTimeout(() => {
self.loading = false;
}, 100);
}
} else {
this.popTitle = '温馨提示'
this.popText = res.message
this.popStatus = 3
this.popShow = true
2022-09-21 17:30:39 +08:00
if (res.code == -1) {
let haskey = sessionStorage.getItem('haskey');
if (haskey) {
setTimeout(() => {
window.history.back();
}, 3000);
} else {
setTimeout(() => {
window.location.href = "./index.html?id=" + sessionStorage.getItem('linkId');
}, 3000);
}
}
}
}).catch(err => {
});
}
},
2022-09-27 11:28:09 +08:00
2022-09-21 17:30:39 +08:00
//选择商品点击兑换
exchangeBtn (row = this.exchangeCommity) {
let gstatus = row.available;
this.gstatus = gstatus;
if (gstatus == 1) {
// 跳转商品详情页面
if (this.showType == 1) { //白名单
sessionStorage.setItem('token', row.token);
sessionStorage.setItem('key', row.key);
}
sessionStorage.setItem('goodsInfo', JSON.stringify(row));
//type :1 兑换码 2:立减金
2022-09-27 11:28:09 +08:00
window.location.replace("./exchange.html");
2022-09-21 17:30:39 +08:00
} else {
this.popTitle = '温馨提示'
this.popText = product_status(gstatus, row)
this.popStatus = 2
this.popShow = true
2022-09-21 17:30:39 +08:00
}
},
2022-09-27 11:28:09 +08:00
/* 弹框回调 */
backFunctionPop () {
2022-09-21 17:30:39 +08:00
if (this.gstatus == 8) {
window.history.go(0);
}
},
2022-09-27 11:28:09 +08:00
/* 判Tab长度 */
calculateTabLength () {
return this.viewConfig.bottomBar.navlist.filter(item => item.iswitch === '1').length
},
/* 图片跳转 */
autoImgHandle () {
if (this.viewConfig.jumpType === '1') {
window.location.href = this.viewConfig.jumpUrl
}
2022-09-21 17:30:39 +08:00
}
}
})
</script>
</html>