传值过程
通过html里面的下拉框中写的v-model赋值到vm里面,在通过vm赋值给js方法,然后在传递给Controller调用方法,最后给xml执行sql语句
数据库字段
通过传递grade和school(传递多参数)判断class进行二级联动
传递多个参数就用map集合,查哪里就在那里写
多参数的传递只改变dao层和impl层
dao层
PfClassDao(传递多参的方法)
List<PfClasses> findByClasses(Map<String,Integer> map);
PfClassesService
List<PfClasses> findByClasses(int classesSchool,int classesGrade);
PfClassesServiceImpl(覆写方法)
@Override
public List<PfClasses> findByClasses(int classesSchool,int classesGrade) {
Map<String,Integer> map = new HashMap<>();
map.put("classesSchool",classesSchool);
map.put("classesGrade",classesGrade);
return pfClassesDao.findByClasses(map);
}
Controller层
PfClassesContrroller
/**
* 表连接班级的信息-下拉框
*/
@RequestMapping("/findByClasses/{classesSchool}/{classesGrade}")
@RequiresPermissions("platform:classes:findAll")
public R findByClasses(@PathVariable("classesSchool") int classesSchool,
@PathVariable("classesGrade") int classesGrade){
List<PfClasses> classesList = pfClassesService.findByClasses(classesSchool,classesGrade);
return R.ok().put("classesList", classesList);
}
PfGradeController
/**
* 表连接年级的信息-下拉框
*/
@RequestMapping("/gradeList")
@RequiresPermissions("platform:grade:info")
public R gradeList(){
Map<String,Object> map = new HashMap<>();
List<PfGrade> gradeList = pfGradeService.selectByMap(map);
return R.ok().put("gradeList", gradeList);
}
PfSchoolController
/**
* 表连接学校的信息-下拉框
*/
@RequestMapping("/schoolList")
@RequiresPermissions("platform:school:info")
public R schoolList(){
Map<String,Object> map = new HashMap<>();
List<PfSchool> schoolList = pfSchoolService.selectByMap(map);
return R.ok().put("schoolList", schoolList);
}
js页面
vm里面的参数都是自定义的,自己定义在哪就写哪里,
主要用于接收参数,和设置默认初始值
定义数组用于存储接受的数值(data直系下)
获取学校和年纪
getSchoolName: function(){//校区
// var classesSchool=vm.q.classesSchool;
// alert(111)
$.post(baseURL + "platform/school/schoolList/", function(r){
// alert(222);
// alert(JSON.stringify(r))
if(r.code==0){
vm.schoolList=r.schoolList;
}
});
},
getGradeName: function(){//年级
// var classesGrade=vm.q.classesGrade;
$.post(baseURL + "platform/grade/gradeList/", function(r){
// alert(JSON.stringify(r))
if(r.code==0){
vm.gradeList=r.gradeList;
vm.q.classesGrade = 0;
vm.q.classesClass = '';
}
});
},
传递参数的方法(联动获取班级)
getClassesName: function(){
var classesSchool=vm.q.classesSchool;
var classesGrade=vm.q.classesGrade;
$.post(baseURL + "platform/classes/findByClasses/"+classesSchool+"/"+classesGrade, function(r){
//alert(JSON.stringify(r))
vm.classesList=r.classesList;
vm.q.classesClass = 0;
});
},
多条件查询主要写reload方法
reload: function () {
vm.showList = true;
var page = $("#jqGrid").jqGrid('getGridParam','page');
$("#jqGrid").jqGrid('setGridParam',{
postData:{
'classesClass1': vm.q.title,
'classesSchool': vm.q.classesSchool,
'classesGrade': vm.q.classesGrade,
'classesClass': vm.q.classesClass,
},
page:page
}).trigger("reloadGrid");
}
html页面
数值都是通过v-model传递的(vue的双向绑定)
<div class="form-group col-sm-2">
<select class="form-control" v-model="q.classesSchool" @change="getGradeName" id="classesSchool">
<option value="0">--请选择校区--</option>
<option v-for="v in schoolList" :value="v.schoolId">{{v.schoolName}}</option>
</select>
</div>
<div class="form-group col-sm-2">
<select class="form-control" v-model="q.classesGrade" @change="getClassesName" id="classesGrade">
<option value="0">--请选择年级--</option>
<option v-for="v in gradeList" :value="v.gradeId">{{v.gradeName}}</option>
</select>
</div>
<div class="form-group col-sm-2">
<select class="form-control" v-model="q.classesClass" id="classesClass">
<option value="">--请选择班级--</option>
<option v-for="v in classesList" :value="v.classesClass">{{v.classesClass}}</option>
</select>
</div>
PfClassesDao.xml页面
js页面最后的reload方法赋值给谁,这里就用谁进行查询
最后就这样