diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java index e0311595a..0d2604421 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java @@ -5,7 +5,10 @@ import org.springframework.beans.BeansException; 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,17 +16,25 @@ import org.springframework.stereotype.Component; * @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 + 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 @@ public final class SpringUtils implements BeanFactoryPostProcessor { 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; + } } diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js index b669fb319..462dc8f60 100644 --- a/ruoyi-ui/src/utils/ruoyi.js +++ b/ruoyi-ui/src/utils/ruoyi.js @@ -55,28 +55,38 @@ export function resetForm(refName) { // 添加日期范围 export function addDateRange (params = {}, dateRange) { - if (dateRange != null && dateRange !== '') { - params.beginTime = this.dateRange[0] - params.endTime = this.dateRange[1] - } - return params + if (dateRange != null && dateRange !== '') { + params.beginTime = this.dateRange[0] + params.endTime = this.dateRange[1] + } + return params } // 回显数据字典 -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])); - }) - return actions.join(separator); +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('').substring(0, actions.join('').length - 1); } // 通用下载方法 @@ -114,19 +124,22 @@ export function praseStrEmpty(str) { * @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; } -