后台管理系统如何实现搜索功能

目录

一、前期准备

1.部分代码

 2.效果

3.需求

二、实战

1.User.vue

2.api.js

3.看效果


一、前期准备

1.部分代码

(1)api代码,有一个 getUserData()

 getUserData() {
        return request({
            url: '/user/getUserData',
            method: 'get',
        })
    },

(2)User.vue代码

element官网:https://element-plus.org/zh-CN/component/form.html

<el-form :inline="true" >
            <el-form-item label="请输入">
                <el-input placeholder="请输入用户名"  />
            </el-form-item>
             <el-form-item >
            
                 <el-button type="primary"  >搜索</el-button>
            </el-form-item>
 </el-form>

 2.效果

3.需求

我们要在<el-input />的文本框内输入内容,然后点击搜索按钮,最后展示搜索结果 

二、实战

1.User.vue

  • 定义了一个名为formInline的响应式对象,它包含一个名为keyWord的属性,用于存储用户输入的关键字。
  • 定义一个搜索方法
  • 定义一个名为config的响应式对象,它包含一个名为name的属性,用于存储传递给服务器的搜索关键字。
const formInline = reactive({
    keyWord : ''
})

const handleSearch = ()=>{

}

const config = reactive({
    name:''
})
  • el-form组件的model属性绑定到名为formInline的Vue实例数据属性上

    :model="formInline" 表示表单的数据模型绑定到名为 formInline 的对象上。

  • 输入框的值与 formInline.keyWord 进行关联v-model="formInline.keyWord" 是一个双向绑定
  • 给按钮绑定一个handleSearch的方法
<el-form :inline="true" :model="formInline" >
            <el-form-item label="请输入">
                <el-input placeholder="请输入用户名"  v-model="formInline.keyWord"/>
            </el-form-item>
             <el-form-item >
                <!-- 给搜索功能绑定一个方法handleSearch -->
                 <el-button type="primary" @click="handleSearch" >搜索</el-button>
            </el-form-item>
 </el-form>

补充搜素方法的代码

  • 把我们输入的关键字 formInline.keyWord 赋值给存储传递给服务器的搜索关键字 config.name
  • 调用getUserData()方法
// 搜索方法
const handleSearch = ()=>{
    // formInline.keyWord的值赋给config.name,
    config.name = formInline.keyWord
    // 然后调用getUserData方法来获取用户数据。
    getUserData()
}

补充getUserData()方法,把config作为参数传进去

const getUserData = async()=>{
    const data = await proxy.$api.getUserData(config)
    console.log(data)
    tableData.value = data.list.map((item)=>({
        ...item,
        sexLabel : item.sex === 1 ? '男' : '女'
    }))
}

2.api.js

添加data,传递给请求的数据,这里使用了传入的params参数。

  getUserData(params) {
        return request({
            url: '/user/getUserData',
            method: 'get',
            data: params
        })
    },

3.看效果

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 3中实现搜索功能的方法有多种,以下是一种常见的实现方式: 1. 创建一个输入框和一个按钮,用于用户输入搜索关键字和触发搜索操作。 ```html <template> <div> <input type="text" v-model="keyword" placeholder="请输入关键字"> <button @click="search">搜索</button> </div> </template> ``` 2. 在Vue组件的data选项中定义一个变量`keyword`,用于保存用户输入的关键字。 ```javascript export default { data() { return { keyword: '', // 其他数据... } }, // 其他方法... } ``` 3. 在methods选项中定义一个`search`方法,用于处理搜索逻辑。 ```javascript export default { // 其他代码... methods: { search() { // 发起搜索请求或处理搜索逻辑 // 根据关键字进行过滤或发送网络请求等等 // 将搜索结果保存在组件的数据中,供展示使用 }, // 其他方法... } } ``` 4. 在搜索结果展示的地方,使用Vue的指令或计算属性来展示符合搜索条件的数据。 ```html <template> <div> <!-- 根据搜索结果展示数据 --> <ul> <li v-for="item in searchResults" :key="item.id">{{ item.name }}</li> </ul> </div> </template> ``` 5. 在Vue组件的计算属性中定义一个`searchResults`,用于返回符合搜索条件的数据。 ```javascript export default { // 其他代码... computed: { searchResults() { // 根据关键字过滤数据或者根据接口返回的数据进行处理 // 返回符合搜索条件的数据 }, // 其他计算属性... } } ``` 以上是一个简单的搜索功能实现的示例,你可以根据具体需求进行相应的调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值