Spring Boot Jeefast等java框架实现多级联动以及回显规功能

Spring Boot Jeefast等java框架实现多级联动以及回显规功能

在实际的项目中多级联动和回显功能是最长用的功能之一,比如在录入家庭住址,学校录入学生成绩的时候就会用到,那么怎么做呢???

联动的原理实际上就是sql语句的条件查询,根据不同对象的相同属性来选择出符合条件的对象
回显实际上就是反联动
我们以年级 => 班级 => 学生的三级联动为案例
首先进行建表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们依次建好三个表,字段根据自己需要添加或删除

同时在写好HTML

<select v-model="gid" class="form-control" @change="lnj(gid)">
	<option value="0">请选择年级</option>
	<option v-for="n in njall" :value="n.gid">{{n.gname}}</option>
</select>
<select v-model="ccid" class="form-control" @change="lclass(ccid)">
	<option value="0">请选择班级</option>
	<option v-for="c in claall" :value="c.cid">{{c.cname}}</option>
</select>
<select v-model="ssid" class="form-control">
	<option value="0">请选择学生</option>
	<option v-for="s in stuall" :value="s.sid">{{s.sname}}</option>
</select>

在这里首先年级是需要自动查询出全部的,所以需要写好方法在进入添加或修改的时候自动调用,
JS:

qnjall: function(){
			$.get(baseURL + "stu/nj/all", function(r){
				vm.njall = r.all;
			});
		},

控制器:

/**
	 * 查询全部
	 */
	@RequestMapping("/all")
	@RequiresPermissions("stu:nj:all")
	public R all(){
		List<StuNj> list=stuNjService.selectList(new EntityWrapper<StuNj>());
		return R.ok().put("all", list);
	}

在选完年级后根据年级的ID来进行找相应的班级
JS:

lnj:function(gid){
			$.get(baseURL + "stu/class/lian/"+gid, function(r3){
				vm.ccid=0;
				vm.claall = r3.lian;
				vm.ccid=vm.student.ccid;
				//vm.claall.ccid=vm.ccid;
			});
		},

控制器:

/**
	 * 联动查询全部
	 */
	@RequestMapping("/lian/{gid}")
	@RequiresPermissions("stu:class:lian")
	public R lian(@PathVariable("gid") Long gid){
		//查询列表数据
		List<StuClass> lian = stuClassService.selectList(new EntityWrapper<StuClass>().eq("gid", gid));		
		return R.ok().put("lian", lian);
	}

然后就是根据班级找学生了,

JS:

lclass:function(ccid){
			$.get(baseURL + "stu/student/lian/"+ccid, function(r4){
				vm.ssid=0;
				vm.stuall = r4.lian;
				vm.ssid=vm.notice.ssid;
			    // alert(JSON.stringify(r));
				//vm.notice.ssid=vm.ssid;
			});
		},

控制器:

/**
	 * 联动查询全部
	 */
	@RequestMapping("/lian/{ccid}")
	@RequiresPermissions("stu:student:lian")
	public R lian(@PathVariable("ccid") Long ccid){
		//查询列表数据
		List<StuStudent> lian = studentService.selectList(new EntityWrapper<StuStudent>().eq("ccid", ccid));
		return R.ok().put("lian", lian);
	}

到这里三级联动就好了,接下来就是回显的问题了
回显就是反联动 ;联动是 年级 =》 班级 =》 学生
回显:学生=》班级=》年级=》班级 =》 学生,
代码如下

getNotice: function(noticeId){
			$.get(baseURL + "stu/result/info/"+noticeId, function(r){
				vm.notice = r.notice;
				vm.time=vm.notice.retime;
				$("#date").val(vm.time);
			 //alert(JSON.stringify(r));
				$.get(baseURL + "stu/student/info/"+r.notice.ssid, function(s){
					//alert(JSON.stringify(r1.student));
					vm.student=s.student;
					// alert(vm.ccid);
					$.get(baseURL + "stu/class/info/"+s.student.ccid, function(c){
					   // alert(JSON.stringify(r2.notice));
						vm.gid=c.notice.gid;
						vm.lnj(c.notice.gid);
						vm.lclass(s.student.ccid);
					})
				})
			});
		},

这样一个三级联动以及回显就完成了!

在这里插入图片描述
在这里插入图片描述
这样就好了

发布了34 篇原创文章 · 获赞 5 · 访问量 2254

猜你喜欢

转载自blog.csdn.net/tanfei_/article/details/103565614
今日推荐