若依框架学习笔记: 模糊查找实现

前言

这里要实现通过前端传入的查询条件进行模糊查询,同时涉及到多表查询

1. 解决方案

前端

在data中声明向后端传递的对象 queryParams

// 查询参数
queryParams: {
        pageNum: 1,
        pageSize: 10,
        subjectId: null,
        subjectEnglishname: null,
        subjectName: null,
        subjectIntro: null,
        iconPath: null,
        deleted: null,
        majorName: null
}

前端执行方法 handleQuery() 通过 queryParams 传递查询条件

v-model="queryParams.subjectName" 对输入的数据与 subjectName 进行双向绑定

<el-form-item label="课程名称" prop="subjectName">
        <el-input
          v-model="queryParams.subjectName"
          placeholder="请输入课程名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
</el-form-item>
// 操作按钮
<el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>

handleQuery 具体实现

此处的 queryParams 通过上述代码中 v-model 对 subjectName进行绑定

 /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1
      this.getList()
    },
 /** 查询课程列表 */
    getList() {
      this.loading = true
      listSubject(this.queryParams, this.queryParams.majorName).then(response => {
        this.subjectList = response.rows
        this.total = response.total
        this.loading = false
      })
    }

listSubject() 方法

发送请求,同时携带 query 对象传递给后端用于查询操作

// 查询课程列表
export function listSubject(subject, major) {
  return request({
    url: '/system/subject/listSubject',
    method: 'get',
    params: subject, major
  })
}

后端

前端传递的为空参数时将会查询全部课程

    public TableDataInfo querySubjectInformation(Subject subject, Major major) {
        QueryWrapper<Subject> queryWrapper = new QueryWrapper<>();
        List<Subject> list = new ArrayList<>();
        // 前端传入关于majord的唯一参数为majorName
        if (major.getMajorName() != null) {
            startPage();
            list = subjectService.listSubjectByMajorName(major.getMajorName());
        } else {
            if (subject.getSubjectName() != null) {
                queryWrapper.like("subject_name", subject.getSubjectName());
            }
            if (subject.getSubjectEnglishname() != null) {
                queryWrapper.like("subject_englishname", subject.getSubjectEnglishname());
            }
            if (subject.getSubjectId() != null) {
                queryWrapper.eq("subject_id", subject.getSubjectId());
            }
            if (subject.getDeleted() != null) {
                queryWrapper.eq("deleted", subject.getDeleted());
            }
            startPage();
            list = subjectService.list(queryWrapper);
        }
        // 打印list,用于调试
        System.out.println(list);
        return getDataTable(list);
    }
  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值