数据库
users表
!角色表在这里插入图片描述
entity封装类
private Integer id;
private String name;
private String url;
private Integer lev;
private Integer pid;
private List<Menu> Chilenmenu;
//getandset方法
dao层
List<Menu> menuone(@Param("userid")Integer userid);
List<Menu> menutwo(@Param("userid")Integer userid,
@Param("Menuone")Menu Menuone);
//一级标签 根据userid查询一级菜单
//再根据 userid 和一级标签 查询除对应的二级标签
service层
List<Menu> menuone(Integer userid);
List<Menu> menutwo(Integer userid,Menu Menuone);
serviceImpi层
public List<Menu> menuone(Integer userid) {
return userDao.menuone(userid);
}
public List<Menu> menutwo(Integer userid,Menu Menuone) {
return userDao.menutwo(userid,Menuone);
}
controller层
public List<Menu> showmenu(@RequestParam("userid")Integer userid){
List<Menu> Menuone = userService.menuone(userid);
for (Menu menu : Menuone) {
List<Menu> Menutwo = userService.menutwo(userid,menu);
menu.setChilenmenu(Menutwo);
}
return Menuone;
}
mapper.xml
<resultMap id="menuoneMap" type="com.aaa.entity.Menu">
<id column="id" property="id"></id>
<result column="name" property="name"></result>
<result column="url" property="url"></result>
<result column="lev" property="lev"></result>
<result column="pid" property="pid"></result>
</resultMap>
<select id="menuone" resultMap="menuoneMap">
select distinct m.id,m.name,m.url,m.lev,m.pid
from users u left join role r on u.rid = r.id left join
role_menu rm on r.id = rm.rid left join menu m on rm.mid = m.id
where u.id = #{userid} and lev = 1
</select>
<select id="menutwo" resultMap="menuoneMap">
select distinct m.id,m.name,m.url,m.lev,m.pid
from users u left join role r on u.rid = r.id left join
role_menu rm on r.id = rm.rid left join menu m on rm.mid = m.id
where u.id = #{userid} and lev = 2 and m.pid =#{Menuone.id}
</select>
Vue
showmenu(){
axios.get("http://localhost:8080/showmenu?userid="+this.userid).then((res)=>{
console.log(res.data);
this.menu = res.data;
}).catch((err)=>{
console.log("未知错误"+err);
})
},
html 页面代码
<ul v-for="item in menu">
<li @click="bian(falge)">{{item.name}}
<ul v-for="itemtwo in item.chilenmenu">
<li v-if="falge"><a :href="itemtwo.url" target="iframe">{{itemtwo.name}}</a></li>
</ul>
</li>
</ul>
由于注释很少 大家可以直接提问 有求必应
有个错误 就是 后台逻辑代码应该写到seviceimpl层 不应该写到controller