前端
html
<!-- 搜索 -->
<div style="margin-top: 15px">
<el-select style="width: 150px" v-model="select" placeholder="请选择">
<el-option label="歌手列表" value="list"></el-option>
<el-option label="歌手名" value="singer_name"></el-option>
</el-select>
<el-input
placeholder="请输入内容"
v-model="query_name"
class="input-with-select"
:clearable="true"
@clear="query_clear"
style="width: 550px"
:disabled="select === 'list' ? true : false"
>
<!-- <el-button
slot="append"
@click="query"
icon="el-icon-search"
></el-button> -->
</el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleSearch"
:disabled="select === 'list' ? true : false"
>搜索</el-button
>
</div>
//分页
<div class="pagination">
<el-pagination
background
layout="prev, pager, next"
:current-page="pagination.pageIndex"
:page-size="pagination.pageSize"
:total="pageTotal"
@current-change="handlePageChange"
></el-pagination>
</div>
js
//清除输入框内容
query_clear() {
this.freshList();
this.pageTotal = 1;
this.select = "list";
this.pagination.pageIndex = 1;
},
// 触发搜索按钮
handleSearch() {
this.pagination.pageIndex = 1;
this.query();
},
query() {
let text = this.query_name;
let query_mode = this.select;
let _this = this;
// this.pagination.pageIndex = 1;
if (text != "") {
if (query_mode === "singer_name") {
this.$axios
.get(
"http://localhost:8181/admin/singer/findBySingerName/" +
(_this.pagination.pageIndex - 1) * _this.pagination.pageSize +
"/" +
_this.pagination.pageSize +
"/" +
text
)
.then(function (resp) {
console.log(resp);
switch (resp.data.status) {
case 200: {
_this.pageTotal = resp.data.data.singerCount;
_this.current_list = resp.data.data.singerList;
_this.$message.success("查找成功!");
break;
}
case 400: {
_this.$message.error(resp.data.msg);
_this.$router.push("login");
break;
}
}
});
}
}
else{
this.$message.warning("请输入内容!");
}
},
},
// 分页导航
handlePageChange(val) {
console.log("handlePageChange",val);
this.pagination.pageIndex = val;
this.current_list = [];
if (this.select != "list") {
if(this.query_name != ''){
this.query();
}
else{
this.pageTotal = 1;
}
} else {
this.freshList();
}
},
后端
controller
//查询歌曲:歌手名
@GetMapping({"/admin/music/findBySingerName/{currentPage}/{pageSize}/{singer_name}"})
public Result findBySingerName(@PathVariable Integer currentPage, @PathVariable Integer pageSize,@PathVariable String singer_name){
MyParameter parameter = new MyParameter();
parameter.setSinger_name(singer_name);
return musicService.findBySingerName(currentPage,pageSize,parameter);
}
service
@Override
public Result findBySingerName(Integer cp, Integer ps, MyParameter myParameter){
Map<String,Object> resp = new HashMap<>();
// System.out.println(music);
resp.put("musicCount",mapper.getCountByParameter(myParameter));
resp.put("musicList", mapper.getMusicByParameter(cp,ps,myParameter));
return Result.ok(resp);
}
mapper
<select id="getMusicByParameter" resultType="map">
select s.singer_name,m.id, m.music_name, m.music_lyrics
, m.music_createdate as music_createDate,m.music_src
, m.music_photosrc as music_photoSrc , m.music_introduction, m.music_class,
m.music_downloadscore as music_downloadScore, m.musicvideo_id, m.singer_id
from music m,singer s
<where>
<if test="parameter.singer_name != null">
s.singer_name like "%"#{parameter.singer_name}"%" and
</if>
<if test="parameter.music_name != null">
m.music_name like "%"#{parameter.music_name}"%" and
</if>
m.singer_id = s.id
</where>
limit #{currentPage},#{pageSize}
</select>