<template> 
 | 
    <view class="search"> 
 | 
        <view class="search_box"> 
 | 
            <view class="search_input"> 
 | 
                <image src="@/static/ic_search@2x.png" alt=""> 
 | 
                <input v-model="text" @confirm="searchInput()" type="text" :placeholder="placeholder" /> 
 | 
            </view> 
 | 
            <view class="search_operation" v-if="isShow"> 
 | 
                <view class="search_operation_w"></view> 
 | 
                <image @click="openCate()" src="@/static/filter@2x.png" mode="widthFix"> 
 | 
            </view> 
 | 
        </view> 
 | 
        <u-popup :show="open" :round="10" mode="bottom"> 
 | 
            <scroll-view scroll-y class="content"> 
 | 
                <slot name="content"></slot> 
 | 
            </scroll-view> 
 | 
            <view class="zhanwei"></view> 
 | 
            <view class="footer"> 
 | 
                <view class="footer_close" @click="closes">重置</view> 
 | 
                <view class="footer_submit" @click="submit">确定</view> 
 | 
            </view> 
 | 
        </u-popup> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    export default { 
 | 
        data() { 
 | 
            return { 
 | 
                text: '', 
 | 
                open: false 
 | 
            }; 
 | 
        }, 
 | 
        props: { 
 | 
            isShow: Boolean, 
 | 
            placeholder: String 
 | 
        }, 
 | 
        methods: { 
 | 
            // 搜索框搜索 
 | 
            searchInput() { 
 | 
                this.$emit('searchInput', this.text) 
 | 
            }, 
 | 
            // 打开弹窗 
 | 
            openCate() { 
 | 
                this.open = true 
 | 
            }, 
 | 
            // 重置 
 | 
            closes() { 
 | 
                this.open = false 
 | 
                this.text = '' 
 | 
                this.$emit('reset', this.text) 
 | 
            }, 
 | 
            // 搜索提交 
 | 
            submit() { 
 | 
                this.open = false 
 | 
                this.$emit('submit') 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    .search { 
 | 
        width: 100%; 
 | 
        height: 68rpx; 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        .zhanwei { 
 | 
            background: #ffffff; 
 | 
        } 
 | 
        .content { 
 | 
            padding: 30rpx 30rpx 0 30rpx; 
 | 
            width: 100%; 
 | 
            height: 800rpx; 
 | 
            box-sizing: border-box; 
 | 
        } 
 | 
        .footer { 
 | 
            width: 100%; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            padding-left: 40rpx; 
 | 
            padding-right: 40rpx; 
 | 
            padding-bottom: 64rpx; 
 | 
            box-sizing: border-box; 
 | 
            position: fixed; 
 | 
            bottom: 0; 
 | 
            left: 0; 
 | 
            background: #ffffff; 
 | 
            z-index: 99; 
 | 
            .footer_close { 
 | 
                flex: 1; 
 | 
                padding: 28rpx 0; 
 | 
                box-sizing: border-box; 
 | 
                margin-right: 22rpx; 
 | 
                font-size: 32rpx; 
 | 
                font-weight: 500; 
 | 
                color: #999999; 
 | 
                background: #F7F7F7; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
            } 
 | 
            .footer_submit { 
 | 
                flex: 1; 
 | 
                padding: 28rpx 0; 
 | 
                box-sizing: border-box; 
 | 
                font-size: 32rpx; 
 | 
                font-weight: 500; 
 | 
                color: #ffffff; 
 | 
                background: $nav-color; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
            } 
 | 
        } 
 | 
        .search_box { 
 | 
            width: 100%; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            .search_input { 
 | 
                flex: 1; 
 | 
                height: 100%; 
 | 
                background: #F7F7F7; 
 | 
                border-radius: 8rpx; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                padding: 15rpx 30rpx; 
 | 
                box-sizing: border-box; 
 | 
                image { 
 | 
                    width: 28rpx; 
 | 
                    height: 28rpx; 
 | 
                    margin-right: 10rpx; 
 | 
                } 
 | 
                input { 
 | 
                    width: 100%; 
 | 
                    border: none; 
 | 
                    outline: none; 
 | 
                    background: #F7F7F7; 
 | 
                    font-size: 26rpx; 
 | 
                } 
 | 
                input::-webkit-input-placeholder { /* WebKit browsers */ 
 | 
                    font-size: 26rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #B2B2B2; 
 | 
                } 
 | 
                input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ 
 | 
                    font-size: 26rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #B2B2B2; 
 | 
                } 
 | 
                input::-moz-placeholder { /* Mozilla Firefox 19+ */ 
 | 
                    font-size: 26rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #B2B2B2; 
 | 
                } 
 | 
                input:-ms-input-placeholder { /* Internet Explorer 10+ */ 
 | 
                    font-size: 26rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #B2B2B2; 
 | 
                } 
 | 
            } 
 | 
            .search_operation { 
 | 
                flex-shrink: 0; 
 | 
                /*width: 150rpx;*/ 
 | 
                display: flex; 
 | 
                justify-content: flex-end; 
 | 
                align-items: center; 
 | 
                /*margin-left: 30rpx;*/ 
 | 
                image { 
 | 
                    width: 44rpx; 
 | 
                    height: 44rpx; 
 | 
                } 
 | 
                .search_operation_w { 
 | 
                    width: 30rpx; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |