Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mayi-mp-shop
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
程默
mayi-mp-shop
Commits
b90981bd
Commit
b90981bd
authored
Jul 21, 2022
by
李嘉林
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商品筛选
parent
db631f4a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
89 additions
and
48 deletions
+89
-48
src/components/common/GoodsFliters.vue
+82
-44
static/nativeComponents/GoodsList/index.js
+7
-4
No files found.
src/components/common/GoodsFliters.vue
View file @
b90981bd
...
@@ -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.specificationValueList
1
"
: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.specificationValueList
2
"
: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
b
randList"
v-for=
"(item,index4) in
useB
randList"
: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 brandList
2
"
: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
;
...
...
static/nativeComponents/GoodsList/index.js
View file @
b90981bd
...
@@ -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`
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment