From 52874e13b27f92bc21b0a3b079077739841ebdb3 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 23 十月 2024 17:07:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java | 10 Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue | 138 ++++++++ Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue | 30 + Source/plt-web/plt-web-ui/src/views/system/log/index.vue | 170 ++++++++++ Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue | 42 + Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue | 35 + Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue | 28 - Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue | 138 ++++++++ Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue | 41 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java | 2 /dev/null | 16 Source/plt-web/plt-web-ui/src/views/system/user/index.vue | 4 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 26 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java | 1 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 4 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java | 9 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 80 +++- Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js | 57 +++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java | 28 + Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue | 155 +++++++++ 21 files changed, 890 insertions(+), 127 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java index 75c25b0..8cf4b06 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java @@ -1,7 +1,10 @@ package com.vci.dto; +import lombok.Data; + import java.util.List; +@Data public class ClonePortalVIDTOList implements java.io.Serializable{ private List<ClonePortalVIDTO> clonePortalVIDTOList; diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java index 1e26832..c1bbc2b 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java @@ -3,6 +3,7 @@ import lombok.Data; import java.io.Serializable; +import java.util.List; /** * 鏃ュ織鏌ヨ浼犺緭瀵硅薄 @@ -33,4 +34,12 @@ int pageNo; //椤甸潰鏉℃暟 int pageSize; + //鏌ヨ绫诲瀷(绠$悊鍛樻棩蹇�1锛屾櫘閫氭棩蹇�2) + String roleType; + + /** + * 鏍圭粷roleType鏌ヨ鍑烘潵鐨勭敤鎴峰悕锛屽悗缁牴鎹繖涓弬鏁版煡璇㈡寚瀹氱殑鏃ュ織 + */ + private List<String> userNameList; + } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java index 38889a2..576e2b5 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java @@ -160,14 +160,13 @@ */ List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) throws VciBaseException; - /*** + /** * 浜哄憳鏉冮檺閫夋嫨鏍� * @param treeQueryObject * @return * @throws VciBaseException */ List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException; - /** * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5 @@ -265,4 +264,11 @@ */ BaseResult importUser(File file) throws Exception; + /** + * 鏍规嵁瑙掕壊绫诲瀷鏌ヨ鐢ㄦ埛鍚� + * @param roleType + * @return + */ + List<String> queryUserNameByRoleType(String roleType) throws PLException; + } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java index 8aae3cd..f2ba751 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java @@ -975,7 +975,7 @@ return rootTreeList; } - /*** + /** * * @param dataType * @param orgType @@ -1094,7 +1094,7 @@ } } - /*** + /** * * @param oid * @param text @@ -1112,6 +1112,7 @@ } return ObjectTreeNode; } + /** * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5 * @param userOid 鐢ㄦ埛涓婚敭 @@ -1634,4 +1635,25 @@ return BaseResult.success("鐢ㄦ埛瀵煎叆鎴愬姛锛�"); } + /** + * 鏍规嵁瑙掕壊绫诲瀷鏌ヨ鐢ㄦ埛鍚� + * @param roleType + * @return + */ + @Override + public List<String> queryUserNameByRoleType(String roleType) throws PLException { + List<String> userNameList = new ArrayList<>(); + if(Func.isBlank(roleType)){ + return userNameList; + } + String sql = "SELECT PLUSERNAME FROM PLUSER p WHERE PLUID IN " + + "(SELECT PLUSERUID FROM PLUSERROLE p WHERE PLROLEUID IN " + + "( SELECT PLUID FROM PLROLE p WHERE PLTYPE = "+ roleType + "))"; + List<BusinessObject> cbos = boService.queryBySql(sql, null); + cbos.stream().forEach(cbo->{ + userNameList.add(ObjectTool.getNewBOAttributeValue(cbo,"plusername")); + }); + return userNameList; + } + } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java index 0e30296..e35e925 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java @@ -88,6 +88,7 @@ throw new VciBaseException(errorMsg); } } + /** * 鏌ヨ鏃ュ織 * @param dto 鏌ヨ鏉′欢浼犺緭瀵硅薄 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java index 6471de0..3eafa45 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java @@ -142,7 +142,7 @@ return portalVIServiceI.clone(portalVIDTOList) ? BaseResult.success("鍏嬮殕鎴愬姛锛�"):BaseResult.fail("鍏嬮殕澶辫触锛�"); } catch (Throwable e) { e.printStackTrace(); - String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + String exceptionMessage = "鍏嬮殕琛ㄥ崟/琛ㄦ牸鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java index 2392826..bc75fa7 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java @@ -9,6 +9,7 @@ import com.vci.dto.LogInfoDTO; import com.vci.dto.LogPeriodInfoDTO; import com.vci.dto.LogQueryCriteriaDTO; +import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.web.service.*; import com.vci.web.util.*; @@ -41,6 +42,10 @@ */ @Autowired private PlatformClientUtil platformClientUtil; + + @Autowired + private SmUserQueryServiceI userQueryServiceI; + public static final String UTF8_BOM="\uFEFF"; private final String LOG_SAVE_PERIOD = "logSavePeriod";//鏃ュ織淇濆瓨鏈熼檺 @@ -131,8 +136,11 @@ */ @Override public BaseResult getLogListByContion(LogQueryCriteriaDTO queryDto) throws PLException { + List<String> userNameList = userQueryServiceI.queryUserNameByRoleType(queryDto.getRoleType()); + queryDto.setUserNameList(userNameList); String querySql = getSQL(queryDto); LogInfo[] logInfos = platformClientUtil.getLogService().getLogListByContion(queryDto.getPageNo(),queryDto.getPageSize(),querySql); + List<LogInfoDTO> dtos = new ArrayList<>(); for (LogInfo logInfo : logInfos) { LogInfoDTO dto = new LogInfoDTO(); @@ -160,6 +168,7 @@ result.setTotal(sumLogRows); return result; } + /** * 鎿嶄綔鐢ㄦ埛鑾峰彇 */ @@ -233,13 +242,14 @@ } return userNames; } + /** * 鑾峰彇鏌ヨ鏉′欢骞舵嫾鎴怱QL锛屽彧鎷紈here瀛愬彞鍚庨潰鐨凷QL * @return */ public String getSQL(LogQueryCriteriaDTO dto) throws PLException { StringBuffer sql = new StringBuffer(""); -// int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅 + // int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅 int period = platformClientUtil.getLogService().getCurPeriod();;//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅 //涓嬮潰鏄嫾鍑篠QL if(period != 0){ @@ -274,6 +284,21 @@ } sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.General) + "')"); } + if(Func.isNotEmpty(dto.getUserNameList())){ + if(!sql.toString().equals("")){ + sql.append(" and "); + } + if(dto.getUserNameList().size()<=1){ + sql.append(" PLUSER = '").append(dto.getUserNameList().get(0).trim()).append("'"); + }else{ + sql.append(" PLUSER in ("); + String inWhere = dto.getUserNameList().stream() + .map(item -> "'" + item + "'") + .collect(Collectors.joining(",")); + sql.append(inWhere).append(")"); + } + } + if(StringUtils.isNotBlank(dto.getUserName())){//鎿嶄綔鐢ㄦ埛 if(!dto.getUserName().trim().equals("")){//濡傛灉鐢ㄦ埛鍚嶄负绌烘牸鍒欎笉鍔犵敤鎴锋潯浠� if(!sql.toString().equals("")){ @@ -320,6 +345,7 @@ } return sql.toString(); } + protected String getLogTypeString(LogType logType){ String res = ""; if(logType == LogType.Login) { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java index aed9228..f7d0e7b 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java @@ -248,7 +248,7 @@ */ @Override public boolean clone(ClonePortalVIDTOList clonePortalVIDTOList) throws VciBaseException { - if(clonePortalVIDTOList==null||CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){ + if(clonePortalVIDTOList == null || CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){ throw new VciBaseException("璇烽�夋嫨瑕佸厠闅嗙殑瀵硅薄!"); } try { @@ -883,7 +883,7 @@ portalVIVO.setViType(portalVI.viType); portalVIVO.setViTypeText(PortalVIType.getByIntVal(portalVI.viType).getLabel()); - String prm= portalVI.prm; + String prm = portalVI.prm; if(StringUtils.isNotBlank(prm)) { PRMDO prmdo = UITools.getPRM(prm); portalVIVO.setPrm(prmDOO2VOS(prmdo, portalVI.viType)); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index 3f4e4fe..093939e 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -1,5 +1,7 @@ package com.vci.web.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.PLException; import com.vci.corba.common.data.UserEntityInfo; @@ -1776,18 +1778,29 @@ treeQueryObject.setConditionMap(conditionMap); List<Tree> treeList = this.getUIAuthor(treeQueryObject); HashMap<String,Tree> allTreeMap = new HashMap<>(); - Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>(); + //Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>(); if(!CollectionUtil.isEmpty(treeList)){ - if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ + /*if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName); List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos)); roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVOO2DTO(roleRightVO),(oldValue,newValue)->oldValue)); - } + }*/ + convertTreeDOO2Map(treeList,allTreeMap); List<RoleRightDTO> roleRightDTOList = new ArrayList<>(); List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList(); - getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList); + List<Tree> filterSelectTreeList = this.authTreeListConvert(selectTreeList); + //杩囨护鍑洪�夋嫨鐨勬寜閽� + List<String> checkButtonList = new ArrayList<>(); + selectTreeList.stream().forEach(item->{ + Object data = item.getData(); + if(data instanceof PLTabButton || item.isLeaf()){ + checkButtonList.add(item.getOid()); + } + }); + + getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),filterSelectTreeList,checkButtonList,allTreeMap,roleRightDTOList); SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); String currentUserName = sessionInfo.getUserId(); //boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName); @@ -1805,26 +1818,42 @@ } /** + * 鑾峰彇绛涢�夊悗鐨勬暟鎹� + * @param selectTreeList + */ + private List<Tree> authTreeListConvert(List<Tree> selectTreeList){ + // 鍒涘缓涓�涓寘鍚彟涓�涓泦鍚堜腑婊¤冻鏉′欢鐨� oid 鐨勯泦鍚� + List<String> validOids = selectTreeList.stream() + .filter(Tree::isChecked) // checked 涓� true + .map(Tree::getOid) // 鎻愬彇 oid + .collect(Collectors.toList()); + + return selectTreeList.stream() + .filter(tree -> tree.isChecked() && !validOids.contains(tree.getParentId())) // 杩囨护鏉′欢 + .collect(Collectors.toList()); + } + + /** *鏍规嵁鏉冮檺璁$畻涓婁笅鏉冮檺 * @param roleOid * @param selectTreeList * @param allTreeMap * @param roleRightDTOList */ - private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){ - //Date date=new Date(); + private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, List<String> checkButtonList, HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){ Map<String,RoleRightDTO> roleRightDTOMap = new HashMap<>(); + if(!CollectionUtil.isEmpty(selectTreeList)){ selectTreeList.stream().forEach(tree -> { String oid = tree.getOid(); if(allTreeMap.containsKey(oid)){ tree = allTreeMap.get(oid); - Object data = tree.getData(); + Object data = tree.getData(); if (data instanceof String) { - getRightValue(roleOid, tree, allTreeMap, false, roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� + getRightValue(roleOid, tree, allTreeMap, checkButtonList,false, roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� } else if (!(data instanceof PLTabButton)) {//涓氬姟绫诲瀷 - getRightValue(roleOid, tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊 - getRightValue(roleOid, tree, allTreeMap, false, roleRightDTOMap);//鍚戜笅澶勭悊锛堝寘鍚綋鍓嶈妭鐐癸級 + getRightValue(roleOid, tree, allTreeMap, checkButtonList, true, roleRightDTOMap);//鍚戜笂澶勭悊 + getRightValue(roleOid, tree, allTreeMap, checkButtonList, false, roleRightDTOMap);//鍚戜笅澶勭悊锛堝寘鍚綋鍓嶈妭鐐癸級 } else if (data instanceof PLTabButton) {//鎸夐挳 String parrentId=tree.getParentId(); if(allTreeMap.containsKey(parrentId)){ @@ -1833,7 +1862,7 @@ boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName); Tree parentNode= allTreeMap.get(parrentId); String funcId = parentNode.getOid(); - getRightValue(roleOid, tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊璇ユ搷浣滅埗绾х殑涓婄骇妯″潡鏉冮檺(涓嶅寘鍚埗鑺傜偣) + getRightValue(roleOid, parentNode, allTreeMap, checkButtonList, true, roleRightDTOMap);//鍚戜笂澶勭悊璇ユ搷浣滅埗绾х殑涓婄骇妯″潡鏉冮檺(涓嶅寘鍚埗鑺傜偣) if(!roleRightDTOMap.containsKey(funcId)){ RoleRightDTO roleRightDTO = new RoleRightDTO(); roleRightDTO.setId(ObjectUtility.getNewObjectID36());//涓婚敭 @@ -1844,7 +1873,7 @@ }else{ roleRightDTO.setRightType((short) 2); } - roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRightValue(countRightValue(parentNode,checkButtonList,false));// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 roleRightDTO.setRoleId(roleOid);//瑙掕壊ID roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰� roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//鍒涘缓鏃堕棿 @@ -1873,16 +1902,18 @@ * 鑾峰彇鏉冮檺 * @param isUp 鏄惁鏄悜涓婅幏鍙栵紝濡傛灉鏄悜涓婅幏鍙栵紝浼犺繘鏉ョ殑蹇呯劧鏄ā鍧楄妭鐐癸紝涓斾笂绾фā鍧楀繀鐒舵槸娌℃湁閫変腑 */ - private void getRightValue(String roleId,Tree node,HashMap<String,Tree> allTreeMap,boolean isUp,Map<String,RoleRightDTO> rightMap){ + private void getRightValue(String roleId,Tree node,Map<String,Tree> allTreeMap,List<String> checkButton,boolean isUp,Map<String,RoleRightDTO> rightMap){ SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); String currentUserName = sessionInfo.getUserId(); boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); String id=ObjectUtility.getNewObjectID36(); Object data=node.getData(); if(isUp) {//鍚戜笂鑾峰彇锛屽瓨鍌ㄦ瘡涓笂绾фā鍧楃殑鏉冮檺鍊� - while (!"root".equals(node.getData())){ - data=node.getData(); - String oid=node.getOid(); + String parentId = node.getParentId(); + Tree parentNode = allTreeMap.get(parentId); + while (!"root".equals(parentNode.getData())){ + data=parentNode.getData(); + String oid=parentNode.getOid(); if(allTreeMap.containsKey(oid)){ String funcId = ""; if (data instanceof BizType) { @@ -1919,9 +1950,9 @@ if(!rightMap.containsKey(funcId)){ rightMap.put(funcId, roleRightDTO); } - oid= node.getParentId(); + oid = parentNode.getParentId(); if(allTreeMap.containsKey(oid)) { - node=allTreeMap.get(oid); + parentNode = allTreeMap.get(oid); } } } @@ -1965,14 +1996,14 @@ } for (int i = 0; i < node.getChildren().size(); i++) { //瀵规瘡涓瓙鍚戜笅閫掑綊閬嶅巻 - getRightValue(roleId, node.getChildren().get(i), allTreeMap, false, rightMap); + getRightValue(roleId, node.getChildren().get(i), allTreeMap, checkButton,false, rightMap); } } else { if (!rightMap.containsKey(funcId)) { RoleRightDTO roleRightDTO = new RoleRightDTO(); roleRightDTO.setFuncId(funcId); roleRightDTO.setRightType((short) 2); // 璁剧疆UI鏉冮檺 - roleRightDTO.setRightValue(countRightValue(node, true));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRightValue(countRightValue(node, checkButton,true));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 roleRightDTO.setRoleId(roleId); roleRightDTO.setCreateUser(currentUserName); @@ -1992,12 +2023,13 @@ * @param isAll 鏄惁瀛愮骇鍏ㄩ儴閫変腑 * @return */ - private long countRightValue(Tree node,boolean isAll){ + private long countRightValue(Tree node,List<String> checkButton,boolean isAll){ long value = 0; - for(int i = 0;i < node.getChildren().size();i++){ + for(int i = 0; i < node.getChildren().size(); i++){ Tree childNode = (Tree)node.getChildren().get(i); - if(isAll && node.getData() instanceof PLTabButton ){ - PLTabButton obj = (PLTabButton)node.getData(); + //node.getData() instanceof PLTabButton杩欏効搴旇鎹㈡垚鏄惁鏄�変腑鐨勬寜閽妭鐐� + if(isAll || checkButton.contains(node.getOid())){ + PLTabButton obj = (PLTabButton)childNode.getData(); value += (long)Math.pow(2, obj.plSeq);//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬�� } } diff --git a/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue b/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue new file mode 100644 index 0000000..aecd46e --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue @@ -0,0 +1,155 @@ +<template> + <!--鏂囦欢鏌滅鐞�--> + <basic-container> + <avue-crud + ref="fileCrud" + :data="tableData" + :option="option" + :page.sync="page" + :table-loading="tableLoading" + @on-load="getTableList" + @refresh-change="handleRefresh" + @search-change="handleSearch" + @search-reset="handleReset" + @size-change="sizeChange" + @current-change="currentChange" + > + <template slot="menuLeft" slot-scope="scope"> + <el-button icon="el-icon-download" plain size="small" type="primary" @click="allDelHandler">瀵煎嚭</el-button> + </template> + </avue-crud> + </basic-container> +</template> + +<script> +import basicOption from "@/util/basic-option"; +import {getLogListByContion} from "@/api/system/log/logBasic"; + +export default { + name: "index", + data: function () { + return { + tableLoading: false, + tableData: [], + option: { + ...basicOption, + addBtn:false, + editBtn: false, + delBtn: false, + calcHeight: -60, + align:'left', + headerAlign:'center', + menu:false, + searchMenuSpan: 6, + searchIcon:false, + column: [ + { + label: '鐢ㄦ埛鍚�', + prop: 'truename', + search:true, + searchSpan: 4, + searchLabel:'鎿嶄綔鐢ㄦ埛', + type:'select', + dicUrl:'/api/loginBasicController/getOperatingUsers', + sortable:true, + width: 150 + }, { + label: '濮撳悕', + prop: 'username', + sortable:true, + width: 150 + },{ + label: '鐢ㄦ埛IP', + prop: 'userIp', + search:true, + searchSpan: 4, + sortable:true, + width: 150 + },{ + label: '妯″潡', + prop: 'moduleName', + sortable:true, + overHidden: true, + },{ + label: '鎿嶄綔', + prop: 'type', + sortable:true, + width: 150 + },{ + label: '鏃堕棿', + prop: 'date', + type:'date', + search:true, + searchOrder: 1, + searchSpan: 8, + searchRange: true, + searchLabel:'鏌ヨ鏃ユ湡', + valueFormat:'yyyy-MM-dd', + width: 160 + },{ + label: '鎻忚堪', + prop: 'result', + overHidden: true, + width:380, + }, + ] + }, + page: { + currentPage: 1, + pageSize: 50, + total: 0, + pageSizes: [10, 30, 50, 100], + }, + searchParams: {} + } + }, + methods: { + // 琛ㄦ牸璇锋眰 + getTableList() { + this.tableLoading = true; + getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => { + this.tableData = res.data.data; + this.page.total = res.data.total; + this.tableLoading = false; + }) + }, + + // 鎼滅储鏌ヨ + handleSearch(params, done) { + this.searchParams = { + userName:params.truename, + ipText:params.userIp, + startDate:params.date[0], + endDate:params.date[1] + }; + + this.getTableList(); + done(); + }, + + // 閲嶇疆鎼滅储鏉′欢 + handleReset() { + this.searchParams = {}; + this.getTableList(); + }, + + // 鏉℃暟 + sizeChange(val) { + this.page.pageSize = val; + }, + + // 椤电爜 + currentChange(val) { + this.page.currentPage = val; + }, + + handleRefresh(){ + this.getTableList(); + } + } +} +</script> + +<style scoped> + +</style> diff --git a/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js new file mode 100644 index 0000000..47160ae --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js @@ -0,0 +1,57 @@ +import request from '@/router/axios'; + +// 鏃ュ織淇濆瓨鏈熼檺鏌ヨ +export function getPeroid(params) { + return request({ + url: "/api/loginBasicController/getPeroid", + method: "get", + params + }); +} +// 淇濆瓨鏈熼檺淇濆瓨 +export function savePeriod(params) { + return request({ + url: "/api/loginBasicController/savePeriod", + method: "post", + params: params + }); +} +export function deleteLog(params) { + return request({ + url: "/api/loginBasicController/deleteLog", + method: "delete", + params + }) +} + +//鑾峰彇鎿嶄綔鐢ㄦ埛 +export function getOperatingUsers( params) { + return request({ + url: "/api/loginBasicController/getOperatingUsers", + method: "get", + params + }); +} + +export function getLogListByContion(page, limit, params) { + return request({ + url: "/api/loginBasicController/getLogListByContion", + method: "post", + data: { + 'pageNo':page, + 'pageSize':limit, + ...params + } + }); +} + +// 瀵煎嚭 +export const exportLog = (params) => { + return request({ + url: '/api/loginBasicController/exportLog', + method: 'get', + headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}, + responseType: 'blob', + params + }) +} diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue index 9e71cbf..a77bb26 100644 --- a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue @@ -250,26 +250,30 @@ checked: true, expanded: true, data:item.data, + parentId:item.parentId, level: item.level, + leaf:item.leaf, oid: item.oid, text: item.text } }) - // const parentData = selectParentList.map(item => { - // return { - // checked: false, - // expanded: true, - // data:item.data, - // level: item.level, - // oid: item.oid, - // text: item.text - // } - // }) - // // 鍦ㄥ崐閫夌姸鎬佷腑杩囨护鎺夐《绾ц妭鐐� oid 涓� root - // const filterSelectTreeData = parentData.filter(item => item.oid !== 'root'); + const parentData = selectParentList.map(item => { + return { + checked: false, + expanded: true, + data:item.data, + parentId:item.parentId, + level: item.level, + leaf:item.leaf, + oid: item.oid, + text: item.text + } + }) + // 鍦ㄥ崐閫夌姸鎬佷腑杩囨护鎺夐《绾ц妭鐐� oid 涓� root + const filterSelectTreeData = parentData.filter(item => item.oid !== 'root'); - const data = [...selectTreeData]; + const data = [...selectTreeData,...filterSelectTreeData]; const formData = { roleId: this.nodeRow.oid, type: this.type, diff --git a/Source/plt-web/plt-web-ui/src/views/fileManage/index.vue b/Source/plt-web/plt-web-ui/src/views/fileManage/index.vue deleted file mode 100644 index 093967c..0000000 --- a/Source/plt-web/plt-web-ui/src/views/fileManage/index.vue +++ /dev/null @@ -1,16 +0,0 @@ -<template> - <!--鏂囦粨绠$悊椤甸潰--> - <basic-container> - - </basic-container> -</template> - -<script> -export default { - name: "index" -} -</script> - -<style scoped> - -</style> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue index 9c6c63e..873a1b4 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue @@ -718,34 +718,6 @@ .el-scrollbar__wrap { overflow: auto !important; } - - .headerCon { - .el-button { - width: 82px; - } - } -} - -.headerCon { - display: flex; - flex-wrap: wrap; - margin-bottom: 5px; - - .el-button + .el-button { - margin-left: 5px; - } - - .el-button { - margin-top: 5px; - } -} - -.headerCon > .el-button:nth-child(4) { - margin-left: 0; -} - -.headerCon > .el-button:nth-child(7) { - margin-left: 0; } .smallBtn { diff --git a/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue new file mode 100644 index 0000000..ae1270c --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue @@ -0,0 +1,138 @@ +<template> + <!--鏂囦粨绠$悊椤甸潰--> + <basic-container> + <avue-crud + ref="logCrud" + :data="tableData" + :option="option" + :page.sync="page" + :table-loading="tableLoading" + @on-load="getTableList" + @refresh-change="handleRefresh" + @search-change="handleSearch" + @search-reset="handleReset" + @size-change="sizeChange" + @current-change="currentChange" + > + <template slot="menuLeft" slot-scope="scope"> + <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button> + </template> + </avue-crud> + </basic-container> +</template> + +<script> +import {exportLog, getLogListByContion} from "@/api/system/log/logBasic"; +import func from "@/util/func"; +import basicOption from "@/util/basic-option"; + +export default { + name: "index", + data: function () { + return { + tableLoading: false, + tableData: [], + option: { + ...basicOption, + addBtn:false, + editBtn: false, + delBtn: false, + calcHeight: -60, + align:'left', + headerAlign:'center', + menu:false, + searchMenuSpan: 6, + searchIcon:false, + column: [ + { + label: '鍗峰悕', + prop: 'truename', + width: 300 + }, { + label: '鏈哄櫒绫诲瀷', + prop: 'username', + width: 150 + },{ + label: '璺緞鍚嶇О', + prop: 'userIp' + },{ + label: '棣栭�夎矾寰�', + prop: 'moduleName', + },{ + label: '鏈嶅姟鍣�', + prop: 'type', + width: 150 + },{ + label: '鍗锋湇鍔�', + prop: 'date', + }] + }, + page: { + currentPage: 1, + pageSize: 50, + total: 0, + pageSizes: [10, 30, 50, 100], + }, + searchParams: {} + } + }, + methods: { + // 琛ㄦ牸璇锋眰 + getTableList() { + this.tableLoading = true; + getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => { + this.tableData = res.data.data; + this.page.total = res.data.total; + this.tableLoading = false; + }) + }, + + // 鎼滅储鏌ヨ + handleSearch(params, done) { + this.searchParams = { + userName:params.truename, + ipText:params.userIp, + startDate:params.date[0], + endDate:params.date[1] + }; + + this.getTableList(); + done(); + }, + + // 閲嶇疆鎼滅储鏉′欢 + handleReset() { + this.searchParams = {}; + this.getTableList(); + }, + + // 鏉℃暟 + sizeChange(val) { + this.page.pageSize = val; + }, + + // 椤电爜 + currentChange(val) { + this.page.currentPage = val; + }, + + handleRefresh(){ + this.getTableList(); + }, + // 瀵煎嚭 + exportClickHandler() { + const loading = this.$loading({}); + exportLog().then(res => { + func.downloadFileByBlobHandler(res); + this.createdLoading = false + this.$message.success('瀵煎嚭鎴愬姛'); + loading.close(); + }) + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue b/Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue new file mode 100644 index 0000000..c2c724d --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue @@ -0,0 +1,138 @@ +<template> + <!--鏃ュ織鍩虹閰嶇疆--> + <el-container> + <el-main> + <basic-container> + <div style="margin: 0 0 10px 20px"> + <el-button v-if="form.delType==0" icon="el-icon-check" size="small" type="primary" @click="saveHandler">淇濆瓨</el-button> + <el-button v-else icon="el-icon-delete" size="small" type="danger" @click="delHandler">鍒犻櫎</el-button> + </div> + <avue-form ref="form" v-model="form" :option="formOption"></avue-form> + <div class="tip"> + <div style="color: #D40000;margin-left: 0;">鏃ュ織鍩虹閰嶇疆璇存槑锛�</div> + <div>1銆佹棩蹇楀垹闄ゅ寘鍚墜鍔ㄥ垹闄ゅ拰鑷姩鍒犻櫎銆�</div> + <div>2銆佽嚜鍔ㄥ垹闄や細鏍规嵁鏃ュ織鐨勪繚瀛樻湡闄愭潵杩涜鏃ュ織鍒犻櫎銆�</div> + <div>3銆佹墜鍔ㄥ垹闄ゆ牴鎹�夊畾鐨勬椂闂存潵杩涜鏃ュ織鍒犻櫎銆�</div> + </div> + </basic-container> + </el-main> + + </el-container> +</template> + +<script> +import {getPeroid,savePeriod,deleteLog} from "@/api/system/log/logBasic"; +export default { + name: "basicConf", + data: function () { + return { + form:{ + period:'', + }, + periodData:[], + formOption:{ + submitBtn: false, + emptyBtn: false, + column: [{ + label: '鏃ュ織鍒犻櫎', + prop: 'delType', + span: 24, + labelWidth:120, + type: 'radio', + value: 0, + dicData: [ + { label: '鑷姩鍒犻櫎', value: 0 }, + { label: '鎵嬪姩鍒犻櫎', value: 1 }, + ] + }, { + label: '淇濆瓨鏃ユ湡', + prop: 'period', + type: 'select', + labelWidth:120, + dicData: this.periodData, + props:{ + label:'value', + value:'code' + }, + rules: [{ + required: true, + message: "璇烽�夋嫨淇濆瓨鏃ユ湡", + trigger: "blur" + }] + }, { + label: '璇烽�夋嫨鏃ユ湡', + prop: 'deleteDate', + type: 'date', + valueFormat:'yyyy-MM-dd', + labelWidth:120, + display: false, + rules: [{ + required: true, + message: "璇烽�夋嫨鏃ユ湡", + trigger: "blur" + }] + }] + }, + } + }, + created() { + this.getPeroid(); + }, + watch: { + 'form.delType': { + handler(newval) { + if (newval ==0) { + this.formOption.column[1].display=true; + this.formOption.column[2].display=false; + }else { + this.formOption.column[1].display=false; + this.formOption.column[2].display=true; + } + } + }, + }, + methods:{ + getPeroid:function (){ + getPeroid().then(res => { + this.$refs.form.updateDic('period', res.data.data); + this.periodData=res.data.data; + this.form.period=res.data.data.filter(item=>{ + return item.choose + })[0].code + }).catch(error => { + }) + }, + saveHandler:function (){ + savePeriod({'period':this.form.period}).then(res => { + if (res.data.success) { + this.$message.success('淇濆瓨鎴愬姛') + } + }); + }, + delHandler() { + this.$refs.form.validate((valid,done) => { + if(valid){ + deleteLog({'deleteDate':this.form.deleteDate}).then(res => { + if (res.data.success) { + this.$message.success('鍒犻櫎鎴愬姛') + } + }); + done() + } + }) + }, + } +} +</script> + +<style scoped> +.tip{ + font-size: 12px; + line-height: 24px; + color: #909399; + margin: 0 0 10px 20px; +} +.tip div{ + margin-left: 30px; +} +</style> diff --git a/Source/plt-web/plt-web-ui/src/views/system/log/index.vue b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue new file mode 100644 index 0000000..9b02091 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue @@ -0,0 +1,170 @@ +<template> + <basic-container> + <avue-crud + ref="logCrud" + :data="tableData" + :option="option" + :page.sync="page" + :table-loading="tableLoading" + @on-load="getTableList" + @refresh-change="handleRefresh" + @search-change="handleSearch" + @search-reset="handleReset" + @size-change="sizeChange" + @current-change="currentChange" + > + <template slot="menuLeft" slot-scope="scope"> + <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button> + </template> + </avue-crud> + </basic-container> +</template> + +<script> +import basicOption from "@/util/basic-option"; +import {getLogListByContion,getOperatingUsers,exportLog} from "@/api/system/log/logBasic"; +import func from "@/util/func"; + +export default { + name: "index", + data: function () { + return { + tableLoading: false, + tableData: [], + option: { + ...basicOption, + addBtn: false, + editBtn: false, + delBtn: false, + calcHeight: -60, + align: 'left', + headerAlign: 'center', + menu: false, + searchMenuSpan: 6, + searchIcon: false, + column: [ + { + label: '鐢ㄦ埛鍚�', + prop: 'truename', + search: true, + searchSpan: 4, + searchLabel: '鎿嶄綔鐢ㄦ埛', + type: 'select', + dicUrl: '/api/loginBasicController/getOperatingUsers', + sortable: true, + width: 150 + }, { + label: '濮撳悕', + prop: 'username', + sortable: true, + width: 150 + }, { + label: '鐢ㄦ埛IP', + prop: 'userIp', + search: true, + searchSpan: 4, + sortable: true, + width: 150 + }, { + label: '妯″潡', + prop: 'moduleName', + sortable: true, + overHidden: true, + }, { + label: '鎿嶄綔', + prop: 'type', + sortable: true, + width: 150 + }, { + label: '鏃堕棿', + prop: 'date', + type: 'date', + search: true, + searchOrder: 1, + searchSpan: 8, + searchRange: true, + searchLabel: '鏌ヨ鏃ユ湡', + valueFormat: 'yyyy-MM-dd', + width: 160 + }, { + label: '鎻忚堪', + prop: 'result', + overHidden: true, + width: 380, + }, + ] + }, + page: { + currentPage: 1, + pageSize: 50, + total: 0, + pageSizes: [10, 30, 50, 100], + }, + searchParams: {} + } + }, + watch: { + $route(to, from) { + this.getTableList(); + } + }, + methods: { + // 琛ㄦ牸璇锋眰 + getTableList() { + this.tableLoading = true; + getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType': this.$route.query.logType, ...this.searchParams}).then(res => { + this.tableData = res.data.data; + this.page.total = res.data.total; + this.tableLoading = false; + }) + }, + + // 鎼滅储鏌ヨ + handleSearch(params, done) { + this.searchParams = { + userName: params.truename, + ipText: params.userIp, + startDate: params.date[0], + endDate: params.date[1] + }; + + this.getTableList(); + done(); + }, + + // 閲嶇疆鎼滅储鏉′欢 + handleReset() { + this.searchParams = {}; + this.getTableList(); + }, + + // 鏉℃暟 + sizeChange(val) { + this.page.pageSize = val; + }, + + // 椤电爜 + currentChange(val) { + this.page.currentPage = val; + }, + + handleRefresh() { + this.getTableList(); + }, + // 瀵煎嚭 + exportClickHandler() { + const loading = this.$loading({}); + exportLog().then(res => { + func.downloadFileByBlobHandler(res); + this.createdLoading = false + this.$message.success('瀵煎嚭鎴愬姛'); + loading.close(); + }) + }, + } +} +</script> + +<style scoped> + +</style> diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue index ee786da..f51774b 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue @@ -238,9 +238,7 @@ this.tableData = data; this.page.total = res.data.total; this.tableLoading = false; - }).catch(err => { - this.$message.error(err) - }); + }) }, // 琛ㄦ牸鍙充晶鍒锋柊鍥炬爣 diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue index a36c78d..cb210be 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue @@ -2,8 +2,8 @@ <el-container v-loading="createdLoading"> <el-aside> <basic-container> - <div style="max-height: calc(100vh - 170px);overflow: auto"> - <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> + <div style="max-height: calc(100vh - 150px);overflow: auto"> + <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> <span style="font-size: 15px"> <i class="el-icon-s-promotion"></i> @@ -17,7 +17,7 @@ <el-main> <basic-container> - <el-form ref="form" :model="form" label-width="85px" style="height: 79vh"> + <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;"> <span v-if="form.childType !== 0"> <el-form-item label="妯″潡鍚嶏細"> <el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input> @@ -202,6 +202,7 @@ addStatus: false, editStatus: false, nodeRow: {}, + currentClickNode:null, form: {}, treeData: [], treeOption: { @@ -255,9 +256,10 @@ }, methods: { // 鏍戣鐐瑰嚮 - nodeClick(row) { + nodeClick(row,node) { this.form = {...row}; this.nodeRow = {...row}; + this.currentClickNode=node; this.addStatus = false; this.editStatus = false; }, @@ -312,7 +314,7 @@ this.addStatus = false; // this.resetFormValue(); this.form.childType = null; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('add') } }) }, @@ -356,7 +358,7 @@ this.editStatus = false; // this.resetFormValue(); this.form.childType = null; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('edit') } }) }, @@ -371,7 +373,7 @@ delModule(this.form).then(res => { if (res.data.code === 200) { this.$message.success(res.data.msg); - this.resetFormValue(); + this.handleRefreshTree('del') this.addStatus = false; this.editStatus = false; } @@ -389,8 +391,6 @@ exportFunctionSql({isFunction: true}).then(res => { func.downloadFileByBlobHandler(res); this.$message.success('瀵煎嚭鎴愬姛'); - }).catch(err => { - this.$message.error(err); }); }, @@ -425,12 +425,11 @@ } }) addOperationType(list).then(res => { - console.log(res) if (res.data.code === 200) { this.methodsVisble = false; this.$message.success(res.data.msg); this.form.childType = null; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('add') // 鍒锋柊宸︿晶鏍� } }) }, @@ -460,7 +459,7 @@ updateAlias(params).then(res => { if (res.data.code === 200) { this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('edit') } }) }, @@ -480,7 +479,7 @@ console.log(res); if (res.data.code === 200) { this.$message.success(res.data.msg); - this.resetFormValue(); + this.handleRefreshTree('del'); } }) }).catch(() => { @@ -506,6 +505,23 @@ // 瀵煎叆 upLoadClickHandler() { this.$refs.upload.visible = true; + }, + handleRefreshTree(type) { + //type:add\edit\del + if(type=="del"){ + this.$refs.tree.remove(this.currentClickNode); + this.currentClickNode=null; + this.form={}; + }else{ + if (this.currentClickNode) { + let node = this.currentClickNode.parent; + node.loaded = false; + node.expand(); + this.$refs.tree.setCurrentNode(this.currentClickNode); + }else { + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + } } } } diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue index ed00511..15cbb86 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue @@ -2,8 +2,8 @@ <el-container v-loading="createdLoading"> <el-aside> <basic-container> - <div style="max-height: calc(100vh - 170px);overflow: auto"> - <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> + <div style="max-height: calc(100vh - 150px);overflow: auto"> + <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> <span style="font-size: 15px"> <i class="el-icon-s-promotion"></i> @@ -17,7 +17,7 @@ <el-main> <basic-container> - <el-form ref="form" :model="form" label-width="85px" style="height: 79vh"> + <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;"> <span v-if="form.childType !== 0"> <el-form-item label="妯″潡鍚嶏細"> <el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input> @@ -202,6 +202,7 @@ addStatus: false, editStatus: false, nodeRow: {}, + currentClickNode:null, form: {}, treeData: [], treeOption: { @@ -255,10 +256,11 @@ }, methods: { // 鏍戣鐐瑰嚮 - nodeClick(row) { + nodeClick(row,node) { console.log(row.childType); this.form = {...row}; this.nodeRow = {...row}; + this.currentClickNode = node; this.addStatus = false; this.editStatus = false; }, @@ -313,7 +315,7 @@ this.addStatus = false; // this.resetFormValue(); this.form.childType = null; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('add') } }) }, @@ -357,7 +359,7 @@ this.editStatus = false; // this.resetFormValue(); this.form.childType = null; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('edit') } }) }, @@ -372,7 +374,7 @@ delModule(this.form).then(res => { if (res.data.code === 200) { this.$message.success(res.data.msg); - this.resetFormValue(); + this.handleRefreshTree('del') this.addStatus = false; this.editStatus = false; } @@ -461,23 +463,21 @@ updateAlias(params).then(res => { if (res.data.code === 200) { this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('edit') } }) }, // 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷 deleteOperationClickHandler() { - console.log(this.form); const params = { funcId: this.form.funcId, operId: this.form.operId } delFuncOperation(params).then(res => { - console.log(res); if (res.data.code === 200) { this.$message.success(res.data.msg); - this.resetFormValue(); + this.handleRefreshTree('del'); } }) }, @@ -489,14 +489,29 @@ func.downloadFileByBlobHandler(res); this.createdLoading = false this.$message.success('瀵煎嚭鎴愬姛'); - }).catch(err => { - this.$message.error(err); }) }, // 瀵煎叆 upLoadClickHandler() { this.$refs.upload.visible = true; + }, + handleRefreshTree(type) { + //type:add\edit\del + if(type=="del"){ + this.$refs.tree.remove(this.currentClickNode); + this.currentClickNode=null; + this.form={}; + }else{ + if (this.currentClickNode) { + let node = this.currentClickNode.parent; + node.loaded = false; + node.expand(); + this.$refs.tree.setCurrentNode(this.currentClickNode); + }else { + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + } } } } diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue index cea9234..afbb76d 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue @@ -2,8 +2,8 @@ <el-container> <el-aside> <basic-container> - <div style="max-height: calc(100vh - 170px);overflow: auto"> - <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> + <div style="max-height: calc(100vh - 150px);overflow: auto"> + <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> <span style="font-size: 15px"> <i class="el-icon-s-promotion"></i> @@ -17,7 +17,7 @@ <el-main> <basic-container> - <el-form ref="form" :model="form" label-width="85px" style="height: 79vh"> + <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;"> <el-form-item label="鍚嶇О锛�"> <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input> </el-form-item> @@ -73,6 +73,7 @@ editStatus:false, addStatus: false, nodeRow: {}, + currentClickNode:null, form: {}, treeData: [], treeOption: { @@ -111,10 +112,11 @@ }, methods: { // 鏍戣鐐瑰嚮 - nodeClick(row) { + nodeClick(row,node) { console.log(row); this.form = {...row}; this.nodeRow = {...row}; + this.currentClickNode=node; this.addStatus = false; this.editStatus = false; }, @@ -173,7 +175,7 @@ addOperationType(params).then(res => { if(res.data.code === 200){ this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('add') this.addStatus = false; } }) @@ -227,7 +229,7 @@ updateOperationType(params).then(res => { if(res.data.code === 200){ this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.handleRefreshTree('edit') this.editStatus = false; } }) @@ -243,7 +245,7 @@ delOperationType(this.form).then(res => { if (res.data.code === 200) { this.$message.success(res.data.msg); - this.resetFormValue(); + this.handleRefreshTree('del') this.addStatus = false; this.editStatus = false; this.nodeRow = {}; @@ -262,10 +264,25 @@ exportFunctionSql({isFunction: false}).then(res => { func.downloadFileByBlobHandler(res); this.$message.success('瀵煎嚭鎴愬姛'); - }).catch(err => { - this.$message.error(err); }); }, + handleRefreshTree(type) { + //type:add\edit\del + if(type=="del"){ + this.$refs.tree.remove(this.currentClickNode); + this.currentClickNode=null; + this.form={}; + }else{ + if (this.currentClickNode) { + let node = this.currentClickNode.parent; + node.loaded = false; + node.expand(); + this.$refs.tree.setCurrentNode(this.currentClickNode); + }else { + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + } + } } } </script> -- Gitblit v1.9.3