Commit f594431a by 李嘉林

商品列表接口对接

parent 0fd2aaa7
@font-face {font-family: "iconfont-common";
src: url('//at.alicdn.com/t/font_1701913_tl1esdcjv9r.eot?t=1599790483837'); /* IE9 */
src: url('//at.alicdn.com/t/font_1701913_tl1esdcjv9r.eot?t=1599790483837#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('//at.alicdn.com/t/font_1701913_tl1esdcjv9r.woff?t=1599790483837') format('woff'),
url('//at.alicdn.com/t/font_1701913_tl1esdcjv9r.ttf?t=1599790483837') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_1701913_tl1esdcjv9r.svg?t=1599790483837#iconfont-common') format('svg'); /* iOS 4.1- */
}
.iconfont-common {
font-family: "iconfont-common" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.common-iconjiantou:before {
content: "\e618";
}
.common-icongouwuche:before {
content: "\e726";
}
.common-icon5gouwudai2:before {
content: "\e656";
}
.common-icongouwudai:before {
content: "\e600";
}
.common-icongwc:before {
content: "\e674";
}
.common-iconjiahao:before {
content: "\e620";
}
.common-iconsousuo:before {
content: "\e6a8";
}
.common-iconyoujiantou:before {
content: "\e61c";
}
.common-iconfenxiang:before {
content: "\e688";
}
.common-iconbofang:before {
content: "\e689";
}
.common-iconaixin:before {
content: "\e65c";
}
.common-iconaixin1:before {
content: "\e619";
}
.common-icondianzan:before {
content: "\e60c";
}
.common-iconbofang2:before {
content: "\e635";
}
.common-iconbofang1-copy:before {
content: "\e675";
}
.common-iconqinziAPPtubiao-:before {
content: "\e648";
}
.common-iconrenzhengguanli:before {
content: "\e650";
}
.common-iconerweima:before {
content: "\e673";
}
.common-iconjifen11:before {
content: "\e652";
}
.common-iconmoren:before {
content: "\e66b";
}
...@@ -17,7 +17,8 @@ const componentOptions = { ...@@ -17,7 +17,8 @@ const componentOptions = {
}, },
// 组件数据 // 组件数据
data: { data: {
isPageHidden: false // 页面是否处于隐藏状态 isPageHidden: false, // 页面是否处于隐藏状态
timeData: {},
}, },
// 数据监听器 // 数据监听器
observers: {}, observers: {},
...@@ -50,6 +51,9 @@ const componentOptions = { ...@@ -50,6 +51,9 @@ const componentOptions = {
showFlag = true; showFlag = true;
} }
return showFlag; return showFlag;
},
onChange(e) {
this.setData({ timeData: e.detail });
} }
}, },
// 组件生命周期 // 组件生命周期
......
{ {
"component": true, "component": true,
"usingComponents": {} "usingComponents": {
"van-count-down":"/static/vant/count-down/index"
}
} }
<!-- 商品列表item --> <!-- 商品列表item -->
<view class="goodsItem" style="--proGap2:{{datas.componentData.proGap*2}}rpx;"> <view class="goodsItem {{datas.componentData.style==='rowList'?'goodsRowList':''}}" style="--proGap2:{{datas.componentData.proGap*2}}rpx;">
<view class="goods-item-child {{datas.componentData['borderColorShow']?'goods-item-child-bd':''}}" style="border-radius:{{datas.componentData.borderRadius}}em;--border_color:{{datas.componentData['borderColor']}};box-shadow:{{datas.componentData['cardShadow']?'0rpx 0rpx 10rpx '+datas.componentData['cardShadowSize']*2+'rpx #ccc':''}};"> <view class="goods-item-child {{datas.componentData['borderColorShow']?'goods-item-child-bd':''}}" style="border-radius:{{datas.componentData.borderRadius}}em;--border_color:{{datas.componentData['borderColor']}};box-shadow:{{datas.componentData['cardShadow']?'0rpx 0rpx 10rpx '+datas.componentData['cardShadowSize']*2+'rpx #ccc':''}};">
<!-- 商户入口-顶部 --> <!-- 商户入口-顶部 -->
<view class="merchantsEntrance flex" wx:if="{{datas.componentData['merchantsEntrance'] && datas.componentData['merchantsEntranceType'] == 0}}"> <view class="merchantsEntrance flex" wx:if="{{datas.componentData['merchantsEntrance'] && datas.componentData['merchantsEntranceType'] == 0}}">
...@@ -18,11 +18,26 @@ ...@@ -18,11 +18,26 @@
style="padding:{{datas.componentData.imgSize}}" style="padding:{{datas.componentData.imgSize}}"
> >
<!-- 开启售卖 --> <!-- 开启售卖 -->
<view class="saleWay" wx:if="{{items.saleWay==2 &&getSaleTime(items.saleTime)>0}}"> <view class="saleWay" wx:if="{{items.saleWay==2 && items.getSaleTime>0}}">
<view class="saleWayBg"></view> <view class="saleWayBg"></view>
<view> <view class="saleTime">
6545646 <van-count-down
use-slot
time="{{items.getSaleTime}}"
bind:change="onChange"
>
<text>距开售:</text>
<text class="block">{{ timeData.days }}</text>
<text class="colon">天</text>
<text class="block">{{ timeData.hours }}</text>
<text class="colon">时</text>
<text class="block">{{ timeData.minutes }}</text>
<text class="colon">分</text>
<text class="block">{{ timeData.seconds }}</text>
<text class="colon">秒</text>
</van-count-down>
</view> </view>
</view> </view>
<!-- 商品角标 --> <!-- 商品角标 -->
<view <view
...@@ -34,12 +49,14 @@ ...@@ -34,12 +49,14 @@
</view> </view>
<!-- 商品主图 --> <!-- 商品主图 -->
<image <image
mode="widthFix" mode="aspectFit"
class="productImgUrl"
wx:if="{{datas.componentData.goodsImgType == 1}}" wx:if="{{datas.componentData.goodsImgType == 1}}"
src="{{items.productImgUrl}}" src="{{items.productImgUrl}}"
/> />
<image <image
mode="widthFix" mode="aspectFit"
class="productImgUrl"
wx:else wx:else
src="{{items.coverImage}}" src="{{items.coverImage}}"
/> />
...@@ -57,7 +74,11 @@ ...@@ -57,7 +74,11 @@
<view class="name" wx:if="{{datas.componentData['nameShow']}}"> <view class="name" wx:if="{{datas.componentData['nameShow']}}">
{{items!=null?items['productName']:'名称'}} {{items!=null?items['productName']:'名称'}}
</view> </view>
<view class="follower-wrap" wx:if="{{datas.componentData['followerShow']}}"> <view
class="follower-wrap"
wx:if="{{datas.componentData['followerShow']}}"
style="padding-left:{{datas.componentData.columnNum == 3 ? '0' : '20rpx'}}"
>
<view class="follower-num" style="color:{{datas.componentData['followerColor']?datas.componentData['followerColor']:'#ff9933'}};"> <view class="follower-num" style="color:{{datas.componentData['followerColor']?datas.componentData['followerColor']:'#ff9933'}};">
{{items!=null? items['totalCollectionCount']:0}} {{items!=null? items['totalCollectionCount']:0}}
</view> </view>
...@@ -68,8 +89,8 @@ ...@@ -68,8 +89,8 @@
<view class="Sold"> <view class="Sold">
<text wx:if="{{datas.componentData['alSaleShow']}}">已售{{items!=null ? items['totalSalesCount'] :0}}件</text> <text wx:if="{{datas.componentData['alSaleShow']}}">已售{{items!=null ? items['totalSalesCount'] :0}}件</text>
<text wx:if="{{datas.componentData['alSaleShow'] && datas.componentData['collectShow']}}">/</text> <text wx:if="{{datas.componentData['alSaleShow'] && datas.componentData['collectShow']}}">/</text>
<text wx:if="{{datas.componentData['collectShow']}}">剩余{{items!=null && items['qty']!=undefined ? (items['qty'] > 0 ? items['qty']: items.oversoldFlag==1?'数量充足':'数量不足') : ''}}</text> <text wx:if="{{datas.componentData['collectShow']}}">剩余{{items!=null && items['qty']!=undefined ? (items['qty'] > 0 ? items['qty']: items.oversoldFlag==1?'数量充足':'数量不足') : ''}}<text wx:if="{{items!=null && (items['qty'] ? items['qty'] >= 0 : items['saleQty'] >= 0) && items.oversoldFlag!=1}}">件</text>
<text wx:if="{{items!=null && (items['qty'] ? items['qty'] >= 0 : items['qty'] >= 0)}}">件</text> </text>
</view> </view>
<!-- 标签 --> <!-- 标签 -->
<view class="marketing flex" wx:if="{{datas.componentData['marketingTag']&&datas.componentData['marketingStyle']==0&&items.marketingTag}}"> <view class="marketing flex" wx:if="{{datas.componentData['marketingTag']&&datas.componentData['marketingStyle']==0&&items.marketingTag}}">
...@@ -124,7 +145,7 @@ ...@@ -124,7 +145,7 @@
已售罄 已售罄
</view> </view>
<view wx:if="{{(items&&items.totalQty-0>0||items&&items.oversoldFlag==1)&& datas.componentData['paynow']}}"> <view wx:if="{{(items&&items.totalQty-0>0||items&&items.oversoldFlag==1)&& datas.componentData['paynow']}}">
<text wx:if="{{datas.componentData.btnType<6}}" class="buy-now-icon iconfont-common {{datas.componentData.btnIcon}}"></text> <text wx:if="{{datas.componentData.btnType<6}}" style="color:{{datas.componentData.btnColor}}" class="buy-now-icon iconfont-common {{datas.componentData.btnIcon}}"></text>
<view <view
wx:else wx:else
class="buy-now" class="buy-now"
......
@import "/static/font/common_icon.wxss";
.flex{ .flex{
display: flex; display: flex;
} }
...@@ -6,15 +7,40 @@ ...@@ -6,15 +7,40 @@
} }
image{ image{
width: 100%; width: 100%;
display: block;
} }
.goodsItem{ .goodsItem{
margin-bottom: var(--proGap2); margin-bottom: var(--proGap2);
white-space: initial;
} }
.goods-item-child { .goods-item-child {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
background: #ffffff; background: #ffffff;
} }
.goodsItem .goods-item-child{
display: flex;
align-items: flex-start;
}
.goodsItem .goods-item-child .imgBox{
width: auto;
width: 180rpx;
height: 180rpx;
margin: 20rpx;
overflow: hidden;
border-radius: 12rpx;
-webkit-border-radius: 12rpx;
-moz-border-radius: 12rpx;
-ms-border-radius: 12rpx;
-o-border-radius: 12rpx;
}
.goodsItem .goods-item-child .info{
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.merchantsEntrance{ .merchantsEntrance{
padding: 8rpx 20rpx; padding: 8rpx 20rpx;
} }
...@@ -37,13 +63,17 @@ image{ ...@@ -37,13 +63,17 @@ image{
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
margin: 0 auto 20rpx; margin: 0 auto;
} }
.goodsPicture{ .goodsPicture{
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
} }
.goodsPicture .productImgUrl{
width: 100%;
height: 100%;
}
.goodsPicture .saleWay{ .goodsPicture .saleWay{
position: absolute; position: absolute;
bottom: 0; bottom: 0;
...@@ -51,6 +81,8 @@ image{ ...@@ -51,6 +81,8 @@ image{
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
z-index: 2;
color: #fff;
} }
.goodsPicture .saleWay .saleWayBg{ .goodsPicture .saleWay .saleWayBg{
background: #eee; background: #eee;
...@@ -61,6 +93,14 @@ image{ ...@@ -61,6 +93,14 @@ image{
bottom: 0; bottom: 0;
opacity: 0.5; opacity: 0.5;
} }
.goodsPicture .saleWay .saleTime{
position: relative;
z-index: 2;
padding: 4rpx 0;
}
.goodsPicture .saleWay .saleTime text{
color: #fff;
}
.goodsPicture .angleSign{ .goodsPicture .angleSign{
position: absolute; position: absolute;
top: 0; top: 0;
...@@ -117,6 +157,7 @@ image{ ...@@ -117,6 +157,7 @@ image{
color: #999; color: #999;
text-align: center; text-align: center;
height: 70rpx; height: 70rpx;
border-left: 1px solid #999;
} }
.info .follower-wrap .follower-num{ .info .follower-wrap .follower-num{
text-align: center; text-align: center;
...@@ -204,7 +245,7 @@ image{ ...@@ -204,7 +245,7 @@ image{
color: #999; color: #999;
} }
.Sold text{ .Sold text{
font-size: 0.7em; font-size: 24rpx;
} }
.buy-now { .buy-now {
color: #ffffff; color: #ffffff;
......
...@@ -14,7 +14,9 @@ const componentOptions = { ...@@ -14,7 +14,9 @@ const componentOptions = {
// 组件数据 // 组件数据
data: { data: {
isPageHidden: false, // 页面是否处于隐藏状态 isPageHidden: false, // 页面是否处于隐藏状态
titleIcon:"", titleIcon: "",
classificationLoadPage: 1,
classificationLoadNum: 10
}, },
// 数据监听器 // 数据监听器
observers: {}, observers: {},
...@@ -68,10 +70,7 @@ const componentOptions = { ...@@ -68,10 +70,7 @@ const componentOptions = {
"data.datas.componentData.angleSignImg": angleSignImg, "data.datas.componentData.angleSignImg": angleSignImg,
titleIcon titleIcon
}); });
console.log( console.log(this.data.titleIcon, "----------------------------68");
this.data.titleIcon,
"----------------------------68"
);
if (goodsType == 0) { if (goodsType == 0) {
if (goodsSource == "classify") { if (goodsSource == "classify") {
//商品分类 //商品分类
...@@ -95,7 +94,38 @@ const componentOptions = { ...@@ -95,7 +94,38 @@ const componentOptions = {
// type 1初始化 2滚动加载 // type 1初始化 2滚动加载
//分类查 //分类查
if (code == 1) { if (code == 1) {
goodsApi.queryProductInfo().then(res => {}); let query = {
categoryId: this.data.datas.componentData.categoryId,
page: this.showRowNum()
? 1
: this.data.datas.componentData.classificationLoadPage, // 当前页
rows: this.showRowNum()
? this.getItemNum()
: this.classificationLoadNum, // 一页多少条
sortColumn: this.data.datas.componentData.goodsSort,
sortType: this.data.datas.componentData.goodsSort != 2 ? 1 : 0,
whetherShowSoldOutGoods: this.data.datas.componentData
.whetherShowSoldOutGoods, //查询销售数量
whetherQueryCollectCount: true, //查询收藏数
whetherUseVirtualSalesQty: true, //是否使用虚拟销售数量
whetherUseVirtualCollectCount: true, //是否使用虚拟收藏人数
whetherFindDistributionCommission: this
.whetherFindDistributionCommission, //是否查询商品佣金(0:不查询,1:展示,为空不查佣金)
whetherFindRecommendedCardFlag: this.data.datas.componentData.vipPrice
? 1
: 0, //是否查询会员价 1是 0否
whetherShowGoodsDefaultTagFlag: this.data.datas.componentData
.marketingTag
? 1
: 0, //是否展示营销标签 1是 0否
whetherFindMultiShopFlag: 1, //是否查询多商户 //商城使用
};
goodsApi.queryProductInfo(query).then(res => {
if (res.data.code == 200) {
let goodsList = res.data.data.list;
this.goodsListVal(goodsList);
}
});
} else { } else {
// 商品产品详情 // 商品产品详情
let terminalProductIds = goodsList.map(element => { let terminalProductIds = goodsList.map(element => {
...@@ -119,7 +149,9 @@ const componentOptions = { ...@@ -119,7 +149,9 @@ const componentOptions = {
await goodsApi.queryBriefProductInfo(query).then(res => { await goodsApi.queryBriefProductInfo(query).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
let data = res.data.data.list; let data = res.data.data.list;
let ids = data.map(element => { let ids = data.map(element => {let goodsList = this.render
? res.data.list
: res.data.data.list;
return element.terminalProductId; return element.terminalProductId;
}); });
this.moreProduct(ids); this.moreProduct(ids);
...@@ -132,7 +164,6 @@ const componentOptions = { ...@@ -132,7 +164,6 @@ const componentOptions = {
marketingTag, marketingTag,
whetherFindDistributionCommission, whetherFindDistributionCommission,
goodsList, goodsList,
marketingTagList
} = this.data.datas.componentData; } = this.data.datas.componentData;
let moreQuery = { let moreQuery = {
terminalProductIds, terminalProductIds,
...@@ -143,34 +174,78 @@ const componentOptions = { ...@@ -143,34 +174,78 @@ const componentOptions = {
whetherFindRecommendedCardFlag: vipPrice ? 1 : 0, //是否查询会员价 1是 0否 whetherFindRecommendedCardFlag: vipPrice ? 1 : 0, //是否查询会员价 1是 0否
whetherShowGoodsDefaultTagFlag: marketingTag ? 1 : 0, //是否展示营销标签 1是 0否 whetherShowGoodsDefaultTagFlag: marketingTag ? 1 : 0, //是否展示营销标签 1是 0否
whetherFindMultiShopFlag: 1, //是否查询多商户 //商城使用 whetherFindMultiShopFlag: 1, //是否查询多商户 //商城使用
whetherFindMultiSonShopFlag: 1 //是否查询多商户 //多主题使用
}; };
goodsApi.queryMoreProductInfo(moreQuery).then(res => { goodsApi.queryMoreProductInfo(moreQuery).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
goodsList = res.data.data; goodsList = res.data.data;
goodsList.forEach(item => { this.goodsListVal(goodsList);
item.marketingTag = item.defaultTags
? this.filtermark(item.defaultTags, marketingTagList)
: [];
item.shopLogoUrl = DFSImg(item.shopLogoUrl);
item.coverImage = DFSImg(item.coverImage);
item.productImgUrl = DFSImg(item.productImgUrl);
item.minPrice = Number(item.minPrice).toFixed(2);
item.qty = Number(item.qty)||0;
item.totalCollectionCount = Number(item.totalCollectionCount) || 0;
item.totalCollectionCount = Number(item.totalCollectionCount) || 0;
item.minPriceAfterRecommendedCardPriceTable = Number(item.minPriceAfterRecommendedCardPriceTable).toFixed(2) || 0;
item.minProductGoodsCommission = Number(item.minProductGoodsCommission).toFixed(2) || 0;
item.minGoodsSuggestedRetailPrice = Number(
item.minGoodsSuggestedRetailPrice
).toFixed(2);
});
this.setData({
"datas.componentData.goodsList": goodsList
});
} }
}); });
}, },
goodsListVal(goodsList) {
goodsList.forEach(item => {
item.marketingTag = item.defaultTags
? this.filtermark(item.defaultTags, this.data.datas.componentData.marketingTagList)
: [];
item.shopLogoUrl = DFSImg(item.shopLogoUrl);
item.coverImage = DFSImg(item.coverImage);
item.productImgUrl = DFSImg(item.productImgUrl);
item.minPrice = Number(item.minPrice).toFixed(2);
item.qty = Number(item.qty);
item.saleQty = Number(item.saleQty);
item.totalCollectionCount = Number(item.totalCollectionCount) || 0;
item.totalCollectionCount = Number(item.totalCollectionCount) || 0;
item.minPriceAfterRecommendedCardPriceTable =
Number(item.minPriceAfterRecommendedCardPriceTable).toFixed(2) || 0;
item.minProductGoodsCommission =
Number(item.minProductGoodsCommission).toFixed(2) || 0;
item.minGoodsSuggestedRetailPrice = Number(
item.minGoodsSuggestedRetailPrice
).toFixed(2);
if (item.saleTime) {
item.getSaleTime = 0;
item.getSaleTime = this.getSaleTime(item.saleTime);
}
});
setTimeout(() => {
this.setData({
"datas.componentData.goodsList": goodsList
});
}, 0);
},
getSaleTime(val) {
return new Date(val.replace(/-/g, "/")).getTime() - new Date().getTime();
},
getItemNum() {
//数量
if (
this.data.datas.componentData.style === "list" &&
this.data.datas.componentData["goodsSource"] != "assign"
) {
//网格模式
if (
this.data.datas.componentData.rowNum *
this.data.datas.componentData.columnNum >=
this.data.datas.componentData.goodsList.length
) {
return this.data.datas.componentData.goodsList.length;
} else {
return (
this.data.datas.componentData.rowNum *
this.data.datas.componentData.columnNum
);
}
} else {
return this.data.datas.componentData.goodsList.length;
}
},
showRowNum() {
return !(
this.data.datas.componentData.moreShow == false &&
this.data.datas.componentData.getStyle == "waterfall" &&
this.data.datas.componentData.goodsSource == "classify"
);
},
filtermark(newlist, marketingTagList) { filtermark(newlist, marketingTagList) {
let list = []; let list = [];
if (newlist.length <= 0) return; if (newlist.length <= 0) return;
......
<!-- 商品列表组件 --> <!-- 商品列表组件 -->
<view class="goodsList"> <view class="goodsList" style="padding-top:{{datas.componentData.paddingList[0].value*2}}rpx;padding-bottom:{{datas.componentData.paddingList[1].value*2}}rpx;padding-left:{{datas.componentData.paddingList[2].value*2}}rpx;padding-right:{{datas.componentData.paddingList[3].value*2}}rpx;">
<view class="list-wrap heap-wrap" style="background-color:{{datas.componentData['heapBgColorShow'] ? datas.componentData['heapBgColor'] : ''}};border-radius:{{datas.componentData['cardBorderRadius']*2}}rpx;"> <view class="list-wrap heap-wrap" style="background-color:{{datas.componentData['heapBgColorShow'] ? datas.componentData['heapBgColor'] : ''}};border-radius:{{datas.componentData['cardBorderRadius']*2}}rpx;">
<!-- 头部 --> <!-- 头部 -->
<view class="tops flex" style="padding:{{(datas.componentData['titleIcon'] || (datas.componentData['moreShow'] && datas.componentData.moreButtonSite=='top')) ?'0rpx 0rpx 0rpx 10rpx' : ''}};margin-bottom:{{datas.componentData['titleCardGap']*2}}rpx"> <view class="tops flex" style="padding:{{(datas.componentData['titleIcon'] || (datas.componentData['moreShow'] && datas.componentData.moreButtonSite=='top')) ?'0rpx 0rpx 0rpx 10rpx' : ''}};margin-bottom:{{datas.componentData['titleCardGap']*2}}rpx">
...@@ -23,11 +23,50 @@ ...@@ -23,11 +23,50 @@
<view <view
wx:for="{{datas.componentData.goodsList}}" wx:for="{{datas.componentData.goodsList}}"
wx:key="index" wx:key="index"
class="item" class="goods-item"
style="width:{{100/datas.componentData.columnNum}}%;padding-left:{{datas.componentData.proGap*2}}rpx"
>
<goods-item
datas="{{datas}}"
items="{{datas.componentData.goodsList[index]}}"
indexs="{{index}}"
></goods-item>
</view>
</view>
<!-- 横向滚动 -->
<view class="goods-across" wx:elif="{{datas.componentData.style==='across'}}">
<view class="prev-btn">
<text class="iconfont-common common-iconyoujiantou"></text>
</view>
<view class="next-btn">
<text class="iconfont-common common-iconyoujiantou"></text>
</view>
<view
wx:for="{{datas.componentData.goodsList}}"
wx:key="index"
class="goods-item"
style="width:{{100/datas.componentData.columnNum}}%;margin-right:{{datas.componentData.proGap*2}}rpx"
>
<goods-item
datas="{{datas}}"
items="{{datas.componentData.goodsList[index]}}"
indexs="{{index}}"
></goods-item>
</view>
</view>
<!-- 横向列表 -->
<view
class="goods goods-rowList"
wx:elif="{{datas.componentData.style==='rowList'}}"
style="margin-left:{{-datas.componentData.proGap*2}}rpx;"
>
<view
wx:for="{{datas.componentData.goodsList}}"
wx:key="index"
class="goods-item"
style="width:{{100/datas.componentData.columnNum}}%;padding-left:{{datas.componentData.proGap*2}}rpx" style="width:{{100/datas.componentData.columnNum}}%;padding-left:{{datas.componentData.proGap*2}}rpx"
> >
<goods-item <goods-item
class="goodsItem"
datas="{{datas}}" datas="{{datas}}"
items="{{datas.componentData.goodsList[index]}}" items="{{datas.componentData.goodsList[index]}}"
indexs="{{index}}" indexs="{{index}}"
......
@import "/static/font/common_icon.wxss";
.flex{ .flex{
display: flex; display: flex;
} }
...@@ -11,6 +12,9 @@ image{ ...@@ -11,6 +12,9 @@ image{
.goodsList .heap-wrap{ .goodsList .heap-wrap{
padding: 20rpx; padding: 20rpx;
} }
.goods-item{
box-sizing: border-box;
}
.tops{ .tops{
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
...@@ -51,4 +55,33 @@ image{ ...@@ -51,4 +55,33 @@ image{
} }
.goodsItem-list .item{ .goodsItem-list .item{
box-sizing: border-box; box-sizing: border-box;
}
.goods-across{
overflow-y: hidden;
overflow-X: auto;
white-space: nowrap;
padding-bottom: 10rpx;
display: flex;
align-items: flex-start;
}
.goods-across .prev-btn,.goods-across .next-btn{
position: absolute;
top: 50%;
z-index: 99;
opacity: 0.5;
}
.goods-across .prev-btn text,.goods-across .next-btn text{
font-size: 60rpx;
}
.goods-across .prev-btn{
left: 10px;
transform: rotate(180deg);
}
.goods-across .next-btn{
right: 10px;
}
.goods-across .item{
flex-shrink: 0;
display: inline-block;
box-sizing: border-box;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment