优化业务/系统字典功能,数据类型数量可改变,可任意组合菜单(作用域必须单独),页面自动设定权限,组合菜单时数据类型超过1种,列表页面条件搜索添加数据类型条件。

修订校验时浏览器的兼容问题,
This commit is contained in:
zhangshilin
2018-03-31 17:23:11 +08:00
parent 894661a8b8
commit aa84684b3b
19 changed files with 330 additions and 666 deletions

View File

@@ -1,6 +1,7 @@
package com.nis.web.controller.basics;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -22,6 +23,7 @@ import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.util.ConfigDictUtils;
import com.nis.util.Configurations;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
@@ -43,21 +45,6 @@ public class SysDictInfoController extends BaseController {
}
/**
* 根据sysDictId查出配置对象
* @param sysDictId
* @param request
* @param response
* @param model
* @return
*/
@ResponseBody
@RequestMapping(value = "loadDataDict")
public SysDictInfo loadDataDict(@RequestParam(required=false) Integer sysDictId,HttpServletRequest request, HttpServletResponse response, Model model){
return sysDictInfoService.getDictById(sysDictId);
}
/**
* 查询业务辅助表-生效范围系统字典信息列表(无条件分页查询)
@@ -71,13 +58,9 @@ public class SysDictInfoController extends BaseController {
@RequestMapping(value = {"list", ""})
public String list(String itType, SysDictInfo sysDictInfo,HttpServletRequest request, HttpServletResponse response, Model model) {
//处理数据
String[] strArr = itType.split("-");
Integer[] intArr = new Integer[strArr.length];
for(int i=0;i<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
}
if(intArr.length==1){
model.addAttribute("specType", intArr[0]);
List<Integer> intArr = ConfigDictUtils.dealTypeCondition(Configurations.getStringProperty("SYS_DICT_ITM_TYPE", ""), itType);
if(intArr.size()==1){
model.addAttribute("specType", intArr.get(0));
}
String searchType = null;
String searchContent = null;
@@ -127,7 +110,7 @@ public class SysDictInfoController extends BaseController {
//处理下级序号
SysDictInfo.addChildrenSeq(list, 0);
model.addAttribute("itType", itType);
model.addAttribute("intArr", Arrays.asList(intArr));
model.addAttribute("intArr", intArr);
model.addAttribute("list", list);
return "/basics/sysDictList";
}
@@ -145,20 +128,16 @@ public class SysDictInfoController extends BaseController {
model.addAttribute("specType", sysDictInfo.getItemType());
return "/basics/sysDictInfo";
}
if (sysDictInfo.getParent() == null || sysDictInfo.getParent().getSysDictId() == null) {
if (sysDictInfo==null||sysDictInfo.getParent() == null || sysDictInfo.getParent().getSysDictId() == null) {
SysDictInfo parent = new SysDictInfo();
parent.setSysDictId(0);
sysDictInfo.setParent(parent);
}
String[] strArr = itType.split("-");
Integer[] intArr = new Integer[strArr.length];
for(int i=0;i<strArr.length;i++){
intArr[i] = Integer.valueOf(strArr[i]);
List<Integer> intArr = ConfigDictUtils.dealTypeCondition(Configurations.getStringProperty("SYS_DICT_ITM_TYPE", ""), itType);
if(intArr.size()==1){
model.addAttribute("specType", intArr.get(0));
}
if(intArr.length==1){
model.addAttribute("specType", intArr[0]);
}
model.addAttribute("intArr", Arrays.asList(intArr));
model.addAttribute("intArr", intArr);
model.addAttribute("sysDictInfo", sysDictInfo);
model.addAttribute("itType", itType);
return "/basics/sysDictForm";
@@ -298,7 +277,7 @@ public class SysDictInfoController extends BaseController {
*/
@ResponseBody
@RequestMapping(value = "ajaxChildrenType")
public boolean ajaxChildrenType(Integer parent,Integer newItemType) {
public boolean ajaxChildrenType(Integer parent,Integer itemType) {
if(parent==null){
return true;
}
@@ -308,7 +287,7 @@ public class SysDictInfoController extends BaseController {
return true;
}else{
for(SysDictInfo sysDictInfo:list){
if(sysDictInfo.getItemType()==newItemType){
if(sysDictInfo.getItemType()==itemType){
return true;
}
}
@@ -388,14 +367,41 @@ public class SysDictInfoController extends BaseController {
return true;
}
}else{
SysDictInfo c = sysDictInfoService.getDictById(currentId);
if((p.getLevelNo()+c.getLevelNo())<(max+1)){
return true;
if(p.getLevelNo()<max){
//查出该节点所有下级的层级数之和
List<SysDictInfo> list = sysDictInfoService.getDictByParentId(currentId);
if(list==null||list.size()==0){
return true;
}
List<SysDictInfo> resultList = Lists.newArrayList();
List<Integer> intList = Lists.newArrayList();
allTreeNode(1,list,resultList);
for(SysDictInfo se:resultList){
intList.add(se.getLevelNo());
}
int x = Collections.max(intList);
if((p.getLevelNo()+x)<(max+1)){
return true;
}
}
}
}
return false;
}
/**
* 查出所该节点下有树形子节点
*/
private void allTreeNode(int levelNo, List<SysDictInfo> list, List<SysDictInfo> resultList) {
if(list!=null&&list.size()>0){
for(SysDictInfo se:list){
se.setLevelNo(levelNo+1);
resultList.add(se);
List<SysDictInfo> newList = sysDictInfoService.getDictByParentId(se.getSysDictId());
allTreeNode(se.getLevelNo(),newList,resultList);
}
}
}
}