您的位置:首页 > 汽车 > 新车 > 商品分页,商品模糊查询

商品分页,商品模糊查询

2024/12/23 11:37:12 来源:https://blog.csdn.net/m0_74356429/article/details/140229548  浏览:    关键词:商品分页,商品模糊查询

一、商品分页

引入分页

定义分页主件的参数

 

在请求url上拼接参数

 定义改变当前页码后触发的事件,把当前页码的值给到分页表单,重新查询

二、商品查询(以商品的名称查询name为例)

 引入elementplus的from表单组件

定义一个FormData函数用于存放表单对象 

 

定义按钮的点击事件

 在请求中拼接参数

 后端实现模糊查询,在查询语句中使用函数拼接

问题:

直接点击查询按钮,即使不传参数也会在查询语句中拼接 

解决方法:

1、在后端查询语句判断是否等于空

2、 在前端加上三元运算符进行判断

 三、代码:

<template><!-- 用于查询的表单 --><el-form :inline="true" :model="FormData"><el-form-item label=""><el-form-item label="商品查询"><el-input v-model="FormData.name" /></el-form-item></el-form-item><el-form-item><el-button type="primary" @click="onQuery">查询</el-button></el-form-item></el-form><!-- 用于存放数据的表格 --><el-table :data="tableData" style="width: 100%"><el-table-column prop="id" label="商品id" width="150" /><el-table-column prop="name" label="商品名称" width="120" /><el-table-column prop="categoryId" label="商品分类" width="120" /><el-table-column fixed="right" label="Operations" min-width="120"><template #default><el-button type="primary" size="small">修改</el-button><el-button type="danger" size="small">删除</el-button></template></el-table-column></el-table><br/><!-- 引入elementPluse分页组件 --><el-pagination background layout="prev, pager, next" :total=pageDate.total :page-size = pageDate.pageSize :current-page ="pageDate.pageNum" @current-change="changePage"/>
</template><script setup lang="ts">import {ref,onMounted, reactive} from 'vue';import http from '@/http';const tableData = ref<any>([])onMounted(()=>{//调用查询商品信息函数callProductApi()})const FormData = reactive({name:"",
})const onQuery = () =>{//点击按钮时,重新查询数据刷新页面callProductApi()console.log(FormData.name)
}const changePage = (pageNum: number) =>{console.log(pageNum)pageDate.pageNum=pageNum//改变了当前页的值,重新查询刷新页面callProductApi()}const pageDate = reactive({total:10,pageSize:2,pageNum:1, })//定义查询商品信息函数const callProductApi = () =>{let name = FormData.name==''? undefined :FormData.namehttp.get('/api/product',{pageNum: pageDate.pageNum,pageSize:pageDate.pageSize,name:name}).then(res =>{tableData.value=res.itmesconsole.log(res)pageDate.total = res.total})}</script>

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com