Merge remote-tracking branch 'origin/master'
| | |
| | | package com.vci.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ClonePortalVIDTOList implements java.io.Serializable{ |
| | | |
| | | private List<ClonePortalVIDTO> clonePortalVIDTOList; |
| | |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * æ¥å¿æ¥è¯¢ä¼ è¾å¯¹è±¡ |
| | |
| | | int pageNo; |
| | | //页颿¡æ° |
| | | int pageSize; |
| | | //æ¥è¯¢ç±»å(管ç忥å¿1ï¼æ®éæ¥å¿2) |
| | | String roleType; |
| | | |
| | | /** |
| | | * æ ¹ç»roleTypeæ¥è¯¢åºæ¥çç¨æ·åï¼åç»æ ¹æ®è¿ä¸ªåæ°æ¥è¯¢æå®çæ¥å¿ |
| | | */ |
| | | private List<String> userNameList; |
| | | |
| | | } |
| | |
| | | */ |
| | | List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) throws VciBaseException; |
| | | |
| | | /*** |
| | | /** |
| | | * 人åæééæ©æ |
| | | * @param treeQueryObject |
| | | * @return |
| | | * @throws VciBaseException |
| | | */ |
| | | List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException; |
| | | |
| | | |
| | | /** |
| | | * æ ¡éªå¯ç æ¯å¦ç¸åï¼å¨æ°å¹³å°ä¸åå¨çå¯ç æ¯ä¸¤æ¬¡md5 |
| | |
| | | */ |
| | | BaseResult importUser(File file) throws Exception; |
| | | |
| | | /** |
| | | * æ ¹æ®è§è²ç±»åæ¥è¯¢ç¨æ·å |
| | | * @param roleType |
| | | * @return |
| | | */ |
| | | List<String> queryUserNameByRoleType(String roleType) throws PLException; |
| | | |
| | | } |
| | |
| | | return rootTreeList; |
| | | } |
| | | |
| | | /*** |
| | | /** |
| | | * |
| | | * @param dataType |
| | | * @param orgType |
| | |
| | | } |
| | | } |
| | | |
| | | /*** |
| | | /** |
| | | * |
| | | * @param oid |
| | | * @param text |
| | |
| | | } |
| | | return ObjectTreeNode; |
| | | } |
| | | |
| | | /** |
| | | * æ ¡éªå¯ç æ¯å¦ç¸åï¼å¨æ°å¹³å°ä¸åå¨çå¯ç æ¯ä¸¤æ¬¡md5 |
| | | * @param userOid ç¨æ·ä¸»é® |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | |
| | | throw new VciBaseException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æ¥å¿ |
| | | * @param dto æ¥è¯¢æ¡ä»¶ä¼ è¾å¯¹è±¡ |
| | |
| | | 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); |
| | | } |
| | |
| | | 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.*; |
| | |
| | | */ |
| | | @Autowired |
| | | private PlatformClientUtil platformClientUtil; |
| | | |
| | | @Autowired |
| | | private SmUserQueryServiceI userQueryServiceI; |
| | | |
| | | public static final String UTF8_BOM="\uFEFF"; |
| | | private final String LOG_SAVE_PERIOD = "logSavePeriod";//æ¥å¿ä¿åæé |
| | | |
| | |
| | | */ |
| | | @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(); |
| | |
| | | result.setTotal(sumLogRows); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * æä½ç¨æ·è·å |
| | | */ |
| | |
| | | } |
| | | return userNames; |
| | | } |
| | | |
| | | /** |
| | | * è·åæ¥è¯¢æ¡ä»¶å¹¶æ¼æSQLï¼åªæ¼whereåå¥åé¢çSQL |
| | | * @return |
| | |
| | | } |
| | | 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("")){ |
| | |
| | | } |
| | | return sql.toString(); |
| | | } |
| | | |
| | | protected String getLogTypeString(LogType logType){ |
| | | String res = ""; |
| | | if(logType == LogType.Login) { |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | /** |
| | | * è·åçéåçæ°æ® |
| | | * @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(); |
| | |
| | | tree = allTreeMap.get(oid); |
| | | 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)){ |
| | |
| | | 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());//ä¸»é® |
| | |
| | | }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(),""));//å建æ¶é´ |
| | |
| | | * è·åæé |
| | | * @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) { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | 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); |
| | |
| | | * @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++){ |
| | | 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);//累计å ä¸å个æä½çæéå¼ |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |
| | | }) |
| | | } |
| | |
| | | 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, |
| | |
| | | .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 { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | this.tableData = data; |
| | | this.page.total = res.data.total; |
| | | this.tableLoading = false; |
| | | }).catch(err => { |
| | | this.$message.error(err) |
| | | }); |
| | | }) |
| | | }, |
| | | |
| | | // è¡¨æ ¼å³ä¾§å·æ°å¾æ |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | addStatus: false, |
| | | editStatus: false, |
| | | nodeRow: {}, |
| | | currentClickNode:null, |
| | | form: {}, |
| | | treeData: [], |
| | | treeOption: { |
| | |
| | | }, |
| | | methods: { |
| | | // æ è¡ç¹å» |
| | | nodeClick(row) { |
| | | nodeClick(row,node) { |
| | | this.form = {...row}; |
| | | this.nodeRow = {...row}; |
| | | this.currentClickNode=node; |
| | | this.addStatus = false; |
| | | this.editStatus = false; |
| | | }, |
| | |
| | | this.addStatus = false; |
| | | // this.resetFormValue(); |
| | | this.form.childType = null; |
| | | this.refresh = Math.random(); // å·æ°å·¦ä¾§æ |
| | | this.handleRefreshTree('add') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.editStatus = false; |
| | | // this.resetFormValue(); |
| | | this.form.childType = null; |
| | | this.refresh = Math.random(); // å·æ°å·¦ä¾§æ |
| | | this.handleRefreshTree('edit') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | 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; |
| | | } |
| | |
| | | exportFunctionSql({isFunction: true}).then(res => { |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('å¯¼åºæå'); |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }); |
| | | }, |
| | | |
| | |
| | | } |
| | | }) |
| | | 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') // å·æ°å·¦ä¾§æ |
| | | } |
| | | }) |
| | | }, |
| | |
| | | updateAlias(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.msg); |
| | | this.refresh = Math.random(); // å·æ°å·¦ä¾§æ |
| | | this.handleRefreshTree('edit') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | console.log(res); |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.msg); |
| | | this.resetFormValue(); |
| | | this.handleRefreshTree('del'); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | |
| | | // 导å
¥ |
| | | 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(); // å·æ°å·¦ä¾§æ |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | addStatus: false, |
| | | editStatus: false, |
| | | nodeRow: {}, |
| | | currentClickNode:null, |
| | | form: {}, |
| | | treeData: [], |
| | | treeOption: { |
| | |
| | | }, |
| | | 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; |
| | | }, |
| | |
| | | this.addStatus = false; |
| | | // this.resetFormValue(); |
| | | this.form.childType = null; |
| | | this.refresh = Math.random(); // å·æ°å·¦ä¾§æ |
| | | this.handleRefreshTree('add') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.editStatus = false; |
| | | // this.resetFormValue(); |
| | | this.form.childType = null; |
| | | this.refresh = Math.random(); // å·æ°å·¦ä¾§æ |
| | | this.handleRefreshTree('edit') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | 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; |
| | | } |
| | |
| | | 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'); |
| | | } |
| | | }) |
| | | }, |
| | |
| | | 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(); // å·æ°å·¦ä¾§æ |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | editStatus:false, |
| | | addStatus: false, |
| | | nodeRow: {}, |
| | | currentClickNode:null, |
| | | form: {}, |
| | | treeData: [], |
| | | treeOption: { |
| | |
| | | }, |
| | | methods: { |
| | | // æ è¡ç¹å» |
| | | nodeClick(row) { |
| | | nodeClick(row,node) { |
| | | console.log(row); |
| | | this.form = {...row}; |
| | | this.nodeRow = {...row}; |
| | | this.currentClickNode=node; |
| | | this.addStatus = false; |
| | | this.editStatus = false; |
| | | }, |
| | |
| | | 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; |
| | | } |
| | | }) |
| | |
| | | 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; |
| | | } |
| | | }) |
| | |
| | | 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 = {}; |
| | |
| | | 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> |