Files
QSY-lvjuxcx/components/filter/select.vue
2026-06-29 09:42:53 +08:00

417 lines
12 KiB
Vue
Raw Permalink 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.

<template>
<view
v-if="openModal"
class="wx-modal"
>
<view
class="wam__mask"
@touchmove.prevent=""
@tap.stop="closeModal"
></view>
<!-- 内容区域 -->
<view class="wam__wrapper">
<!-- 关闭按钮 -->
<view class="wam__close-btn" @tap.stop="closeModal">
<tn-button size="lg" shape="icon" backgroundColor="#00000000" fontColor="#AAAAAA">
<text class="tn-icon-close"></text>
</tn-button>
<!-- <text class="ri-close-circle-fill tn-color-white"></text> -->
</view>
<view class="tn-margin-left tn-flex tn-flex-col-center">
<view class="tn-text-bold tn-text-lg">综合筛选</view>
</view>
<view class="tn-margin-top-sm" style="border-top: 1rpx solid #F8F7F8;">
<scroll-view scroll-y="true" style="max-height: 55vh;">
<!-- 内容 start-->
<view class="tn-padding-top-sm" style="margin: 30rpx;">
<view class="">
应用权益
</view>
<view class="justify-content-item">
<view class="tn-tag-content tn-text-justify">
<view v-for="(item, index) in redpacket" :key="index" class="tn-tag-content__item tn-margin-right tn-text-sm" :class="[item.select ? 'bg-select' : 'bg-select-no']" @click="handleRedpacketClick(index)">
{{ item.title }}
</view>
</view>
</view>
<view class="tn-margin-top-xl">
价格区间
</view>
<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top">
<view class="" style="width:30vw;border-radius: 100rpx;background-color: #F5F5F5;">
<view class="tn-color-gray tn-color-black tn-text-center" style="padding: 14rpx;">
<input type="number" placeholder="最低价" name="input" placeholder-style="color:#AAAAAA;margin-left: 10rpx" value=""></input>
</view>
</view>
<view class="tn-icon-sort">
</view>
<view class="" style="width:30vw;border-radius: 100rpx;background-color: #F5F5F5;">
<view class="tn-color-gray tn-color-black tn-text-center" style="padding: 14rpx;">
<input type="number" placeholder="最高价" name="input" placeholder-style="color:#AAAAAA;margin-left: 10rpx" value=""></input>
</view>
</view>
</view>
</view>
<!-- 内容 end-->
</scroll-view>
<!-- 悬浮按钮-->
<view class="tn-flex tn-footerfixed" style="border-top: 1rpx solid #F8F7F8;">
<view class="tn-flex-1 justify-content-item tn-text-center tn-margin-right-sm">
<tn-button :plain="true" backgroundColor="#AAAAAA " padding="39rpx 0" width="100%" :fontSize="28" fontColor="#AAAAAA" shape="round" @click="tn('')">
<text class="">重 置</text>
</tn-button>
</view>
<view class="tn-flex-1 justify-content-item tn-text-center tn-margin-left-sm">
<tn-button backgroundColor="$brand-primary " padding="40rpx 0" width="100%" :fontSize="28" fontColor="#FFFFFF" shape="round" @click="tn('')">
<text class="">确 定</text>
</tn-button>
</view>
</view>
<view class="tn-tabbar-height"></view>
</view>
</view>
</view>
</template>
<script>
export default {
options: {
// 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现(不会出现shadow节点下再去创建元素)
virtualHost: true
},
props: {
value: {
type: Boolean,
default: false
}
},
data() {
return {
openModal: false,
content: [{
play: '12K',
number: '16',
title: '类型名称',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.08W',
number: '17',
title: '类型名称',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '2.06K',
number: '12',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.02W',
number: '22',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '2.92W',
number: '12',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '2.03W',
number: '5',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.69W',
number: '8',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '118K',
number: '6',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '2.03W',
number: '16',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '2.16W',
number: '8',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.89W',
number: '6',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '3.03W',
number: '6',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.32W',
number: '18',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.92W',
number: '6',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '1.52W',
number: '16',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '4.35W',
number: '15',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '4.57W',
number: '19',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
},
{
play: '4.86W',
number: '12',
title: '那只猪不见了',
mainImage: 'https://cdn.nlark.com/yuque/0/2024/png/280373/1715960090731-assets/web-upload/156084cd-aa5a-41dc-98ca-eb681d4afcc5.png',
}
],
redpacket: [
{
title: "包邮",
select: true
},
{
title: "积分抵扣",
select: false
},
{
title: "24小时发货",
select: false
},
{
title: "赠送运险费",
select: false
},
{
title: "会员折扣",
select: false
},
],
}
},
watch: {
value: {
handler(val) {
this.openModal = val
},
immediate: true
}
},
methods: {
// 跳转
tn(e) {
uni.navigateTo({
url: e,
});
},
// 关闭弹框
closeModal() {
this.$emit('input', false)
},
// 处理点击事件
handleRedpacketClick(index) {
this.redpacket[index].select = !this.redpacket[index].select
},
}
}
</script>
<style lang="scss" scoped>
/* 文字截取*/
.clamp-text-1 {
-webkit-line-clamp: 1;
display: -webkit-box;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
overflow: hidden;
}
.clamp-text-2 {
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
overflow: hidden;
}
.wx-modal {
position: fixed;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
z-index: 99998 !important;
view {
box-sizing: border-box;
}
.image {
width: 100%;
height: 100%;
border-radius: inherit;
}
.wam {
z-index: 9999 !important;
/* mask */
&__mask {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
opacity: 0;
animation: showMask 0.25s linear 0s forwards;
}
/* close-btn */
&__close-btn {
position: absolute;
top: 20rpx;
right: 10rpx;
z-index: 99999;
font-size: 40rpx;
}
/* wrapper */
&__wrapper {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
background-color: #FFFFFF;
border-radius: 40rpx 40rpx 0rpx 0rpx;
padding-top: 40rpx;
// padding-bottom: 40rpx;
// padding-bottom: calc(constant(safe-area-inset-bottom) + 40rpx);
// padding-bottom: calc(env(safe-area-inset-bottom) + 40rpx);
transform-origin: center bottom;
transform: scaleY(0);
animation: showWrapper 0.25s linear 0s forwards;
z-index: 99999;
}
}
}
@keyframes showMask {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes showWrapper {
0% {
transform: scaleY(0);
opacity: 0;
}
100% {
transform: scaleY(1);
opacity: 1;
}
}
/* 底部悬浮按钮 start*/
.tn-tabbar-height {
min-height: 20rpx;
height: calc(40rpx + env(safe-area-inset-bottom) / 2);
height: calc(40rpx + constant(safe-area-inset-bottom));
}
.tn-footerfixed {
width: 100%;
margin-bottom: calc(env(safe-area-inset-bottom)- 20rpx );
padding: 30rpx;
z-index: 1024;
box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0);
}
/* 底部悬浮按钮 end*/
/* 标签内容 start*/
.tn-tag-content {
&__item {
display: inline-block;
line-height: 45rpx;
padding: 8rpx 24rpx;
margin: 24rpx 30rpx 5rpx 0rpx;
border-radius: 100rpx;
min-width: 140rpx;
text-align: center;
&--prefix {
padding-right: 10rpx;
}
}
}
/* 标签内容 end*/
.bg-select-no{
background-color: #F5F5F5;
border: 1rpx solid #F5F5F5;
}
.bg-select{
background-color: rgba($brand-primary, 0.125);
border: 1rpx solid $brand-primary;
color: $brand-primary;
}
</style>