ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/utils/ruoyi.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java
@@ -5,7 +5,10 @@ import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import com.ruoyi.common.utils.StringUtils; /** * spring工具类 方便在非spring管理环境中获取bean @@ -13,15 +16,23 @@ * @author ruoyi */ @Component public final class SpringUtils implements BeanFactoryPostProcessor public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware { /** Spring应用上下文环境 */ private static ConfigurableListableBeanFactory beanFactory; private static ApplicationContext applicationContext; @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { SpringUtils.beanFactory = beanFactory; } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringUtils.applicationContext = applicationContext; } /** @@ -111,4 +122,25 @@ { return (T) AopContext.currentProxy(); } /** * 获取当前的环境配置,无配置返回null * * @return 当前的环境配置 */ public static String[] getActiveProfiles() { return applicationContext.getEnvironment().getActiveProfiles(); } /** * 获取当前的环境配置,当有多个环境配置时,只获取第一个 * * @return 当前的环境配置 */ public static String getActiveProfile() { final String[] activeProfiles = getActiveProfiles(); return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; } } ruoyi-ui/src/utils/ruoyi.js
@@ -63,20 +63,30 @@ } // 回显数据字典 export function selectDictLabel(datas = [], value = '') { if (!value) return '-'; const dataArr = datas.filter(item => item.dictValue === value.toString()); return dataArr.length ? dataArr[0].dictLabel : 'Error Dict'; export function selectDictLabel(datas, value) { var actions = []; Object.keys(datas).some((key) => { if (datas[key].dictValue == ('' + value)) { actions.push(datas[key].dictLabel); return true; } }) return actions.join(''); } // 回显数据字典(字符串数组) export function selectDictLabels(datas = [], value = '', separator = ',') { const actions = []; const temp = value.split(separator).filter(item => item); temp.forEach((_, index) => { actions.push(selectDictLabel(datas, temp[index])); export function selectDictLabels(datas, value, separator) { var actions = []; var currentSeparator = undefined === separator ? "," : separator; var temp = value.split(currentSeparator); Object.keys(value.split(currentSeparator)).some((val) => { Object.keys(datas).some((key) => { if (datas[key].dictValue == ('' + temp[val])) { actions.push(datas[key].dictLabel + currentSeparator); } }) return actions.join(separator); }) return actions.join('').substring(0, actions.join('').length - 1); } // 通用下载方法 @@ -114,19 +124,22 @@ * @param {*} children 孩子节点字段 默认 'children' * @param {*} rootId 根Id 默认 0 */ export function handleTree(data = [], id = 'id', parentId = 'parentId', children = 'children', rootId = 0) { export function handleTree(data, id, parentId, children, rootId) { id = id || 'id' parentId = parentId || 'parentId' children = children || 'children' rootId = rootId || 0 //对源数据深度克隆 const cloneData = JSON.parse(JSON.stringify(data)) //循环所有项 const treeData = cloneData.filter(father => { const branchArr = cloneData.filter(child => { let branchArr = cloneData.filter(child => { //返回每一项的子级数组 return father[id] === child[parentId] }); branchArr.length && (father.children = branchArr); branchArr.length > 0 ? father.children = branchArr : ''; //返回第一层 return father[parentId] === rootId; }); return treeData !== '' ? treeData : data; return treeData != '' ? treeData : data; }