問題描述:根據所屬部門查詢所在項目,根據所在項目查詢審批人
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());
}