Commit b90981bd by 李嘉林

商品筛选

parent db631f4a
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="tit-title">{{ ele.specificationName }}</div> <div class="tit-title">{{ ele.specificationName }}</div>
</div> </div>
<div class="brand-list"> <div class="brand-list">
<template <div
v-if="ele.specificationValueList &&ele.specificationValueList.length <= 9" v-if="ele.specificationValueList &&ele.specificationValueList.length <= 9"
> >
<div <div
...@@ -42,55 +42,55 @@ ...@@ -42,55 +42,55 @@
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
@click="selectBrandGoodsSpecification(item)" @click="selectBrandGoodsSpecification(item)"
:class="submitFliterVal.goodsSpecificationIds.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
> >
{{ item.specificationValue }} {{ item.specificationValue }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.goodsSpecificationIds.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
</template> </div>
<template <div
v-if="ele.specificationValueList &&ele.specificationValueList.length > 9" v-if="ele.specificationValueList &&ele.specificationValueList.length > 9"
> >
<div <div
class="brand-item" class="brand-item"
v-for="(item,index2) in ele.specificationValueList.slice(0, 8)" v-for="(item,index2) in ele.specificationValueList1"
:key="index2" :key="index2"
> >
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
:class="submitFliterVal.goodsSpecificationIds.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
@click="selectBrandGoodsSpecification(item)" @click="selectBrandGoodsSpecification(item)"
> >
{{ item.specificationValue }} {{ item.specificationValue }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.goodsSpecificationIds.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
<template v-if="ele.brandMore"> <div v-if="ele.brandMore">
<div <div
class="brand-item" class="brand-item"
v-for="(item,index3) in ele.specificationValueList.slice(8)" v-for="(item,index3) in ele.specificationValueList2"
:key="index3" :key="index3"
> >
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
:class="submitFliterVal.goodsSpecificationIds.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
@click="selectBrandGoodsSpecification(item)" @click="selectBrandGoodsSpecification(item)"
> >
{{ item.specificationValue }} {{ item.specificationValue }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.goodsSpecificationIds.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
</template> </div>
<div <div
class="more" class="more"
v-if="ele.specificationValueList.length > 9 && !ele.brandMore" v-if="ele.specificationValueList.length > 9 && !ele.brandMore"
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
> >
查看更多 <van-icon name="arrow" color="#000" size="14" /> 查看更多 <van-icon name="arrow" color="#000" size="14" />
</div> </div>
</template> </div>
</div> </div>
</div> </div>
<div class="list clearfix brand-wrap" v-if="!hideBrandSelectFlag"> <div class="list clearfix brand-wrap" v-if="!hideBrandSelectFlag">
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
v-if="submitFliterVal.brandActiveNameList.length" v-if="submitFliterVal.brandActiveNameList.length"
> >
<span class="line-clamp1 brands fl">{{ <span class="line-clamp1 brands fl">{{
submitFliterVal.brandActiveNameList.join("、") brandActiveNameListStr
}}</span> }}</span>
<span class="fl" <span class="fl"
>(共{{ submitFliterVal.brandActiveNameList.length }}个)</span >(共{{ submitFliterVal.brandActiveNameList.length }}个)</span
...@@ -117,62 +117,62 @@ ...@@ -117,62 +117,62 @@
</div> </div>
</div> </div>
<div class="brand-list"> <div class="brand-list">
<template v-if="brandList.length <= 9"> <div v-if="brandList.length <= 9">
<div <div
class="brand-item" class="brand-item"
v-for="(item,index4) in brandList" v-for="(item,index4) in useBrandList"
:key="index4" :key="index4"
> >
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
@click="selectBrand(item)" @click="selectBrand(item)"
:class="submitFliterVal.brandIdList.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
> >
{{ item.brandName }} {{ item.brandName }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.brandIdList.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
</template> </div>
<template v-else> <div v-else>
<div <div
class="brand-item" class="brand-item"
v-for="(item,index5) in brandList.slice(0, 8)" v-for="(item,index5) in useBrandList"
:key="index5" :key="index5"
> >
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
:class="submitFliterVal.brandIdList.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
@click="selectBrand(item)" @click="selectBrand(item)"
> >
{{ item.brandName }} {{ item.brandName }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.brandIdList.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
<template v-if="brandMore"> <div v-if="brandMore">
<div <div
class="brand-item" class="brand-item"
v-for="(item,index6) in brandList.slice(8)" v-for="(item,index6) in brandList2"
:key="index6" :key="index6"
> >
<div <div
class="brand-item-text line-clamp1" class="brand-item-text line-clamp1"
:class="submitFliterVal.brandIdList.includes(item.id)? 'brand-active': ''" :class="item.selectFlag? 'brand-active': ''"
@click="selectBrand(item)" @click="selectBrand(item)"
> >
{{ item.brandName }} {{ item.brandName }}
<img <img
src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png" src="http://mayi-newshop.oss-cn-shanghai.aliyuncs.com/public/png/46876f6b-08f7-4632-84f5-1ebf0a942786.png"
v-if="submitFliterVal.brandIdList.includes(item.id)" v-if="item.selectFlag"
/> />
</div> </div>
</div> </div>
</template> </div>
<div <div
class="more" class="more"
v-if="brandList.length > 9 && !brandMore" v-if="brandList.length > 9 && !brandMore"
...@@ -180,7 +180,7 @@ ...@@ -180,7 +180,7 @@
> >
查看更多 <van-icon name="arrow" color="#000" size="14" /> 查看更多 <van-icon name="arrow" color="#000" size="14" />
</div> </div>
</template> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -214,13 +214,23 @@ export default { ...@@ -214,13 +214,23 @@ export default {
GoodsSpecificationNameAndValuesListResponseDTO: [], GoodsSpecificationNameAndValuesListResponseDTO: [],
brandMore: false, brandMore: false,
brandList: [], brandList: [],
specifications: [], brandList2: [],
randomNumber: "", randomNumber: "",
hideBrandSelectFlag: false, // 隐藏品牌筛选 hideBrandSelectFlag: false, // 隐藏品牌筛选
}; };
}, },
components: {}, components: {},
computed: {}, computed: {
useBrandList() {
if(this.brandList.length <= 9) {
return this.brandList
}
return this.brandList.slice(0, 8)
},
brandActiveNameListStr() {
return this.submitFliterVal.brandActiveNameList.join("、");
},
},
created() { created() {
this.getProductBrand(); this.getProductBrand();
this.query_specification_name_and_values_list(); this.query_specification_name_and_values_list();
...@@ -256,10 +266,13 @@ export default { ...@@ -256,10 +266,13 @@ export default {
this.$set(ele, "brandMore", false); this.$set(ele, "brandMore", false);
if (ele.specificationValueList) { if (ele.specificationValueList) {
ele.specificationValueList.forEach((val) => { ele.specificationValueList.forEach((val) => {
val.selectFlag = false;
this.$set(val, "id", val.specificationValueIds[0]); this.$set(val, "id", val.specificationValueIds[0]);
this.$set(val, "ids", val.specificationValueIds); this.$set(val, "ids", val.specificationValueIds);
}); });
} }
ele.specificationValueList1 = ele.specificationValueList.slice(0, 8);
ele.specificationValueList2 = ele.specificationValueList.slice(8);
} }
); );
} }
...@@ -272,37 +285,42 @@ export default { ...@@ -272,37 +285,42 @@ export default {
used: 1, used: 1,
}) })
.then((res) => { .then((res) => {
console.log(res); console.log(res,'-------275');
if (res.data.code == "200") { if (res.data.code == "200") {
res.data.data.list.forEach(item=>{
item.selectFlag = false;
})
this.brandList = res.data.data.list; this.brandList = res.data.data.list;
this.brandList2 = this.brandList.slice(8);
console.log(this.brandList,'---------brandList')
} }
}); });
}, },
selectBrandGoodsSpecification(item) { selectBrandGoodsSpecification(item) {
console.log("----------------",item)
item.ids.forEach((id) => { item.ids.forEach((id) => {
if (!this.submitFliterVal.goodsSpecificationIds.includes(id)) { if (!this.submitFliterVal.goodsSpecificationIds.includes(id)) {
this.submitFliterVal.goodsSpecificationIds.push(id); this.submitFliterVal.goodsSpecificationIds.push(id);
item.selectFlag = true;
} else { } else {
this.submitFliterVal.goodsSpecificationIds.splice( this.submitFliterVal.goodsSpecificationIds.splice(
this.submitFliterVal.goodsSpecificationIds.indexOf(id), this.submitFliterVal.goodsSpecificationIds.indexOf(id),
1 1
); );
item.selectFlag = false;
} }
}); });
}, },
selectBrand(item) { selectBrand(item) {
console.log(item, "----------------------1531"); console.log(item, "----------------------1531");
console.log( console.log(
this.submitFliterVal.brandIdList,
"----------------------1532"
);
console.log(
this.submitFliterVal.brandActiveNameList, this.submitFliterVal.brandActiveNameList,
"----------------------1533" "----------------------1533"
); );
if (!this.submitFliterVal.brandIdList.includes(item.id)) { if (!item.selectFlag) {
this.submitFliterVal.brandIdList.push(item.id); this.submitFliterVal.brandIdList.push(item.id);
this.submitFliterVal.brandActiveNameList.push(item.brandName); this.submitFliterVal.brandActiveNameList.push(item.brandName);
item.selectFlag = true;
} else { } else {
this.submitFliterVal.brandIdList.splice( this.submitFliterVal.brandIdList.splice(
this.submitFliterVal.brandIdList.indexOf(item.id), this.submitFliterVal.brandIdList.indexOf(item.id),
...@@ -312,7 +330,12 @@ export default { ...@@ -312,7 +330,12 @@ export default {
this.submitFliterVal.brandIdList.indexOf(item.id), this.submitFliterVal.brandIdList.indexOf(item.id),
1 1
); );
item.selectFlag = false;
} }
console.log(
this.submitFliterVal.brandIdList,
"----------------------1532"
);
}, },
// 重置筛选 // 重置筛选
resetFliter() { resetFliter() {
...@@ -322,12 +345,26 @@ export default { ...@@ -322,12 +345,26 @@ export default {
if (!this.hideBrandSelectFlag) { if (!this.hideBrandSelectFlag) {
this.submitFliterVal.brandIdList = []; this.submitFliterVal.brandIdList = [];
this.submitFliterVal.brandActiveNameList = []; this.submitFliterVal.brandActiveNameList = [];
this.brandList.forEach(item=>{
item.selectFlag = false;
});
this.brandList2.forEach(item=>{
item.selectFlag = false;
});
} }
this.GoodsSpecificationNameAndValuesListResponseDTO.forEach(
(ele) => {
if (ele.specificationValueList) {
ele.specificationValueList.forEach((val) => {
val.selectFlag = false;
});
}
ele.specificationValueList1 = ele.specificationValueList.slice(0, 8);
ele.specificationValueList2 = ele.specificationValueList.slice(8);
}
);
this.submitFliterVal.goodsSpecificationIds = []; this.submitFliterVal.goodsSpecificationIds = [];
console.log(this.submitFliterVal,'--------重置')
this.specifications.forEach((item, index) => {
item.index = "false";
});
}, },
// 提交筛选 // 提交筛选
submitFliter() { submitFliter() {
...@@ -350,6 +387,7 @@ export default { ...@@ -350,6 +387,7 @@ export default {
randomNumber: this.randomNumber, randomNumber: this.randomNumber,
}; };
// 向外传值 // 向外传值
console.log(callbackObj,'----callbackObj')
app.getFilterGoodsData(callbackObj); app.getFilterGoodsData(callbackObj);
this.show = false; this.show = false;
}, },
...@@ -483,7 +521,7 @@ button { ...@@ -483,7 +521,7 @@ button {
margin-top: 10px; margin-top: 10px;
.brand-item { .brand-item {
width: 33%; width: 29%;
padding: 0 5px; padding: 0 5px;
float: left; float: left;
margin-bottom: 10px; margin-bottom: 10px;
...@@ -589,7 +627,7 @@ button { ...@@ -589,7 +627,7 @@ button {
max-height: 40vh; max-height: 40vh;
overflow-y: auto; overflow-y: auto;
.brand-item { .brand-item {
width: 33%; width: 29%;
padding: 0 5px; padding: 0 5px;
float: left; float: left;
margin-bottom: 10px; margin-bottom: 10px;
......
...@@ -62,7 +62,7 @@ const componentOptions = { ...@@ -62,7 +62,7 @@ const componentOptions = {
brandIdList: [], //品牌 brandIdList: [], //品牌
brandActiveNameList: [], brandActiveNameList: [],
goodsSpecificationIds: [], goodsSpecificationIds: [],
randomNumber: random_string(6), randomNumber: "",
}, },
}, },
// 数据监听器 // 数据监听器
...@@ -77,6 +77,7 @@ const componentOptions = { ...@@ -77,6 +77,7 @@ const componentOptions = {
_this.setData({ _this.setData({
submitFliterVal: val.submitFliterVal, submitFliterVal: val.submitFliterVal,
}) })
console.log(_this.data.submitFliterVal,'----------submitFliterVal')
_this.init(); _this.init();
} }
this.init(); this.init();
...@@ -139,10 +140,11 @@ const componentOptions = { ...@@ -139,10 +140,11 @@ const componentOptions = {
if(item == 99) { if(item == 99) {
// 展示筛选弹窗 // 展示筛选弹窗
// wx.showToast({title:"暂未开发", icon:"error"}) // wx.showToast({title:"暂未开发", icon:"error"})
let _this = this;
app.openFilterGoods({ app.openFilterGoods({
submitFliterVal: this.data.submitFliterVal, submitFliterVal: _this.data.submitFliterVal,
randomNumber: this.data.randomNumber, randomNumber: _this.data.randomNumber,
hideBrandSelectFlag: this.data.datas.componentData.filterBrand.length>0?true:false, hideBrandSelectFlag: _this.data.datas.componentData.filterBrand.length>0?true:false,
}); });
// this.opt.bus.$emit("openGoodsFilters",{ // this.opt.bus.$emit("openGoodsFilters",{
// submitFliterVal: this.submitFliterVal, // submitFliterVal: this.submitFliterVal,
...@@ -170,6 +172,7 @@ const componentOptions = { ...@@ -170,6 +172,7 @@ const componentOptions = {
titleIcon, titleIcon,
mainColor: app.themeColor["--main-color"], mainColor: app.themeColor["--main-color"],
"submitFliterVal.brandIdList": filterBrand, "submitFliterVal.brandIdList": filterBrand,
randomNumber: random_string(6),
}); });
console.log(this.data.titleIcon, "----------------------------68"); console.log(this.data.titleIcon, "----------------------------68");
let ids = this.getStorageSync(`ids`); let ids = this.getStorageSync(`ids`);
......
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