问题描述:根据所属部门查询所在项目,根据所在项目查询审批人
1、页面代码如图所示
 所属部门:
<select name="departmentId" id="departmentId" style="width:145px;">
<option value="">全部</option>
#foreach($department in $departmentInfos)
<option value="$department.departmentId" #if($departmentId==$department.departmentId)
selected #end >$department.departmentName</option>
#end
</select>
所属项目:
<select name="projectId" id="contractNo" style="width:147px;">
<option value="">请选择</option>
#foreach($projectInfo in $projectInfos)
<option value="$!projectInfo.contractNo" #if($projectId==$!projectInfo.contractNo)
selected #end>$!projectInfo.projectName</option>
#end
</select>
审批人:
<select name="verifyId" id="verifyName" style="width:147px;">
<option value="">全部</option>
#foreach($verifyName in $verifyNames)
<option value="$!verifyName.employeeId" #if($verifyId==$!verifyName.employeeId)
selected #end>$!verifyName.employeeName</option>
#end
</select>
2、js代码如图所示
/*更改部门下拉框选择时动态更新项目列表*/
$(function(){
$("#departmentId").change(function(){
var departmentId = $("#departmentId").val();
//更改所选部门数据
$("#contantNo").empty();
if(departmentId != null && departmentId !=""){
changeDepartmentChangeProjecjtData(departmentId)
}else{
changeDepartmentChangeProjecjtData(departmentId);
}
});
});
/*更改项目下拉框选择时动态更新审批人列表*/
$(function(){
$("#contractNo").change(function(){
var contractNo = $("#contractNo").val();
//更改所选项目数据
$("#verifyName").empty();
if(contractNo != null && contractNo !=""){
changeContractNoChangeVerifyName(contractNo);
}else{
changeContractNoChangeVerifyName(contractNo);
}
});
});
/**
* 更改部门更改项目信息
* @param companyId
*/
function changeDepartmentChangeProjecjtData(departmentId){
try {
jQuery.ajax({
type: "POST",
dataType: "json",
url:contextPath+"/employee/employeeScore_changeDeptidByProjectList"+webtype,
data:{departmentId:departmentId},
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(data) {
DeleteOptions();
DeleteOptions1();
if(data && data.length>0){
$("#contractNo").append("<option value=''>请选择</option>");
for(var object in data){
$("#contractNo").append("<option value='"+data[object].contractNo+"'>"+data[object].projectName+"</option>");
}
}
}
});
}catch(e){
$.jBox.closeTip();
$.jBox.info(e.description, "温馨信息提示");
}
}
/**
* 更改项目更改审批人信息
* @param companyId
*/
function changeContractNoChangeVerifyName(contractNo){
try {
jQuery.ajax({
type: "POST",
dataType: "json",
url:contextPath+"/employee/employeeScore_changeVerifyNameByContractNo"+webtype,
data:{contractNo:contractNo},
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(data) {
DeleteOptions1();
if(data && data.length>0){
$("#verifyName").append("<option value=''>请选择</option>");
/*data=JSON.parse(data);*/
console.log(data)
for(var i=0,l=data.length;i<l;i++){
$("#verifyName").append("<option value='"+data[i].employeeId+"'>"+data[i].employeeName+"</option>");
}
}
}
});
}catch(e){
$.jBox.closeTip();
$.jBox.info(e.description, "温馨信息提示");
}
}
function DeleteOptions()
{
var mySelect = document.getElementById("contractNo");
mySelect.options.length=0
}
function DeleteOptions1()
{
var mySelect = document.getElementById("verifyName");
mySelect.options.length=0
}
3、java代码
/**
* 根据部门信息选择项目信息
*/
public void changeDeptidByProjectList() throws Exception {
OnlineObject onlineObject = (OnlineObject) getServletRequest().getSession().getAttribute(GlobeSDK.LoginObj.OPERATIONOBJ);
List<ProjectInfo> projectInfoList = new ArrayList<>();
List<ProjectInfo> projectInfoList1 = onlineObject.getProjectListByRole();
projectInfoList = projectInfoList1.stream().filter(projectInfo ->
departmentId != null && projectInfo != null && departmentId.equals(projectInfo.getDepartmentId())
).collect(Collectors.toList());
JSONArray json = JSONArray.fromObject(projectInfoList);
if (StringUtils.isBlank(departmentId)) {
json = JSONArray.fromObject(this.getOnlineObject().getProjectListByRole());
}
this.outPutAjax(json.toString());
}
/**
* 根据项目信息选择审批人信息
*/
public void changeVerifyNameByContractNo() throws Exception {
OnlineObject onlineObject = (OnlineObject) getServletRequest().getSession().getAttribute(GlobeSDK.LoginObj.OPERATIONOBJ);
OnlineObject onlineObject2 = new OnlineObject();
onlineObject2.setRoleId(onlineObject.getRoleId());
EmployeeScore employeeScore = new EmployeeScore();
if (contractNo != null && contractNo != "" && !contractNo.equals("")) {
employeeScore.setContractNo(contractNo);
}
List<EmployeeInfo> verifyName = employeeScoreService.selectVerifyName(employeeScore);
JSONArray json = JSONArray.fromObject(verifyName);
this.outPutAjax(json.toString());
}