<template>
<el-card>
<el-row :gutter="20" class="header">
<el-col :span="7">
<el-input placeholder="请输入用户昵称..." v-model="queryForm.query" clearable></el-input>
</el-col>
<el-button type="primary" :icon="Search" @click="initUserList">搜索</el-button>
</el-row>
<el-table :data="tableData" stripe style="width: 100%">
<el-table-column prop="id" label="#ID" width="80"/>
<el-table-column prop="nickName" label="用户昵称" width="200"/>
<el-table-column prop="avatarUrl" label="头像" width="200">
<template v-slot="scope">
<img :src="scope.row.avatarUrl" width="50" height="50">
</template>
</el-table-column>
<el-table-column prop="openid" label="openID"/>
<el-table-column prop="registerDate" label="注册日期" width="200"/>
<el-table-column prop="lastLoginDate" label="最后登录日期" width="200"/>
</el-table>
<el-pagination
v-model:currentPage="queryForm.pageNum"
v-model:page-size="queryForm.pageSize"
:page-size="[10,20,30,40,50]"
layout="total,sizes,prev,pager,next,jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</el-card>
</template>
<script setup>
import { Search } from '@element-plus/icons-vue'
import { ref } from 'vue'
import axios from '@/util/axios'
const queryForm=ref({
query:'',
pageNum:1,
pageSize:10
})
const total=ref(0)
const tableData=ref([])
const initUserList=async()=>{
const res=await axios.post("admin/user/list",queryForm.value)
tableData.value=res.data.userList;
total.value=res.data.total;
}
initUserList();
const handleSizeChange=(pageSize)=>{
queryForm.value.pageNum=1;
queryForm.value.pageSize=pageSize;
initUserList();
}
const handleCurrentChange=(pageNum)=>{
queryForm.value.pageNum=pageNum;
initUserList();
}
</script>
<style lang="scss" scoped>
.header{
padding-bottom: 16px;
box-sizing: border-box;
}
.el-pagination{
padding-top: 15px;
box-sizing: border-box;
}
</style>
package com.java1234.controller.admin;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.java1234.entity.PageBean;
import com.java1234.entity.R;
import com.java1234.entity.WxUserInfo;
import com.java1234.service.IWxUserInfoService;
import com.java1234.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 后台管理-用户Controller控制器
*/
@RestController
@RequestMapping("/admin/user")
public class AdminUserController {
@Autowired
private IWxUserInfoService wxUserInfoService;
/**
* 根据条件分页查询用户信息
* @param pageBean
* @return
*/
@RequestMapping("/list")
public R list(@RequestBody PageBean pageBean){
System.out.println(pageBean);
String query=pageBean.getQuery().trim();
Page<WxUserInfo> page=new Page<>(pageBean.getPageNum(),pageBean.getPageSize());
Page<WxUserInfo> pageResult = wxUserInfoService.page(page, new QueryWrapper<WxUserInfo>().like(StringUtil.isNotEmpty(query), "nickName", query));
Map<String,Object> map=new HashMap<>();
map.put("userList",pageResult.getRecords());
map.put("total",pageResult.getTotal());
return R.ok(map);
}
}
package com.java1234.entity;
/**
* 分页Model类
* @author java1234_小锋
* @site www.java1234.com
* @company Java知识分享网
* @create 2020-02-16 上午 11:05
*/
public class PageBean {
private int pageNum; // 第几页
private int pageSize; // 每页记录数
private int start; // 起始页
private String query; // 查询参数
public PageBean() {
}
public PageBean(int pageNum, int pageSize, String query) {
this.pageNum = pageNum;
this.pageSize = pageSize;
this.query = query;
}
public PageBean(int pageNum, int pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getStart() {
return (pageNum-1)*pageSize;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
}