小程序简单的搜索栏

小程序简单的搜索栏,第1张

<!--pages/search/search.wxml-->

<van-search

  value="{{ value }}"

  placeholder="请输入搜索关键词"

  show-action

  input-align="center"

  bind:search="onSearch"

  bind:cancel="onCancel"

  bind:change="onChange"

    background="#4fc08d"

/>

<ListItem itemList="{{itemList}}" />

<view wx:if="{{kong}}" style="padding: 20pxtext-align: center">无更多数据</view>

<van-toast id="van-toast" />

{

  "usingComponents": {

    "van-search": "@vant/weapp/search/index",

    "ListItem":"/components/ListItem/ListItem",

    "van-toast": "@vant/weapp/toast/index"

  },

  "navigationBarTitleText": "搜索",

  "enablePullDownRefresh": true,

  "onReachBottomDistance": 0

}

const { goodsHttp } = require('../../http/api')

import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast.js'

Page({

    data: {

        value: ''念激,

        itemList:[],

        page:1,

        kong:false,

        isloding:true

    },

    onLoad(){

        this.init()

        if(this.data.isloding)return this.init()

    },

    async init(){

        try{

            this.setData({

                isloding:false

            })

            wx.showLoading({

              title: '别急哦~',

            启岁})

            let {goods:{data}} = await goodsHttp({title:this.data.value,

            page:this.data.page})

            data.forEach(r=>r.description='书籍是人类进步的电梯书籍是人类进步的电梯书籍是人类进步的电梯')

            if(this.data.page==1){

                this.data.itemList = []

            }

            this.setData({itemList:[...this.data.itemList,...data]})

            if(!data.length){

                this.setData({

                    kong:true

                })

            }

            else{

             this.setData({

                 kong:false

             })

            }

            Toast.clear()

            wx.hideLoading()

            this.setData({

                isloding:true

            })

        }catch(err){

            console.log(err)

        }

    },

    onReachBottom(){

        this.data.page++

        this.init()

    },

    onChange(e) {

        this.setData({

            value: e.detail,

        })

    },

    onSearch() {

        this.data.page = 1

        this.init(this.data.value)

        console.log('搜索' + this.data.value)

    },

    悄高睁onCancel() {

        /* encodeURIComponent('微信小程序') 转码 

        decodeURIComponent("%E4%BD%A0%E6%98%AF%E5%82%BB%E9%80%BC") 解码

        */

        this.data.value = ''

        this.init()

        this.data.page = 1

        console.log('取消' + this.data.value)

    },

    onPullDownRefresh: function () {

                this.data.page=1

                this.init()

            },

})

<!--components/ListItem/ListItem.wxml-->

<block wx:for="{{itemList}}" wx:key="index">

    <view class="flex item" bindtap="go" data-url="{{item.cover_url}}">

        <image class="img1" src="{{item.cover_url}}"></image>

        <view class="row">

            <view class="title">

                {{item.title}}

            </view>

            <view class="dec {{item.price?'van-multi-ellipsis--l2':'van-multi-ellipsis--l3'}}">

                {{item.description}}

            </view>

            <view class="common-sty" wx:if="{{item.price}}">

                <text>价格:{{item.price}}</text>

                <text>销量:{{item.sales}}</text>

                <text>收藏人数:{{item.collects_count}}</text>

            </view>

        </view>

    </view>

</block>

/* components/ListItem/ListItem.wxss */

/* @import '@vant/weapp/common/index.wxss' */

@import '/miniprogram_npm/@vant/weapp/common/index.wxss'

.flex{

    display: flex

  }

.item{

    padding:5px

}

.img1{

    width: 120px

    height: 120px

    display: block

    border-radius: 5px

}

.row{

    flex:1

    height: 120px

}

.title{

    padding:10px

    text-overflow: ellipsis

    display: -webkit-box

    -webkit-line-clamp: 1

    word-break: break-all

    -webkit-box-orient: vertical

    height:14px

    overflow: hidden

}

.dec{

    padding: 0 10px

    margin-top: 10px

}

.common-sty{

    font-size: 12px

    padding:10px

    color:rgb(66, 64, 64)

}

.common-sty text{

    margin-right: 10px

}

{

    "component": true,

    "usingComponents": {}

}

// components/ListItem/ListItem.js

Component({

    /**

     * 组件的属性列表

     */

    properties: {

        itemList:{

            type:Array,

            value:[{

                cover_url:"https://oss.shop.eduwork.cn/product/2020-0820-5f3e15bc69891.png",

                title:"人类的书籍",

                description:"人类进步的阶梯人类进步的阶梯"

            }]

        },

    },

    /**

     * 组件的初始数据

     */

    data: {

    },

    /**

     * 组件的方法列表

     */

    methods: {

        go(e){

            let url = e.currentTarget.dataset.url

            wx.navigateTo({

              url: '/pages/web/web?url='+url,

            })

        }

    }

})

search.wxml部分内容:

<view class='search_box page_row'>

<view class='search'>

<view class='search_item'>

<icon class='search_icon' size='20' type='search'></icon>

<input value='' placeholder='搜索您要找的商品' bindinput='bindInput'/>咐皮

</雹好view>

</view>衡肆差

<view class='search_btn' bindtap='search'>搜索</view>

</view>

search.wxss样式部分:

.search_box{width:100%background:#2587f1padding:0 0 10pxdisplay: flexflex-direction: row}

.search{width: calc( 100% - 64rpx )}

.search_item{border: 1px solid #d0d0d0border-radius: 10rpxmargin-left: 20rpxbackground:#fff}

.search_item input{margin-left: 60rpxheight: 60rpxborder-radius: 5pxbackground:#fff}

.search_btn{width: 15%height: 60rpxline-height:60rpxtext-align: centerbackground:transparentcolor:#fff}

.search_icon{margin: 10rpx 10rpx 10rpx 10rpxposition: absoluteleft:25rpxz-index: 2width: 20pxheight: 20pxtext-align: center}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12565211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存