找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 拇指 mztk
查看: 1643|回复: 2

uniapp 下拉框带实时搜索picker

[复制链接]

134

主题

52

回帖

4913

积分

版主

积分
4913
发表于 2021-7-6 09:25:41 | 显示全部楼层 |阅读模式
                        <picker @change="bindPickerChange($event,aicheList)" :value="index" :range="aicheList" range-key="cid">

                                <view class="uni-input">
                                        <input class="iputong" type="text" @input="getList" v-model="cid" placeholder="输入关键字" />
                                </view>
                        </picker>

//介绍 @change="bindPickerChange($event,aicheList)" =获取选中的值,:value="index"=不知道,:range="aicheList"=数组,range-key="cid"=字段的值。
//@input="getList"=获取焦点,把数据实时提交到后台检索数据, v-model="cid"=传入后台要检索的数据值这里我统一用的cid是因为我需要picker获取后复制到input里。
下面是JS了
<script>
        import {
                mapState,
                mapMutations
        } from 'vuex'
        export default {

                data() {
                        return {
                                value: '',//这里一开始我是放在input里的,现在换成了CID,可以忽略。
                                //数据
                                aicheList: [],
                                index: 0,
                                cid: '',
                                userid: '',//用户的ID不需要可以忽略
                        }
                },


methods: {
                       
                        //下拉框取值
                        bindPickerChange: function(e, storage) {
                                console.log('picker发送选择改变,携带值为:' + e.detail.value)//请忽略
                                this.index = e.target.value
                                this.cid = storage[this.index].cid         //这是取到的值storage配合的是picker @change="bindPickerChange($event,aicheList)"
                                console.log(this.cid)//请忽略
                                this.index = e.detail.value
                        },

//读取后台数据
getList: function() {

                                uni.request({
                                        url: 'https://',
                                        method: 'POST',
                                        dataType: 'json',
                                        data: {
                                                userid: this.userid,//用户的ID可忽略
                                                value: this.cid,//这里是从input里要检索的内容,下面看后台就明白了
                                        },
                                        success: res => {
                                                //console.log(res.data.data);
                                                this.aicheList = res.data.data;//全部的数据
                                                this.total = res.data.total;//这里我做了一个统计,请忽略

                                        },

                                })
                        },

}
}




回复

使用道具 举报

134

主题

52

回帖

4913

积分

版主

积分
4913
 楼主| 发表于 2021-7-6 09:25:49 | 显示全部楼层
本帖最后由 win 于 2021-7-6 09:28 编辑

tp5后台代码

//保养列表
public function baoyang_biao(){

    //查询POST过来的数据
    $userid = Request::param('userid');//用户的ID
    $val = Request::param('value');//这就是前端input里的CID

    // 查询出当前页数显示的数据//若果为空查询用户所有数据
    if($val == null) {
        $hdata = BaoyangModel::where(['sjid' => $userid, 'cd' => 1])
            ->order('ci', 'desc')
            ->select();
//统计,如果用不到可忽略
        $total= count(BaoyangModel::where(['sjid' => $userid, 'cd' => 1])
            ->order('ci', 'desc')
            ->select());
    }else{
        $hdata = BaoyangModel::where(['sjid' => $userid, 'cd' => 1])
            ->whereLike('didian|btime|cid',"%".$val."%")
            ->order('ci', 'desc')
            ->select();
//统计,如果用不到可忽略
        $total = count(BaoyangModel::where(['sjid' => $userid, 'cd' => 1])
            ->whereLike('didian|btime|cid',"%".$val."%")
            ->order('ci', 'desc')
            ->select());
    }
    $data = [
        'code' => 0,  //status
        'msg' => '数据加载中',  //message
        'total' => $total,  //统计,如果用不到可忽略
        'data' => $hdata    //rows.item
    ];
    return json($data);//输出JSON

}

回复

使用道具 举报

134

主题

52

回帖

4913

积分

版主

积分
4913
 楼主| 发表于 2021-7-6 09:34:02 | 显示全部楼层
备注一下:这是官方自带的组件,JS中不需要引用的。如果需要CSS,请参照一下pages/picker//picker.vue,
因为本人创建项目的时候都是选择演示数据带组件、接口、模板的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|再加计算机 ( 鲁ICP备19060125号-10|鲁公网安备37028102001711号 )

GMT+8, 2026-9-11 19:59 , Processed in 0.086712 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表