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);
					})
				})
			});
		},

這樣一個三級聯動以及回顯就完成了!

在這裏插入圖片描述
在這裏插入圖片描述
這樣就好了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章