diff --git a/flex-ui/src/directive/common/copyText.js b/flex-ui/src/directive/common/copyText.js
new file mode 100644
index 0000000..7063df8
--- /dev/null
+++ b/flex-ui/src/directive/common/copyText.js
@@ -0,0 +1,66 @@
+/**
+* v-copyText 复制文本内容
+* Copyright (c) 2022 ruoyi
+*/
+
+export default {
+ beforeMount(el, { value, arg }) {
+ if (arg === "callback") {
+ el.$copyCallback = value;
+ } else {
+ el.$copyValue = value;
+ const handler = () => {
+ copyTextToClipboard(el.$copyValue);
+ if (el.$copyCallback) {
+ el.$copyCallback(el.$copyValue);
+ }
+ };
+ el.addEventListener("click", handler);
+ el.$destroyCopy = () => el.removeEventListener("click", handler);
+ }
+ }
+}
+
+function copyTextToClipboard(input, { target = document.body } = {}) {
+ const element = document.createElement('textarea');
+ const previouslyFocusedElement = document.activeElement;
+
+ element.value = input;
+
+ // Prevent keyboard from showing on mobile
+ element.setAttribute('readonly', '');
+
+ element.style.contain = 'strict';
+ element.style.position = 'absolute';
+ element.style.left = '-9999px';
+ element.style.fontSize = '12pt'; // Prevent zooming on iOS
+
+ const selection = document.getSelection();
+ const originalRange = selection.rangeCount > 0 && selection.getRangeAt(0);
+
+ target.append(element);
+ element.select();
+
+ // Explicit selection workaround for iOS
+ element.selectionStart = 0;
+ element.selectionEnd = input.length;
+
+ let isSuccess = false;
+ try {
+ isSuccess = document.execCommand('copy');
+ } catch { }
+
+ element.remove();
+
+ if (originalRange) {
+ selection.removeAllRanges();
+ selection.addRange(originalRange);
+ }
+
+ // Get the focus back on the previously focused element, if any
+ if (previouslyFocusedElement) {
+ previouslyFocusedElement.focus();
+ }
+
+ return isSuccess;
+}
diff --git a/flex-ui/src/utils/theme.js b/flex-ui/src/utils/theme.js
new file mode 100644
index 0000000..f4badc6
--- /dev/null
+++ b/flex-ui/src/utils/theme.js
@@ -0,0 +1,49 @@
+// 处理主题样式
+export function handleThemeStyle(theme) {
+ document.documentElement.style.setProperty('--el-color-primary', theme)
+ for (let i = 1; i <= 9; i++) {
+ document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, `${getLightColor(theme, i / 10)}`)
+ }
+ for (let i = 1; i <= 9; i++) {
+ document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, `${getDarkColor(theme, i / 10)}`)
+ }
+}
+
+// hex颜色转rgb颜色
+export function hexToRgb(str) {
+ str = str.replace('#', '')
+ let hexs = str.match(/../g)
+ for (let i = 0; i < 3; i++) {
+ hexs[i] = parseInt(hexs[i], 16)
+ }
+ return hexs
+}
+
+// rgb颜色转Hex颜色
+export function rgbToHex(r, g, b) {
+ let hexs = [r.toString(16), g.toString(16), b.toString(16)]
+ for (let i = 0; i < 3; i++) {
+ if (hexs[i].length == 1) {
+ hexs[i] = `0${hexs[i]}`
+ }
+ }
+ return `#${hexs.join('')}`
+}
+
+// 变浅颜色值
+export function getLightColor(color, level) {
+ let rgb = hexToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i])
+ }
+ return rgbToHex(rgb[0], rgb[1], rgb[2])
+}
+
+// 变深颜色值
+export function getDarkColor(color, level) {
+ let rgb = hexToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor(rgb[i] * (1 - level))
+ }
+ return rgbToHex(rgb[0], rgb[1], rgb[2])
+}
diff --git a/flex-ui/src/views/monitor/cache/list.vue b/flex-ui/src/views/monitor/cache/list.vue
new file mode 100644
index 0000000..76ceeb8
--- /dev/null
+++ b/flex-ui/src/views/monitor/cache/list.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+ 缓存列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 键名列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 缓存内容
+ 清理全部
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataColumn.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataColumn.java
deleted file mode 100644
index 287a3c7..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataColumn.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.ruoyi.common.orm.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * 数据权限
- *
- * 一个注解只能对应一个模板
- *
- * @author Lion Li
- */
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface DataColumn {
-
- /**
- * 占位符关键字
- */
- String[] key() default "deptName";
-
- /**
- * 占位符替换值
- */
- String[] value() default "dept_id";
-
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataPermission.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataPermission.java
deleted file mode 100644
index e2f473d..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/annotation/DataPermission.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ruoyi.common.orm.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * 数据权限组
- *
- * @author Lion Li
- */
-@Target({ElementType.METHOD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface DataPermission {
-
- DataColumn[] value();
-
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/config/MyBatisFlexConfig.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/config/MyBatisFlexConfig.java
index ce3a02d..00473c3 100644
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/config/MyBatisFlexConfig.java
+++ b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/config/MyBatisFlexConfig.java
@@ -36,7 +36,7 @@ public class MyBatisFlexConfig implements ConfigurationCustomizer, MyBatisFlexCu
* 数据源解密
*/
@Bean
- public DataSourceDecipher decipher(){
+ public DataSourceDecipher decipher() {
DataSourceDecipher decipher = new Decipher();
return decipher;
}
@@ -49,6 +49,7 @@ public class MyBatisFlexConfig implements ConfigurationCustomizer, MyBatisFlexCu
/**
* Mybatis-Flex自定义初始化配置
+ *
* @param globalConfig 全局配置
*/
@Override
@@ -64,6 +65,12 @@ public class MyBatisFlexConfig implements ConfigurationCustomizer, MyBatisFlexCu
globalConfig.registerInsertListener(new EntityInsertListener(), BaseEntity.class);
globalConfig.registerUpdateListener(new EntityUpdateListener(), BaseEntity.class);
+ //全局配置逻辑删除字段
+ globalConfig.setLogicDeleteColumn("del_flag");
+
+ //全局配置乐观锁字段
+ globalConfig.setVersionColumn("version");
+
// 开启审计功能
AuditManager.setAuditEnable(true);
// AuditManager.setMessageFactory(new AuditMessageFactory());
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/core/service/IBaseService.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/core/service/IBaseService.java
index cf01d31..b9f3617 100644
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/core/service/IBaseService.java
+++ b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/core/service/IBaseService.java
@@ -1,6 +1,7 @@
package com.ruoyi.common.orm.core.service;
import com.mybatisflex.core.BaseMapper;
+import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.row.Db;
import com.mybatisflex.core.service.IService;
import com.mybatisflex.core.util.ClassUtil;
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataBaseType.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataBaseType.java
deleted file mode 100644
index e3f9f89..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataBaseType.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.ruoyi.common.orm.enums;
-
-import com.ruoyi.common.core.utils.StringUtils;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 数据库类型
- *
- * @author Lion Li
- */
-@Getter
-@AllArgsConstructor
-public enum DataBaseType {
-
- /**
- * MySQL
- */
- MY_SQL("MySQL"),
-
- /**
- * Oracle
- */
- ORACLE("Oracle"),
-
- /**
- * PostgreSQL
- */
- POSTGRE_SQL("PostgreSQL"),
-
- /**
- * SQL Server
- */
- SQL_SERVER("Microsoft SQL Server");
-
- private final String type;
-
- public static DataBaseType find(String databaseProductName) {
- if (StringUtils.isBlank(databaseProductName)) {
- return null;
- }
- for (DataBaseType type : values()) {
- if (type.getType().equals(databaseProductName)) {
- return type;
- }
- }
- return null;
- }
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataScopeType.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataScopeType.java
deleted file mode 100644
index ea4af6a..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/enums/DataScopeType.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.ruoyi.common.orm.enums;
-
-import com.ruoyi.common.core.utils.StringUtils;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 数据权限类型
- *
- * 语法支持 spel 模板表达式
- *
- * 内置数据 user 当前用户 内容参考 LoginUser
- * 如需扩展数据 可使用 {@link DataPermissionHelper} 操作
- * 内置服务 sdss 系统数据权限服务 内容参考 SysDataScopeService
- * 如需扩展更多自定义服务 可以参考 sdss 自行编写
- *
- * @author Lion Li
- */
-@Getter
-@AllArgsConstructor
-public enum DataScopeType {
-
- /**
- * 全部数据权限
- */
- ALL("1", "", ""),
-
- /**
- * 自定数据权限
- */
- CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) ", ""),
-
- /**
- * 部门数据权限
- */
- DEPT("3", " #{#deptName} = #{#user.deptId} ", ""),
-
- /**
- * 部门及以下数据权限
- */
- DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", ""),
-
- /**
- * 仅本人数据权限
- */
- SELF("5", " #{#userName} = #{#user.userId} ", " 1 = 0 ");
-
- private final String code;
-
- /**
- * 语法 采用 spel 模板表达式
- */
- private final String sqlTemplate;
-
- /**
- * 不满足 sqlTemplate 则填充
- */
- private final String elseSql;
-
- public static DataScopeType findCode(String code) {
- if (StringUtils.isBlank(code)) {
- return null;
- }
- for (DataScopeType type : values()) {
- if (type.getCode().equals(code)) {
- return type;
- }
- }
- return null;
- }
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/handler/PlusDataPermissionHandler.java
deleted file mode 100644
index f5a5f49..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/handler/PlusDataPermissionHandler.java
+++ /dev/null
@@ -1,197 +0,0 @@
-package com.ruoyi.common.orm.handler;
-
-import cn.hutool.core.annotation.AnnotationUtil;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ConcurrentHashSet;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ClassUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.ruoyi.common.core.core.domain.dto.RoleDTO;
-import com.ruoyi.common.core.core.domain.model.LoginUser;
-import com.ruoyi.common.core.exception.ServiceException;
-import com.ruoyi.common.core.utils.SpringUtils;
-import com.ruoyi.common.core.utils.StreamUtils;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.orm.annotation.DataColumn;
-import com.ruoyi.common.orm.annotation.DataPermission;
-import com.ruoyi.common.orm.enums.DataScopeType;
-import com.ruoyi.common.orm.helper.DataPermissionHelper;
-import com.ruoyi.common.security.utils.LoginHelper;
-import lombok.extern.slf4j.Slf4j;
-import net.sf.jsqlparser.JSQLParserException;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.Parenthesis;
-import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
-import net.sf.jsqlparser.parser.CCJSqlParserUtil;
-import org.springframework.context.expression.BeanFactoryResolver;
-import org.springframework.expression.BeanResolver;
-import org.springframework.expression.ExpressionParser;
-import org.springframework.expression.ParserContext;
-import org.springframework.expression.common.TemplateParserContext;
-import org.springframework.expression.spel.standard.SpelExpressionParser;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
-
-import java.lang.reflect.Method;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.Function;
-
-/**
- * 数据权限过滤
- *
- * @author Lion Li
- */
-@Slf4j
-public class PlusDataPermissionHandler {
-
- /**
- * 方法或类(名称) 与 注解的映射关系缓存
- */
- private final Map dataPermissionCacheMap = new ConcurrentHashMap<>();
-
- /**
- * 无效注解方法缓存用于快速返回
- */
- private final Set invalidCacheSet = new ConcurrentHashSet<>();
-
- /**
- * spel 解析器
- */
- private final ExpressionParser parser = new SpelExpressionParser();
- private final ParserContext parserContext = new TemplateParserContext();
- /**
- * bean解析器 用于处理 spel 表达式中对 bean 的调用
- */
- private final BeanResolver beanResolver = new BeanFactoryResolver(SpringUtils.getBeanFactory());
-
-
- public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) {
- DataColumn[] dataColumns = findAnnotation(mappedStatementId);
- if (ArrayUtil.isEmpty(dataColumns)) {
- invalidCacheSet.add(mappedStatementId);
- return where;
- }
- LoginUser currentUser = DataPermissionHelper.getVariable("user");
- if (ObjectUtil.isNull(currentUser)) {
- currentUser = LoginHelper.getLoginUser();
- DataPermissionHelper.setVariable("user", currentUser);
- }
- // 如果是超级管理员或租户管理员,则不过滤数据
- if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) {
- return where;
- }
- String dataFilterSql = buildDataFilter(dataColumns, isSelect);
- if (StringUtils.isBlank(dataFilterSql)) {
- return where;
- }
- try {
- Expression expression = CCJSqlParserUtil.parseExpression(dataFilterSql);
- // 数据权限使用单独的括号 防止与其他条件冲突
- Parenthesis parenthesis = new Parenthesis(expression);
- if (ObjectUtil.isNotNull(where)) {
- return new AndExpression(where, parenthesis);
- } else {
- return parenthesis;
- }
- } catch (JSQLParserException e) {
- throw new ServiceException("数据权限解析异常 => " + e.getMessage());
- }
- }
-
- /**
- * 构造数据过滤sql
- */
- private String buildDataFilter(DataColumn[] dataColumns, boolean isSelect) {
- // 更新或删除需满足所有条件
- String joinStr = isSelect ? " OR " : " AND ";
- LoginUser user = DataPermissionHelper.getVariable("user");
- StandardEvaluationContext context = new StandardEvaluationContext();
- context.setBeanResolver(beanResolver);
- DataPermissionHelper.getContext().forEach(context::setVariable);
- Set conditions = new HashSet<>();
- for (RoleDTO role : user.getRoles()) {
- user.setRoleId(role.getRoleId());
- // 获取角色权限泛型
- DataScopeType type = DataScopeType.findCode(role.getDataScope());
- if (ObjectUtil.isNull(type)) {
- throw new ServiceException("角色数据范围异常 => " + role.getDataScope());
- }
- // 全部数据权限直接返回
- if (type == DataScopeType.ALL) {
- return "";
- }
- boolean isSuccess = false;
- for (DataColumn dataColumn : dataColumns) {
- if (dataColumn.key().length != dataColumn.value().length) {
- throw new ServiceException("角色数据范围异常 => key与value长度不匹配");
- }
- // 不包含 key 变量 则不处理
- if (!StringUtils.containsAny(type.getSqlTemplate(),
- Arrays.stream(dataColumn.key()).map(key -> "#" + key).toArray(String[]::new)
- )) {
- continue;
- }
- // 设置注解变量 key 为表达式变量 value 为变量值
- for (int i = 0; i < dataColumn.key().length; i++) {
- context.setVariable(dataColumn.key()[i], dataColumn.value()[i]);
- }
-
- // 解析sql模板并填充
- String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class);
- conditions.add(joinStr + sql);
- isSuccess = true;
- }
- // 未处理成功则填充兜底方案
- if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) {
- conditions.add(joinStr + type.getElseSql());
- }
- }
-
- if (CollUtil.isNotEmpty(conditions)) {
- String sql = StreamUtils.join(conditions, Function.identity(), "");
- return sql.substring(joinStr.length());
- }
- return "";
- }
-
- private DataColumn[] findAnnotation(String mappedStatementId) {
- StringBuilder sb = new StringBuilder(mappedStatementId);
- int index = sb.lastIndexOf(".");
- String clazzName = sb.substring(0, index);
- String methodName = sb.substring(index + 1, sb.length());
- Class> clazz = ClassUtil.loadClass(clazzName);
- List methods = Arrays.stream(ClassUtil.getDeclaredMethods(clazz))
- .filter(method -> method.getName().equals(methodName)).toList();
- DataPermission dataPermission;
- // 获取方法注解
- for (Method method : methods) {
- dataPermission = dataPermissionCacheMap.get(mappedStatementId);
- if (ObjectUtil.isNotNull(dataPermission)) {
- return dataPermission.value();
- }
- if (AnnotationUtil.hasAnnotation(method, DataPermission.class)) {
- dataPermission = AnnotationUtil.getAnnotation(method, DataPermission.class);
- dataPermissionCacheMap.put(mappedStatementId, dataPermission);
- return dataPermission.value();
- }
- }
- dataPermission = dataPermissionCacheMap.get(clazz.getName());
- if (ObjectUtil.isNotNull(dataPermission)) {
- return dataPermission.value();
- }
- // 获取类注解
- if (AnnotationUtil.hasAnnotation(clazz, DataPermission.class)) {
- dataPermission = AnnotationUtil.getAnnotation(clazz, DataPermission.class);
- dataPermissionCacheMap.put(clazz.getName(), dataPermission);
- return dataPermission.value();
- }
- return null;
- }
-
- /**
- * 是否为无效方法 无数据权限
- */
- public boolean isInvalid(String mappedStatementId) {
- return invalidCacheSet.contains(mappedStatementId);
- }
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataBaseHelper.java
deleted file mode 100644
index 4ba3e0b..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataBaseHelper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.ruoyi.common.orm.helper;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-/**
- * 数据库助手
- *
- * @author Lion Li
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class DataBaseHelper {
-
- //private static final DynamicRoutingDataSource DS = SpringUtils.getBean(DynamicRoutingDataSource.class);
-
- /**
- * 获取当前数据库类型
- */
-// public static DataBaseType getDataBaseType() {
-// DataSource dataSource = DS.determineDataSource();
-// try (Connection conn = dataSource.getConnection()) {
-// DatabaseMetaData metaData = conn.getMetaData();
-// String databaseProductName = metaData.getDatabaseProductName();
-// return DataBaseType.find(databaseProductName);
-// } catch (SQLException e) {
-// throw new ServiceException(e.getMessage());
-// }
-// }
-
-// public static boolean isMySql() {
-// return DataBaseType.MY_SQL == getDataBaseType();
-// }
-//
-// public static boolean isOracle() {
-// return DataBaseType.ORACLE == getDataBaseType();
-// }
-//
-// public static boolean isPostgerSql() {
-// return DataBaseType.POSTGRE_SQL == getDataBaseType();
-// }
-//
-// public static boolean isSqlServer() {
-// return DataBaseType.SQL_SERVER == getDataBaseType();
-// }
-//
-// public static String findInSet(Object var1, String var2) {
-// DataBaseType dataBasyType = getDataBaseType();
-// String var = Convert.toStr(var1);
-// if (dataBasyType == DataBaseType.SQL_SERVER) {
-// // charindex(',100,' , ',0,100,101,') <> 0
-// return "charindex(',%s,' , ','+%s+',') <> 0".formatted(var, var2);
-// } else if (dataBasyType == DataBaseType.POSTGRE_SQL) {
-// // (select position(',100,' in ',0,100,101,')) <> 0
-// return "(select position(',%s,' in ','||%s||',')) <> 0".formatted(var, var2);
-// } else if (dataBasyType == DataBaseType.ORACLE) {
-// // instr(',0,100,101,' , ',100,') <> 0
-// return "instr(','||%s||',' , ',%s,') <> 0".formatted(var2, var);
-// }
-// // find_in_set(100 , '0,100,101')
-// return "find_in_set('%s' , %s) <> 0".formatted(var, var2);
-// }
-
- /**
- * 获取当前加载的数据库名
- */
-// public static List getDataSourceNameList() {
-// return new ArrayList<>(DS.getDataSources().keySet());
-// }
-}
diff --git a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataPermissionHelper.java
deleted file mode 100644
index a766a74..0000000
--- a/ruoyi-common/ruoyi-common-orm/src/main/java/com/ruoyi/common/orm/helper/DataPermissionHelper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.ruoyi.common.orm.helper;
-
-import cn.dev33.satoken.context.SaHolder;
-import cn.dev33.satoken.context.model.SaStorage;
-import cn.hutool.core.util.ObjectUtil;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Supplier;
-
-/**
- * 数据权限助手
- *
- * @author Lion Li
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-@SuppressWarnings("unchecked cast")
-public class DataPermissionHelper {
-
- private static final String DATA_PERMISSION_KEY = "data:permission";
-
- public static T getVariable(String key) {
- Map context = getContext();
- return (T) context.get(key);
- }
-
-
- public static void setVariable(String key, Object value) {
- Map context = getContext();
- context.put(key, value);
- }
-
- public static Map getContext() {
- SaStorage saStorage = SaHolder.getStorage();
- Object attribute = saStorage.get(DATA_PERMISSION_KEY);
- if (ObjectUtil.isNull(attribute)) {
- saStorage.set(DATA_PERMISSION_KEY, new HashMap<>());
- attribute = saStorage.get(DATA_PERMISSION_KEY);
- }
- if (attribute instanceof Map map) {
- return map;
- }
- throw new NullPointerException("data permission context type exception");
- }
-
- /**
- * 开启忽略数据权限(开启后需手动调用 {@link #disableIgnore()} 关闭)
- */
-// public static void enableIgnore() {
-// InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().dataPermission(true).build());
-// }
-
- /**
- * 关闭忽略数据权限
- */
-// public static void disableIgnore() {
-// InterceptorIgnoreHelper.clearIgnoreStrategy();
-// }
-
- /**
- * 在忽略数据权限中执行
- *
- * @param handle 处理执行方法
- */
-// public static void ignore(Runnable handle) {
-// enableIgnore();
-// try {
-// handle.run();
-// } finally {
-// disableIgnore();
-// }
-// }
-
- /**
- * 在忽略数据权限中执行
- *
- * @param handle 处理执行方法
- */
-// public static T ignore(Supplier handle) {
-// enableIgnore();
-// try {
-// return handle.get();
-// } finally {
-// disableIgnore();
-// }
-// }
-
-}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm
index b8fd77b..d17d2a9 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm
@@ -3,8 +3,11 @@ package ${packageName}.domain;
#foreach ($import in $importList)
import ${import};
#end
-import com.ruoyi.common.core.annotation.Excel;
import java.io.Serial;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
#if($table.crud || $table.sub)
import com.ruoyi.common.orm.core.domain.BaseEntity;
#elseif($table.tree)
@@ -21,30 +24,26 @@ import com.ruoyi.common.orm.core.domain.BaseEntity;
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "${tableName}")
public class ${ClassName} extends ${Entity}
- {
-@Serial
-private static final long serialVersionUID = 1L;
+{
+ @Serial
+ private static final long serialVersionUID = 1L;
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
/** $column.columnComment */
- #if($column.list)
- #set($parentheseIndex=$column.columnComment.indexOf("("))
- #if($parentheseIndex != -1)
- #set($comment=$column.columnComment.substring(0, $parentheseIndex))
- #else
- #set($comment=$column.columnComment)
- #end
- #if($parentheseIndex != -1)
- @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
- #elseif($column.javaType == 'Date')
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
- #else
- @Excel(name = "${comment}")
- #end
- #end
+#if($column.javaField=='delFlag')
+@Column(isLogicDelete = true)
+#end
+#if($column.javaField=='version')
+@Column(version = true)
+#end
+#if($column.isPk==1)
+ @Id
+#end
private $column.javaType $column.javaField;
#end
@@ -54,51 +53,4 @@ private static final long serialVersionUID = 1L;
private List<${subClassName}> ${subclassName}List;
#end
-#foreach ($column in $columns)
- #if(!$table.isSuperColumn($column.javaField))
- #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
- #set($AttrName=$column.javaField)
- #else
- #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
- #end
- public void set${AttrName}($column.javaType $column.javaField)
- {
- this.$column.javaField = $column.javaField;
- }
-
- public $column.javaType get${AttrName}()
- {
- return $column.javaField;
- }
- #end
-#end
-
-#if($table.sub)
-public List<${subClassName}> get${subClassName}List()
- {
- return ${subclassName}List;
- }
-
-public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
- {
- this.${subclassName}List = ${subclassName}List;
- }
-
-#end
-@Override
-public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- #foreach ($column in $columns)
- #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
- #set($AttrName=$column.javaField)
- #else
- #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
- #end
- .append("${column.javaField}", get${AttrName}())
- #end
- #if($table.sub)
- .append("${subclassName}List", get${subClassName}List())
- #end
- .toString();
- }
- }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java
index 036d2e9..07fc85d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysProfileController.java
@@ -52,7 +52,7 @@ public class SysProfileController extends BaseController
public R profile()
{
LoginUser loginUser = LoginHelper.getLoginUser();
- SysUserVo user = userService.selectUserById(loginUser.getUserId());
+ SysUserVo user = userService.selectProfileUserById(loginUser.getUserId());
ProfileVo profileVo = new ProfileVo();
profileVo.setUser(user);
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 6ed6ff0..517cb64 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -15,13 +15,5 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface SysDeptMapper extends BaseMapper
{
- /**
- * 根据角色ID查询部门树信息
- *
- * @param roleId 角色ID
- * @param deptCheckStrictly 部门树选择项是否关联显示
- * @return 选中部门列表
- */
- List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly);
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index b0ba226..05db883 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -1,9 +1,7 @@
package com.ruoyi.system.service.impl;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
-import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.tree.Tree;
@@ -12,18 +10,16 @@ import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.ruoyi.common.core.constant.CacheNames;
-import com.ruoyi.common.core.core.page.PageDomain;
-import com.ruoyi.common.core.core.page.TableSupport;
import com.ruoyi.common.core.service.DeptService;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.TreeBuildUtils;
-import com.ruoyi.common.core.utils.sql.SqlUtil;
import com.ruoyi.common.orm.core.service.impl.BaseServiceImpl;
import com.ruoyi.common.security.utils.LoginHelper;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.bo.SysDeptBo;
import com.ruoyi.system.domain.vo.SysDeptVo;
import com.ruoyi.system.domain.vo.SysRoleVo;
+import com.ruoyi.system.service.ISysDataScopeService;
import com.ruoyi.system.service.ISysRoleService;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
@@ -37,11 +33,12 @@ import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
-import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.transaction.annotation.Transactional;
+import static com.mybatisflex.core.query.QueryMethods.select;
import static com.ruoyi.system.domain.table.SysDeptTableDef.SYS_DEPT;
+import static com.ruoyi.system.domain.table.SysRoleDeptTableDef.SYS_ROLE_DEPT;
/**
* 部门管理 服务实现
@@ -62,7 +59,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl
}
/**
- * 根据ndeptBo构建QueryWrapper查询条件
+ * 根据deptBo构建QueryWrapper查询条件
*
* @param deptBo
* @return 查询条件
@@ -95,7 +92,6 @@ public class SysDeptServiceImpl extends BaseServiceImpl
* @return 部门信息集合
*/
@Override
- @DataScope(deptAlias = "d")
public List selectDeptList(SysDeptBo deptBo) {
QueryWrapper queryWrapper = buildQueryWrapper(deptBo);
return this.listAs(queryWrapper, SysDeptVo.class);
@@ -111,22 +107,22 @@ public class SysDeptServiceImpl extends BaseServiceImpl
public List> selectDeptTreeList(SysDeptBo dept) {
// 只查询未禁用部门
dept.setStatus(UserConstants.DEPT_NORMAL);
- List depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
- return buildDeptTreeSelect(depts);
+ List deptLists = SpringUtils.getAopProxy(this).selectDeptList(dept);
+ return buildDeptTreeSelect(deptLists);
}
/**
* 构建前端所需要下拉树结构
*
- * @param depts 部门列表
+ * @param deptLists 部门列表
* @return 下拉树结构列表
*/
@Override
- public List> buildDeptTreeSelect(List depts) {
- if (CollUtil.isEmpty(depts)) {
+ public List> buildDeptTreeSelect(List deptLists) {
+ if (CollUtil.isEmpty(deptLists)) {
return CollUtil.newArrayList();
}
- return TreeBuildUtils.build(depts, (dept, tree) ->
+ return TreeBuildUtils.build(deptLists, (dept, tree) ->
tree.setId(dept.getDeptId())
.setParentId(dept.getParentId())
.setName(dept.getDeptName())
@@ -141,8 +137,29 @@ public class SysDeptServiceImpl extends BaseServiceImpl
*/
@Override
public List selectDeptListByRoleId(Long roleId) {
+ /*select d.dept_id
+ from sys_dept d
+ left join sys_role_dept rd on d.dept_id = rd.dept_id
+ where rd.role_id = #{roleId}
+
+ and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
+
+ order by d.parent_id, d.order_num*/
SysRoleVo role = sysRoleService.selectRoleById(roleId);
- return deptMapper.selectDeptListByRoleId(roleId, role.getDeptCheckStrictly());
+
+ QueryWrapper queryWrapper = QueryWrapper.create()
+ .select(SYS_DEPT.DEPT_ID)
+ .from(SYS_DEPT.as("d"))
+ .leftJoin(SYS_ROLE_DEPT).as("rd").on(SYS_ROLE_DEPT.DEPT_ID.eq(SYS_DEPT.DEPT_ID))
+ .where(SYS_ROLE_DEPT.ROLE_ID.eq(roleId));
+ //部门树选择项是否关联显示
+ if(ObjectUtil.isNotNull(role.getDeptCheckStrictly()) && role.getDeptCheckStrictly().equals(true)) {
+ queryWrapper.and(SYS_DEPT.DEPT_ID.notIn(select(SYS_DEPT.PARENT_ID).from(SYS_DEPT).innerJoin(SYS_ROLE_DEPT).on(SYS_ROLE_DEPT.DEPT_ID.eq(SYS_DEPT.DEPT_ID).and(SYS_ROLE_DEPT.ROLE_ID.eq(roleId)))));
+ }
+ queryWrapper.orderBy(SYS_DEPT.PARENT_ID.asc(),SYS_DEPT.ORDER_NUM.asc());
+
+
+ return this.listAs(queryWrapper, Long.class);
}
/**
@@ -255,8 +272,8 @@ public class SysDeptServiceImpl extends BaseServiceImpl
SysDeptBo dept = new SysDeptBo();
dept.setDeptId(deptId);
- List depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
- if (ObjectUtil.isNull(depts)) {
+ List deptLists = SpringUtils.getAopProxy(this).selectDeptList(dept);
+ if (ObjectUtil.isNull(deptLists)) {
throw new ServiceException("没有权限访问部门数据!");
}
}
@@ -276,7 +293,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl
}
SysDept dept = MapstructUtils.convert(deptBo, SysDept.class);
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
- dept.setDelFlag("0");//0代表存在
+ dept.setDelFlag("0");//0 代表存在
return this.save(dept);
}
@@ -347,7 +364,6 @@ public class SysDeptServiceImpl extends BaseServiceImpl
.where(SysDept::getDeptId).eq(child.getDeptId())
.update();
}
- return;
}
/**
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index cc831b8..82ce40d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -22,9 +22,7 @@ import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.bo.SysRoleBo;
import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.mapper.*;
-import com.ruoyi.system.service.ISysRoleDeptService;
-import com.ruoyi.system.service.ISysRoleMenuService;
-import com.ruoyi.system.service.ISysUserRoleService;
+import com.ruoyi.system.service.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -33,7 +31,6 @@ import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.SpringUtils;
-import com.ruoyi.system.service.ISysRoleService;
import static com.ruoyi.system.domain.table.SysDeptTableDef.SYS_DEPT;
import static com.ruoyi.system.domain.table.SysRoleMenuTableDef.SYS_ROLE_MENU;
@@ -56,6 +53,8 @@ public class SysRoleServiceImpl extends BaseServiceImpl
private ISysRoleDeptService roleDeptService;
@Resource
private ISysUserRoleService userRoleService;
+ @Resource
+ private ISysDataScopeService dataScopeService;
@Override
@@ -110,9 +109,8 @@ public class SysRoleServiceImpl extends BaseServiceImpl
* @return 角色数据集合信息
*/
@Override
- //@DataScope(deptAlias = "d")
public List selectRoleList(SysRoleBo roleBo) {
- QueryWrapper queryWrapper = buildQueryWrapper(roleBo);
+ QueryWrapper queryWrapper = dataScopeService.addCondition(buildQueryWrapper(roleBo));
return this.listAs(queryWrapper, SysRoleVo.class);
}
@@ -124,7 +122,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl
*/
@Override
public TableDataInfo selectPage(SysRoleBo roleBo) {
- QueryWrapper queryWrapper = buildQueryWrapper(roleBo);
+ QueryWrapper queryWrapper = dataScopeService.addCondition(buildQueryWrapper(roleBo));
Page page = this.pageAs(PageQuery.build(), queryWrapper, SysRoleVo.class);
return TableDataInfo.build(page);
}
@@ -179,7 +177,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl
left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id
where r.del_flag = '0' and ur.user_id = #{userId}*/
- QueryWrapper queryWrapper = QueryWrapper.create()
+/* QueryWrapper queryWrapper = QueryWrapper.create()
.select(QueryMethods.distinct(SYS_ROLE.ALL_COLUMNS))
.from(SYS_ROLE.as("r"))
.leftJoin(SYS_USER_ROLE).as("ur").on(SYS_USER_ROLE.ROLE_ID.eq(SYS_ROLE.ROLE_ID))
@@ -188,9 +186,11 @@ public class SysRoleServiceImpl extends BaseServiceImpl
queryWrapper.where(SYS_ROLE.DEL_FLAG.eq("0"))
.and(SYS_USER_ROLE.USER_ID.eq(userId));
- List userRoles = this.listAs(queryWrapper, SysRoleVo.class);
+ List userRoles = this.listAs(queryWrapper, SysRoleVo.class);*/
- return userRoles;
+ //为了避免在数据权限SysDataScopeServiceImpl引用产生循环引用问题,将该方法的实现由service转到mapper中(2023.11.21)
+
+ return roleMapper.selectUserRolesByUserId(userId);
}
/**
@@ -542,7 +542,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl
}
/**
- * 根据用户ID查询角色
+ * 根据用户名查询角色
*
* @param userName 用户名
* @return 角色列表
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
index 39c4dcf..ddfcbfd 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
@@ -4,21 +4,4 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
- `config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`,
- `update_by`, `update_time`, `remark`
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 6034978..8cd0949 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -4,38 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
- from sys_dept d
-
-
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
index 8fe1dd8..b82b666 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -4,26 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, create_by, create_time, remark
- from sys_dict_data
-
-
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
index a3fc50c..f41250b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
@@ -4,19 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
- select dict_id, dict_name, dict_type, create_by, create_time, remark
- from sys_dict_type
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
index 47d22c7..ad900d2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -4,24 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select notice_id, notice_title, notice_type, cast(notice_content as char) as notice_content, status, create_by, create_time, update_by, update_time, remark
- from sys_notice
-
-
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
index 4ac1dba..ba8b6a7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml
@@ -4,21 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark
- from sys_post
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
index 8a5b4df..9a2380e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml
@@ -4,9 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 1710660..ecaa521 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -4,30 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
- r.status, r.del_flag, r.create_time, r.remark
- from sys_role r
- left join sys_user_role ur on ur.role_id = r.role_id
- left join sys_user u on u.user_id = ur.user_id
- left join sys_dept d on u.dept_id = d.dept_id
-
-
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
index db0f94a..ef45e2b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
@@ -4,10 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
diff --git a/ruoyi-ui/.editorconfig b/ruoyi-ui/.editorconfig
deleted file mode 100644
index 7034f9b..0000000
--- a/ruoyi-ui/.editorconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-# 告诉EditorConfig插件,这是根文件,不用继续往上查找
-root = true
-
-# 匹配全部文件
-[*]
-# 设置字符集
-charset = utf-8
-# 缩进风格,可选space、tab
-indent_style = space
-# 缩进的空格数
-indent_size = 2
-# 结尾换行符,可选lf、cr、crlf
-end_of_line = lf
-# 在文件结尾插入新行
-insert_final_newline = true
-# 删除一行中的前后空格
-trim_trailing_whitespace = true
-
-# 匹配md结尾的文件
-[*.md]
-insert_final_newline = false
-trim_trailing_whitespace = false
diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development
deleted file mode 100644
index 993b04b..0000000
--- a/ruoyi-ui/.env.development
+++ /dev/null
@@ -1,17 +0,0 @@
-# 页面标题
-VITE_APP_TITLE = Ruoyi-Flex管理系统
-
-# 开发环境配置
-VITE_APP_ENV = 'development'
-
-# 若依管理系统/开发环境
-VITE_APP_BASE_API = '/dev-api'
-
-# 监控地址
-VITE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/applications'
-
-# powerjob任务调度控制台地址
-VITE_APP_POWERJOB_ADMIN = 'http://localhost:7700/'
-
-# 路由懒加载
-VITE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production
deleted file mode 100644
index ec3c52e..0000000
--- a/ruoyi-ui/.env.production
+++ /dev/null
@@ -1,17 +0,0 @@
-# 页面标题
-VITE_APP_TITLE = Ruoyi-Flex管理系统
-
-# 生产环境配置
-VITE_APP_ENV = 'production'
-
-# 若依管理系统/生产环境
-VITE_APP_BASE_API = '/prod-api'
-
-# 监控地址
-VITE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/applications'
-
-# powerjob任务调度控制台地址
-VITE_APP_POWERJOB_ADMIN = 'http://localhost:7700/'
-
-# 是否在打包时开启压缩,支持 gzip 和 brotli
-VITE_BUILD_COMPRESS = gzip
diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging
deleted file mode 100644
index 1b05fc2..0000000
--- a/ruoyi-ui/.env.staging
+++ /dev/null
@@ -1,11 +0,0 @@
-# 页面标题
-VITE_APP_TITLE = Ruoyi-Flex管理系统
-
-# 生产环境配置
-VITE_APP_ENV = 'staging'
-
-# 若依管理系统/生产环境
-VITE_APP_BASE_API = '/stage-api'
-
-# 是否在打包时开启压缩,支持 gzip 和 brotli
-VITE_BUILD_COMPRESS = gzip
diff --git a/ruoyi-ui/.gitignore b/ruoyi-ui/.gitignore
deleted file mode 100644
index 78a752d..0000000
--- a/ruoyi-ui/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-.DS_Store
-node_modules/
-dist/
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-**/*.log
-
-tests/**/coverage/
-tests/e2e/reports
-selenium-debug.log
-
-# Editor directories and files
-.idea
-.vscode
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.local
-
-package-lock.json
-yarn.lock
diff --git a/ruoyi-ui/README.md b/ruoyi-ui/README.md
deleted file mode 100644
index 6b738ec..0000000
--- a/ruoyi-ui/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## 开发
-
-```bash
-# 克隆项目
-git clone https://gitee.com/dataprince/ruoyi-flex
-
-# 进入项目目录
-cd ruoyi-ui
-
-# 安装依赖
-npm install --registry=https://registry.npmmirror.com
-
-# 启动服务
-npm run dev
-
-前端浏览器访问 http://localhost:80
-
-## 发布
-
-```bash
-# 构建测试环境
-npm run build:stage
-
-# 构建生产环境
-npm run build:prod
-```
\ No newline at end of file
diff --git a/ruoyi-ui/babel.config.js b/ruoyi-ui/babel.config.js
deleted file mode 100644
index c8267b2..0000000
--- a/ruoyi-ui/babel.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = {
- presets: [
- // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
- '@vue/cli-plugin-babel/preset'
- ],
- 'env': {
- 'development': {
- // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
- // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
- 'plugins': ['dynamic-import-node']
- }
- }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/bin/build.bat b/ruoyi-ui/bin/build.bat
deleted file mode 100644
index ac24da0..0000000
--- a/ruoyi-ui/bin/build.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [Ϣ] Weḅdistļ
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-yarn build:prod
-
-pause
diff --git a/ruoyi-ui/bin/package.bat b/ruoyi-ui/bin/package.bat
deleted file mode 100644
index 965883a..0000000
--- a/ruoyi-ui/bin/package.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [Ϣ] װWeḅnode_modulesļ
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-yarn --registry=https://registry.npm.taobao.org
-
-pause
\ No newline at end of file
diff --git a/ruoyi-ui/bin/run-web.bat b/ruoyi-ui/bin/run-web.bat
deleted file mode 100644
index d2fe397..0000000
--- a/ruoyi-ui/bin/run-web.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [Ϣ] ʹ Vite Web ̡
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-yarn dev
-
-pause
\ No newline at end of file
diff --git a/ruoyi-ui/html/ie.html b/ruoyi-ui/html/ie.html
deleted file mode 100644
index 052ffcd..0000000
--- a/ruoyi-ui/html/ie.html
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
- 请升级您的浏览器
-
-
-
-
-
-
-请升级您的浏览器,以便我们更好的为您提供服务!
-您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。
-
-请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束
-自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明 。
-
-您可以选择更先进的浏览器
-推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/index.html b/ruoyi-ui/index.html
deleted file mode 100644
index 47b6e45..0000000
--- a/ruoyi-ui/index.html
+++ /dev/null
@@ -1,215 +0,0 @@
-
-
-
-
-
-
-
-
-
- Ruoyi-Flex管理系统
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
deleted file mode 100644
index b3a7c4d..0000000
--- a/ruoyi-ui/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "name": "RuoYi-Flex",
- "version": "4.1.7",
- "description": "RuoYi-Flex管理系统",
- "author": "数据小王子",
- "license": "MIT",
- "scripts": {
- "dev": "vite serve --mode development",
- "build:prod": "vite build --mode production &&vue-tsc --noEmit",
- "build:stage": "vite build --mode staging",
- "preview": "vite preview"
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "src/**/*.{js,vue}": [
- "eslint --fix",
- "git add"
- ]
- },
- "keywords": [
- "vue",
- "admin",
- "dashboard",
- "element-ui",
- "boilerplate",
- "admin-template",
- "management-system"
- ],
- "repository": {
- "type": "git",
- "url": "https://gitee.com/dataprince/ruoyi-flex.git"
- },
- "dependencies": {
- "@element-plus/icons-vue": "2.1.0",
- "@vueup/vue-quill": "1.1.0",
- "@vueuse/core": "9.5.0",
- "animate.css": "4.1.1",
- "@zeronejs/utils": "^1.4.0",
- "axios": "^1.3.4",
- "echarts": "5.4.0",
- "element-plus": "2.2.27",
- "file-saver": "2.0.5",
- "fuse.js": "6.6.2",
- "js-cookie": "3.0.1",
- "jsencrypt": "3.3.1",
- "nprogress": "0.2.0",
- "vue": "3.2.45",
- "vue-cropper": "1.0.3",
- "vue-i18n": "9.2.2",
- "vue-router": "4.1.4",
- "vuex": "4.0.2"
- },
- "devDependencies": {
- "@types/file-saver": "^2.0.5",
- "@types/js-cookie": "^3.0.3",
- "@types/node": "^18.14.6",
- "@types/nprogress": "^0.2.0",
- "@typescript-eslint/eslint-plugin": "^5.56.0",
- "@typescript-eslint/parser": "^5.56.0",
- "@vitejs/plugin-vue": "4.0.0",
- "@vue/compiler-sfc": "3.2.47",
- "autoprefixer": "^10.4.16",
- "eslint": "^8.51.0",
- "eslint-config-prettier": "^8.8.0",
- "eslint-plugin-vue": "^9.9.0",
- "fast-glob": "^3.3.1",
- "postcss": "^8.4.31",
- "sass": "1.56.1",
- "tailwindcss": "^3.1.8",
- "ts-node": "^10.9.1",
- "tsconfig-paths": "^4.1.0",
- "typescript": "^4.9.5",
- "unplugin-auto-import": "0.16.6",
- "unplugin-vue-components": "^0.23.0",
- "vite": "4.4.11",
- "vite-plugin-compression": "^0.5.1",
- "vite-plugin-svg-icons": "^2.0.1",
- "vite-plugin-vue-setup-extend": "^0.4.0"
- },
- "engines": {
- "node": ">=8.9",
- "npm": ">= 3.0.0"
- },
- "browserslist": [
- "> 1%",
- "last 2 versions"
- ]
-}
diff --git a/ruoyi-ui/public/favicon.ico b/ruoyi-ui/public/favicon.ico
deleted file mode 100644
index e263760..0000000
Binary files a/ruoyi-ui/public/favicon.ico and /dev/null differ
diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue
deleted file mode 100644
index 98240ae..0000000
--- a/ruoyi-ui/src/App.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/ruoyi-ui/src/animate.js b/ruoyi-ui/src/animate.js
deleted file mode 100644
index 70c60b9..0000000
--- a/ruoyi-ui/src/animate.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// 前缀
-const animatePrefix = 'animate__animated ';
-// 开启随机动画 随机动画值
-const animateList = [
- animatePrefix + 'animate__pulse',
- animatePrefix + 'animate__rubberBand',
- animatePrefix + 'animate__bounceIn',
- animatePrefix + 'animate__bounceInLeft',
- animatePrefix + 'animate__fadeIn',
- animatePrefix + 'animate__fadeInLeft',
- animatePrefix + 'animate__fadeInDown',
- animatePrefix + 'animate__fadeInUp',
- animatePrefix + 'animate__flipInX',
- animatePrefix + 'animate__lightSpeedInLeft',
- animatePrefix + 'animate__rotateInDownLeft',
- animatePrefix + 'animate__rollIn',
- animatePrefix + 'animate__rotateInDownLeft',
- animatePrefix + 'animate__zoomIn',
- animatePrefix + 'animate__zoomInDown',
- animatePrefix + 'animate__slideInLeft',
- animatePrefix + 'animate__lightSpeedIn'
-];
-// 关闭随机动画后的默认效果
-const defaultAnimate = animatePrefix + 'animate__fadeIn';
-// 搜索隐藏显示动画
-const searchAnimate = {
- enter: '',
- leave: ''
-};
-
-// 菜单搜索动画
-const menuSearchAnimate = {
- enter: animatePrefix + 'animate__fadeIn',
- leave: animatePrefix + 'animate__fadeOut'
-};
-// logo动画
-const logoAnimate = {
- enter: animatePrefix + 'animate__fadeIn',
- leave: animatePrefix + 'animate__fadeOut'
-};
-
-export default {
- animateList,
- defaultAnimate,
- searchAnimate,
- menuSearchAnimate,
- logoAnimate
-};
diff --git a/ruoyi-ui/src/api/demo/customer.js b/ruoyi-ui/src/api/demo/customer.js
deleted file mode 100644
index 7655550..0000000
--- a/ruoyi-ui/src/api/demo/customer.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询客户主表(mb)列表
-export function listCustomer(query) {
- return request({
- url: '/demo/customer/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询客户主表(mb)详细
-export function getCustomer(customerId) {
- return request({
- url: '/demo/customer/' + customerId,
- method: 'get'
- })
-}
-
-// 新增客户主表(mb)
-export function addCustomer(data) {
- return request({
- url: '/demo/customer',
- method: 'post',
- data: data
- })
-}
-
-// 修改客户主表(mb)
-export function updateCustomer(data) {
- return request({
- url: '/demo/customer',
- method: 'put',
- data: data
- })
-}
-
-// 删除客户主表(mb)
-export function delCustomer(customerId) {
- return request({
- url: '/demo/customer/' + customerId,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/demo/product.js b/ruoyi-ui/src/api/demo/product.js
deleted file mode 100644
index 2118148..0000000
--- a/ruoyi-ui/src/api/demo/product.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询产品树表(mb)列表
-export function listProduct(query) {
- return request({
- url: '/demo/product/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询产品树表(mb)详细
-export function getProduct(productId) {
- return request({
- url: '/demo/product/' + productId,
- method: 'get'
- })
-}
-
-// 新增产品树表(mb)
-export function addProduct(data) {
- return request({
- url: '/demo/product',
- method: 'post',
- data: data
- })
-}
-
-// 修改产品树表(mb)
-export function updateProduct(data) {
- return request({
- url: '/demo/product',
- method: 'put',
- data: data
- })
-}
-
-// 删除产品树表(mb)
-export function delProduct(productId) {
- return request({
- url: '/demo/product/' + productId,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/demo/student.js b/ruoyi-ui/src/api/demo/student.js
deleted file mode 100644
index 69b0b8e..0000000
--- a/ruoyi-ui/src/api/demo/student.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询学生信息单表(mb)列表
-export function listStudent(query) {
- return request({
- url: '/demo/student/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询学生信息单表(mb)详细
-export function getStudent(studentId) {
- return request({
- url: '/demo/student/' + studentId,
- method: 'get'
- })
-}
-
-// 新增学生信息单表(mb)
-export function addStudent(data) {
- return request({
- url: '/demo/student',
- method: 'post',
- data: data
- })
-}
-
-// 修改学生信息单表(mb)
-export function updateStudent(data) {
- return request({
- url: '/demo/student',
- method: 'put',
- data: data
- })
-}
-
-// 删除学生信息单表(mb)
-export function delStudent(studentId) {
- return request({
- url: '/demo/student/' + studentId,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
deleted file mode 100644
index c354750..0000000
--- a/ruoyi-ui/src/api/login.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import request from '@/utils/request'
-
-// pc端固定客户端授权id
-const clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e';
-
-// 登录方法
-export function login(tenantId,username, password, code, uuid) {
- const params = {
- tenantId,
- username,
- password,
- code,
- uuid,
- clientId: clientId,
- grantType: 'password'
- }
- return request({
- url: '/login',
- headers: {
- isToken: false,
- repeatSubmit: false
- },
- method: 'post',
- data: params
- })
-}
-
-// 注册方法
-export function register(data) {
- return request({
- url: '/register',
- headers: {
- isToken: false
- },
- method: 'post',
- data: data
- })
-}
-
-// 获取用户详细信息
-export function getInfo() {
- return request({
- url: '/getInfo',
- method: 'get'
- })
-}
-
-// 退出方法
-export function logout() {
- return request({
- url: '/logout',
- method: 'post'
- })
-}
-
-// 获取验证码
-export function getCodeImg() {
- return request({
- url: '/captchaImage',
- headers: {
- isToken: false
- },
- method: 'get',
- timeout: 20000
- })
-}
diff --git a/ruoyi-ui/src/api/menu.js b/ruoyi-ui/src/api/menu.js
deleted file mode 100644
index faef101..0000000
--- a/ruoyi-ui/src/api/menu.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-// 获取路由
-export const getRouters = () => {
- return request({
- url: '/getRouters',
- method: 'get'
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/monitor/cache.js b/ruoyi-ui/src/api/monitor/cache.js
deleted file mode 100644
index 72c5f6a..0000000
--- a/ruoyi-ui/src/api/monitor/cache.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import request from '@/utils/request'
-
-// 查询缓存详细
-export function getCache() {
- return request({
- url: '/monitor/cache',
- method: 'get'
- })
-}
-
-// 查询缓存名称列表
-export function listCacheName() {
- return request({
- url: '/monitor/cache/getNames',
- method: 'get'
- })
-}
-
-// 查询缓存键名列表
-export function listCacheKey(cacheName) {
- return request({
- url: '/monitor/cache/getKeys/' + cacheName,
- method: 'get'
- })
-}
-
-// 查询缓存内容
-export function getCacheValue(cacheName, cacheKey) {
- return request({
- url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
- method: 'get'
- })
-}
-
-// 清理指定名称缓存
-export function clearCacheName(cacheName) {
- return request({
- url: '/monitor/cache/clearCacheName/' + cacheName,
- method: 'delete'
- })
-}
-
-// 清理指定键名缓存
-export function clearCacheKey(cacheKey) {
- return request({
- url: '/monitor/cache/clearCacheKey/' + cacheKey,
- method: 'delete'
- })
-}
-
-// 清理全部缓存
-export function clearCacheAll() {
- return request({
- url: '/monitor/cache/clearCacheAll',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/monitor/jobLog.js b/ruoyi-ui/src/api/monitor/jobLog.js
deleted file mode 100644
index 6e0be61..0000000
--- a/ruoyi-ui/src/api/monitor/jobLog.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 查询调度日志列表
-export function listJobLog(query) {
- return request({
- url: '/monitor/jobLog/list',
- method: 'get',
- params: query
- })
-}
-
-// 删除调度日志
-export function delJobLog(jobLogId) {
- return request({
- url: '/monitor/jobLog/' + jobLogId,
- method: 'delete'
- })
-}
-
-// 清空调度日志
-export function cleanJobLog() {
- return request({
- url: '/monitor/jobLog/clean',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/monitor/logininfor.js b/ruoyi-ui/src/api/monitor/logininfor.js
deleted file mode 100644
index 4d112b7..0000000
--- a/ruoyi-ui/src/api/monitor/logininfor.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import request from '@/utils/request'
-
-// 查询登录日志列表
-export function list(query) {
- return request({
- url: '/monitor/logininfor/list',
- method: 'get',
- params: query
- })
-}
-
-// 删除登录日志
-export function delLogininfor(infoId) {
- return request({
- url: '/monitor/logininfor/' + infoId,
- method: 'delete'
- })
-}
-
-// 解锁用户登录状态
-export function unlockLogininfor(userName) {
- return request({
- url: '/monitor/logininfor/unlock/' + userName,
- method: 'get'
- })
-}
-
-// 清空登录日志
-export function cleanLogininfor() {
- return request({
- url: '/monitor/logininfor/clean',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/monitor/online.js b/ruoyi-ui/src/api/monitor/online.js
deleted file mode 100644
index bd22137..0000000
--- a/ruoyi-ui/src/api/monitor/online.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import request from '@/utils/request'
-
-// 查询在线用户列表
-export function list(query) {
- return request({
- url: '/monitor/online/list',
- method: 'get',
- params: query
- })
-}
-
-// 强退用户
-export function forceLogout(tokenId) {
- return request({
- url: '/monitor/online/' + tokenId,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/monitor/operlog.js b/ruoyi-ui/src/api/monitor/operlog.js
deleted file mode 100644
index 2288205..0000000
--- a/ruoyi-ui/src/api/monitor/operlog.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import request from '@/utils/request'
-
-// 查询操作日志列表
-export function list(query) {
- return request({
- url: '/monitor/operlog/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询单个操作日志
-export function getOperlog(operId) {
- return request({
- url: '/monitor/operlog/' + operId,
- method: 'get'
- })
-}
-
-// 删除操作日志
-export function delOperlog(operId) {
- return request({
- url: '/monitor/operlog/' + operId,
- method: 'delete'
- })
-}
-
-// 清空操作日志
-export function cleanOperlog() {
- return request({
- url: '/monitor/operlog/clean',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/system/config.js b/ruoyi-ui/src/api/system/config.js
deleted file mode 100644
index 92eccac..0000000
--- a/ruoyi-ui/src/api/system/config.js
+++ /dev/null
@@ -1,72 +0,0 @@
-import request from '@/utils/request'
-
-// 查询参数列表
-export function listConfig(query) {
- return request({
- url: '/system/config/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询参数详细
-export function getConfig(configId) {
- return request({
- url: '/system/config/' + configId,
- method: 'get'
- })
-}
-
-// 根据参数键名查询参数值
-export function getConfigKey(configKey) {
- return request({
- url: '/system/config/configKey/' + configKey,
- method: 'get'
- })
-}
-
-// 新增参数配置
-export function addConfig(data) {
- return request({
- url: '/system/config',
- method: 'post',
- data: data
- })
-}
-
-// 修改参数配置
-export function updateConfig(data) {
- return request({
- url: '/system/config',
- method: 'put',
- data: data
- })
-}
-
-// 修改参数配置
-export function updateConfigByKey(key, value) {
- return request({
- url: '/system/config/updateByKey',
- method: 'put',
- data: {
- configKey: key,
- configValue: value
- }
- });
-}
-
-// 删除参数配置
-export function delConfig(configId) {
- return request({
- url: '/system/config/' + configId,
- method: 'delete'
- })
-}
-
-// 刷新参数缓存
-export function refreshCache() {
- return request({
- url: '/system/config/refreshCache',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/system/dept.js b/ruoyi-ui/src/api/system/dept.js
deleted file mode 100644
index fc943cd..0000000
--- a/ruoyi-ui/src/api/system/dept.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import request from '@/utils/request'
-
-// 查询部门列表
-export function listDept(query) {
- return request({
- url: '/system/dept/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询部门列表(排除节点)
-export function listDeptExcludeChild(deptId) {
- return request({
- url: '/system/dept/list/exclude/' + deptId,
- method: 'get'
- })
-}
-
-// 查询部门详细
-export function getDept(deptId) {
- return request({
- url: '/system/dept/' + deptId,
- method: 'get'
- })
-}
-
-// 新增部门
-export function addDept(data) {
- return request({
- url: '/system/dept',
- method: 'post',
- data: data
- })
-}
-
-// 修改部门
-export function updateDept(data) {
- return request({
- url: '/system/dept',
- method: 'put',
- data: data
- })
-}
-
-// 删除部门
-export function delDept(deptId) {
- return request({
- url: '/system/dept/' + deptId,
- method: 'delete'
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/dict/data.js b/ruoyi-ui/src/api/system/dict/data.js
deleted file mode 100644
index 6c9eb79..0000000
--- a/ruoyi-ui/src/api/system/dict/data.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import request from '@/utils/request'
-
-// 查询字典数据列表
-export function listData(query) {
- return request({
- url: '/system/dict/data/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询字典数据详细
-export function getData(dictCode) {
- return request({
- url: '/system/dict/data/' + dictCode,
- method: 'get'
- })
-}
-
-// 根据字典类型查询字典数据信息
-export function getDicts(dictType) {
- return request({
- url: '/system/dict/data/type/' + dictType,
- method: 'get'
- })
-}
-
-// 新增字典数据
-export function addData(data) {
- return request({
- url: '/system/dict/data',
- method: 'post',
- data: data
- })
-}
-
-// 修改字典数据
-export function updateData(data) {
- return request({
- url: '/system/dict/data',
- method: 'put',
- data: data
- })
-}
-
-// 删除字典数据
-export function delData(dictCode) {
- return request({
- url: '/system/dict/data/' + dictCode,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/system/dict/type.js b/ruoyi-ui/src/api/system/dict/type.js
deleted file mode 100644
index a7a6e01..0000000
--- a/ruoyi-ui/src/api/system/dict/type.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 查询字典类型列表
-export function listType(query) {
- return request({
- url: '/system/dict/type/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询字典类型详细
-export function getType(dictId) {
- return request({
- url: '/system/dict/type/' + dictId,
- method: 'get'
- })
-}
-
-// 新增字典类型
-export function addType(data) {
- return request({
- url: '/system/dict/type',
- method: 'post',
- data: data
- })
-}
-
-// 修改字典类型
-export function updateType(data) {
- return request({
- url: '/system/dict/type',
- method: 'put',
- data: data
- })
-}
-
-// 删除字典类型
-export function delType(dictId) {
- return request({
- url: '/system/dict/type/' + dictId,
- method: 'delete'
- })
-}
-
-// 刷新字典缓存
-export function refreshCache() {
- return request({
- url: '/system/dict/type/refreshCache',
- method: 'delete'
- })
-}
-
-// 获取字典选择框列表
-export function optionselect() {
- return request({
- url: '/system/dict/type/optionselect',
- method: 'get'
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/menu.js b/ruoyi-ui/src/api/system/menu.js
deleted file mode 100644
index f6415c6..0000000
--- a/ruoyi-ui/src/api/system/menu.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 查询菜单列表
-export function listMenu(query) {
- return request({
- url: '/system/menu/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询菜单详细
-export function getMenu(menuId) {
- return request({
- url: '/system/menu/' + menuId,
- method: 'get'
- })
-}
-
-// 查询菜单下拉树结构
-export function treeselect() {
- return request({
- url: '/system/menu/treeselect',
- method: 'get'
- })
-}
-
-// 根据角色ID查询菜单下拉树结构
-export function roleMenuTreeselect(roleId) {
- return request({
- url: '/system/menu/roleMenuTreeselect/' + roleId,
- method: 'get'
- })
-}
-
-// 新增菜单
-export function addMenu(data) {
- return request({
- url: '/system/menu',
- method: 'post',
- data: data
- })
-}
-
-// 修改菜单
-export function updateMenu(data) {
- return request({
- url: '/system/menu',
- method: 'put',
- data: data
- })
-}
-
-// 删除菜单
-export function delMenu(menuId) {
- return request({
- url: '/system/menu/' + menuId,
- method: 'delete'
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/notice.js b/ruoyi-ui/src/api/system/notice.js
deleted file mode 100644
index c274ea5..0000000
--- a/ruoyi-ui/src/api/system/notice.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询公告列表
-export function listNotice(query) {
- return request({
- url: '/system/notice/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询公告详细
-export function getNotice(noticeId) {
- return request({
- url: '/system/notice/' + noticeId,
- method: 'get'
- })
-}
-
-// 新增公告
-export function addNotice(data) {
- return request({
- url: '/system/notice',
- method: 'post',
- data: data
- })
-}
-
-// 修改公告
-export function updateNotice(data) {
- return request({
- url: '/system/notice',
- method: 'put',
- data: data
- })
-}
-
-// 删除公告
-export function delNotice(noticeId) {
- return request({
- url: '/system/notice/' + noticeId,
- method: 'delete'
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/post.js b/ruoyi-ui/src/api/system/post.js
deleted file mode 100644
index 1a8e9ca..0000000
--- a/ruoyi-ui/src/api/system/post.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询岗位列表
-export function listPost(query) {
- return request({
- url: '/system/post/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询岗位详细
-export function getPost(postId) {
- return request({
- url: '/system/post/' + postId,
- method: 'get'
- })
-}
-
-// 新增岗位
-export function addPost(data) {
- return request({
- url: '/system/post',
- method: 'post',
- data: data
- })
-}
-
-// 修改岗位
-export function updatePost(data) {
- return request({
- url: '/system/post',
- method: 'put',
- data: data
- })
-}
-
-// 删除岗位
-export function delPost(postId) {
- return request({
- url: '/system/post/' + postId,
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/api/system/role.js b/ruoyi-ui/src/api/system/role.js
deleted file mode 100644
index f13e6f4..0000000
--- a/ruoyi-ui/src/api/system/role.js
+++ /dev/null
@@ -1,119 +0,0 @@
-import request from '@/utils/request'
-
-// 查询角色列表
-export function listRole(query) {
- return request({
- url: '/system/role/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询角色详细
-export function getRole(roleId) {
- return request({
- url: '/system/role/' + roleId,
- method: 'get'
- })
-}
-
-// 新增角色
-export function addRole(data) {
- return request({
- url: '/system/role',
- method: 'post',
- data: data
- })
-}
-
-// 修改角色
-export function updateRole(data) {
- return request({
- url: '/system/role',
- method: 'put',
- data: data
- })
-}
-
-// 角色数据权限
-export function dataScope(data) {
- return request({
- url: '/system/role/dataScope',
- method: 'put',
- data: data
- })
-}
-
-// 角色状态修改
-export function changeRoleStatus(roleId, status) {
- const data = {
- roleId,
- status
- }
- return request({
- url: '/system/role/changeStatus',
- method: 'put',
- data: data
- })
-}
-
-// 删除角色
-export function delRole(roleId) {
- return request({
- url: '/system/role/' + roleId,
- method: 'delete'
- })
-}
-
-// 查询角色已授权用户列表
-export function allocatedUserList(query) {
- return request({
- url: '/system/role/authUser/allocatedList',
- method: 'get',
- params: query
- })
-}
-
-// 查询角色未授权用户列表
-export function unallocatedUserList(query) {
- return request({
- url: '/system/role/authUser/unallocatedList',
- method: 'get',
- params: query
- })
-}
-
-// 取消用户授权角色
-export function authUserCancel(data) {
- return request({
- url: '/system/role/authUser/cancel',
- method: 'put',
- data: data
- })
-}
-
-// 批量取消用户授权角色
-export function authUserCancelAll(data) {
- return request({
- url: '/system/role/authUser/cancelAll',
- method: 'put',
- params: data
- })
-}
-
-// 授权用户选择
-export function authUserSelectAll(data) {
- return request({
- url: '/system/role/authUser/selectAll',
- method: 'put',
- params: data
- })
-}
-
-// 根据角色ID查询部门树结构
-export function deptTreeSelect(roleId) {
- return request({
- url: '/system/role/deptTree/' + roleId,
- method: 'get'
- })
-}
diff --git a/ruoyi-ui/src/api/system/user.js b/ruoyi-ui/src/api/system/user.js
deleted file mode 100644
index f2f76ef..0000000
--- a/ruoyi-ui/src/api/system/user.js
+++ /dev/null
@@ -1,135 +0,0 @@
-import request from '@/utils/request'
-import { parseStrEmpty } from "@/utils/ruoyi";
-
-// 查询用户列表
-export function listUser(query) {
- return request({
- url: '/system/user/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询用户详细
-export function getUser(userId) {
- return request({
- url: '/system/user/' + parseStrEmpty(userId),
- method: 'get'
- })
-}
-
-// 新增用户
-export function addUser(data) {
- return request({
- url: '/system/user',
- method: 'post',
- data: data
- })
-}
-
-// 修改用户
-export function updateUser(data) {
- return request({
- url: '/system/user',
- method: 'put',
- data: data
- })
-}
-
-// 删除用户
-export function delUser(userId) {
- return request({
- url: '/system/user/' + userId,
- method: 'delete'
- })
-}
-
-// 用户密码重置
-export function resetUserPwd(userId, password) {
- const data = {
- userId,
- password
- }
- return request({
- url: '/system/user/resetPwd',
- method: 'put',
- data: data
- })
-}
-
-// 用户状态修改
-export function changeUserStatus(userId, status) {
- const data = {
- userId,
- status
- }
- return request({
- url: '/system/user/changeStatus',
- method: 'put',
- data: data
- })
-}
-
-// 查询用户个人信息
-export function getUserProfile() {
- return request({
- url: '/system/user/profile',
- method: 'get'
- })
-}
-
-// 修改用户个人信息
-export function updateUserProfile(data) {
- return request({
- url: '/system/user/profile',
- method: 'put',
- data: data
- })
-}
-
-// 用户密码重置
-export function updateUserPwd(oldPassword, newPassword) {
- const data = {
- oldPassword,
- newPassword
- }
- return request({
- url: '/system/user/profile/updatePwd',
- method: 'put',
- params: data
- })
-}
-
-// 用户头像上传
-export function uploadAvatar(data) {
- return request({
- url: '/system/user/profile/avatar',
- method: 'post',
- data: data
- })
-}
-
-// 查询授权角色
-export function getAuthRole(userId) {
- return request({
- url: '/system/user/authRole/' + userId,
- method: 'get'
- })
-}
-
-// 保存授权角色
-export function updateAuthRole(data) {
- return request({
- url: '/system/user/authRole',
- method: 'put',
- params: data
- })
-}
-
-// 查询部门下拉树结构
-export function deptTreeSelect() {
- return request({
- url: '/system/user/deptTree',
- method: 'get'
- })
-}
diff --git a/ruoyi-ui/src/api/tool/gen.js b/ruoyi-ui/src/api/tool/gen.js
deleted file mode 100644
index 4506927..0000000
--- a/ruoyi-ui/src/api/tool/gen.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import request from '@/utils/request'
-
-// 查询生成表数据
-export function listTable(query) {
- return request({
- url: '/tool/gen/list',
- method: 'get',
- params: query
- })
-}
-// 查询db数据库列表
-export function listDbTable(query) {
- return request({
- url: '/tool/gen/db/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询表详细信息
-export function getGenTable(tableId) {
- return request({
- url: '/tool/gen/' + tableId,
- method: 'get'
- })
-}
-
-// 修改代码生成信息
-export function updateGenTable(data) {
- return request({
- url: '/tool/gen',
- method: 'put',
- data: data
- })
-}
-
-// 导入表
-export function importTable(data) {
- return request({
- url: '/tool/gen/importTable',
- method: 'post',
- params: data
- })
-}
-
-// 预览生成代码
-export function previewTable(tableId) {
- return request({
- url: '/tool/gen/preview/' + tableId,
- method: 'get'
- })
-}
-
-// 删除表数据
-export function delTable(tableId) {
- return request({
- url: '/tool/gen/' + tableId,
- method: 'delete'
- })
-}
-
-// 生成代码(自定义路径)
-export function genCode(tableName) {
- return request({
- url: '/tool/gen/genCode/' + tableName,
- method: 'get'
- })
-}
-
-// 同步数据库
-export function synchDb(tableName) {
- return request({
- url: '/tool/gen/synchDb/' + tableName,
- method: 'get'
- })
-}
diff --git a/ruoyi-ui/src/assets/401_images/401.gif b/ruoyi-ui/src/assets/401_images/401.gif
deleted file mode 100644
index cd6e0d9..0000000
Binary files a/ruoyi-ui/src/assets/401_images/401.gif and /dev/null differ
diff --git a/ruoyi-ui/src/assets/404_images/404.png b/ruoyi-ui/src/assets/404_images/404.png
deleted file mode 100644
index 3d8e230..0000000
Binary files a/ruoyi-ui/src/assets/404_images/404.png and /dev/null differ
diff --git a/ruoyi-ui/src/assets/404_images/404_cloud.png b/ruoyi-ui/src/assets/404_images/404_cloud.png
deleted file mode 100644
index c6281d0..0000000
Binary files a/ruoyi-ui/src/assets/404_images/404_cloud.png and /dev/null differ
diff --git a/ruoyi-ui/src/assets/icons/index.js b/ruoyi-ui/src/assets/icons/index.js
deleted file mode 100644
index 2c6b309..0000000
--- a/ruoyi-ui/src/assets/icons/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Vue from 'vue'
-import SvgIcon from '@/components/SvgIcon'// svg component
-
-// register globally
-Vue.component('svg-icon', SvgIcon)
-
-const req = require.context('./svg', false, /\.svg$/)
-const requireAll = requireContext => requireContext.keys().map(requireContext)
-requireAll(req)
diff --git a/ruoyi-ui/src/assets/icons/svg/404.svg b/ruoyi-ui/src/assets/icons/svg/404.svg
deleted file mode 100644
index 6df5019..0000000
--- a/ruoyi-ui/src/assets/icons/svg/404.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/bug.svg b/ruoyi-ui/src/assets/icons/svg/bug.svg
deleted file mode 100644
index 05a150d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/bug.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/build.svg b/ruoyi-ui/src/assets/icons/svg/build.svg
deleted file mode 100644
index 97c4688..0000000
--- a/ruoyi-ui/src/assets/icons/svg/build.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/button.svg b/ruoyi-ui/src/assets/icons/svg/button.svg
deleted file mode 100644
index 904fddc..0000000
--- a/ruoyi-ui/src/assets/icons/svg/button.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/cascader.svg b/ruoyi-ui/src/assets/icons/svg/cascader.svg
deleted file mode 100644
index e256024..0000000
--- a/ruoyi-ui/src/assets/icons/svg/cascader.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/chart.svg b/ruoyi-ui/src/assets/icons/svg/chart.svg
deleted file mode 100644
index 27728fb..0000000
--- a/ruoyi-ui/src/assets/icons/svg/chart.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/checkbox.svg b/ruoyi-ui/src/assets/icons/svg/checkbox.svg
deleted file mode 100644
index 013fd3a..0000000
--- a/ruoyi-ui/src/assets/icons/svg/checkbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/clipboard.svg b/ruoyi-ui/src/assets/icons/svg/clipboard.svg
deleted file mode 100644
index 90923ff..0000000
--- a/ruoyi-ui/src/assets/icons/svg/clipboard.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/code.svg b/ruoyi-ui/src/assets/icons/svg/code.svg
deleted file mode 100644
index 5f9c5ab..0000000
--- a/ruoyi-ui/src/assets/icons/svg/code.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/color.svg b/ruoyi-ui/src/assets/icons/svg/color.svg
deleted file mode 100644
index 44a81aa..0000000
--- a/ruoyi-ui/src/assets/icons/svg/color.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/company.svg b/ruoyi-ui/src/assets/icons/svg/company.svg
deleted file mode 100644
index fcf1394..0000000
--- a/ruoyi-ui/src/assets/icons/svg/company.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/component.svg b/ruoyi-ui/src/assets/icons/svg/component.svg
deleted file mode 100644
index 29c3458..0000000
--- a/ruoyi-ui/src/assets/icons/svg/component.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/dashboard.svg b/ruoyi-ui/src/assets/icons/svg/dashboard.svg
deleted file mode 100644
index 5317d37..0000000
--- a/ruoyi-ui/src/assets/icons/svg/dashboard.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/date-range.svg b/ruoyi-ui/src/assets/icons/svg/date-range.svg
deleted file mode 100644
index fda571e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/date-range.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/date.svg b/ruoyi-ui/src/assets/icons/svg/date.svg
deleted file mode 100644
index 52dc73e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/date.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/dict.svg b/ruoyi-ui/src/assets/icons/svg/dict.svg
deleted file mode 100644
index 4849377..0000000
--- a/ruoyi-ui/src/assets/icons/svg/dict.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/documentation.svg b/ruoyi-ui/src/assets/icons/svg/documentation.svg
deleted file mode 100644
index 7043122..0000000
--- a/ruoyi-ui/src/assets/icons/svg/documentation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/download.svg b/ruoyi-ui/src/assets/icons/svg/download.svg
deleted file mode 100644
index c896951..0000000
--- a/ruoyi-ui/src/assets/icons/svg/download.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/drag.svg b/ruoyi-ui/src/assets/icons/svg/drag.svg
deleted file mode 100644
index 4185d3c..0000000
--- a/ruoyi-ui/src/assets/icons/svg/drag.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/druid.svg b/ruoyi-ui/src/assets/icons/svg/druid.svg
deleted file mode 100644
index a2b4b4e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/druid.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/edit.svg b/ruoyi-ui/src/assets/icons/svg/edit.svg
deleted file mode 100644
index d26101f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/edit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/education.svg b/ruoyi-ui/src/assets/icons/svg/education.svg
deleted file mode 100644
index 7bfb01d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/education.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/email.svg b/ruoyi-ui/src/assets/icons/svg/email.svg
deleted file mode 100644
index 74d25e2..0000000
--- a/ruoyi-ui/src/assets/icons/svg/email.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/example.svg b/ruoyi-ui/src/assets/icons/svg/example.svg
deleted file mode 100644
index 46f42b5..0000000
--- a/ruoyi-ui/src/assets/icons/svg/example.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/excel.svg b/ruoyi-ui/src/assets/icons/svg/excel.svg
deleted file mode 100644
index 74d97b8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/excel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg b/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
deleted file mode 100644
index 485c128..0000000
--- a/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/eye-open.svg b/ruoyi-ui/src/assets/icons/svg/eye-open.svg
deleted file mode 100644
index 88dcc98..0000000
--- a/ruoyi-ui/src/assets/icons/svg/eye-open.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/eye.svg b/ruoyi-ui/src/assets/icons/svg/eye.svg
deleted file mode 100644
index 16ed2d8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/eye.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/form.svg b/ruoyi-ui/src/assets/icons/svg/form.svg
deleted file mode 100644
index dcbaa18..0000000
--- a/ruoyi-ui/src/assets/icons/svg/form.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/fullscreen.svg b/ruoyi-ui/src/assets/icons/svg/fullscreen.svg
deleted file mode 100644
index 0e86b6f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/fullscreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/gitee.svg b/ruoyi-ui/src/assets/icons/svg/gitee.svg
deleted file mode 100644
index 6324608..0000000
--- a/ruoyi-ui/src/assets/icons/svg/gitee.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ruoyi-ui/src/assets/icons/svg/github.svg b/ruoyi-ui/src/assets/icons/svg/github.svg
deleted file mode 100644
index db0a0d4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/guide.svg b/ruoyi-ui/src/assets/icons/svg/guide.svg
deleted file mode 100644
index b271001..0000000
--- a/ruoyi-ui/src/assets/icons/svg/guide.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/icon.svg b/ruoyi-ui/src/assets/icons/svg/icon.svg
deleted file mode 100644
index 82be8ee..0000000
--- a/ruoyi-ui/src/assets/icons/svg/icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/input.svg b/ruoyi-ui/src/assets/icons/svg/input.svg
deleted file mode 100644
index ab91381..0000000
--- a/ruoyi-ui/src/assets/icons/svg/input.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/international.svg b/ruoyi-ui/src/assets/icons/svg/international.svg
deleted file mode 100644
index e9b56ee..0000000
--- a/ruoyi-ui/src/assets/icons/svg/international.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/job.svg b/ruoyi-ui/src/assets/icons/svg/job.svg
deleted file mode 100644
index 2a93a25..0000000
--- a/ruoyi-ui/src/assets/icons/svg/job.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/language.svg b/ruoyi-ui/src/assets/icons/svg/language.svg
deleted file mode 100644
index 0082b57..0000000
--- a/ruoyi-ui/src/assets/icons/svg/language.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/link.svg b/ruoyi-ui/src/assets/icons/svg/link.svg
deleted file mode 100644
index 48197ba..0000000
--- a/ruoyi-ui/src/assets/icons/svg/link.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/list.svg b/ruoyi-ui/src/assets/icons/svg/list.svg
deleted file mode 100644
index 20259ed..0000000
--- a/ruoyi-ui/src/assets/icons/svg/list.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/lock.svg b/ruoyi-ui/src/assets/icons/svg/lock.svg
deleted file mode 100644
index 74fee54..0000000
--- a/ruoyi-ui/src/assets/icons/svg/lock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/log.svg b/ruoyi-ui/src/assets/icons/svg/log.svg
deleted file mode 100644
index d879d33..0000000
--- a/ruoyi-ui/src/assets/icons/svg/log.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/logininfor.svg b/ruoyi-ui/src/assets/icons/svg/logininfor.svg
deleted file mode 100644
index 267f844..0000000
--- a/ruoyi-ui/src/assets/icons/svg/logininfor.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/maxkey.svg b/ruoyi-ui/src/assets/icons/svg/maxkey.svg
deleted file mode 100644
index f8f8a7d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/maxkey.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/ruoyi-ui/src/assets/icons/svg/message.svg b/ruoyi-ui/src/assets/icons/svg/message.svg
deleted file mode 100644
index 14ca817..0000000
--- a/ruoyi-ui/src/assets/icons/svg/message.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/money.svg b/ruoyi-ui/src/assets/icons/svg/money.svg
deleted file mode 100644
index c1580de..0000000
--- a/ruoyi-ui/src/assets/icons/svg/money.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/monitor.svg b/ruoyi-ui/src/assets/icons/svg/monitor.svg
deleted file mode 100644
index bc308cb..0000000
--- a/ruoyi-ui/src/assets/icons/svg/monitor.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/nested.svg b/ruoyi-ui/src/assets/icons/svg/nested.svg
deleted file mode 100644
index 06713a8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/nested.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/number.svg b/ruoyi-ui/src/assets/icons/svg/number.svg
deleted file mode 100644
index ad5ce9a..0000000
--- a/ruoyi-ui/src/assets/icons/svg/number.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/online.svg b/ruoyi-ui/src/assets/icons/svg/online.svg
deleted file mode 100644
index 330a202..0000000
--- a/ruoyi-ui/src/assets/icons/svg/online.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/password.svg b/ruoyi-ui/src/assets/icons/svg/password.svg
deleted file mode 100644
index 6c64def..0000000
--- a/ruoyi-ui/src/assets/icons/svg/password.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/pdf.svg b/ruoyi-ui/src/assets/icons/svg/pdf.svg
deleted file mode 100644
index 957aa0c..0000000
--- a/ruoyi-ui/src/assets/icons/svg/pdf.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/people.svg b/ruoyi-ui/src/assets/icons/svg/people.svg
deleted file mode 100644
index 2bd54ae..0000000
--- a/ruoyi-ui/src/assets/icons/svg/people.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/peoples.svg b/ruoyi-ui/src/assets/icons/svg/peoples.svg
deleted file mode 100644
index aab852e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/peoples.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/phone.svg b/ruoyi-ui/src/assets/icons/svg/phone.svg
deleted file mode 100644
index ab8e8c4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/phone.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/post.svg b/ruoyi-ui/src/assets/icons/svg/post.svg
deleted file mode 100644
index 2922c61..0000000
--- a/ruoyi-ui/src/assets/icons/svg/post.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/qq.svg b/ruoyi-ui/src/assets/icons/svg/qq.svg
deleted file mode 100644
index ee13d4e..0000000
--- a/ruoyi-ui/src/assets/icons/svg/qq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/question.svg b/ruoyi-ui/src/assets/icons/svg/question.svg
deleted file mode 100644
index cf75bd4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/question.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/radio.svg b/ruoyi-ui/src/assets/icons/svg/radio.svg
deleted file mode 100644
index 0cde345..0000000
--- a/ruoyi-ui/src/assets/icons/svg/radio.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/rate.svg b/ruoyi-ui/src/assets/icons/svg/rate.svg
deleted file mode 100644
index aa3b14d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/rate.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/redis-list.svg b/ruoyi-ui/src/assets/icons/svg/redis-list.svg
deleted file mode 100644
index 98a15b2..0000000
--- a/ruoyi-ui/src/assets/icons/svg/redis-list.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/redis.svg b/ruoyi-ui/src/assets/icons/svg/redis.svg
deleted file mode 100644
index 2f1d62d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/redis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/row.svg b/ruoyi-ui/src/assets/icons/svg/row.svg
deleted file mode 100644
index 0780992..0000000
--- a/ruoyi-ui/src/assets/icons/svg/row.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/search.svg b/ruoyi-ui/src/assets/icons/svg/search.svg
deleted file mode 100644
index 84233dd..0000000
--- a/ruoyi-ui/src/assets/icons/svg/search.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/select.svg b/ruoyi-ui/src/assets/icons/svg/select.svg
deleted file mode 100644
index d628382..0000000
--- a/ruoyi-ui/src/assets/icons/svg/select.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/server.svg b/ruoyi-ui/src/assets/icons/svg/server.svg
deleted file mode 100644
index eb287e3..0000000
--- a/ruoyi-ui/src/assets/icons/svg/server.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/shopping.svg b/ruoyi-ui/src/assets/icons/svg/shopping.svg
deleted file mode 100644
index 87513e7..0000000
--- a/ruoyi-ui/src/assets/icons/svg/shopping.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/size.svg b/ruoyi-ui/src/assets/icons/svg/size.svg
deleted file mode 100644
index ddb25b8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/size.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/skill.svg b/ruoyi-ui/src/assets/icons/svg/skill.svg
deleted file mode 100644
index a3b7312..0000000
--- a/ruoyi-ui/src/assets/icons/svg/skill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/slider.svg b/ruoyi-ui/src/assets/icons/svg/slider.svg
deleted file mode 100644
index fbe4f39..0000000
--- a/ruoyi-ui/src/assets/icons/svg/slider.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/star.svg b/ruoyi-ui/src/assets/icons/svg/star.svg
deleted file mode 100644
index 6cf86e6..0000000
--- a/ruoyi-ui/src/assets/icons/svg/star.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/swagger.svg b/ruoyi-ui/src/assets/icons/svg/swagger.svg
deleted file mode 100644
index 05d4e7b..0000000
--- a/ruoyi-ui/src/assets/icons/svg/swagger.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/switch.svg b/ruoyi-ui/src/assets/icons/svg/switch.svg
deleted file mode 100644
index 0ba61e3..0000000
--- a/ruoyi-ui/src/assets/icons/svg/switch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/system.svg b/ruoyi-ui/src/assets/icons/svg/system.svg
deleted file mode 100644
index 5992593..0000000
--- a/ruoyi-ui/src/assets/icons/svg/system.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tab.svg b/ruoyi-ui/src/assets/icons/svg/tab.svg
deleted file mode 100644
index b4b48e4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tab.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/table.svg b/ruoyi-ui/src/assets/icons/svg/table.svg
deleted file mode 100644
index 0e3dc9d..0000000
--- a/ruoyi-ui/src/assets/icons/svg/table.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/textarea.svg b/ruoyi-ui/src/assets/icons/svg/textarea.svg
deleted file mode 100644
index 2709f29..0000000
--- a/ruoyi-ui/src/assets/icons/svg/textarea.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/theme.svg b/ruoyi-ui/src/assets/icons/svg/theme.svg
deleted file mode 100644
index 5982a2f..0000000
--- a/ruoyi-ui/src/assets/icons/svg/theme.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/time-range.svg b/ruoyi-ui/src/assets/icons/svg/time-range.svg
deleted file mode 100644
index 13c1202..0000000
--- a/ruoyi-ui/src/assets/icons/svg/time-range.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/time.svg b/ruoyi-ui/src/assets/icons/svg/time.svg
deleted file mode 100644
index b376e32..0000000
--- a/ruoyi-ui/src/assets/icons/svg/time.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tool.svg b/ruoyi-ui/src/assets/icons/svg/tool.svg
deleted file mode 100644
index 48e0e35..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tool.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tree-table.svg b/ruoyi-ui/src/assets/icons/svg/tree-table.svg
deleted file mode 100644
index 8aafdb8..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tree-table.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/tree.svg b/ruoyi-ui/src/assets/icons/svg/tree.svg
deleted file mode 100644
index dd4b7dd..0000000
--- a/ruoyi-ui/src/assets/icons/svg/tree.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/upload.svg b/ruoyi-ui/src/assets/icons/svg/upload.svg
deleted file mode 100644
index bae49c0..0000000
--- a/ruoyi-ui/src/assets/icons/svg/upload.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/user.svg b/ruoyi-ui/src/assets/icons/svg/user.svg
deleted file mode 100644
index 0ba0716..0000000
--- a/ruoyi-ui/src/assets/icons/svg/user.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/validCode.svg b/ruoyi-ui/src/assets/icons/svg/validCode.svg
deleted file mode 100644
index cfb1021..0000000
--- a/ruoyi-ui/src/assets/icons/svg/validCode.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/wechat.svg b/ruoyi-ui/src/assets/icons/svg/wechat.svg
deleted file mode 100644
index c586e55..0000000
--- a/ruoyi-ui/src/assets/icons/svg/wechat.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svg/zip.svg b/ruoyi-ui/src/assets/icons/svg/zip.svg
deleted file mode 100644
index f806fc4..0000000
--- a/ruoyi-ui/src/assets/icons/svg/zip.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/icons/svgo.yml b/ruoyi-ui/src/assets/icons/svgo.yml
deleted file mode 100644
index d11906a..0000000
--- a/ruoyi-ui/src/assets/icons/svgo.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# replace default config
-
-# multipass: true
-# full: true
-
-plugins:
-
- # - name
- #
- # or:
- # - name: false
- # - name: true
- #
- # or:
- # - name:
- # param1: 1
- # param2: 2
-
-- removeAttrs:
- attrs:
- - 'fill'
- - 'fill-rule'
diff --git a/ruoyi-ui/src/assets/images/dark.svg b/ruoyi-ui/src/assets/images/dark.svg
deleted file mode 100644
index f646bd7..0000000
--- a/ruoyi-ui/src/assets/images/dark.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/images/light.svg b/ruoyi-ui/src/assets/images/light.svg
deleted file mode 100644
index ab7cc08..0000000
--- a/ruoyi-ui/src/assets/images/light.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/images/login-background.jpg b/ruoyi-ui/src/assets/images/login-background.jpg
deleted file mode 100644
index 8a89eb8..0000000
Binary files a/ruoyi-ui/src/assets/images/login-background.jpg and /dev/null differ
diff --git a/ruoyi-ui/src/assets/images/pay.png b/ruoyi-ui/src/assets/images/pay.png
deleted file mode 100644
index bb8b967..0000000
Binary files a/ruoyi-ui/src/assets/images/pay.png and /dev/null differ
diff --git a/ruoyi-ui/src/assets/images/profile.jpg b/ruoyi-ui/src/assets/images/profile.jpg
deleted file mode 100644
index b3a940b..0000000
Binary files a/ruoyi-ui/src/assets/images/profile.jpg and /dev/null differ
diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png
deleted file mode 100644
index e263760..0000000
Binary files a/ruoyi-ui/src/assets/logo/logo.png and /dev/null differ
diff --git a/ruoyi-ui/src/assets/styles/btn.scss b/ruoyi-ui/src/assets/styles/btn.scss
deleted file mode 100644
index a1ccd01..0000000
--- a/ruoyi-ui/src/assets/styles/btn.scss
+++ /dev/null
@@ -1,99 +0,0 @@
-@import './variables.module.scss';
-
-@mixin colorBtn($color) {
- background: $color;
-
- &:hover {
- color: $color;
-
- &:before,
- &:after {
- background: $color;
- }
- }
-}
-
-.blue-btn {
- @include colorBtn($blue);
-}
-
-.light-blue-btn {
- @include colorBtn($light-blue);
-}
-
-.red-btn {
- @include colorBtn($red);
-}
-
-.pink-btn {
- @include colorBtn($pink);
-}
-
-.green-btn {
- @include colorBtn($green);
-}
-
-.tiffany-btn {
- @include colorBtn($tiffany);
-}
-
-.yellow-btn {
- @include colorBtn($yellow);
-}
-
-.pan-btn {
- font-size: 14px;
- color: #fff;
- padding: 14px 36px;
- border-radius: 8px;
- border: none;
- outline: none;
- transition: 600ms ease all;
- position: relative;
- display: inline-block;
-
- &:hover {
- background: #fff;
-
- &:before,
- &:after {
- width: 100%;
- transition: 600ms ease all;
- }
- }
-
- &:before,
- &:after {
- content: '';
- position: absolute;
- top: 0;
- right: 0;
- height: 2px;
- width: 0;
- transition: 400ms ease all;
- }
-
- &::after {
- right: inherit;
- top: inherit;
- left: 0;
- bottom: 0;
- }
-}
-
-.custom-button {
- display: inline-block;
- line-height: 1;
- white-space: nowrap;
- cursor: pointer;
- background: #fff;
- color: #fff;
- -webkit-appearance: none;
- text-align: center;
- box-sizing: border-box;
- outline: 0;
- margin: 0;
- padding: 10px 15px;
- font-size: 14px;
- border-radius: 4px;
-}
diff --git a/ruoyi-ui/src/assets/styles/element-ui.scss b/ruoyi-ui/src/assets/styles/element-ui.scss
deleted file mode 100644
index 43c093c..0000000
--- a/ruoyi-ui/src/assets/styles/element-ui.scss
+++ /dev/null
@@ -1,116 +0,0 @@
-// cover some element-ui styles
-
-.el-divider--horizontal {
- margin-bottom: 10px;
- margin-top: 10px;
-}
-
-.el-breadcrumb__inner,
-.el-breadcrumb__inner a {
- font-weight: 400 !important;
-}
-
-.el-upload {
- input[type='file'] {
- display: none !important;
- }
-}
-
-.el-upload__input {
- display: none;
-}
-
-.cell {
- .el-tag {
- margin-right: 0px;
- }
-}
-
-.small-padding {
- .cell {
- padding-left: 5px;
- padding-right: 5px;
- }
-}
-
-.fixed-width {
- .el-button--mini {
- padding: 7px 10px;
- width: 60px;
- }
-}
-
-.status-col {
- .cell {
- padding: 0 10px;
- text-align: center;
-
- .el-tag {
- margin-right: 0px;
- }
- }
-}
-
-/*-------------Dialog-------------**/
-.el-overlay {
- overflow: hidden;
-
- .el-overlay-dialog {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 100%;
-
- .el-dialog {
- margin: 0 auto !important;
-
- .el-dialog__body {
- padding: 15px !important;
- }
- }
- }
-}
-
-.el-dialog__body {
- max-height: calc(90vh - 111px) !important;
- overflow-y: auto;
- overflow-x: hidden;
-}
-
-// refine element ui upload
-.upload-container {
- .el-upload {
- width: 100%;
-
- .el-upload-dragger {
- width: 100%;
- height: 200px;
- }
- }
-}
-
-// dropdown
-.el-dropdown-menu {
- a {
- display: block;
- }
-}
-
-// fix date-picker ui bug in filter-item
-.el-range-editor.el-input__inner {
- display: inline-flex !important;
-}
-
-// to fix el-date-picker css style
-.el-range-separator {
- box-sizing: content-box;
-}
-
-.el-menu--collapse > div > .el-submenu > .el-submenu__title .el-submenu__icon-arrow {
- display: none;
-}
-
-.el-dropdown .el-dropdown-link {
- color: var(--el-color-primary) !important;
-}
diff --git a/ruoyi-ui/src/assets/styles/index.scss b/ruoyi-ui/src/assets/styles/index.scss
deleted file mode 100644
index 48865fb..0000000
--- a/ruoyi-ui/src/assets/styles/index.scss
+++ /dev/null
@@ -1,208 +0,0 @@
-@import './variables.module.scss';
-@import './mixin.scss';
-@import './transition.scss';
-@import './element-ui.scss';
-@import './sidebar.scss';
-@import './btn.scss';
-@import './ruoyi.scss';
-@import 'animate.css';
-@import 'element-plus/dist/index.css';
-
-body {
- height: 100%;
- margin: 0;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- text-rendering: optimizeLegibility;
- font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-}
-
-label {
- font-weight: 700;
-}
-
-html {
- height: 100%;
- box-sizing: border-box;
-}
-
-html.dark .svg-icon,
-html.dark svg {
- fill: var(--el-text-color-regular);
-}
-
-#app {
- height: 100%;
-}
-
-*,
-*:before,
-*:after {
- box-sizing: inherit;
-}
-
-.no-padding {
- padding: 0px !important;
-}
-
-.padding-content {
- padding: 4px 0;
-}
-
-a:focus,
-a:active {
- outline: none;
-}
-
-a,
-a:focus,
-a:hover {
- cursor: pointer;
- color: inherit;
- text-decoration: none;
-}
-
-div:focus {
- outline: none;
-}
-
-.fr {
- float: right;
-}
-
-.fl {
- float: left;
-}
-
-.pr-5 {
- padding-right: 5px;
-}
-
-.pl-5 {
- padding-left: 5px;
-}
-
-.block {
- display: block;
-}
-
-.pointer {
- cursor: pointer;
-}
-
-.inlineBlock {
- display: block;
-}
-
-.clearfix {
- &:after {
- visibility: hidden;
- display: block;
- font-size: 0;
- content: ' ';
- clear: both;
- height: 0;
- }
-}
-
-aside {
- background: #eef1f6;
- padding: 8px 24px;
- margin-bottom: 20px;
- border-radius: 2px;
- display: block;
- line-height: 32px;
- font-size: 16px;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
- color: #2c3e50;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
- a {
- color: #337ab7;
- cursor: pointer;
-
- &:hover {
- color: rgb(32, 160, 255);
- }
- }
-}
-
-//main-container全局样式
-.app-container {
- padding: 20px;
-}
-
-// search面板样式
-.panel,
-.search {
- margin-bottom: 0.75rem;
- border-radius: 0.25rem;
- border: 1px solid var(--el-border-color-light);
- background-color: var(--el-bg-color-overlay);
- padding: 0.75rem;
- transition: all ease 0.3s;
-
- &:hover {
- box-shadow: 0 2px 12px #0000001a;
- transition: all ease 0.3s;
- }
-}
-
-.components-container {
- margin: 30px 50px;
- position: relative;
-}
-
-.pagination-container {
- margin-top: 30px;
-}
-
-.text-center {
- text-align: center;
-}
-
-.sub-navbar {
- height: 50px;
- line-height: 50px;
- position: relative;
- width: 100%;
- text-align: right;
- padding-right: 20px;
- transition: 600ms ease position;
- background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
-
- .subtitle {
- font-size: 20px;
- color: #fff;
- }
-
- &.draft {
- background: #d0d0d0;
- }
-
- &.deleted {
- background: #d0d0d0;
- }
-}
-
-.link-type,
-.link-type:focus {
- color: #337ab7;
- cursor: pointer;
-
- &:hover {
- color: rgb(32, 160, 255);
- }
-}
-
-.filter-container {
- padding-bottom: 10px;
-
- .filter-item {
- display: inline-block;
- vertical-align: middle;
- margin-bottom: 10px;
- }
-}
diff --git a/ruoyi-ui/src/assets/styles/mixin.scss b/ruoyi-ui/src/assets/styles/mixin.scss
deleted file mode 100644
index 5250e71..0000000
--- a/ruoyi-ui/src/assets/styles/mixin.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-@mixin clearfix {
- &:after {
- content: '';
- display: table;
- clear: both;
- }
-}
-
-@mixin scrollBar {
- &::-webkit-scrollbar-track-piece {
- background: #d3dce6;
- }
-
- &::-webkit-scrollbar {
- width: 6px;
- }
-
- &::-webkit-scrollbar-thumb {
- background: #99a9bf;
- border-radius: 20px;
- }
-}
-
-@mixin relative {
- position: relative;
- width: 100%;
- height: 100%;
-}
-
-@mixin pct($pct) {
- width: #{$pct};
- position: relative;
- margin: 0 auto;
-}
-
-@mixin triangle($width, $height, $color, $direction) {
- $width: $width/2;
- $color-border-style: $height solid $color;
- $transparent-border-style: $width solid transparent;
- height: 0;
- width: 0;
-
- @if $direction==up {
- border-bottom: $color-border-style;
- border-left: $transparent-border-style;
- border-right: $transparent-border-style;
- } @else if $direction==right {
- border-left: $color-border-style;
- border-top: $transparent-border-style;
- border-bottom: $transparent-border-style;
- } @else if $direction==down {
- border-top: $color-border-style;
- border-left: $transparent-border-style;
- border-right: $transparent-border-style;
- } @else if $direction==left {
- border-right: $color-border-style;
- border-top: $transparent-border-style;
- border-bottom: $transparent-border-style;
- }
-}
diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss
deleted file mode 100644
index d2ecb24..0000000
--- a/ruoyi-ui/src/assets/styles/ruoyi.scss
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- * 通用css样式布局处理
- * Copyright (c) 2019 ruoyi
- */
-
-/** 基础通用 **/
-.pt5 {
- padding-top: 5px;
-}
-.pr5 {
- padding-right: 5px;
-}
-.pb5 {
- padding-bottom: 5px;
-}
-.mt5 {
- margin-top: 5px;
-}
-.mr5 {
- margin-right: 5px;
-}
-.mb5 {
- margin-bottom: 5px;
-}
-.mb8 {
- margin-bottom: 8px;
-}
-.ml5 {
- margin-left: 5px;
-}
-.mt10 {
- margin-top: 10px;
-}
-.mr10 {
- margin-right: 10px;
-}
-.mb10 {
- margin-bottom: 10px;
-}
-.ml10 {
- margin-left: 10px;
-}
-.mt20 {
- margin-top: 20px;
-}
-.mr20 {
- margin-right: 20px;
-}
-.mb20 {
- margin-bottom: 20px;
-}
-.ml20 {
- margin-left: 20px;
-}
-
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
-}
-
-.el-form .el-form-item__label {
- font-weight: 700;
-}
-.el-dialog:not(.is-fullscreen) {
- margin-top: 6vh !important;
-}
-
-.el-dialog.scrollbar .el-dialog__body {
- overflow: auto;
- overflow-x: hidden;
- max-height: 70vh;
- padding: 10px 20px 0;
-}
-
-.el-table {
- .el-table__header-wrapper,
- .el-table__fixed-header-wrapper {
- th {
- word-break: break-word;
- background-color: $table-header-bg !important;
- color: $table-header-text-color;
- height: 40px !important;
- font-size: 13px;
- }
- }
- .el-table__body-wrapper {
- .el-button [class*='el-icon-'] + span {
- margin-left: 1px;
- }
- }
-}
-
-/** 表单布局 **/
-.form-header {
- font-size: 15px;
- color: #6379bb;
- border-bottom: 1px solid #ddd;
- margin: 8px 10px 25px 10px;
- padding-bottom: 5px;
-}
-
-/** 表格布局 **/
-.pagination-container {
- // position: relative;
- height: 25px;
- margin-bottom: 10px;
- margin-top: 15px;
- padding: 10px 20px !important;
-}
-
-/* tree border */
-.tree-border {
- margin-top: 5px;
- border: 1px solid #e5e6e7;
- background: #ffffff none;
- border-radius: 4px;
- width: 100%;
-}
-
-.pagination-container .el-pagination {
- //right: 0;
- //position: absolute;
-}
-
-@media (max-width: 768px) {
- .pagination-container .el-pagination > .el-pagination__jump {
- display: none !important;
- }
- .pagination-container .el-pagination > .el-pagination__sizes {
- display: none !important;
- }
-}
-
-.el-table .fixed-width .el-button--small {
- padding-left: 0;
- padding-right: 0;
- width: inherit;
-}
-
-/** 表格更多操作下拉样式 */
-.el-table .el-dropdown-link {
- cursor: pointer;
- color: #409eff;
- margin-left: 10px;
-}
-
-.el-table .el-dropdown,
-.el-icon-arrow-down {
- font-size: 12px;
-}
-
-.el-tree-node__content > .el-checkbox {
- margin-right: 8px;
-}
-
-.list-group-striped > .list-group-item {
- border-left: 0;
- border-right: 0;
- border-radius: 0;
- padding-left: 0;
- padding-right: 0;
-}
-
-.list-group {
- padding-left: 0px;
- list-style: none;
-}
-
-.list-group-item {
- border-bottom: 1px solid #e7eaec;
- border-top: 1px solid #e7eaec;
- margin-bottom: -1px;
- padding: 11px 0px;
- font-size: 13px;
-}
-
-.pull-right {
- float: right !important;
-}
-
-.el-card__header {
- padding: 14px 15px 7px !important;
- min-height: 40px;
-}
-
-.el-card__body {
- padding: 15px 20px 20px 20px !important;
-}
-
-.card-box {
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 10px;
-}
-
-/* button color */
-.el-button--cyan.is-active,
-.el-button--cyan:active {
- background: #20b2aa;
- border-color: #20b2aa;
- color: #ffffff;
-}
-
-.el-button--cyan:focus,
-.el-button--cyan:hover {
- background: #48d1cc;
- border-color: #48d1cc;
- color: #ffffff;
-}
-
-.el-button--cyan {
- background-color: #20b2aa;
- border-color: #20b2aa;
- color: #ffffff;
-}
-
-/* text color */
-.text-navy {
- color: #1ab394;
-}
-
-.text-primary {
- color: inherit;
-}
-
-.text-success {
- color: #1c84c6;
-}
-
-.text-info {
- color: #23c6c8;
-}
-
-.text-warning {
- color: #f8ac59;
-}
-
-.text-danger {
- color: #ed5565;
-}
-
-.text-muted {
- color: #888888;
-}
-
-/* image */
-.img-circle {
- border-radius: 50%;
-}
-
-.img-lg {
- width: 120px;
- height: 120px;
-}
-
-.avatar-upload-preview {
- position: absolute;
- top: 50%;
- transform: translate(50%, -50%);
- width: 200px;
- height: 200px;
- border-radius: 50%;
- box-shadow: 0 0 4px #ccc;
- overflow: hidden;
-}
-
-/* 拖拽列样式 */
-.sortable-ghost {
- opacity: 0.8;
- color: #fff !important;
- background: #42b983 !important;
-}
-
-/* 表格右侧工具栏样式 */
-.top-right-btn {
- margin-left: auto;
-}
diff --git a/ruoyi-ui/src/assets/styles/sidebar.scss b/ruoyi-ui/src/assets/styles/sidebar.scss
deleted file mode 100644
index d47a2bd..0000000
--- a/ruoyi-ui/src/assets/styles/sidebar.scss
+++ /dev/null
@@ -1,230 +0,0 @@
-#app {
- .main-container {
- height: 100%;
- transition: margin-left 0.28s;
- margin-left: $base-sidebar-width;
- position: relative;
- }
-
- .sidebarHide {
- margin-left: 0 !important;
- }
-
- .sidebar-container {
- -webkit-transition: width 0.28s;
- transition: width 0.28s;
- width: $base-sidebar-width !important;
- background-color: $base-menu-background;
- height: 100%;
- position: fixed;
- font-size: 0;
- top: 0;
- bottom: 0;
- left: 0;
- z-index: 1001;
- overflow: hidden;
- -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
- box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
-
- // reset element-ui css
- .horizontal-collapse-transition {
- transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
- }
-
- .scrollbar-wrapper {
- overflow-x: hidden !important;
- }
-
- .el-scrollbar__bar.is-vertical {
- right: 0;
- }
-
- .el-scrollbar {
- height: 100%;
- }
-
- &.has-logo {
- .el-scrollbar {
- height: calc(100% - 50px);
- }
- }
-
- .is-horizontal {
- display: none;
- }
-
- a {
- display: inline-block;
- width: 100%;
- overflow: hidden;
- }
-
- .svg-icon {
- margin-right: 16px;
- }
-
- .el-menu {
- border: none;
- height: 100%;
- width: 100% !important;
- }
-
- .el-menu-item,
- .menu-title {
- overflow: hidden !important;
- text-overflow: ellipsis !important;
- white-space: nowrap !important;
- }
-
- .el-menu-item .el-menu-tooltip__trigger {
- display: inline-block !important;
- }
-
- // menu hover
- .theme-dark .sub-menu-title-noDropdown,
- .theme-dark .el-sub-menu__title {
- &:hover {
- background-color: $base-sub-menu-title-hover !important;
- }
- }
- .sub-menu-title-noDropdown,
- .el-sub-menu__title {
- &:hover {
- background-color: rgba(0, 0, 0, 0.05) !important;
- }
- }
-
- & .theme-dark .is-active > .el-sub-menu__title {
- color: $base-menu-color-active !important;
- }
-
- & .nest-menu .el-sub-menu > .el-sub-menu__title,
- & .el-sub-menu .el-menu-item {
- min-width: $base-sidebar-width !important;
- &:hover {
- background-color: rgba(0, 0, 0, 0.1) !important;
- }
- }
-
-
- & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title,
- & .theme-dark .el-sub-menu .el-menu-item {
- background-color: $base-sub-menu-background !important;
-
- &:hover {
- background-color: $base-sub-menu-hover !important;
- }
- }
-
- & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title,
- & .theme-dark .el-menu-item {
- &:hover {
- // you can use $sub-menuHover
- background-color: $base-menu-hover !important;
- }
- }
- & .nest-menu .el-sub-menu > .el-sub-menu__title,
- & .el-menu-item {
- &:hover {
- // you can use $sub-menuHover
- background-color: rgba(0, 0, 0, 0.04) !important;
- }
- }
- }
-
- .hideSidebar {
- .sidebar-container {
- width: 54px !important;
- }
-
- .main-container {
- margin-left: 54px;
- }
-
- .sub-menu-title-noDropdown {
- padding: 0 !important;
- position: relative;
-
- .el-tooltip {
- padding: 0 !important;
-
- .svg-icon {
- margin-left: 20px;
- }
- }
- }
-
- .el-sub-menu {
- overflow: hidden;
-
- & > .el-sub-menu__title {
- padding: 0 !important;
-
- .svg-icon {
- margin-left: 20px;
- }
- }
- }
-
- .el-menu--collapse {
- .el-sub-menu {
- & > .el-sub-menu__title {
- & > span {
- height: 0;
- width: 0;
- overflow: hidden;
- visibility: hidden;
- display: inline-block;
- }
- & > i {
- height: 0;
- width: 0;
- overflow: hidden;
- visibility: hidden;
- display: inline-block;
- }
- }
- }
- }
- }
-
- .el-menu--collapse .el-menu .el-sub-menu {
- min-width: $base-sidebar-width !important;
- }
-
- // mobile responsive
- .mobile {
- .main-container {
- margin-left: 0px;
- }
-
- .sidebar-container {
- transition: transform 0.28s;
- width: $base-sidebar-width !important;
- }
-
- &.hideSidebar {
- .sidebar-container {
- pointer-events: none;
- transition-duration: 0.3s;
- transform: translate3d(-$base-sidebar-width, 0, 0);
- }
- }
- }
-
- .withoutAnimation {
- .main-container,
- .sidebar-container {
- transition: none;
- }
- }
-}
-
-// when menu collapsed
-.el-menu--vertical {
- & > .el-menu {
- .svg-icon {
- margin-right: 16px;
- }
- }
-}
diff --git a/ruoyi-ui/src/assets/styles/transition.scss b/ruoyi-ui/src/assets/styles/transition.scss
deleted file mode 100644
index 468ad3c..0000000
--- a/ruoyi-ui/src/assets/styles/transition.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-// global transition css
-
-/* fade */
-.fade-enter-active,
-.fade-leave-active {
- transition: opacity 0.28s;
-}
-
-.fade-enter,
-.fade-leave-active {
- opacity: 0;
-}
-
-/* fade-transform */
-.fade-transform--move,
-.fade-transform-leave-active,
-.fade-transform-enter-active {
- transition: all 0.5s;
-}
-
-.fade-transform-enter {
- opacity: 0;
- transform: translateX(-30px);
-}
-
-.fade-transform-leave-to {
- opacity: 0;
- transform: translateX(30px);
-}
-
-/* breadcrumb transition */
-.breadcrumb-enter-active,
-.breadcrumb-leave-active {
- transition: all 0.5s;
-}
-
-.breadcrumb-enter,
-.breadcrumb-leave-active {
- opacity: 0;
- transform: translateX(20px);
-}
-
-.breadcrumb-move {
- transition: all 0.5s;
-}
-
-.breadcrumb-leave-active {
- position: absolute;
-}
diff --git a/ruoyi-ui/src/assets/styles/variables.module.scss b/ruoyi-ui/src/assets/styles/variables.module.scss
deleted file mode 100644
index d07d3d4..0000000
--- a/ruoyi-ui/src/assets/styles/variables.module.scss
+++ /dev/null
@@ -1,93 +0,0 @@
-// 全局SCSS变量
-:root {
- --menuBg: #304156;
- --menuColor: #bfcbd9;
- --menuActiveText: #f4f4f5;
- --menuHover: #263445;
-
- --subMenuBg: #1f2d3d;
- --subMenuActiveText: #f4f4f5;
- --subMenuHover: #001528;
- --subMenuTitleHover: #293444;
-
- --fixedHeaderBg: #ffffff;
- --tableHeaderBg: #f8f8f9;
- --tableHeaderTextColor: #515a6e;
-}
-html.dark {
- --menuBg: #1d1e1f;
- --menuColor: #bfcbd9;
- --menuActiveText: #f4f4f5;
- --menuHover: #171819;
-
- --subMenuBg: #1d1e1f;
- --subMenuActiveText: #1d1e1f;
- --subMenuHover: #171819;
- --subMenuTitleHover: #171819;
-
- --fixedHeaderBg: #171819;
- --tableHeaderBg: var(--el-bg-color);
- --tableHeaderTextColor: var(--el-text-color);
-
- // 覆盖ele 高亮当前行的标准暗色
- .el-tree-node__content {
- --el-color-primary-light-9: #262727;
- }
-}
-
-// base color
-$blue: #324157;
-$light-blue: #3a71a8;
-$red: #c03639;
-$pink: #e65d6e;
-$green: #30b08f;
-$tiffany: #4ab7bd;
-$yellow: #fec171;
-$panGreen: #30b08f;
-
-// 默认菜单主题风格
-$base-menu-color: var(--menuColor);
-$base-menu-hover: var(--menuHover);
-$base-menu-color-active: var(--menuActiveText);
-$base-menu-background: var(--menuBg);
-$base-logo-title-color: #ffffff;
-
-$base-menu-light-color: rgba(0, 0, 0, 0.7);
-$base-menu-light-background: #ffffff;
-$base-logo-light-title-color: #001529;
-
-$base-sub-menu-background: var(--subMenuBg);
-$base-sub-menu-hover: var(--subMenuHover);
-$base-sub-menu-title-hover: var(--subMenuTitleHover);
-// 表单头背景色和标题颜色
-$fixed-header-bg: var(--fixedHeaderBg);
-$table-header-bg: var(--tableHeaderBg);
-$table-header-text-color: var(--tableHeaderTextColor);
-
-$--color-primary: #409eff;
-$--color-success: #67c23a;
-$--color-warning: #e6a23c;
-$--color-danger: #f56c6c;
-$--color-info: #909399;
-
-$base-sidebar-width: 200px;
-
-// the :export directive is the magic sauce for webpack
-// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
-:export {
- menuColor: $base-menu-color;
- menuLightColor: $base-menu-light-color;
- menuColorActive: $base-menu-color-active;
- menuBackground: $base-menu-background;
- menuLightBackground: $base-menu-light-background;
- subMenuBackground: $base-sub-menu-background;
- subMenuHover: $base-sub-menu-hover;
- sideBarWidth: $base-sidebar-width;
- logoTitleColor: $base-logo-title-color;
- logoLightTitleColor: $base-logo-light-title-color;
- primaryColor: $--color-primary;
- successColor: $--color-success;
- dangerColor: $--color-danger;
- infoColor: $--color-info;
- warningColor: $--color-warning;
-}
diff --git a/ruoyi-ui/src/components/Breadcrumb/index.vue b/ruoyi-ui/src/components/Breadcrumb/index.vue
deleted file mode 100644
index aeeaabc..0000000
--- a/ruoyi-ui/src/components/Breadcrumb/index.vue
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
- {{ item.meta.title }}
- {{ item.meta.title }}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/day.vue b/ruoyi-ui/src/components/Crontab/day.vue
deleted file mode 100644
index fe3eaf0..0000000
--- a/ruoyi-ui/src/components/Crontab/day.vue
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
- 日,允许的通配符[, - * ? / L W]
-
-
-
-
-
- 不指定
-
-
-
-
-
- 周期从
- -
- 日
-
-
-
-
-
- 从
- 号开始,每
- 日执行一次
-
-
-
-
-
- 每月
- 号最近的那个工作日
-
-
-
-
-
- 本月最后一天
-
-
-
-
-
- 指定
-
- {{item}}
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/hour.vue b/ruoyi-ui/src/components/Crontab/hour.vue
deleted file mode 100644
index 4b1f1fc..0000000
--- a/ruoyi-ui/src/components/Crontab/hour.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
- 小时,允许的通配符[, - * /]
-
-
-
-
-
- 周期从
- -
- 小时
-
-
-
-
-
- 从
- 小时开始,每
- 小时执行一次
-
-
-
-
-
- 指定
-
- {{item-1}}
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/index.vue b/ruoyi-ui/src/components/Crontab/index.vue
deleted file mode 100644
index 9e1fa48..0000000
--- a/ruoyi-ui/src/components/Crontab/index.vue
+++ /dev/null
@@ -1,429 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 确定
- 重置
- 取消
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/min.vue b/ruoyi-ui/src/components/Crontab/min.vue
deleted file mode 100644
index 43cab90..0000000
--- a/ruoyi-ui/src/components/Crontab/min.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
- 分钟,允许的通配符[, - * /]
-
-
-
-
-
- 周期从
- -
- 分钟
-
-
-
-
-
- 从
- 分钟开始,每
- 分钟执行一次
-
-
-
-
-
- 指定
-
- {{item-1}}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/month.vue b/ruoyi-ui/src/components/Crontab/month.vue
deleted file mode 100644
index fd0ac38..0000000
--- a/ruoyi-ui/src/components/Crontab/month.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
- 月,允许的通配符[, - * /]
-
-
-
-
-
- 周期从
- -
- 月
-
-
-
-
-
- 从
- 月开始,每
- 月月执行一次
-
-
-
-
-
- 指定
-
- {{item}}
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/result.vue b/ruoyi-ui/src/components/Crontab/result.vue
deleted file mode 100644
index aea6e0e..0000000
--- a/ruoyi-ui/src/components/Crontab/result.vue
+++ /dev/null
@@ -1,559 +0,0 @@
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/second.vue b/ruoyi-ui/src/components/Crontab/second.vue
deleted file mode 100644
index e7b7761..0000000
--- a/ruoyi-ui/src/components/Crontab/second.vue
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
- 秒,允许的通配符[, - * /]
-
-
-
-
-
- 周期从
- -
- 秒
-
-
-
-
-
- 从
- 秒开始,每
- 秒执行一次
-
-
-
-
-
- 指定
-
- {{item-1}}
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/week.vue b/ruoyi-ui/src/components/Crontab/week.vue
deleted file mode 100644
index 1cec700..0000000
--- a/ruoyi-ui/src/components/Crontab/week.vue
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
- 周,允许的通配符[, - * ? / L #]
-
-
-
-
-
- 不指定
-
-
-
-
-
- 周期从星期
-
- {{item.value}}
-
- -
-
- {{item.value}}
-
-
-
-
-
-
- 第
- 周的星期
-
- {{item.value}}
-
-
-
-
-
-
- 本月最后一个星期
-
- {{item.value}}
-
-
-
-
-
-
- 指定
-
- {{item.value}}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Crontab/year.vue b/ruoyi-ui/src/components/Crontab/year.vue
deleted file mode 100644
index 5487a6c..0000000
--- a/ruoyi-ui/src/components/Crontab/year.vue
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
-
- 不填,允许的通配符[, - * /]
-
-
-
-
-
- 每年
-
-
-
-
-
- 周期从
- -
-
-
-
-
-
-
- 从
- 年开始,每
- 年执行一次
-
-
-
-
-
-
- 指定
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/DictData/index.js b/ruoyi-ui/src/components/DictData/index.js
deleted file mode 100644
index 7b85d4a..0000000
--- a/ruoyi-ui/src/components/DictData/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import Vue from 'vue'
-import store from '@/store'
-import DataDict from '@/utils/dict'
-import { getDicts as getDicts } from '@/api/system/dict/data'
-
-function searchDictByKey(dict, key) {
- if (key == null && key == "") {
- return null
- }
- try {
- for (let i = 0; i < dict.length; i++) {
- if (dict[i].key == key) {
- return dict[i].value
- }
- }
- } catch (e) {
- return null
- }
-}
-
-function install() {
- Vue.use(DataDict, {
- metas: {
- '*': {
- labelField: 'dictLabel',
- valueField: 'dictValue',
- request(dictMeta) {
- const storeDict = searchDictByKey(store.getters.dict, dictMeta.type)
- if (storeDict) {
- return new Promise(resolve => { resolve(storeDict) })
- } else {
- return new Promise((resolve, reject) => {
- getDicts(dictMeta.type).then(res => {
- store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data })
- resolve(res.data)
- }).catch(error => {
- reject(error)
- })
- })
- }
- },
- },
- },
- })
-}
-
-export default {
- install,
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/DictTag/index.vue b/ruoyi-ui/src/components/DictTag/index.vue
deleted file mode 100644
index cc8f527..0000000
--- a/ruoyi-ui/src/components/DictTag/index.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
- {{ item.label + " " }}
-
- {{ item.label }}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue
deleted file mode 100644
index 8981d76..0000000
--- a/ruoyi-ui/src/components/Editor/index.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue
deleted file mode 100644
index 1202aa6..0000000
--- a/ruoyi-ui/src/components/FileUpload/index.vue
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
- 选取文件
-
-
- 请上传
- 大小不超过 {{ fileSize }}MB
- 格式为 {{ fileType.join("/") }}
- 的文件
-
-
-
-
-
-
-
- {{ getFileName(file.name) }}
-
-
- 删除
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Hamburger/index.vue b/ruoyi-ui/src/components/Hamburger/index.vue
deleted file mode 100644
index 18c201e..0000000
--- a/ruoyi-ui/src/components/Hamburger/index.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue
deleted file mode 100644
index 8f6c7a8..0000000
--- a/ruoyi-ui/src/components/HeaderSearch/index.vue
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/IconSelect/index.vue b/ruoyi-ui/src/components/IconSelect/index.vue
deleted file mode 100644
index 964c42d..0000000
--- a/ruoyi-ui/src/components/IconSelect/index.vue
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/IconSelect/requireIcons.js b/ruoyi-ui/src/components/IconSelect/requireIcons.js
deleted file mode 100644
index eed9a09..0000000
--- a/ruoyi-ui/src/components/IconSelect/requireIcons.js
+++ /dev/null
@@ -1,8 +0,0 @@
-let icons = []
-const modules = import.meta.glob('./../../assets/icons/svg/*.svg');
-for (const path in modules) {
- const p = path.split('assets/icons/svg/')[1].split('.svg')[0];
- icons.push(p);
-}
-
-export default icons
diff --git a/ruoyi-ui/src/components/ImagePreview/index.vue b/ruoyi-ui/src/components/ImagePreview/index.vue
deleted file mode 100644
index 30fd088..0000000
--- a/ruoyi-ui/src/components/ImagePreview/index.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue
deleted file mode 100644
index 9aa919f..0000000
--- a/ruoyi-ui/src/components/ImageUpload/index.vue
+++ /dev/null
@@ -1,197 +0,0 @@
-
-
-
-
-
-
-
- 请上传
-
- 大小不超过 {{ fileSize }}MB
-
-
- 格式为 {{ fileType.join("/") }}
-
- 的文件
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Pagination/index.vue b/ruoyi-ui/src/components/Pagination/index.vue
deleted file mode 100644
index e092a1d..0000000
--- a/ruoyi-ui/src/components/Pagination/index.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/PanThumb/index.vue b/ruoyi-ui/src/components/PanThumb/index.vue
deleted file mode 100644
index 1bcf417..0000000
--- a/ruoyi-ui/src/components/PanThumb/index.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/ParentView/index.vue b/ruoyi-ui/src/components/ParentView/index.vue
deleted file mode 100644
index 7bf6148..0000000
--- a/ruoyi-ui/src/components/ParentView/index.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/ruoyi-ui/src/components/RightPanel/index.vue b/ruoyi-ui/src/components/RightPanel/index.vue
deleted file mode 100644
index 5abeecb..0000000
--- a/ruoyi-ui/src/components/RightPanel/index.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/ruoyi-ui/src/components/RightToolbar/index.vue
deleted file mode 100644
index 9063a3e..0000000
--- a/ruoyi-ui/src/components/RightToolbar/index.vue
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/RuoYi/Doc/index.vue b/ruoyi-ui/src/components/RuoYi/Doc/index.vue
deleted file mode 100644
index cd0389d..0000000
--- a/ruoyi-ui/src/components/RuoYi/Doc/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/RuoYi/Git/index.vue b/ruoyi-ui/src/components/RuoYi/Git/index.vue
deleted file mode 100644
index b4459f3..0000000
--- a/ruoyi-ui/src/components/RuoYi/Git/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/Screenfull/index.vue b/ruoyi-ui/src/components/Screenfull/index.vue
deleted file mode 100644
index 9c9f980..0000000
--- a/ruoyi-ui/src/components/Screenfull/index.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/SizeSelect/index.vue b/ruoyi-ui/src/components/SizeSelect/index.vue
deleted file mode 100644
index 2380fbb..0000000
--- a/ruoyi-ui/src/components/SizeSelect/index.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/SvgIcon/index.vue b/ruoyi-ui/src/components/SvgIcon/index.vue
deleted file mode 100644
index 8c101f6..0000000
--- a/ruoyi-ui/src/components/SvgIcon/index.vue
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/SvgIcon/svgicon.js b/ruoyi-ui/src/components/SvgIcon/svgicon.js
deleted file mode 100644
index 4431719..0000000
--- a/ruoyi-ui/src/components/SvgIcon/svgicon.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import * as components from '@element-plus/icons-vue'
-
-export default {
- install: (app) => {
- for (const key in components) {
- const componentConfig = components[key];
- app.component(componentConfig.name, componentConfig);
- }
- },
-};
diff --git a/ruoyi-ui/src/components/ThemePicker/index.vue b/ruoyi-ui/src/components/ThemePicker/index.vue
deleted file mode 100644
index 1714e1f..0000000
--- a/ruoyi-ui/src/components/ThemePicker/index.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/TopNav/index.vue b/ruoyi-ui/src/components/TopNav/index.vue
deleted file mode 100644
index 24d831d..0000000
--- a/ruoyi-ui/src/components/TopNav/index.vue
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
- {{ item.meta.title }}
-
-
-
-
- 更多菜单
-
-
- {{ item.meta.title }}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/components/TreeSelect/index.vue b/ruoyi-ui/src/components/TreeSelect/index.vue
deleted file mode 100644
index b9197ff..0000000
--- a/ruoyi-ui/src/components/TreeSelect/index.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/iFrame/index.vue b/ruoyi-ui/src/components/iFrame/index.vue
deleted file mode 100644
index f42d4ac..0000000
--- a/ruoyi-ui/src/components/iFrame/index.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/directive/dialog/drag.js b/ruoyi-ui/src/directive/dialog/drag.js
deleted file mode 100644
index 2e82346..0000000
--- a/ruoyi-ui/src/directive/dialog/drag.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
-* v-dialogDrag 弹窗拖拽
-* Copyright (c) 2019 ruoyi
-*/
-
-export default {
- bind(el, binding, vnode, oldVnode) {
- const value = binding.value
- if (value == false) return
- // 获取拖拽内容头部
- const dialogHeaderEl = el.querySelector('.el-dialog__header');
- const dragDom = el.querySelector('.el-dialog');
- dialogHeaderEl.style.cursor = 'move';
- // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
- const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
- dragDom.style.position = 'absolute';
- dragDom.style.marginTop = 0;
- let width = dragDom.style.width;
- if (width.includes('%')) {
- width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100);
- } else {
- width = +width.replace(/\px/g, '');
- }
- dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`;
- // 鼠标按下事件
- dialogHeaderEl.onmousedown = (e) => {
- // 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
- const disX = e.clientX - dialogHeaderEl.offsetLeft;
- const disY = e.clientY - dialogHeaderEl.offsetTop;
-
- // 获取到的值带px 正则匹配替换
- let styL, styT;
-
- // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
- if (sty.left.includes('%')) {
- styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
- styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
- } else {
- styL = +sty.left.replace(/\px/g, '');
- styT = +sty.top.replace(/\px/g, '');
- };
-
- // 鼠标拖拽事件
- document.onmousemove = function (e) {
- // 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
- const l = e.clientX - disX;
- const t = e.clientY - disY;
-
- let finallyL = l + styL
- let finallyT = t + styT
-
- // 移动当前元素
- dragDom.style.left = `${finallyL}px`;
- dragDom.style.top = `${finallyT}px`;
-
- };
-
- document.onmouseup = function (e) {
- document.onmousemove = null;
- document.onmouseup = null;
- };
- }
- }
-};
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/dialog/dragHeight.js b/ruoyi-ui/src/directive/dialog/dragHeight.js
deleted file mode 100644
index d1590f8..0000000
--- a/ruoyi-ui/src/directive/dialog/dragHeight.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
-* v-dialogDragWidth 可拖动弹窗高度(右下角)
-* Copyright (c) 2019 ruoyi
-*/
-
-export default {
- bind(el) {
- const dragDom = el.querySelector('.el-dialog');
- const lineEl = document.createElement('div');
- lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
- lineEl.addEventListener('mousedown',
- function(e) {
- // 鼠标按下,计算当前元素距离可视区的距离
- const disX = e.clientX - el.offsetLeft;
- const disY = e.clientY - el.offsetTop;
- // 当前宽度 高度
- const curWidth = dragDom.offsetWidth;
- const curHeight = dragDom.offsetHeight;
- document.onmousemove = function(e) {
- e.preventDefault(); // 移动时禁用默认事件
- // 通过事件委托,计算移动的距离
- const xl = e.clientX - disX;
- const yl = e.clientY - disY
- dragDom.style.width = `${curWidth + xl}px`;
- dragDom.style.height = `${curHeight + yl}px`;
- };
- document.onmouseup = function(e) {
- document.onmousemove = null;
- document.onmouseup = null;
- };
- }, false);
- dragDom.appendChild(lineEl);
- }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/dialog/dragWidth.js b/ruoyi-ui/src/directive/dialog/dragWidth.js
deleted file mode 100644
index d5cda3a..0000000
--- a/ruoyi-ui/src/directive/dialog/dragWidth.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
-* v-dialogDragWidth 可拖动弹窗宽度(右侧边)
-* Copyright (c) 2019 ruoyi
-*/
-
-export default {
- bind(el) {
- const dragDom = el.querySelector('.el-dialog');
- const lineEl = document.createElement('div');
- lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
- lineEl.addEventListener('mousedown',
- function (e) {
- // 鼠标按下,计算当前元素距离可视区的距离
- const disX = e.clientX - el.offsetLeft;
- // 当前宽度
- const curWidth = dragDom.offsetWidth;
- document.onmousemove = function (e) {
- e.preventDefault(); // 移动时禁用默认事件
- // 通过事件委托,计算移动的距离
- const l = e.clientX - disX;
- dragDom.style.width = `${curWidth + l}px`;
- };
- document.onmouseup = function (e) {
- document.onmousemove = null;
- document.onmouseup = null;
- };
- }, false);
- dragDom.appendChild(lineEl);
- }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/index.js b/ruoyi-ui/src/directive/index.js
deleted file mode 100644
index 5421018..0000000
--- a/ruoyi-ui/src/directive/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// import hasRole from './permission/hasRole'
-// import hasPermi from './permission/hasPermi'
-// import dialogDrag from './dialog/drag'
-// import dialogDragWidth from './dialog/dragWidth'
-// import dialogDragHeight from './dialog/dragHeight'
-// import clipboard from './module/clipboard'
-//
-// const install = function(Vue) {
-// Vue.directive('hasRole', hasRole)
-// Vue.directive('hasPermi', hasPermi)
-// Vue.directive('clipboard', clipboard)
-// Vue.directive('dialogDrag', dialogDrag)
-// Vue.directive('dialogDragWidth', dialogDragWidth)
-// Vue.directive('dialogDragHeight', dialogDragHeight)
-// }
-//
-// if (window.Vue) {
-// window['hasRole'] = hasRole
-// window['hasPermi'] = hasPermi
-// Vue.use(install); // eslint-disable-line
-// }
-//
-// export default install
-import hasRole from './permission/hasRole'
-import hasPermi from './permission/hasPermi'
-
-export default function directive(app){
- app.directive('hasRole', hasRole)
- app.directive('hasPermi', hasPermi)
-}
diff --git a/ruoyi-ui/src/directive/module/clipboard.js b/ruoyi-ui/src/directive/module/clipboard.js
deleted file mode 100644
index 635315a..0000000
--- a/ruoyi-ui/src/directive/module/clipboard.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
-* v-clipboard 文字复制剪贴
-* Copyright (c) 2021 ruoyi
-*/
-
-import Clipboard from 'clipboard'
-export default {
- bind(el, binding, vnode) {
- switch (binding.arg) {
- case 'success':
- el._vClipBoard_success = binding.value;
- break;
- case 'error':
- el._vClipBoard_error = binding.value;
- break;
- default: {
- const clipboard = new Clipboard(el, {
- text: () => binding.value,
- action: () => binding.arg === 'cut' ? 'cut' : 'copy'
- });
- clipboard.on('success', e => {
- const callback = el._vClipBoard_success;
- callback && callback(e);
- });
- clipboard.on('error', e => {
- const callback = el._vClipBoard_error;
- callback && callback(e);
- });
- el._vClipBoard = clipboard;
- }
- }
- },
- update(el, binding) {
- if (binding.arg === 'success') {
- el._vClipBoard_success = binding.value;
- } else if (binding.arg === 'error') {
- el._vClipBoard_error = binding.value;
- } else {
- el._vClipBoard.text = function () { return binding.value; };
- el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy';
- }
- },
- unbind(el, binding) {
- if (!el._vClipboard) return
- if (binding.arg === 'success') {
- delete el._vClipBoard_success;
- } else if (binding.arg === 'error') {
- delete el._vClipBoard_error;
- } else {
- el._vClipBoard.destroy();
- delete el._vClipBoard;
- }
- }
-}
diff --git a/ruoyi-ui/src/directive/permission/hasPermi.js b/ruoyi-ui/src/directive/permission/hasPermi.js
deleted file mode 100644
index 719536c..0000000
--- a/ruoyi-ui/src/directive/permission/hasPermi.js
+++ /dev/null
@@ -1,28 +0,0 @@
- /**
- * v-hasPermi 操作权限处理
- * Copyright (c) 2019 ruoyi
- */
-
-import store from '@/store'
-
-export default {
- inserted(el, binding, vnode) {
- const { value } = binding
- const all_permission = "*:*:*";
- const permissions = store.getters && store.getters.permissions
-
- if (value && value instanceof Array && value.length > 0) {
- const permissionFlag = value
-
- const hasPermissions = permissions.some(permission => {
- return all_permission === permission || permissionFlag.includes(permission)
- })
-
- if (!hasPermissions) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- } else {
- throw new Error(`请设置操作权限标签值`)
- }
- }
-}
diff --git a/ruoyi-ui/src/directive/permission/hasRole.js b/ruoyi-ui/src/directive/permission/hasRole.js
deleted file mode 100644
index eec4a5b..0000000
--- a/ruoyi-ui/src/directive/permission/hasRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
- /**
- * v-hasRole 角色权限处理
- * Copyright (c) 2019 ruoyi
- */
-
-import store from '@/store'
-
-export default {
- inserted(el, binding, vnode) {
- const { value } = binding
- const super_admin = "admin";
- const roles = store.getters && store.getters.roles
-
- if (value && value instanceof Array && value.length > 0) {
- const roleFlag = value
-
- const hasRole = roles.some(role => {
- return super_admin === role || roleFlag.includes(role)
- })
-
- if (!hasRole) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- } else {
- throw new Error(`请设置角色权限标签值"`)
- }
- }
-}
diff --git a/ruoyi-ui/src/lang/en_US.js b/ruoyi-ui/src/lang/en_US.js
deleted file mode 100644
index 59df4ba..0000000
--- a/ruoyi-ui/src/lang/en_US.js
+++ /dev/null
@@ -1,27 +0,0 @@
-export default {
- // 路由国际化
- route: {
- dashboard: 'Dashboard',
- document: 'Document'
- },
- // 登录页面国际化
- login: {
- username: 'Username',
- password: 'Password',
- login: 'Login',
- code: 'Verification Code',
- copyright: ''
- },
- // 导航栏国际化
- navbar: {
- full: 'Full Screen',
- language: 'Language',
- dashboard: 'Dashboard',
- document: 'Document',
- layoutSize: 'Layout Size',
- selectTenant: 'Select Tenant',
- layoutSetting: 'Layout Setting',
- personalCenter: 'Personal Center',
- logout: 'Logout'
- }
-};
diff --git a/ruoyi-ui/src/lang/index.js b/ruoyi-ui/src/lang/index.js
deleted file mode 100644
index b9cd739..0000000
--- a/ruoyi-ui/src/lang/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// 自定义国际化配置
-import { createI18n } from 'vue-i18n';
-
-// 本地语言包
-import enUSLocale from './en_US';
-import zhCNLocale from './zh_CN';
-import {useStorage} from "@vueuse/core";
-
-const messages = {
- zh_CN: {
- ...zhCNLocale
- },
- en_US: {
- ...enUSLocale
- }
-};
-
-/**
- * 获取当前语言
- * @returns zh-cn|en ...
- */
-export const getLanguage = () => {
- const language = useStorage('language', 'zh_CN');
- if (language.value) {
- return language.value;
- }
- return 'zh_CN';
-};
-
-const i18n = createI18n({
- legacy: false,
- locale: getLanguage(),
- messages
-});
-
-export default i18n;
diff --git a/ruoyi-ui/src/lang/zh_CN.js b/ruoyi-ui/src/lang/zh_CN.js
deleted file mode 100644
index d778f7d..0000000
--- a/ruoyi-ui/src/lang/zh_CN.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default {
- // 路由国际化
- route: {
- dashboard: '首页',
- document: '项目文档'
- },
- // 登录页面国际化
- login: {
- username: '用户名',
- password: '密码',
- login: '登 录',
- code: '请输入验证码',
- copyright: ''
- },
- navbar: {
- full: '全屏',
- language: '语言',
- dashboard: '首页',
- document: '项目文档',
- layoutSize: '布局大小',
- selectTenant: '选择租户',
- layoutSetting: '布局设置',
- personalCenter: '个人中心',
- logout: '退出登录'
- }
-};
diff --git a/ruoyi-ui/src/layout/components/AppMain.vue b/ruoyi-ui/src/layout/components/AppMain.vue
deleted file mode 100644
index 3f00dfa..0000000
--- a/ruoyi-ui/src/layout/components/AppMain.vue
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/IframeToggle/index.vue b/ruoyi-ui/src/layout/components/IframeToggle/index.vue
deleted file mode 100644
index eb538cc..0000000
--- a/ruoyi-ui/src/layout/components/IframeToggle/index.vue
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/InnerLink/index.vue b/ruoyi-ui/src/layout/components/InnerLink/index.vue
deleted file mode 100644
index dbfa128..0000000
--- a/ruoyi-ui/src/layout/components/InnerLink/index.vue
+++ /dev/null
@@ -1,30 +0,0 @@
-
diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue
deleted file mode 100644
index aa70d8e..0000000
--- a/ruoyi-ui/src/layout/components/Navbar.vue
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/Settings/index.vue b/ruoyi-ui/src/layout/components/Settings/index.vue
deleted file mode 100644
index bfd65f7..0000000
--- a/ruoyi-ui/src/layout/components/Settings/index.vue
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
-
主题风格设置
-
-
-
-
-
-
-
-
-
-
-
-
- 主题颜色
-
-
-
-
-
-
- 系统布局配置
-
-
- 开启 TopNav
-
-
-
-
-
-
- 开启 Tags-Views
-
-
-
-
-
-
- 固定 Header
-
-
-
-
-
-
- 显示 Logo
-
-
-
-
-
-
- 动态标题
-
-
-
-
-
-
-
- 保存配置
- 重置配置
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js b/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
deleted file mode 100644
index 6823726..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
+++ /dev/null
@@ -1,25 +0,0 @@
-export default {
- computed: {
- device() {
- return this.$store.state.app.device
- }
- },
- mounted() {
- // In order to fix the click on menu on the ios device will trigger the mouseleave bug
- this.fixBugIniOS()
- },
- methods: {
- fixBugIniOS() {
- const $subMenu = this.$refs.subMenu
- if ($subMenu) {
- const handleMouseleave = $subMenu.handleMouseleave
- $subMenu.handleMouseleave = (e) => {
- if (this.device === 'mobile') {
- return
- }
- handleMouseleave(e)
- }
- }
- }
- }
-}
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Link.vue b/ruoyi-ui/src/layout/components/Sidebar/Link.vue
deleted file mode 100644
index 8011431..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/Link.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
deleted file mode 100644
index 25fb799..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue b/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
deleted file mode 100644
index 3b8d8aa..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
- {{ onlyOneChild.meta.title }}
-
-
-
-
-
-
-
- {{ item.meta.title }}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/Sidebar/index.vue b/ruoyi-ui/src/layout/components/Sidebar/index.vue
deleted file mode 100644
index af5555b..0000000
--- a/ruoyi-ui/src/layout/components/Sidebar/index.vue
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue b/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
deleted file mode 100644
index fd9bfc0..0000000
--- a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue
deleted file mode 100644
index 2fff4ae..0000000
--- a/ruoyi-ui/src/layout/components/TagsView/index.vue
+++ /dev/null
@@ -1,330 +0,0 @@
-
-
-
-
- {{ tag.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/layout/components/index.js b/ruoyi-ui/src/layout/components/index.js
deleted file mode 100644
index fd57731..0000000
--- a/ruoyi-ui/src/layout/components/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export { default as AppMain } from './AppMain'
-export { default as Navbar } from './Navbar'
-export { default as Settings } from './Settings'
-export { default as TagsView } from './TagsView/index.vue'
diff --git a/ruoyi-ui/src/layout/index.vue b/ruoyi-ui/src/layout/index.vue
deleted file mode 100644
index 97cdaab..0000000
--- a/ruoyi-ui/src/layout/index.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js
deleted file mode 100644
index 2c8866f..0000000
--- a/ruoyi-ui/src/main.js
+++ /dev/null
@@ -1,86 +0,0 @@
-import { createApp } from 'vue'
-
-import Cookies from 'js-cookie'
-
-import ElementPlus from 'element-plus'
-import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
-
-import '@/assets/styles/index.scss' // global css
-// element css
-import 'element-plus/es/components/message/style/css';
-import 'element-plus/es/components/message-box/style/css';
-import 'element-plus/es/components/notification/style/css';
-import 'element-plus/es/components/loading/style/css';
-
-import App from './App'
-import store from './store'
-import router from './router'
-import directive from './directive' // directive
-
-
-// 注册指令
-import plugins from './plugins' // plugins
-import { download } from '@/utils/request'
-
-// svg图标
-import 'virtual:svg-icons-register'; // 引入svg icon注册脚本
-import SvgIcon from '@/components/SvgIcon'
-import elementIcons from '@/components/SvgIcon/svgicon'
-
-import './permission' // permission control
-
-import { useDict } from '@/utils/dict'
-import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel } from '@/utils/ruoyi'
-
-// 分页组件
-import Pagination from '@/components/Pagination'
-// 自定义表格工具组件
-import RightToolbar from '@/components/RightToolbar'
-// 文件上传组件
-import FileUpload from "@/components/FileUpload"
-// 图片上传组件
-import ImageUpload from "@/components/ImageUpload"
-// 图片预览组件
-import ImagePreview from "@/components/ImagePreview"
-// 自定义树选择组件
-import TreeSelect from '@/components/TreeSelect'
-// 字典标签组件
-import DictTag from '@/components/DictTag'
-
-const app = createApp(App)
-
-// 全局方法挂载
-app.config.globalProperties.useDict = useDict
-app.config.globalProperties.download = download
-app.config.globalProperties.parseTime = parseTime
-app.config.globalProperties.resetForm = resetForm
-app.config.globalProperties.handleTree = handleTree
-app.config.globalProperties.addDateRange = addDateRange
-app.config.globalProperties.selectDictLabel = selectDictLabel
-
-// 全局组件挂载
-app.component('DictTag', DictTag)
-app.component('Pagination', Pagination)
-app.component('TreeSelect', TreeSelect)
-app.component('FileUpload', FileUpload)
-app.component('ImageUpload', ImageUpload)
-app.component('ImagePreview', ImagePreview)
-app.component('RightToolbar', RightToolbar)
-
-app.use(router)
-app.use(store)
-app.use(plugins)
-app.use(elementIcons)
-//app.component('svg-icon', SvgIcon)
-app.component('SvgIcon', SvgIcon)
-
-directive(app)
-
-// 使用element-plus 并且设置全局的大小
-app.use(ElementPlus, {
- locale: locale,
- // 支持 large、default、small
- size: Cookies.get('size') || 'default'
-})
-
-app.mount('#app')
diff --git a/ruoyi-ui/src/permission.js b/ruoyi-ui/src/permission.js
deleted file mode 100644
index 5b246a1..0000000
--- a/ruoyi-ui/src/permission.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import router from './router'
-import store from './store'
-import { ElMessage } from 'element-plus'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
-import { isHttp } from '@/utils/validate'
-
-NProgress.configure({ showSpinner: false });
-
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register'];
-
-router.beforeEach((to, from, next) => {
- NProgress.start()
- if (getToken()) {
- to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
- /* has token*/
- if (to.path === '/login') {
- next({ path: '/' })
- NProgress.done()
- } else {
- if (store.getters.roles.length === 0) {
- // 判断当前用户是否已拉取完user_info信息
- store.dispatch('GetInfo').then(() => {
- store.dispatch('GenerateRoutes').then(accessRoutes => {
- // 根据roles权限生成可访问的路由表
- accessRoutes.forEach(route => {
- if (!isHttp(route.path)) {
- router.addRoute(route) // 动态添加可访问路由表
- }
- })
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
- })
- }).catch(err => {
- store.dispatch('LogOut').then(() => {
- ElMessage.error(err)
- next({ path: '/' })
- })
- })
- } else {
- next()
- }
- }
- } else {
- // 没有token
- if (whiteList.indexOf(to.path) !== -1) {
- // 在免登录白名单,直接进入
- next()
- } else {
- next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
- NProgress.done()
- }
- }
-})
-
-router.afterEach(() => {
- NProgress.done()
-})
diff --git a/ruoyi-ui/src/plugins/auth.js b/ruoyi-ui/src/plugins/auth.js
deleted file mode 100644
index 6c6bc24..0000000
--- a/ruoyi-ui/src/plugins/auth.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import store from '@/store'
-
-function authPermission(permission) {
- const all_permission = "*:*:*";
- const permissions = store.getters && store.getters.permissions
- if (permission && permission.length > 0) {
- return permissions.some(v => {
- return all_permission === v || v === permission
- })
- } else {
- return false
- }
-}
-
-function authRole(role) {
- const super_admin = "admin";
- const roles = store.getters && store.getters.roles
- if (role && role.length > 0) {
- return roles.some(v => {
- return super_admin === v || v === role
- })
- } else {
- return false
- }
-}
-
-export default {
- // 验证用户是否具备某权限
- hasPermi(permission) {
- return authPermission(permission);
- },
- // 验证用户是否含有指定权限,只需包含其中一个
- hasPermiOr(permissions) {
- return permissions.some(item => {
- return authPermission(item)
- })
- },
- // 验证用户是否含有指定权限,必须全部拥有
- hasPermiAnd(permissions) {
- return permissions.every(item => {
- return authPermission(item)
- })
- },
- // 验证用户是否具备某角色
- hasRole(role) {
- return authRole(role);
- },
- // 验证用户是否含有指定角色,只需包含其中一个
- hasRoleOr(roles) {
- return roles.some(item => {
- return authRole(item)
- })
- },
- // 验证用户是否含有指定角色,必须全部拥有
- hasRoleAnd(roles) {
- return roles.every(item => {
- return authRole(item)
- })
- }
-}
diff --git a/ruoyi-ui/src/plugins/cache.js b/ruoyi-ui/src/plugins/cache.js
deleted file mode 100644
index 6b5c00b..0000000
--- a/ruoyi-ui/src/plugins/cache.js
+++ /dev/null
@@ -1,77 +0,0 @@
-const sessionCache = {
- set (key, value) {
- if (!sessionStorage) {
- return
- }
- if (key != null && value != null) {
- sessionStorage.setItem(key, value)
- }
- },
- get (key) {
- if (!sessionStorage) {
- return null
- }
- if (key == null) {
- return null
- }
- return sessionStorage.getItem(key)
- },
- setJSON (key, jsonValue) {
- if (jsonValue != null) {
- this.set(key, JSON.stringify(jsonValue))
- }
- },
- getJSON (key) {
- const value = this.get(key)
- if (value != null) {
- return JSON.parse(value)
- }
- },
- remove (key) {
- sessionStorage.removeItem(key);
- }
-}
-const localCache = {
- set (key, value) {
- if (!localStorage) {
- return
- }
- if (key != null && value != null) {
- localStorage.setItem(key, value)
- }
- },
- get (key) {
- if (!localStorage) {
- return null
- }
- if (key == null) {
- return null
- }
- return localStorage.getItem(key)
- },
- setJSON (key, jsonValue) {
- if (jsonValue != null) {
- this.set(key, JSON.stringify(jsonValue))
- }
- },
- getJSON (key) {
- const value = this.get(key)
- if (value != null) {
- return JSON.parse(value)
- }
- },
- remove (key) {
- localStorage.removeItem(key);
- }
-}
-
-export default {
- /**
- * 会话级缓存
- */
- session: sessionCache,
- /**
- * 本地缓存
- */
- local: localCache
-}
diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
deleted file mode 100644
index c31a064..0000000
--- a/ruoyi-ui/src/plugins/download.js
+++ /dev/null
@@ -1,72 +0,0 @@
-import axios from 'axios'
-import { ElMessage } from 'element-plus'
-import { saveAs } from 'file-saver'
-import { getToken } from '@/utils/auth'
-import errorCode from '@/utils/errorCode'
-import { blobValidate } from '@/utils/ruoyi'
-
-const baseURL = import.meta.env.VITE_APP_BASE_API
-
-export default {
- name(name, isDelete = true) {
- var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- resource(resource) {
- var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource);
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- zip(url, name) {
- var url = baseURL + url
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data], { type: 'application/zip' })
- this.saveAs(blob, name)
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- saveAs(text, name, opts) {
- saveAs(text, name, opts);
- },
- async printErrMsg(data) {
- const resText = await data.text();
- const rspObj = JSON.parse(resText);
- const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
- ElMessage.error(errMsg);
- }
-}
-
diff --git a/ruoyi-ui/src/plugins/index.js b/ruoyi-ui/src/plugins/index.js
deleted file mode 100644
index 47d1b41..0000000
--- a/ruoyi-ui/src/plugins/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import tab from './tab'
-import auth from './auth'
-import cache from './cache'
-import modal from './modal'
-import download from './download'
-
-export default function installPlugins(app){
- // 页签操作
- app.config.globalProperties.$tab = tab
- // 认证对象
- app.config.globalProperties.$auth = auth
- // 缓存对象
- app.config.globalProperties.$cache = cache
- // 模态框对象
- app.config.globalProperties.$modal = modal
- // 下载文件
- app.config.globalProperties.$download = download
-}
diff --git a/ruoyi-ui/src/plugins/modal.js b/ruoyi-ui/src/plugins/modal.js
deleted file mode 100644
index b59e14d..0000000
--- a/ruoyi-ui/src/plugins/modal.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import { ElMessage, ElMessageBox, ElNotification, ElLoading } from 'element-plus'
-
-let loadingInstance;
-
-export default {
- // 消息提示
- msg(content) {
- ElMessage.info(content)
- },
- // 错误消息
- msgError(content) {
- ElMessage.error(content)
- },
- // 成功消息
- msgSuccess(content) {
- ElMessage.success(content)
- },
- // 警告消息
- msgWarning(content) {
- ElMessage.warning(content)
- },
- // 弹出提示
- alert(content) {
- ElMessageBox.alert(content, "系统提示")
- },
- // 错误提示
- alertError(content) {
- ElMessageBox.alert(content, "系统提示", { type: 'error' })
- },
- // 成功提示
- alertSuccess(content) {
- ElMessageBox.alert(content, "系统提示", { type: 'success' })
- },
- // 警告提示
- alertWarning(content) {
- ElMessageBox.alert(content, "系统提示", { type: 'warning' })
- },
- // 通知提示
- notify(content) {
- ElNotification.info(content)
- },
- // 错误通知
- notifyError(content) {
- ElNotification.error(content);
- },
- // 成功通知
- notifySuccess(content) {
- ElNotification.success(content)
- },
- // 警告通知
- notifyWarning(content) {
- ElNotification.warning(content)
- },
- // 确认窗体
- confirm(content) {
- return ElMessageBox.confirm(content, "系统提示", {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: "warning",
- })
- },
- // 提交内容
- prompt(content) {
- return ElMessageBox.prompt(content, "系统提示", {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: "warning",
- })
- },
- // 打开遮罩层
- loading(content) {
- loadingInstance = ElLoading.service({
- lock: true,
- text: content,
- background: "rgba(0, 0, 0, 0.7)",
- })
- },
- // 关闭遮罩层
- closeLoading() {
- loadingInstance.close();
- }
-}
diff --git a/ruoyi-ui/src/plugins/svgicon.js b/ruoyi-ui/src/plugins/svgicon.js
deleted file mode 100644
index c66f9c3..0000000
--- a/ruoyi-ui/src/plugins/svgicon.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import * as ElementPlusIconsVue from '@element-plus/icons-vue';
-
-export default {
- install: (app) => {
- for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
- app.component(key, component);
- }
- }
-};
diff --git a/ruoyi-ui/src/plugins/tab.js b/ruoyi-ui/src/plugins/tab.js
deleted file mode 100644
index 7e71a68..0000000
--- a/ruoyi-ui/src/plugins/tab.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import store from '@/store'
-import router from '@/router'
-
-export default {
- // 刷新当前tab页签
- refreshPage(obj) {
- const { path, query, matched } = router.currentRoute.value;
- if (obj === undefined) {
- matched.forEach((m) => {
- if (m.components && m.components.default && m.components.default.name) {
- if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
- obj = { name: m.components.default.name, path: path, query: query };
- }
- }
- });
- }
- return store.dispatch('tagsView/delCachedView', obj).then(() => {
- const { path, query } = obj
- router.replace({
- path: '/redirect' + path,
- query: query
- })
- })
- },
- // 关闭当前tab页签,打开新页签
- closeOpenPage(obj) {
- store.dispatch("tagsView/delView", router.currentRoute.value);
- if (obj !== undefined) {
- return router.push(obj);
- }
- },
- // 关闭指定tab页签
- closePage(obj) {
- if (obj === undefined) {
- return store.dispatch('tagsView/delView', router.currentRoute.value).then(({ lastPath }) => {
- return router.push(lastPath || '/index');
- });
- }
- return store.dispatch('tagsView/delView', obj);
- },
- // 关闭所有tab页签
- closeAllPage() {
- return store.dispatch('tagsView/delAllViews');
- },
- // 关闭左侧tab页签
- closeLeftPage(obj) {
- return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute.value);
- },
- // 关闭右侧tab页签
- closeRightPage(obj) {
- return store.dispatch('tagsView/delRightTags', obj || router.currentRoute.value);
- },
- // 关闭其他tab页签
- closeOtherPage(obj) {
- return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute.value);
- },
- // 打开tab页签
- openPage(url) {
- return router.push(url);
- },
- // 修改tab页签
- updatePage(obj) {
- return store.dispatch('tagsView/updateVisitedView', obj);
- }
-}
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
deleted file mode 100644
index cccaf67..0000000
--- a/ruoyi-ui/src/router/index.js
+++ /dev/null
@@ -1,214 +0,0 @@
-import { createWebHistory, createRouter } from 'vue-router'
-import Layout from '@/layout'
-
-/**
- * Note: 路由配置项
- *
- * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
- * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
- * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
- * // 若你想不管路由下面的 children 声明的个数都显示你的根路由
- * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
- * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
- * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题
- * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
- * meta : {
- noCache: true // 如果设置为true,则不会被 缓存(默认 false)
- title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
- icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
- breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
- activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
- }
- */
-
-// 公共路由
-export const constantRoutes = [
- {
- path: '/redirect',
- component: Layout,
- hidden: true,
- children: [
- {
- path: '/redirect/:path(.*)',
- component: () => import('@/views/redirect/index.vue')
- }
- ]
- },
- {
- path: '/login',
- component: () => import('@/views/login'),
- hidden: true
- },
- {
- path: '/register',
- component: () => import('@/views/register'),
- hidden: true
- },
- {
- path: "/:pathMatch(.*)*",
- component: () => import('@/views/error/404'),
- hidden: true
- },
- {
- path: '/401',
- component: () => import('@/views/error/401'),
- hidden: true
- },
- {
- path: '',
- component: Layout,
- redirect: '/index',
- children: [
- {
- path: '/index',
- component: () => import('@/views/index'),
- name: 'Index',
- meta: { title: '首页', icon: 'dashboard', affix: true }
- }
- ]
- },
- {
- path: '/user',
- component: Layout,
- hidden: true,
- redirect: 'noredirect',
- children: [
- {
- path: 'profile',
- component: () => import('@/views/system/user/profile/index'),
- name: 'Profile',
- meta: { title: '个人中心', icon: 'user' }
- }
- ]
- },
- {
- path: '/system/user-auth',
- component: Layout,
- hidden: true,
- children: [
- {
- path: 'role/:userId(\\d+)',
- component: () => import('@/views/system/user/authRole'),
- name: 'AuthRole',
- meta: { title: '分配角色', activeMenu: '/system/user' }
- }
- ]
- },
- {
- path: '/system/role-auth',
- component: Layout,
- hidden: true,
- children: [
- {
- path: 'user/:roleId(\\d+)',
- component: () => import('@/views/system/role/authUser'),
- name: 'AuthUser',
- meta: { title: '分配用户', activeMenu: '/system/role' }
- }
- ]
- },
- {
- path: '/system/dict-data',
- component: Layout,
- hidden: true,
- children: [
- {
- path: 'index/:dictId(\\d+)',
- component: () => import('@/views/system/dict/data'),
- name: 'Data',
- meta: { title: '字典数据', activeMenu: '/system/dict' }
- }
- ]
- },
- {
- path: '/tool/gen-edit',
- component: Layout,
- hidden: true,
- children: [
- {
- path: 'index',
- component: () => import('@/views/tool/gen/editTable'),
- name: 'GenEdit',
- meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
- }
- ]
- }
-];
-
-// 动态路由,基于用户权限动态去加载
-export const dynamicRoutes= [
- {
- path: '/system/user-auth',
- component: Layout,
- hidden: true,
- permissions: ['system:user:edit'],
- children: [
- {
- path: 'role/:userId(\\d+)',
- component: () => import('@/views/system/user/authRole.vue'),
- name: 'AuthRole',
- meta: { title: '分配角色', activeMenu: '/system/user', icon: '' }
- }
- ]
- },
- {
- path: '/system/role-auth',
- component: Layout,
- hidden: true,
- permissions: ['system:role:edit'],
- children: [
- {
- path: 'user/:roleId(\\d+)',
- component: () => import('@/views/system/role/authUser.vue'),
- name: 'AuthUser',
- meta: { title: '分配用户', activeMenu: '/system/role', icon: '' }
- }
- ]
- },
- {
- path: '/system/dict-data',
- component: Layout,
- hidden: true,
- permissions: ['system:dict:list'],
- children: [
- {
- path: 'index/:dictId(\\d+)',
- component: () => import('@/views/system/dict/data.vue'),
- name: 'Data',
- meta: { title: '字典数据', activeMenu: '/system/dict', icon: '' }
- }
- ]
- },
- {
- path: '/tool/gen-edit',
- component: Layout,
- hidden: true,
- permissions: ['tool:gen:edit'],
- children: [
- {
- path: 'index/:tableId(\\d+)',
- component: () => import('@/views/tool/gen/editTable.vue'),
- name: 'GenEdit',
- meta: { title: '修改生成配置', activeMenu: '/tool/gen', icon: '' }
- }
- ]
- }
-];
-
-/**
- * 创建路由
- */
-const router = createRouter({
- history: createWebHistory(import.meta.env.VITE_APP_CONTEXT_PATH),
- routes: constantRoutes,
- // 刷新时,滚动条位置还原
- scrollBehavior(to, from, savedPosition) {
- if (savedPosition) {
- return savedPosition
- } else {
- return { top: 0 }
- }
- },
-});
-
-export default router;
diff --git a/ruoyi-ui/src/settings.js b/ruoyi-ui/src/settings.js
deleted file mode 100644
index 10e1db4..0000000
--- a/ruoyi-ui/src/settings.js
+++ /dev/null
@@ -1,47 +0,0 @@
-export default {
- /**
- * 网页标题
- */
- title: import.meta.env.VITE_APP_TITLE,
- /**
- * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
- */
- sideTheme: 'theme-dark',
- /**
- * 是否系统布局配置
- */
- showSettings: false,
-
- /**
- * 是否显示顶部导航
- */
- topNav: false,
-
- /**
- * 是否显示 tagsView
- */
- tagsView: true,
-
- /**
- * 是否固定头部
- */
- fixedHeader: false,
-
- /**
- * 是否显示logo
- */
- sidebarLogo: true,
-
- /**
- * 是否显示动态标题
- */
- dynamicTitle: false,
-
- /**
- * @type {string | array} 'production' | ['production', 'development']
- * @description Need show err logs component.
- * The default is only used in the production env
- * If you want to also use it in dev, you can pass ['production', 'development']
- */
- errorLog: 'production'
-}
diff --git a/ruoyi-ui/src/store/getters.js b/ruoyi-ui/src/store/getters.js
deleted file mode 100644
index da6ab39..0000000
--- a/ruoyi-ui/src/store/getters.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const getters = {
- sidebar: state => state.app.sidebar,
- size: state => state.app.size,
- device: state => state.app.device,
- visitedViews: state => state.tagsView.visitedViews,
- cachedViews: state => state.tagsView.cachedViews,
- token: state => state.user.token,
- avatar: state => state.user.avatar,
- name: state => state.user.name,
- introduction: state => state.user.introduction,
- roles: state => state.user.roles,
- permissions: state => state.user.permissions,
- permission_routes: state => state.permission.routes,
- topbarRouters:state => state.permission.topbarRouters,
- defaultRoutes:state => state.permission.defaultRoutes,
- sidebarRouters:state => state.permission.sidebarRouters,
-}
-export default getters
diff --git a/ruoyi-ui/src/store/index.js b/ruoyi-ui/src/store/index.js
deleted file mode 100644
index f66972b..0000000
--- a/ruoyi-ui/src/store/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { createStore } from 'vuex'
-import app from './modules/app'
-import user from './modules/user'
-import tagsView from './modules/tagsView'
-import permission from './modules/permission'
-import settings from './modules/settings'
-import getters from './getters'
-
-const store = createStore({
- modules: {
- app,
- user,
- tagsView,
- permission,
- settings
- },
- getters
-});
-
-
-export default store
diff --git a/ruoyi-ui/src/store/modules/app.js b/ruoyi-ui/src/store/modules/app.js
deleted file mode 100644
index 3e22d1c..0000000
--- a/ruoyi-ui/src/store/modules/app.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import Cookies from 'js-cookie'
-
-const state = {
- sidebar: {
- opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true,
- withoutAnimation: false,
- hide: false
- },
- device: 'desktop',
- size: Cookies.get('size') || 'medium'
-}
-
-const mutations = {
- TOGGLE_SIDEBAR: state => {
- if (state.sidebar.hide) {
- return false;
- }
- state.sidebar.opened = !state.sidebar.opened
- state.sidebar.withoutAnimation = false
- if (state.sidebar.opened) {
- Cookies.set('sidebarStatus', 1)
- } else {
- Cookies.set('sidebarStatus', 0)
- }
- },
- CLOSE_SIDEBAR: (state, withoutAnimation) => {
- Cookies.set('sidebarStatus', 0)
- state.sidebar.opened = false
- state.sidebar.withoutAnimation = withoutAnimation
- },
- TOGGLE_DEVICE: (state, device) => {
- state.device = device
- },
- SET_SIZE: (state, size) => {
- state.size = size
- Cookies.set('size', size)
- },
- SET_SIDEBAR_HIDE: (state, status) => {
- state.sidebar.hide = status
- }
-}
-
-const actions = {
- toggleSideBar({ commit }) {
- commit('TOGGLE_SIDEBAR')
- },
- closeSideBar({ commit }, { withoutAnimation }) {
- commit('CLOSE_SIDEBAR', withoutAnimation)
- },
- toggleDevice({ commit }, device) {
- commit('TOGGLE_DEVICE', device)
- },
- setSize({ commit }, size) {
- commit('SET_SIZE', size)
- },
- toggleSideBarHide({ commit }, status) {
- commit('SET_SIDEBAR_HIDE', status)
- }
-}
-
-export default {
- namespaced: true,
- state,
- mutations,
- actions
-}
diff --git a/ruoyi-ui/src/store/modules/dict.js b/ruoyi-ui/src/store/modules/dict.js
deleted file mode 100644
index f95bead..0000000
--- a/ruoyi-ui/src/store/modules/dict.js
+++ /dev/null
@@ -1,50 +0,0 @@
-const state = {
- dict: new Array()
-}
-const mutations = {
- SET_DICT: (state, { key, value }) => {
- if (key !== null && key !== "") {
- state.dict.push({
- key: key,
- value: value
- })
- }
- },
- REMOVE_DICT: (state, key) => {
- try {
- for (let i = 0; i < state.dict.length; i++) {
- if (state.dict[i].key == key) {
- state.dict.splice(i, i)
- return true
- }
- }
- } catch (e) {
- }
- },
- CLEAN_DICT: (state) => {
- state.dict = new Array()
- }
-}
-
-const actions = {
- // 设置字典
- setDict({ commit }, data) {
- commit('SET_DICT', data)
- },
- // 删除字典
- removeDict({ commit }, key) {
- commit('REMOVE_DICT', key)
- },
- // 清空字典
- cleanDict({ commit }) {
- commit('CLEAN_DICT')
- }
-}
-
-export default {
- namespaced: true,
- state,
- mutations,
- actions
-}
-
diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js
deleted file mode 100644
index c6fd30d..0000000
--- a/ruoyi-ui/src/store/modules/permission.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import router, { constantRoutes, dynamicRoutes } from '@/router'
-import { getRouters } from '@/api/menu'
-import Layout from '@/layout/index'
-import ParentView from '@/components/ParentView'
-import InnerLink from '@/layout/components/InnerLink'
-
-// 匹配views里面所有的.vue文件
-const modules = import.meta.glob('./../../views/**/*.vue')
-
-const permission = {
- state: {
- routes: [],
- addRoutes: [],
- defaultRoutes: [],
- topbarRouters: [],
- sidebarRouters: []
- },
- mutations: {
- SET_ROUTES: (state, routes) => {
- state.addRoutes = routes
- state.routes = constantRoutes.concat(routes)
- },
- SET_DEFAULT_ROUTES: (state, routes) => {
- state.defaultRoutes = constantRoutes.concat(routes)
- },
- SET_TOPBAR_ROUTES: (state, routes) => {
- state.topbarRouters = routes
- },
- SET_SIDEBAR_ROUTERS: (state, routes) => {
- state.sidebarRouters = routes
- },
- },
- actions: {
- // 生成路由
- GenerateRoutes({ commit }) {
- return new Promise(resolve => {
- // 向后端请求路由数据
- getRouters().then(res => {
- const sdata = JSON.parse(JSON.stringify(res.data))
- const rdata = JSON.parse(JSON.stringify(res.data))
- const defaultData = JSON.parse(JSON.stringify(res.data))
- const sidebarRoutes = filterAsyncRouter(sdata)
- const rewriteRoutes = filterAsyncRouter(rdata, false, true)
- const defaultRoutes = filterAsyncRouter(defaultData)
- commit('SET_ROUTES', rewriteRoutes)
- commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
- commit('SET_DEFAULT_ROUTES', sidebarRoutes)
- commit('SET_TOPBAR_ROUTES', defaultRoutes)
- resolve(rewriteRoutes)
- })
- })
- }
- }
-}
-
-// 遍历后台传来的路由字符串,转换为组件对象
-function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
- return asyncRouterMap.filter(route => {
- if (type && route.children) {
- route.children = filterChildren(route.children)
- }
- if (route.component) {
- // Layout ParentView 组件特殊处理
- if (route.component === 'Layout') {
- route.component = Layout
- } else if (route.component === 'ParentView') {
- route.component = ParentView
- } else if (route.component === 'InnerLink') {
- route.component = InnerLink
- } else {
- route.component = loadView(route.component)
- }
- }
- if (route.children != null && route.children && route.children.length) {
- route.children = filterAsyncRouter(route.children, route, type)
- } else {
- delete route['children']
- delete route['redirect']
- }
- return true
- })
-}
-
-function filterChildren(childrenMap, lastRouter = false) {
- var children = []
- childrenMap.forEach((el, index) => {
- if (el.children && el.children.length) {
- if (el.component === 'ParentView' && !lastRouter) {
- el.children.forEach(c => {
- c.path = el.path + '/' + c.path
- if (c.children && c.children.length) {
- children = children.concat(filterChildren(c.children, c))
- return
- }
- children.push(c)
- })
- return
- }
- }
- if (lastRouter) {
- el.path = lastRouter.path + '/' + el.path
- }
- children = children.concat(el)
- })
- return children
-}
-
-// 动态路由遍历,验证是否具备权限
-export function filterDynamicRoutes(routes) {
- const res = []
- routes.forEach(route => {
- if (route.permissions) {
- if (auth.hasPermiOr(route.permissions)) {
- res.push(route)
- }
- } else if (route.roles) {
- if (auth.hasRoleOr(route.roles)) {
- res.push(route)
- }
- }
- })
- return res
-}
-
-export const loadView = (view) => {
- let res;
- for (const path in modules) {
- const dir = path.split('views/')[1].split('.vue')[0];
- if (dir === view) {
- res = () => modules[path]();
- }
- }
- return res;
-}
-
-export default permission
diff --git a/ruoyi-ui/src/store/modules/settings.js b/ruoyi-ui/src/store/modules/settings.js
deleted file mode 100644
index 2455a1e..0000000
--- a/ruoyi-ui/src/store/modules/settings.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import defaultSettings from '@/settings'
-
-const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
-
-const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
-const state = {
- title: '',
- theme: storageSetting.theme || '#409EFF',
- sideTheme: storageSetting.sideTheme || sideTheme,
- showSettings: showSettings,
- topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
- tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
- fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
- sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
- dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
-}
-const mutations = {
- CHANGE_SETTING: (state, { key, value }) => {
- if (state.hasOwnProperty(key)) {
- state[key] = value
- }
- }
-}
-
-const actions = {
- // 修改布局设置
- changeSetting({ commit }, data) {
- commit('CHANGE_SETTING', data)
- },
- // 设置网页标题
- setTitle({ commit }, title) {
- state.title = title
- }
-}
-
-export default {
- namespaced: true,
- state,
- mutations,
- actions
-}
-
diff --git a/ruoyi-ui/src/store/modules/tagsView.js b/ruoyi-ui/src/store/modules/tagsView.js
deleted file mode 100644
index 5fc011c..0000000
--- a/ruoyi-ui/src/store/modules/tagsView.js
+++ /dev/null
@@ -1,228 +0,0 @@
-const state = {
- visitedViews: [],
- cachedViews: [],
- iframeViews: []
-}
-
-const mutations = {
- ADD_IFRAME_VIEW: (state, view) => {
- if (state.iframeViews.some(v => v.path === view.path)) return
- state.iframeViews.push(
- Object.assign({}, view, {
- title: view.meta.title || 'no-name'
- })
- )
- },
- ADD_VISITED_VIEW: (state, view) => {
- if (state.visitedViews.some(v => v.path === view.path)) return
- state.visitedViews.push(
- Object.assign({}, view, {
- title: view.meta.title || 'no-name'
- })
- )
- },
- ADD_CACHED_VIEW: (state, view) => {
- if (state.cachedViews.includes(view.name)) return
- if (view.meta && !view.meta.noCache) {
- state.cachedViews.push(view.name)
- }
- },
- DEL_VISITED_VIEW: (state, view) => {
- for (const [i, v] of state.visitedViews.entries()) {
- if (v.path === view.path) {
- state.visitedViews.splice(i, 1)
- break
- }
- }
- state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
- },
- DEL_IFRAME_VIEW: (state, view) => {
- state.iframeViews = state.iframeViews.filter(item => item.path !== view.path)
- },
- DEL_CACHED_VIEW: (state, view) => {
- const index = state.cachedViews.indexOf(view.name)
- index > -1 && state.cachedViews.splice(index, 1)
- },
-
- DEL_OTHERS_VISITED_VIEWS: (state, view) => {
- state.visitedViews = state.visitedViews.filter(v => {
- return v.meta.affix || v.path === view.path
- })
- state.iframeViews = state.iframeViews.filter(item => item.path === view.path)
- },
- DEL_OTHERS_CACHED_VIEWS: (state, view) => {
- const index = state.cachedViews.indexOf(view.name)
- if (index > -1) {
- state.cachedViews = state.cachedViews.slice(index, index + 1)
- } else {
- state.cachedViews = []
- }
- },
- DEL_ALL_VISITED_VIEWS: state => {
- // keep affix tags
- const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
- state.visitedViews = affixTags
- state.iframeViews = []
- },
- DEL_ALL_CACHED_VIEWS: state => {
- state.cachedViews = []
- },
- UPDATE_VISITED_VIEW: (state, view) => {
- for (let v of state.visitedViews) {
- if (v.path === view.path) {
- v = Object.assign(v, view)
- break
- }
- }
- },
- DEL_RIGHT_VIEWS: (state, view) => {
- const index = state.visitedViews.findIndex(v => v.path === view.path)
- if (index === -1) {
- return
- }
- state.visitedViews = state.visitedViews.filter((item, idx) => {
- if (idx <= index || (item.meta && item.meta.affix)) {
- return true
- }
- const i = state.cachedViews.indexOf(item.name)
- if (i > -1) {
- state.cachedViews.splice(i, 1)
- }
- if(item.meta.link) {
- const fi = state.iframeViews.findIndex(v => v.path === item.path)
- state.iframeViews.splice(fi, 1)
- }
- return false
- })
- },
- DEL_LEFT_VIEWS: (state, view) => {
- const index = state.visitedViews.findIndex(v => v.path === view.path)
- if (index === -1) {
- return
- }
- state.visitedViews = state.visitedViews.filter((item, idx) => {
- if (idx >= index || (item.meta && item.meta.affix)) {
- return true
- }
- const i = state.cachedViews.indexOf(item.name)
- if (i > -1) {
- state.cachedViews.splice(i, 1)
- }
- if(item.meta.link) {
- const fi = state.iframeViews.findIndex(v => v.path === item.path)
- state.iframeViews.splice(fi, 1)
- }
- return false
- })
- }
-}
-
-const actions = {
- addView({ dispatch }, view) {
- dispatch('addVisitedView', view)
- dispatch('addCachedView', view)
- },
- addIframeView({ commit }, view) {
- commit('ADD_IFRAME_VIEW', view)
- },
- addVisitedView({ commit }, view) {
- commit('ADD_VISITED_VIEW', view)
- },
- addCachedView({ commit }, view) {
- commit('ADD_CACHED_VIEW', view)
- },
- delView({ dispatch, state }, view) {
- return new Promise(resolve => {
- dispatch('delVisitedView', view)
- dispatch('delCachedView', view)
- resolve({
- visitedViews: [...state.visitedViews],
- cachedViews: [...state.cachedViews]
- })
- })
- },
- delVisitedView({ commit, state }, view) {
- return new Promise(resolve => {
- commit('DEL_VISITED_VIEW', view)
- resolve([...state.visitedViews])
- })
- },
- delIframeView({ commit, state }, view) {
- return new Promise(resolve => {
- commit('DEL_IFRAME_VIEW', view)
- resolve([...state.iframeViews])
- })
- },
- delCachedView({ commit, state }, view) {
- return new Promise(resolve => {
- commit('DEL_CACHED_VIEW', view)
- resolve([...state.cachedViews])
- })
- },
- delOthersViews({ dispatch, state }, view) {
- return new Promise(resolve => {
- dispatch('delOthersVisitedViews', view)
- dispatch('delOthersCachedViews', view)
- resolve({
- visitedViews: [...state.visitedViews],
- cachedViews: [...state.cachedViews]
- })
- })
- },
- delOthersVisitedViews({ commit, state }, view) {
- return new Promise(resolve => {
- commit('DEL_OTHERS_VISITED_VIEWS', view)
- resolve([...state.visitedViews])
- })
- },
- delOthersCachedViews({ commit, state }, view) {
- return new Promise(resolve => {
- commit('DEL_OTHERS_CACHED_VIEWS', view)
- resolve([...state.cachedViews])
- })
- },
- delAllViews({ dispatch, state }, view) {
- return new Promise(resolve => {
- dispatch('delAllVisitedViews', view)
- dispatch('delAllCachedViews', view)
- resolve({
- visitedViews: [...state.visitedViews],
- cachedViews: [...state.cachedViews]
- })
- })
- },
- delAllVisitedViews({ commit, state }) {
- return new Promise(resolve => {
- commit('DEL_ALL_VISITED_VIEWS')
- resolve([...state.visitedViews])
- })
- },
- delAllCachedViews({ commit, state }) {
- return new Promise(resolve => {
- commit('DEL_ALL_CACHED_VIEWS')
- resolve([...state.cachedViews])
- })
- },
- updateVisitedView({ commit }, view) {
- commit('UPDATE_VISITED_VIEW', view)
- },
- delRightTags({ commit }, view) {
- return new Promise(resolve => {
- commit('DEL_RIGHT_VIEWS', view)
- resolve([...state.visitedViews])
- })
- },
- delLeftTags({ commit }, view) {
- return new Promise(resolve => {
- commit('DEL_LEFT_VIEWS', view)
- resolve([...state.visitedViews])
- })
- },
-}
-
-export default {
- namespaced: true,
- state,
- mutations,
- actions
-}
diff --git a/ruoyi-ui/src/store/modules/user.js b/ruoyi-ui/src/store/modules/user.js
deleted file mode 100644
index f64e69c..0000000
--- a/ruoyi-ui/src/store/modules/user.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import { login, logout, getInfo } from '@/api/login'
-import { getToken, setToken, removeToken } from '@/utils/auth'
-import defAva from '@/assets/images/profile.jpg'
-
-const user = {
- state: {
- token: getToken(),
- id: '',
- name: '',
- avatar: '',
- roles: [],
- permissions: []
- },
-
- mutations: {
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_ID: (state, id) => {
- state.id = id
- },
- SET_NAME: (state, name) => {
- state.name = name
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles
- },
- SET_PERMISSIONS: (state, permissions) => {
- state.permissions = permissions
- }
- },
-
- actions: {
- // 登录
- Login({ commit }, userInfo) {
- const tenantId = userInfo.tenantId
- const username = userInfo.username.trim()
- const password = userInfo.password
- const code = userInfo.code
- const uuid = userInfo.uuid
- return new Promise((resolve, reject) => {
- login(tenantId,username, password, code, uuid).then(res => {
- setToken(res.data.access_token)
- commit('SET_TOKEN', res.data.access_token)
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 获取用户信息
- GetInfo({ commit, state }) {
- return new Promise((resolve, reject) => {
- getInfo().then(res => {
- const user = res.user
- const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
- if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
- commit('SET_ROLES', res.roles)
- commit('SET_PERMISSIONS', res.permissions)
- } else {
- commit('SET_ROLES', ['ROLE_DEFAULT'])
- }
- commit('SET_ID', user.userId)
- commit('SET_NAME', user.userName)
- commit('SET_AVATAR', avatar)
- resolve(res)
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 退出系统
- LogOut({ commit, state }) {
- return new Promise((resolve, reject) => {
- logout(state.token).then(() => {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- commit('SET_PERMISSIONS', [])
- removeToken()
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 前端 登出
- FedLogOut({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '')
- removeToken()
- resolve()
- })
- }
- }
-}
-
-export default user
diff --git a/ruoyi-ui/src/utils/auth.js b/ruoyi-ui/src/utils/auth.js
deleted file mode 100644
index 08a43d6..0000000
--- a/ruoyi-ui/src/utils/auth.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import Cookies from 'js-cookie'
-
-const TokenKey = 'Admin-Token'
-
-export function getToken() {
- return Cookies.get(TokenKey)
-}
-
-export function setToken(token) {
- return Cookies.set(TokenKey, token)
-}
-
-export function removeToken() {
- return Cookies.remove(TokenKey)
-}
diff --git a/ruoyi-ui/src/utils/dict.js b/ruoyi-ui/src/utils/dict.js
deleted file mode 100644
index 373da05..0000000
--- a/ruoyi-ui/src/utils/dict.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { getDicts } from '@/api/system/dict/data'
-
-/**
- * 获取字典数据
- */
-export function useDict(...args) {
- const res = ref({});
- return (() => {
- args.forEach((d, index) => {
- res.value[d] = [];
- getDicts(d).then(resp => {
- res.value[d] = resp.data.map(p => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass }))
- })
- })
- return toRefs(res.value);
- })()
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/dynamicTitle.js b/ruoyi-ui/src/utils/dynamicTitle.js
deleted file mode 100644
index 768583e..0000000
--- a/ruoyi-ui/src/utils/dynamicTitle.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import store from '@/store'
-import defaultSettings from '@/settings'
-
-/**
- * 动态修改标题
- */
-export function useDynamicTitle() {
- if (store.state.settings.dynamicTitle) {
- document.title = store.state.settings.title + ' - ' + defaultSettings.title;
- } else {
- document.title = defaultSettings.title;
- }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/errorCode.js b/ruoyi-ui/src/utils/errorCode.js
deleted file mode 100644
index d2111ee..0000000
--- a/ruoyi-ui/src/utils/errorCode.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- '401': '认证失败,无法访问系统资源',
- '403': '当前操作没有权限',
- '404': '访问资源不存在',
- 'default': '系统未知错误,请反馈给管理员'
-}
diff --git a/ruoyi-ui/src/utils/generator/config.js b/ruoyi-ui/src/utils/generator/config.js
deleted file mode 100644
index 7abf227..0000000
--- a/ruoyi-ui/src/utils/generator/config.js
+++ /dev/null
@@ -1,438 +0,0 @@
-export const formConf = {
- formRef: 'elForm',
- formModel: 'formData',
- size: 'medium',
- labelPosition: 'right',
- labelWidth: 100,
- formRules: 'rules',
- gutter: 15,
- disabled: false,
- span: 24,
- formBtns: true
-}
-
-export const inputComponents = [
- {
- label: '单行文本',
- tag: 'el-input',
- tagIcon: 'input',
- placeholder: '请输入',
- defaultValue: undefined,
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- clearable: true,
- prepend: '',
- append: '',
- 'prefix-icon': '',
- 'suffix-icon': '',
- maxlength: null,
- 'show-word-limit': false,
- readonly: false,
- disabled: false,
- required: true,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/input'
- },
- {
- label: '多行文本',
- tag: 'el-input',
- tagIcon: 'textarea',
- type: 'textarea',
- placeholder: '请输入',
- defaultValue: undefined,
- span: 24,
- labelWidth: null,
- autosize: {
- minRows: 4,
- maxRows: 4
- },
- style: { width: '100%' },
- maxlength: null,
- 'show-word-limit': false,
- readonly: false,
- disabled: false,
- required: true,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/input'
- },
- {
- label: '密码',
- tag: 'el-input',
- tagIcon: 'password',
- placeholder: '请输入',
- defaultValue: undefined,
- span: 24,
- 'show-password': true,
- labelWidth: null,
- style: { width: '100%' },
- clearable: true,
- prepend: '',
- append: '',
- 'prefix-icon': '',
- 'suffix-icon': '',
- maxlength: null,
- 'show-word-limit': false,
- readonly: false,
- disabled: false,
- required: true,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/input'
- },
- {
- label: '计数器',
- tag: 'el-input-number',
- tagIcon: 'number',
- placeholder: '',
- defaultValue: undefined,
- span: 24,
- labelWidth: null,
- min: undefined,
- max: undefined,
- step: undefined,
- 'step-strictly': false,
- precision: undefined,
- 'controls-position': '',
- disabled: false,
- required: true,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/input-number'
- }
-]
-
-export const selectComponents = [
- {
- label: '下拉选择',
- tag: 'el-select',
- tagIcon: 'select',
- placeholder: '请选择',
- defaultValue: undefined,
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- clearable: true,
- disabled: false,
- required: true,
- filterable: false,
- multiple: false,
- options: [{
- label: '选项一',
- value: 1
- }, {
- label: '选项二',
- value: 2
- }],
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/select'
- },
- {
- label: '级联选择',
- tag: 'el-cascader',
- tagIcon: 'cascader',
- placeholder: '请选择',
- defaultValue: [],
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- props: {
- props: {
- multiple: false
- }
- },
- 'show-all-levels': true,
- disabled: false,
- clearable: true,
- filterable: false,
- required: true,
- options: [{
- id: 1,
- value: 1,
- label: '选项1',
- children: [{
- id: 2,
- value: 2,
- label: '选项1-1'
- }]
- }],
- dataType: 'dynamic',
- labelKey: 'label',
- valueKey: 'value',
- childrenKey: 'children',
- separator: '/',
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/cascader'
- },
- {
- label: '单选框组',
- tag: 'el-radio-group',
- tagIcon: 'radio',
- defaultValue: undefined,
- span: 24,
- labelWidth: null,
- style: {},
- optionType: 'default',
- border: false,
- size: 'medium',
- disabled: false,
- required: true,
- options: [{
- label: '选项一',
- value: 1
- }, {
- label: '选项二',
- value: 2
- }],
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/radio'
- },
- {
- label: '多选框组',
- tag: 'el-checkbox-group',
- tagIcon: 'checkbox',
- defaultValue: [],
- span: 24,
- labelWidth: null,
- style: {},
- optionType: 'default',
- border: false,
- size: 'medium',
- disabled: false,
- required: true,
- options: [{
- label: '选项一',
- value: 1
- }, {
- label: '选项二',
- value: 2
- }],
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/checkbox'
- },
- {
- label: '开关',
- tag: 'el-switch',
- tagIcon: 'switch',
- defaultValue: false,
- span: 24,
- labelWidth: null,
- style: {},
- disabled: false,
- required: true,
- 'active-text': '',
- 'inactive-text': '',
- 'active-color': null,
- 'inactive-color': null,
- 'active-value': true,
- 'inactive-value': false,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/switch'
- },
- {
- label: '滑块',
- tag: 'el-slider',
- tagIcon: 'slider',
- defaultValue: null,
- span: 24,
- labelWidth: null,
- disabled: false,
- required: true,
- min: 0,
- max: 100,
- step: 1,
- 'show-stops': false,
- range: false,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/slider'
- },
- {
- label: '时间选择',
- tag: 'el-time-picker',
- tagIcon: 'time',
- placeholder: '请选择',
- defaultValue: null,
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- disabled: false,
- clearable: true,
- required: true,
- 'picker-options': {
- selectableRange: '00:00:00-23:59:59'
- },
- format: 'HH:mm:ss',
- 'value-format': 'HH:mm:ss',
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
- },
- {
- label: '时间范围',
- tag: 'el-time-picker',
- tagIcon: 'time-range',
- defaultValue: null,
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- disabled: false,
- clearable: true,
- required: true,
- 'is-range': true,
- 'range-separator': '至',
- 'start-placeholder': '开始时间',
- 'end-placeholder': '结束时间',
- format: 'HH:mm:ss',
- 'value-format': 'HH:mm:ss',
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
- },
- {
- label: '日期选择',
- tag: 'el-date-picker',
- tagIcon: 'date',
- placeholder: '请选择',
- defaultValue: null,
- type: 'date',
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- disabled: false,
- clearable: true,
- required: true,
- format: 'yyyy-MM-dd',
- 'value-format': 'yyyy-MM-dd',
- readonly: false,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
- },
- {
- label: '日期范围',
- tag: 'el-date-picker',
- tagIcon: 'date-range',
- defaultValue: null,
- span: 24,
- labelWidth: null,
- style: { width: '100%' },
- type: 'daterange',
- 'range-separator': '至',
- 'start-placeholder': '开始日期',
- 'end-placeholder': '结束日期',
- disabled: false,
- clearable: true,
- required: true,
- format: 'yyyy-MM-dd',
- 'value-format': 'yyyy-MM-dd',
- readonly: false,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
- },
- {
- label: '评分',
- tag: 'el-rate',
- tagIcon: 'rate',
- defaultValue: 0,
- span: 24,
- labelWidth: null,
- style: {},
- max: 5,
- 'allow-half': false,
- 'show-text': false,
- 'show-score': false,
- disabled: false,
- required: true,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/rate'
- },
- {
- label: '颜色选择',
- tag: 'el-color-picker',
- tagIcon: 'color',
- defaultValue: null,
- labelWidth: null,
- 'show-alpha': false,
- 'color-format': '',
- disabled: false,
- required: true,
- size: 'medium',
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/color-picker'
- },
- {
- label: '上传',
- tag: 'el-upload',
- tagIcon: 'upload',
- action: 'https://jsonplaceholder.typicode.com/posts/',
- defaultValue: null,
- labelWidth: null,
- disabled: false,
- required: true,
- accept: '',
- name: 'file',
- 'auto-upload': true,
- showTip: false,
- buttonText: '点击上传',
- fileSize: 2,
- sizeUnit: 'MB',
- 'list-type': 'text',
- multiple: false,
- regList: [],
- changeTag: true,
- document: 'https://element.eleme.cn/#/zh-CN/component/upload'
- }
-]
-
-export const layoutComponents = [
- {
- layout: 'rowFormItem',
- tagIcon: 'row',
- type: 'default',
- justify: 'start',
- align: 'top',
- label: '行容器',
- layoutTree: true,
- children: [],
- document: 'https://element.eleme.cn/#/zh-CN/component/layout'
- },
- {
- layout: 'colFormItem',
- label: '按钮',
- changeTag: true,
- labelWidth: null,
- tag: 'el-button',
- tagIcon: 'button',
- span: 24,
- default: '主要按钮',
- type: 'primary',
- icon: 'el-icon-search',
- size: 'medium',
- disabled: false,
- document: 'https://element.eleme.cn/#/zh-CN/component/button'
- }
-]
-
-// 组件rule的触发方式,无触发方式的组件不生成rule
-export const trigger = {
- 'el-input': 'blur',
- 'el-input-number': 'blur',
- 'el-select': 'change',
- 'el-radio-group': 'change',
- 'el-checkbox-group': 'change',
- 'el-cascader': 'change',
- 'el-time-picker': 'change',
- 'el-date-picker': 'change',
- 'el-rate': 'change'
-}
diff --git a/ruoyi-ui/src/utils/generator/css.js b/ruoyi-ui/src/utils/generator/css.js
deleted file mode 100644
index c1c62e6..0000000
--- a/ruoyi-ui/src/utils/generator/css.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const styles = {
- 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}',
- 'el-upload': '.el-upload__tip{line-height: 1.2;}'
-}
-
-function addCss(cssList, el) {
- const css = styles[el.tag]
- css && cssList.indexOf(css) === -1 && cssList.push(css)
- if (el.children) {
- el.children.forEach(el2 => addCss(cssList, el2))
- }
-}
-
-export function makeUpCss(conf) {
- const cssList = []
- conf.fields.forEach(el => addCss(cssList, el))
- return cssList.join('\n')
-}
diff --git a/ruoyi-ui/src/utils/generator/drawingDefault.js b/ruoyi-ui/src/utils/generator/drawingDefault.js
deleted file mode 100644
index 09f133c..0000000
--- a/ruoyi-ui/src/utils/generator/drawingDefault.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default [
- {
- layout: 'colFormItem',
- tagIcon: 'input',
- label: '手机号',
- vModel: 'mobile',
- formId: 6,
- tag: 'el-input',
- placeholder: '请输入手机号',
- defaultValue: '',
- span: 24,
- style: { width: '100%' },
- clearable: true,
- prepend: '',
- append: '',
- 'prefix-icon': 'el-icon-mobile',
- 'suffix-icon': '',
- maxlength: 11,
- 'show-word-limit': true,
- readonly: false,
- disabled: false,
- required: true,
- changeTag: true,
- regList: [{
- pattern: '/^1(3|4|5|7|8|9)\\d{9}$/',
- message: '手机号格式错误'
- }]
- }
-]
diff --git a/ruoyi-ui/src/utils/generator/html.js b/ruoyi-ui/src/utils/generator/html.js
deleted file mode 100644
index 9bcc536..0000000
--- a/ruoyi-ui/src/utils/generator/html.js
+++ /dev/null
@@ -1,359 +0,0 @@
-/* eslint-disable max-len */
-import { trigger } from './config'
-
-let confGlobal
-let someSpanIsNot24
-
-export function dialogWrapper(str) {
- return `
- ${str}
-
- 取消
- 确定
-
- `
-}
-
-export function vueTemplate(str) {
- return `
-
- ${str}
-
- `
-}
-
-export function vueScript(str) {
- return ``
-}
-
-export function cssStyle(cssStr) {
- return ``
-}
-
-function buildFormTemplate(conf, child, type) {
- let labelPosition = ''
- if (conf.labelPosition !== 'right') {
- labelPosition = `label-position="${conf.labelPosition}"`
- }
- const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : ''
- let str = `
- ${child}
- ${buildFromBtns(conf, type)}
- `
- if (someSpanIsNot24) {
- str = `
- ${str}
- `
- }
- return str
-}
-
-function buildFromBtns(conf, type) {
- let str = ''
- if (conf.formBtns && type === 'file') {
- str = `
- 提交
- 重置
- `
- if (someSpanIsNot24) {
- str = `
- ${str}
- `
- }
- }
- return str
-}
-
-// span不为24的用el-col包裹
-function colWrapper(element, str) {
- if (someSpanIsNot24 || element.span !== 24) {
- return `
- ${str}
- `
- }
- return str
-}
-
-const layouts = {
- colFormItem(element) {
- let labelWidth = ''
- if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) {
- labelWidth = `label-width="${element.labelWidth}px"`
- }
- const required = !trigger[element.tag] && element.required ? 'required' : ''
- const tagDom = tags[element.tag] ? tags[element.tag](element) : null
- let str = `
- ${tagDom}
- `
- str = colWrapper(element, str)
- return str
- },
- rowFormItem(element) {
- const type = element.type === 'default' ? '' : `type="${element.type}"`
- const justify = element.type === 'default' ? '' : `justify="${element.justify}"`
- const align = element.type === 'default' ? '' : `align="${element.align}"`
- const gutter = element.gutter ? `gutter="${element.gutter}"` : ''
- const children = element.children.map(el => layouts[el.layout](el))
- let str = `
- ${children.join('\n')}
- `
- str = colWrapper(element, str)
- return str
- }
-}
-
-const tags = {
- 'el-button': el => {
- const {
- tag, disabled
- } = attrBuilder(el)
- const type = el.type ? `type="${el.type}"` : ''
- const icon = el.icon ? `icon="${el.icon}"` : ''
- const size = el.size ? `size="${el.size}"` : ''
- let child = buildElButtonChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}${el.tag}>`
- },
- 'el-input': el => {
- const {
- disabled, vModel, clearable, placeholder, width
- } = attrBuilder(el)
- const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : ''
- const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : ''
- const readonly = el.readonly ? 'readonly' : ''
- const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : ''
- const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : ''
- const showPassword = el['show-password'] ? 'show-password' : ''
- const type = el.type ? `type="${el.type}"` : ''
- const autosize = el.autosize && el.autosize.minRows
- ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"`
- : ''
- let child = buildElInputChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}${el.tag}>`
- },
- 'el-input-number': el => {
- const { disabled, vModel, placeholder } = attrBuilder(el)
- const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : ''
- const min = el.min ? `:min='${el.min}'` : ''
- const max = el.max ? `:max='${el.max}'` : ''
- const step = el.step ? `:step='${el.step}'` : ''
- const stepStrictly = el['step-strictly'] ? 'step-strictly' : ''
- const precision = el.precision ? `:precision='${el.precision}'` : ''
-
- return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>${el.tag}>`
- },
- 'el-select': el => {
- const {
- disabled, vModel, clearable, placeholder, width
- } = attrBuilder(el)
- const filterable = el.filterable ? 'filterable' : ''
- const multiple = el.multiple ? 'multiple' : ''
- let child = buildElSelectChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}${el.tag}>`
- },
- 'el-radio-group': el => {
- const { disabled, vModel } = attrBuilder(el)
- const size = `size="${el.size}"`
- let child = buildElRadioGroupChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${vModel} ${size} ${disabled}>${child}${el.tag}>`
- },
- 'el-checkbox-group': el => {
- const { disabled, vModel } = attrBuilder(el)
- const size = `size="${el.size}"`
- const min = el.min ? `:min="${el.min}"` : ''
- const max = el.max ? `:max="${el.max}"` : ''
- let child = buildElCheckboxGroupChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}${el.tag}>`
- },
- 'el-switch': el => {
- const { disabled, vModel } = attrBuilder(el)
- const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : ''
- const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : ''
- const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : ''
- const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : ''
- const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : ''
- const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : ''
-
- return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>${el.tag}>`
- },
- 'el-cascader': el => {
- const {
- disabled, vModel, clearable, placeholder, width
- } = attrBuilder(el)
- const options = el.options ? `:options="${el.vModel}Options"` : ''
- const props = el.props ? `:props="${el.vModel}Props"` : ''
- const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"'
- const filterable = el.filterable ? 'filterable' : ''
- const separator = el.separator === '/' ? '' : `separator="${el.separator}"`
-
- return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>${el.tag}>`
- },
- 'el-slider': el => {
- const { disabled, vModel } = attrBuilder(el)
- const min = el.min ? `:min='${el.min}'` : ''
- const max = el.max ? `:max='${el.max}'` : ''
- const step = el.step ? `:step='${el.step}'` : ''
- const range = el.range ? 'range' : ''
- const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : ''
-
- return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>${el.tag}>`
- },
- 'el-time-picker': el => {
- const {
- disabled, vModel, clearable, placeholder, width
- } = attrBuilder(el)
- const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
- const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
- const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
- const isRange = el['is-range'] ? 'is-range' : ''
- const format = el.format ? `format="${el.format}"` : ''
- const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
- const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : ''
-
- return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>${el.tag}>`
- },
- 'el-date-picker': el => {
- const {
- disabled, vModel, clearable, placeholder, width
- } = attrBuilder(el)
- const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : ''
- const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : ''
- const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : ''
- const format = el.format ? `format="${el.format}"` : ''
- const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : ''
- const type = el.type === 'date' ? '' : `type="${el.type}"`
- const readonly = el.readonly ? 'readonly' : ''
-
- return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>${el.tag}>`
- },
- 'el-rate': el => {
- const { disabled, vModel } = attrBuilder(el)
- const max = el.max ? `:max='${el.max}'` : ''
- const allowHalf = el['allow-half'] ? 'allow-half' : ''
- const showText = el['show-text'] ? 'show-text' : ''
- const showScore = el['show-score'] ? 'show-score' : ''
-
- return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>${el.tag}>`
- },
- 'el-color-picker': el => {
- const { disabled, vModel } = attrBuilder(el)
- const size = `size="${el.size}"`
- const showAlpha = el['show-alpha'] ? 'show-alpha' : ''
- const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : ''
-
- return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>${el.tag}>`
- },
- 'el-upload': el => {
- const disabled = el.disabled ? ':disabled=\'true\'' : ''
- const action = el.action ? `:action="${el.vModel}Action"` : ''
- const multiple = el.multiple ? 'multiple' : ''
- const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : ''
- const accept = el.accept ? `accept="${el.accept}"` : ''
- const name = el.name !== 'file' ? `name="${el.name}"` : ''
- const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : ''
- const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"`
- const fileList = `:file-list="${el.vModel}fileList"`
- const ref = `ref="${el.vModel}"`
- let child = buildElUploadChild(el)
-
- if (child) child = `\n${child}\n` // 换行
- return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}${el.tag}>`
- }
-}
-
-function attrBuilder(el) {
- return {
- vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`,
- clearable: el.clearable ? 'clearable' : '',
- placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '',
- width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '',
- disabled: el.disabled ? ':disabled=\'true\'' : ''
- }
-}
-
-// el-buttin 子级
-function buildElButtonChild(conf) {
- const children = []
- if (conf.default) {
- children.push(conf.default)
- }
- return children.join('\n')
-}
-
-// el-input innerHTML
-function buildElInputChild(conf) {
- const children = []
- if (conf.prepend) {
- children.push(`${conf.prepend}`)
- }
- if (conf.append) {
- children.push(`${conf.append}`)
- }
- return children.join('\n')
-}
-
-function buildElSelectChild(conf) {
- const children = []
- if (conf.options && conf.options.length) {
- children.push(``)
- }
- return children.join('\n')
-}
-
-function buildElRadioGroupChild(conf) {
- const children = []
- if (conf.options && conf.options.length) {
- const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio'
- const border = conf.border ? 'border' : ''
- children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}${tag}>`)
- }
- return children.join('\n')
-}
-
-function buildElCheckboxGroupChild(conf) {
- const children = []
- if (conf.options && conf.options.length) {
- const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox'
- const border = conf.border ? 'border' : ''
- children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}${tag}>`)
- }
- return children.join('\n')
-}
-
-function buildElUploadChild(conf) {
- const list = []
- if (conf['list-type'] === 'picture-card') list.push('')
- else list.push(`${conf.buttonText}`)
- if (conf.showTip) list.push(`只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`)
- return list.join('\n')
-}
-
-export function makeUpHtml(conf, type) {
- const htmlList = []
- confGlobal = conf
- someSpanIsNot24 = conf.fields.some(item => item.span !== 24)
- conf.fields.forEach(el => {
- htmlList.push(layouts[el.layout](el))
- })
- const htmlStr = htmlList.join('\n')
-
- let temp = buildFormTemplate(conf, htmlStr, type)
- if (type === 'dialog') {
- temp = dialogWrapper(temp)
- }
- confGlobal = null
- return temp
-}
diff --git a/ruoyi-ui/src/utils/generator/icon.json b/ruoyi-ui/src/utils/generator/icon.json
deleted file mode 100644
index 2d9999a..0000000
--- a/ruoyi-ui/src/utils/generator/icon.json
+++ /dev/null
@@ -1 +0,0 @@
-["platform-eleme","eleme","delete-solid","delete","s-tools","setting","user-solid","user","phone","phone-outline","more","more-outline","star-on","star-off","s-goods","goods","warning","warning-outline","question","info","remove","circle-plus","success","error","zoom-in","zoom-out","remove-outline","circle-plus-outline","circle-check","circle-close","s-help","help","minus","plus","check","close","picture","picture-outline","picture-outline-round","upload","upload2","download","camera-solid","camera","video-camera-solid","video-camera","message-solid","bell","s-cooperation","s-order","s-platform","s-fold","s-unfold","s-operation","s-promotion","s-home","s-release","s-ticket","s-management","s-open","s-shop","s-marketing","s-flag","s-comment","s-finance","s-claim","s-custom","s-opportunity","s-data","s-check","s-grid","menu","share","d-caret","caret-left","caret-right","caret-bottom","caret-top","bottom-left","bottom-right","back","right","bottom","top","top-left","top-right","arrow-left","arrow-right","arrow-down","arrow-up","d-arrow-left","d-arrow-right","video-pause","video-play","refresh","refresh-right","refresh-left","finished","sort","sort-up","sort-down","rank","loading","view","c-scale-to-original","date","edit","edit-outline","folder","folder-opened","folder-add","folder-remove","folder-delete","folder-checked","tickets","document-remove","document-delete","document-copy","document-checked","document","document-add","printer","paperclip","takeaway-box","search","monitor","attract","mobile","scissors","umbrella","headset","brush","mouse","coordinate","magic-stick","reading","data-line","data-board","pie-chart","data-analysis","collection-tag","film","suitcase","suitcase-1","receiving","collection","files","notebook-1","notebook-2","toilet-paper","office-building","school","table-lamp","house","no-smoking","smoking","shopping-cart-full","shopping-cart-1","shopping-cart-2","shopping-bag-1","shopping-bag-2","sold-out","sell","present","box","bank-card","money","coin","wallet","discount","price-tag","news","guide","male","female","thumb","cpu","link","connection","open","turn-off","set-up","chat-round","chat-line-round","chat-square","chat-dot-round","chat-dot-square","chat-line-square","message","postcard","position","turn-off-microphone","microphone","close-notification","bangzhu","time","odometer","crop","aim","switch-button","full-screen","copy-document","mic","stopwatch","medal-1","medal","trophy","trophy-1","first-aid-kit","discover","place","location","location-outline","location-information","add-location","delete-location","map-location","alarm-clock","timer","watch-1","watch","lock","unlock","key","service","mobile-phone","bicycle","truck","ship","basketball","football","soccer","baseball","wind-power","light-rain","lightning","heavy-rain","sunrise","sunrise-1","sunset","sunny","cloudy","partly-cloudy","cloudy-and-sunny","moon","moon-night","dish","dish-1","food","chicken","fork-spoon","knife-fork","burger","tableware","sugar","dessert","ice-cream","hot-water","water-cup","coffee-cup","cold-drink","goblet","goblet-full","goblet-square","goblet-square-full","refrigerator","grape","watermelon","cherry","apple","pear","orange","coffee","ice-tea","ice-drink","milk-tea","potato-strips","lollipop","ice-cream-square","ice-cream-round"]
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/generator/js.js b/ruoyi-ui/src/utils/generator/js.js
deleted file mode 100644
index ee8668d..0000000
--- a/ruoyi-ui/src/utils/generator/js.js
+++ /dev/null
@@ -1,235 +0,0 @@
-import { exportDefault, titleCase } from '@/utils/index'
-import { trigger } from './config'
-
-const units = {
- KB: '1024',
- MB: '1024 / 1024',
- GB: '1024 / 1024 / 1024'
-}
-let confGlobal
-const inheritAttrs = {
- file: '',
- dialog: 'inheritAttrs: false,'
-}
-
-
-export function makeUpJs(conf, type) {
- confGlobal = conf = JSON.parse(JSON.stringify(conf))
- const dataList = []
- const ruleList = []
- const optionsList = []
- const propsList = []
- const methodList = mixinMethod(type)
- const uploadVarList = []
-
- conf.fields.forEach(el => {
- buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
- })
-
- const script = buildexport(
- conf,
- type,
- dataList.join('\n'),
- ruleList.join('\n'),
- optionsList.join('\n'),
- uploadVarList.join('\n'),
- propsList.join('\n'),
- methodList.join('\n')
- )
- confGlobal = null
- return script
-}
-
-function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) {
- buildData(el, dataList)
- buildRules(el, ruleList)
-
- if (el.options && el.options.length) {
- buildOptions(el, optionsList)
- if (el.dataType === 'dynamic') {
- const model = `${el.vModel}Options`
- const options = titleCase(model)
- buildOptionMethod(`get${options}`, model, methodList)
- }
- }
-
- if (el.props && el.props.props) {
- buildProps(el, propsList)
- }
-
- if (el.action && el.tag === 'el-upload') {
- uploadVarList.push(
- `${el.vModel}Action: '${el.action}',
- ${el.vModel}fileList: [],`
- )
- methodList.push(buildBeforeUpload(el))
- if (!el['auto-upload']) {
- methodList.push(buildSubmitUpload(el))
- }
- }
-
- if (el.children) {
- el.children.forEach(el2 => {
- buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList)
- })
- }
-}
-
-function mixinMethod(type) {
- const list = []; const
- minxins = {
- file: confGlobal.formBtns ? {
- submitForm: `submitForm() {
- this.$refs['${confGlobal.formRef}'].validate(valid => {
- if(!valid) return
- // TODO 提交表单
- })
- },`,
- resetForm: `resetForm() {
- this.$refs['${confGlobal.formRef}'].resetFields()
- },`
- } : null,
- dialog: {
- onOpen: 'onOpen() {},',
- onClose: `onClose() {
- this.$refs['${confGlobal.formRef}'].resetFields()
- },`,
- close: `close() {
- this.$emit('update:visible', false)
- },`,
- handleConfirm: `handleConfirm() {
- this.$refs['${confGlobal.formRef}'].validate(valid => {
- if(!valid) return
- this.close()
- })
- },`
- }
- }
-
- const methods = minxins[type]
- if (methods) {
- Object.keys(methods).forEach(key => {
- list.push(methods[key])
- })
- }
-
- return list
-}
-
-function buildData(conf, dataList) {
- if (conf.vModel === undefined) return
- let defaultValue
- if (typeof (conf.defaultValue) === 'string' && !conf.multiple) {
- defaultValue = `'${conf.defaultValue}'`
- } else {
- defaultValue = `${JSON.stringify(conf.defaultValue)}`
- }
- dataList.push(`${conf.vModel}: ${defaultValue},`)
-}
-
-function buildRules(conf, ruleList) {
- if (conf.vModel === undefined) return
- const rules = []
- if (trigger[conf.tag]) {
- if (conf.required) {
- const type = Array.isArray(conf.defaultValue) ? 'type: \'array\',' : ''
- let message = Array.isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder
- if (message === undefined) message = `${conf.label}不能为空`
- rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`)
- }
- if (conf.regList && Array.isArray(conf.regList)) {
- conf.regList.forEach(item => {
- if (item.pattern) {
- rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`)
- }
- })
- }
- ruleList.push(`${conf.vModel}: [${rules.join(',')}],`)
- }
-}
-
-function buildOptions(conf, optionsList) {
- if (conf.vModel === undefined) return
- if (conf.dataType === 'dynamic') { conf.options = [] }
- const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},`
- optionsList.push(str)
-}
-
-function buildProps(conf, propsList) {
- if (conf.dataType === 'dynamic') {
- conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey)
- conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey)
- conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey)
- }
- const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},`
- propsList.push(str)
-}
-
-function buildBeforeUpload(conf) {
- const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const
- returnList = []
- if (conf.fileSize) {
- rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize}
- if(!isRightSize){
- this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}')
- }`
- returnList.push('isRightSize')
- }
- if (conf.accept) {
- acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type)
- if(!isAccept){
- this.$message.error('应该选择${conf.accept}类型的文件')
- }`
- returnList.push('isAccept')
- }
- const str = `${conf.vModel}BeforeUpload(file) {
- ${rightSizeCode}
- ${acceptCode}
- return ${returnList.join('&&')}
- },`
- return returnList.length ? str : ''
-}
-
-function buildSubmitUpload(conf) {
- const str = `submitUpload() {
- this.$refs['${conf.vModel}'].submit()
- },`
- return str
-}
-
-function buildOptionMethod(methodName, model, methodList) {
- const str = `${methodName}() {
- // TODO 发起请求获取数据
- this.${model}
- },`
- methodList.push(str)
-}
-
-function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) {
- const str = `${exportDefault}{
- ${inheritAttrs[type]}
- components: {},
- props: [],
- data () {
- return {
- ${conf.formModel}: {
- ${data}
- },
- ${conf.formRules}: {
- ${rules}
- },
- ${uploadVar}
- ${selectOptions}
- ${props}
- }
- },
- computed: {},
- watch: {},
- created () {},
- mounted () {},
- methods: {
- ${methods}
- }
-}`
- return str
-}
diff --git a/ruoyi-ui/src/utils/generator/render.js b/ruoyi-ui/src/utils/generator/render.js
deleted file mode 100644
index e8640f0..0000000
--- a/ruoyi-ui/src/utils/generator/render.js
+++ /dev/null
@@ -1,126 +0,0 @@
-import { makeMap } from '@/utils/index'
-
-// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js
-const isAttr = makeMap(
- 'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,'
- + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,'
- + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,'
- + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,'
- + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,'
- + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,'
- + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,'
- + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,'
- + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,'
- + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,'
- + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,'
- + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,'
- + 'target,title,type,usemap,value,width,wrap'
-)
-
-function vModel(self, dataObject, defaultValue) {
- dataObject.props.value = defaultValue
-
- dataObject.on.input = val => {
- self.$emit('input', val)
- }
-}
-
-const componentChild = {
- 'el-button': {
- default(h, conf, key) {
- return conf[key]
- },
- },
- 'el-input': {
- prepend(h, conf, key) {
- return {conf[key]}
- },
- append(h, conf, key) {
- return {conf[key]}
- }
- },
- 'el-select': {
- options(h, conf, key) {
- const list = []
- conf.options.forEach(item => {
- list.push()
- })
- return list
- }
- },
- 'el-radio-group': {
- options(h, conf, key) {
- const list = []
- conf.options.forEach(item => {
- if (conf.optionType === 'button') list.push({item.label})
- else list.push({item.label})
- })
- return list
- }
- },
- 'el-checkbox-group': {
- options(h, conf, key) {
- const list = []
- conf.options.forEach(item => {
- if (conf.optionType === 'button') {
- list.push({item.label})
- } else {
- list.push({item.label})
- }
- })
- return list
- }
- },
- 'el-upload': {
- 'list-type': (h, conf, key) => {
- const list = []
- if (conf['list-type'] === 'picture-card') {
- list.push()
- } else {
- list.push({conf.buttonText})
- }
- if (conf.showTip) {
- list.push(只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件
)
- }
- return list
- }
- }
-}
-
-export default {
- render(h) {
- const dataObject = {
- attrs: {},
- props: {},
- on: {},
- style: {}
- }
- const confClone = JSON.parse(JSON.stringify(this.conf))
- const children = []
-
- const childObjs = componentChild[confClone.tag]
- if (childObjs) {
- Object.keys(childObjs).forEach(key => {
- const childFunc = childObjs[key]
- if (confClone[key]) {
- children.push(childFunc(h, confClone, key))
- }
- })
- }
-
- Object.keys(confClone).forEach(key => {
- const val = confClone[key]
- if (key === 'vModel') {
- vModel(this, dataObject, confClone.defaultValue)
- } else if (dataObject[key]) {
- dataObject[key] = val
- } else if (!isAttr(key)) {
- dataObject.props[key] = val
- } else {
- dataObject.attrs[key] = val
- }
- })
- return h(this.conf.tag, dataObject, children)
- },
- props: ['conf']
-}
diff --git a/ruoyi-ui/src/utils/index.js b/ruoyi-ui/src/utils/index.js
deleted file mode 100644
index b686edd..0000000
--- a/ruoyi-ui/src/utils/index.js
+++ /dev/null
@@ -1,390 +0,0 @@
-import { parseTime } from '@/ruoyi'
-
-/**
- * 表格时间格式化
- */
-export function formatDate(cellValue) {
- if (cellValue == null || cellValue == "") return "";
- var date = new Date(cellValue)
- var year = date.getFullYear()
- var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
- var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
- var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
- var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
- var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
- return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
-}
-
-/**
- * @param {number} time
- * @param {string} option
- * @returns {string}
- */
-export function formatTime(time, option) {
- if (('' + time).length === 10) {
- time = parseInt(time) * 1000
- } else {
- time = +time
- }
- const d = new Date(time)
- const now = Date.now()
-
- const diff = (now - d) / 1000
-
- if (diff < 30) {
- return '刚刚'
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + '分钟前'
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + '小时前'
- } else if (diff < 3600 * 24 * 2) {
- return '1天前'
- }
- if (option) {
- return parseTime(time, option)
- } else {
- return (
- d.getMonth() +
- 1 +
- '月' +
- d.getDate() +
- '日' +
- d.getHours() +
- '时' +
- d.getMinutes() +
- '分'
- )
- }
-}
-
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function getQueryObject(url) {
- url = url == null ? window.location.href : url
- const search = url.substring(url.lastIndexOf('?') + 1)
- const obj = {}
- const reg = /([^?&=]+)=([^?&=]*)/g
- search.replace(reg, (rs, $1, $2) => {
- const name = decodeURIComponent($1)
- let val = decodeURIComponent($2)
- val = String(val)
- obj[name] = val
- return rs
- })
- return obj
-}
-
-/**
- * @param {string} input value
- * @returns {number} output value
- */
-export function byteLength(str) {
- // returns the byte length of an utf8 string
- let s = str.length
- for (var i = str.length - 1; i >= 0; i--) {
- const code = str.charCodeAt(i)
- if (code > 0x7f && code <= 0x7ff) s++
- else if (code > 0x7ff && code <= 0xffff) s += 2
- if (code >= 0xDC00 && code <= 0xDFFF) i--
- }
- return s
-}
-
-/**
- * @param {Array} actual
- * @returns {Array}
- */
-export function cleanArray(actual) {
- const newArray = []
- for (let i = 0; i < actual.length; i++) {
- if (actual[i]) {
- newArray.push(actual[i])
- }
- }
- return newArray
-}
-
-/**
- * @param {Object} json
- * @returns {Array}
- */
-export function param(json) {
- if (!json) return ''
- return cleanArray(
- Object.keys(json).map(key => {
- if (json[key] === undefined) return ''
- return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
- })
- ).join('&')
-}
-
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function param2Obj(url) {
- const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
- if (!search) {
- return {}
- }
- const obj = {}
- const searchArr = search.split('&')
- searchArr.forEach(v => {
- const index = v.indexOf('=')
- if (index !== -1) {
- const name = v.substring(0, index)
- const val = v.substring(index + 1, v.length)
- obj[name] = val
- }
- })
- return obj
-}
-
-/**
- * @param {string} val
- * @returns {string}
- */
-export function html2Text(val) {
- const div = document.createElement('div')
- div.innerHTML = val
- return div.textContent || div.innerText
-}
-
-/**
- * Merges two objects, giving the last one precedence
- * @param {Object} target
- * @param {(Object|Array)} source
- * @returns {Object}
- */
-export function objectMerge(target, source) {
- if (typeof target !== 'object') {
- target = {}
- }
- if (Array.isArray(source)) {
- return source.slice()
- }
- Object.keys(source).forEach(property => {
- const sourceProperty = source[property]
- if (typeof sourceProperty === 'object') {
- target[property] = objectMerge(target[property], sourceProperty)
- } else {
- target[property] = sourceProperty
- }
- })
- return target
-}
-
-/**
- * @param {HTMLElement} element
- * @param {string} className
- */
-export function toggleClass(element, className) {
- if (!element || !className) {
- return
- }
- let classString = element.className
- const nameIndex = classString.indexOf(className)
- if (nameIndex === -1) {
- classString += '' + className
- } else {
- classString =
- classString.substr(0, nameIndex) +
- classString.substr(nameIndex + className.length)
- }
- element.className = classString
-}
-
-/**
- * @param {string} type
- * @returns {Date}
- */
-export function getTime(type) {
- if (type === 'start') {
- return new Date().getTime() - 3600 * 1000 * 24 * 90
- } else {
- return new Date(new Date().toDateString())
- }
-}
-
-/**
- * @param {Function} func
- * @param {number} wait
- * @param {boolean} immediate
- * @return {*}
- */
-export function debounce(func, wait, immediate) {
- let timeout, args, context, timestamp, result
-
- const later = function() {
- // 据上一次触发时间间隔
- const last = +new Date() - timestamp
-
- // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
- if (last < wait && last > 0) {
- timeout = setTimeout(later, wait - last)
- } else {
- timeout = null
- // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
- if (!immediate) {
- result = func.apply(context, args)
- if (!timeout) context = args = null
- }
- }
- }
-
- return function(...args) {
- context = this
- timestamp = +new Date()
- const callNow = immediate && !timeout
- // 如果延时不存在,重新设定延时
- if (!timeout) timeout = setTimeout(later, wait)
- if (callNow) {
- result = func.apply(context, args)
- context = args = null
- }
-
- return result
- }
-}
-
-/**
- * This is just a simple version of deep copy
- * Has a lot of edge cases bug
- * If you want to use a perfect deep copy, use lodash's _.cloneDeep
- * @param {Object} source
- * @returns {Object}
- */
-export function deepClone(source) {
- if (!source && typeof source !== 'object') {
- throw new Error('error arguments', 'deepClone')
- }
- const targetObj = source.constructor === Array ? [] : {}
- Object.keys(source).forEach(keys => {
- if (source[keys] && typeof source[keys] === 'object') {
- targetObj[keys] = deepClone(source[keys])
- } else {
- targetObj[keys] = source[keys]
- }
- })
- return targetObj
-}
-
-/**
- * @param {Array} arr
- * @returns {Array}
- */
-export function uniqueArr(arr) {
- return Array.from(new Set(arr))
-}
-
-/**
- * @returns {string}
- */
-export function createUniqueString() {
- const timestamp = +new Date() + ''
- const randomNum = parseInt((1 + Math.random()) * 65536) + ''
- return (+(randomNum + timestamp)).toString(32)
-}
-
-/**
- * Check if an element has a class
- * @param {HTMLElement} elm
- * @param {string} cls
- * @returns {boolean}
- */
-export function hasClass(ele, cls) {
- return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
-}
-
-/**
- * Add class to element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function addClass(ele, cls) {
- if (!hasClass(ele, cls)) ele.className += ' ' + cls
-}
-
-/**
- * Remove class from element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function removeClass(ele, cls) {
- if (hasClass(ele, cls)) {
- const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
- ele.className = ele.className.replace(reg, ' ')
- }
-}
-
-export function makeMap(str, expectsLowerCase) {
- const map = Object.create(null)
- const list = str.split(',')
- for (let i = 0; i < list.length; i++) {
- map[list[i]] = true
- }
- return expectsLowerCase
- ? val => map[val.toLowerCase()]
- : val => map[val]
-}
-
-export const exportDefault = 'export default '
-
-export const beautifierConf = {
- html: {
- indent_size: '2',
- indent_char: ' ',
- max_preserve_newlines: '-1',
- preserve_newlines: false,
- keep_array_indentation: false,
- break_chained_methods: false,
- indent_scripts: 'separate',
- brace_style: 'end-expand',
- space_before_conditional: true,
- unescape_strings: false,
- jslint_happy: false,
- end_with_newline: true,
- wrap_line_length: '110',
- indent_inner_html: true,
- comma_first: false,
- e4x: true,
- indent_empty_lines: true
- },
- js: {
- indent_size: '2',
- indent_char: ' ',
- max_preserve_newlines: '-1',
- preserve_newlines: false,
- keep_array_indentation: false,
- break_chained_methods: false,
- indent_scripts: 'normal',
- brace_style: 'end-expand',
- space_before_conditional: true,
- unescape_strings: false,
- jslint_happy: true,
- end_with_newline: true,
- wrap_line_length: '110',
- indent_inner_html: true,
- comma_first: false,
- e4x: true,
- indent_empty_lines: true
- }
-}
-
-// 首字母大小
-export function titleCase(str) {
- return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
-}
-
-// 下划转驼峰
-export function camelCase(str) {
- return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
-}
-
-export function isNumberStr(str) {
- return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
-}
-
diff --git a/ruoyi-ui/src/utils/jsencrypt.js b/ruoyi-ui/src/utils/jsencrypt.js
deleted file mode 100644
index 78d9523..0000000
--- a/ruoyi-ui/src/utils/jsencrypt.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
-
-// 密钥对生成 http://web.chacuo.net/netrsakeypair
-
-const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
- 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
-
-const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
- '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
- 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
- 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
- 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
- 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
- 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
- 'UP8iWi1Qw0Y='
-
-// 加密
-export function encrypt(txt) {
- const encryptor = new JSEncrypt()
- encryptor.setPublicKey(publicKey) // 设置公钥
- return encryptor.encrypt(txt) // 对数据进行加密
-}
-
-// 解密
-export function decrypt(txt) {
- const encryptor = new JSEncrypt()
- encryptor.setPrivateKey(privateKey) // 设置私钥
- return encryptor.decrypt(txt) // 对数据进行解密
-}
-
diff --git a/ruoyi-ui/src/utils/permission.js b/ruoyi-ui/src/utils/permission.js
deleted file mode 100644
index 1730e33..0000000
--- a/ruoyi-ui/src/utils/permission.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import store from '@/store'
-
-/**
- * 字符权限校验
- * @param {Array} value 校验值
- * @returns {Boolean}
- */
-export function checkPermi(value) {
- if (value && value instanceof Array && value.length > 0) {
- const permissions = store.getters && store.getters.permissions
- const permissionDatas = value
- const all_permission = "*:*:*";
-
- const hasPermission = permissions.some(permission => {
- return all_permission === permission || permissionDatas.includes(permission)
- })
-
- if (!hasPermission) {
- return false
- }
- return true
- } else {
- console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
- return false
- }
-}
-
-/**
- * 角色权限校验
- * @param {Array} value 校验值
- * @returns {Boolean}
- */
-export function checkRole(value) {
- if (value && value instanceof Array && value.length > 0) {
- const roles = store.getters && store.getters.roles
- const permissionRoles = value
- const super_admin = "admin";
-
- const hasRole = roles.some(role => {
- return super_admin === role || permissionRoles.includes(role)
- })
-
- if (!hasRole) {
- return false
- }
- return true
- } else {
- console.error(`need roles! Like checkRole="['admin','editor']"`)
- return false
- }
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js
deleted file mode 100644
index 838de7e..0000000
--- a/ruoyi-ui/src/utils/request.js
+++ /dev/null
@@ -1,156 +0,0 @@
-import axios from 'axios'
-import { ElNotification , ElMessageBox, ElMessage, ElLoading } from 'element-plus'
-import store from '@/store'
-import { getToken } from '@/utils/auth'
-import errorCode from '@/utils/errorCode'
-import { tansParams, blobValidate } from '@/utils/ruoyi'
-import cache from '@/plugins/cache'
-import { saveAs } from 'file-saver'
-
-let downloadLoadingInstance;
-// 是否显示重新登录
-let isReloginShow;
-
-axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
-// 创建axios实例
-const service = axios.create({
- // axios中请求配置有baseURL选项,表示请求URL公共部分
- baseURL: import.meta.env.VITE_APP_BASE_API,
- // 超时
- timeout: 10000
-})
-
-// request拦截器
-service.interceptors.request.use(config => {
- // 是否需要设置 token
- const isToken = (config.headers || {}).isToken === false
- // 是否需要防止数据重复提交
- const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
- if (getToken() && !isToken) {
- config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
- }
- // get请求映射params参数
- if (config.method === 'get' && config.params) {
- let url = config.url + '?' + tansParams(config.params);
- url = url.slice(0, -1);
- config.params = {};
- config.url = url;
- }
- if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
- const requestObj = {
- url: config.url,
- data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
- time: new Date().getTime()
- }
- const sessionObj = cache.session.getJSON('sessionObj')
- if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
- cache.session.setJSON('sessionObj', requestObj)
- } else {
- const s_url = sessionObj.url; // 请求地址
- const s_data = sessionObj.data; // 请求数据
- const s_time = sessionObj.time; // 请求时间
- const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
- if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
- const message = '数据正在处理,请勿重复提交';
- console.warn(`[${s_url}]: ` + message)
- return Promise.reject(new Error(message))
- } else {
- cache.session.setJSON('sessionObj', requestObj)
- }
- }
- }
- return config
-}, error => {
- Promise.reject(error)
-})
-
-// 响应拦截器
-service.interceptors.response.use(res => {
- // 未设置状态码则默认成功状态
- const code = res.data.code || 200;
- // 获取错误信息
- const msg = errorCode[code] || res.data.msg || errorCode['default']
- // 二进制数据则直接返回
- if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
- return res.data
- }
- if (code === 401) {
- if (!isReloginShow) {
- isReloginShow = true;
- ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
- confirmButtonText: '重新登录',
- cancelButtonText: '取消',
- type: 'warning'
- }
- ).then(() => {
- isReloginShow = false;
- store.dispatch('LogOut').then(() => {
- location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index';
- })
- }).catch(() => {
- isReloginShow = false;
- });
- }
- return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
- } else if (code === 500) {
- ElMessage({
- message: msg,
- type: 'error'
- });
- return Promise.reject(new Error(msg));
- } else if (code !== 200) {
- ElNotification.error({
- title: msg
- })
- return Promise.reject('error')
- } else {
- return Promise.resolve(res.data)
- }
- },
- error => {
- let { message } = error;
- if (message == "Network Error") {
- message = "后端接口连接异常";
- }
- else if (message.includes("timeout")) {
- message = "系统接口请求超时";
- }
- else if (message.includes("Request failed with status code")) {
- message = "系统接口" + message.substr(message.length - 3) + "异常";
- }
- ElMessage({
- message: message,
- type: 'error',
- duration: 5 * 1000
- })
- return Promise.reject(error)
- }
-)
-
-// 通用下载方法
-export function download(url, params, filename) {
- downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
- return service.post(url, params, {
- transformRequest: [(params) => { return tansParams(params) }],
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- responseType: 'blob'
- }).then(async (data) => {
- const isLogin = await blobValidate(data);
- if (isLogin) {
- const blob = new Blob([data])
- saveAs(blob, filename)
- } else {
- const resText = await data.text();
- const rspObj = JSON.parse(resText);
- const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
- ElMessage.error(errMsg);
- }
- downloadLoadingInstance.close();
- }).catch((r) => {
- console.error(r)
- ElMessage.error('下载文件出现错误,请联系管理员!')
- downloadLoadingInstance.close();
- })
-}
-
-export default service
diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js
deleted file mode 100644
index 7b47355..0000000
--- a/ruoyi-ui/src/utils/ruoyi.js
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-/**
- * 通用js方法封装处理
- * Copyright (c) 2019 ruoyi
- */
-
-// 日期格式化
-export function parseTime(time, pattern) {
- if (arguments.length === 0 || !time) {
- return null
- }
- const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
- time = parseInt(time)
- } else if (typeof time === 'string') {
- time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
- }
- if ((typeof time === 'number') && (time.toString().length === 10)) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay()
- }
- const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
- let value = formatObj[key]
- // Note: getDay() returns 0 on Sunday
- if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
- if (result.length > 0 && value < 10) {
- value = '0' + value
- }
- return value || 0
- })
- return time_str
-}
-
-// 表单重置
-export function resetForm(refName) {
- if (this.$refs[refName]) {
- this.$refs[refName].resetFields();
- }
-}
-
-// 添加日期范围
-export function addDateRange(params, dateRange, propName) {
- let search = params;
- search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
- dateRange = Array.isArray(dateRange) ? dateRange : [];
- if (typeof (propName) === 'undefined') {
- search.params['beginTime'] = dateRange[0];
- search.params['endTime'] = dateRange[1];
- } else {
- search.params['begin' + propName] = dateRange[0];
- search.params['end' + propName] = dateRange[1];
- }
- return search;
-}
-
-// 回显数据字典
-export function selectDictLabel(datas, value) {
- if (value === undefined) {
- return "";
- }
- var actions = [];
- Object.keys(datas).some((key) => {
- if (datas[key].value == ('' + value)) {
- actions.push(datas[key].label);
- return true;
- }
- })
- if (actions.length === 0) {
- actions.push(value);
- }
- return actions.join('');
-}
-
-// 回显数据字典(字符串、数组)
-export function selectDictLabels(datas, value, separator) {
- if (value === undefined || value.length ===0) {
- return "";
- }
- if (Array.isArray(value)) {
- value = value.join(",");
- }
- var actions = [];
- var currentSeparator = undefined === separator ? "," : separator;
- var temp = value.split(currentSeparator);
- Object.keys(value.split(currentSeparator)).some((val) => {
- var match = false;
- Object.keys(datas).some((key) => {
- if (datas[key].value == ('' + temp[val])) {
- actions.push(datas[key].label + currentSeparator);
- match = true;
- }
- })
- if (!match) {
- actions.push(temp[val] + currentSeparator);
- }
- })
- return actions.join('').substring(0, actions.join('').length - 1);
-}
-
-// 字符串格式化(%s )
-export function sprintf(str) {
- var args = arguments, flag = true, i = 1;
- str = str.replace(/%s/g, function () {
- var arg = args[i++];
- if (typeof arg === 'undefined') {
- flag = false;
- return '';
- }
- return arg;
- });
- return flag ? str : '';
-}
-
-// 转换字符串,undefined,null等转化为""
-export function parseStrEmpty(str) {
- if (!str || str == "undefined" || str == "null") {
- return "";
- }
- return str;
-}
-
-// 数据合并
-export function mergeRecursive(source, target) {
- for (var p in target) {
- try {
- if (target[p].constructor == Object) {
- source[p] = mergeRecursive(source[p], target[p]);
- } else {
- source[p] = target[p];
- }
- } catch (e) {
- source[p] = target[p];
- }
- }
- return source;
-};
-
-/**
- * 构造树型结构数据
- * @param {*} data 数据源
- * @param {*} id id字段 默认 'id'
- * @param {*} parentId 父节点字段 默认 'parentId'
- * @param {*} children 孩子节点字段 默认 'children'
- */
-export function handleTree(data, id, parentId, children) {
- let config = {
- id: id || 'id',
- parentId: parentId || 'parentId',
- childrenList: children || 'children'
- };
-
- var childrenListMap = {};
- var nodeIds = {};
- var tree = [];
-
- for (let d of data) {
- let parentId = d[config.parentId];
- if (childrenListMap[parentId] == null) {
- childrenListMap[parentId] = [];
- }
- nodeIds[d[config.id]] = d;
- childrenListMap[parentId].push(d);
- }
-
- for (let d of data) {
- let parentId = d[config.parentId];
- if (nodeIds[parentId] == null) {
- tree.push(d);
- }
- }
-
- for (let t of tree) {
- adaptToChildrenList(t);
- }
-
- function adaptToChildrenList(o) {
- if (childrenListMap[o[config.id]] !== null) {
- o[config.childrenList] = childrenListMap[o[config.id]];
- }
- if (o[config.childrenList]) {
- for (let c of o[config.childrenList]) {
- adaptToChildrenList(c);
- }
- }
- }
- return tree;
-}
-
-/**
-* 参数处理
-* @param {*} params 参数
-*/
-export function tansParams(params) {
- let result = ''
- for (const propName of Object.keys(params)) {
- const value = params[propName];
- var part = encodeURIComponent(propName) + "=";
- if (value !== null && value !== "" && typeof (value) !== "undefined") {
- if (typeof value === 'object') {
- for (const key of Object.keys(value)) {
- if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
- let params = propName + '[' + key + ']';
- var subPart = encodeURIComponent(params) + "=";
- result += subPart + encodeURIComponent(value[key]) + "&";
- }
- }
- } else {
- result += part + encodeURIComponent(value) + "&";
- }
- }
- }
- return result
-}
-
-// 返回项目路径
-export function getNormalPath(p) {
- if (p.length === 0 || !p || p == 'undefined') {
- return p
- };
- let res = p.replace('//', '/')
- if (res[res.length - 1] === '/') {
- return res.slice(0, res.length - 1)
- }
- return res;
-}
-
-// 验证是否为blob格式
-// export function blobValidate(data) {
-// return data.type !== 'application/json'
-// }
-export async function blobValidate(data) {
- try {
- const text = await data.text();
- JSON.parse(text);
- return false;
- } catch (error) {
- return true;
- }
-}
diff --git a/ruoyi-ui/src/utils/scroll-to.js b/ruoyi-ui/src/utils/scroll-to.js
deleted file mode 100644
index c5d8e04..0000000
--- a/ruoyi-ui/src/utils/scroll-to.js
+++ /dev/null
@@ -1,58 +0,0 @@
-Math.easeInOutQuad = function(t, b, c, d) {
- t /= d / 2
- if (t < 1) {
- return c / 2 * t * t + b
- }
- t--
- return -c / 2 * (t * (t - 2) - 1) + b
-}
-
-// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
-var requestAnimFrame = (function() {
- return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) }
-})()
-
-/**
- * Because it's so fucking difficult to detect the scrolling element, just move them all
- * @param {number} amount
- */
-function move(amount) {
- document.documentElement.scrollTop = amount
- document.body.parentNode.scrollTop = amount
- document.body.scrollTop = amount
-}
-
-function position() {
- return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop
-}
-
-/**
- * @param {number} to
- * @param {number} duration
- * @param {Function} callback
- */
-export function scrollTo(to, duration, callback) {
- const start = position()
- const change = to - start
- const increment = 20
- let currentTime = 0
- duration = (typeof (duration) === 'undefined') ? 500 : duration
- var animateScroll = function() {
- // increment the time
- currentTime += increment
- // find the value with the quadratic in-out easing function
- var val = Math.easeInOutQuad(currentTime, start, change, duration)
- // move the document.body
- move(val)
- // do the animation unless its over
- if (currentTime < duration) {
- requestAnimFrame(animateScroll)
- } else {
- if (callback && typeof (callback) === 'function') {
- // the animation is done so lets callback
- callback()
- }
- }
- }
- animateScroll()
-}
diff --git a/ruoyi-ui/src/utils/validate.js b/ruoyi-ui/src/utils/validate.js
deleted file mode 100644
index b5a640a..0000000
--- a/ruoyi-ui/src/utils/validate.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * 判断url是否是http或https
- * @param {string} path
- * @returns {Boolean}
- */
-export function isHttp(url) {
- return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
-}
-
-/**
- * @param {string} path
- * @returns {Boolean}
- */
-export function isExternal(path) {
- return /^(https?:|mailto:|tel:)/.test(path)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validUsername(str) {
- const valid_map = ['admin', 'editor']
- return valid_map.indexOf(str.trim()) >= 0
-}
-
-/**
- * @param {string} url
- * @returns {Boolean}
- */
-export function validURL(url) {
- const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
- return reg.test(url)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validLowerCase(str) {
- const reg = /^[a-z]+$/
- return reg.test(str)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validUpperCase(str) {
- const reg = /^[A-Z]+$/
- return reg.test(str)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function validAlphabets(str) {
- const reg = /^[A-Za-z]+$/
- return reg.test(str)
-}
-
-/**
- * @param {string} email
- * @returns {Boolean}
- */
-export function validEmail(email) {
- const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
- return reg.test(email)
-}
-
-/**
- * @param {string} str
- * @returns {Boolean}
- */
-export function isString(str) {
- if (typeof str === 'string' || str instanceof String) {
- return true
- }
- return false
-}
-
-/**
- * @param {Array} arg
- * @returns {Boolean}
- */
-export function isArray(arg) {
- if (typeof Array.isArray === 'undefined') {
- return Object.prototype.toString.call(arg) === '[object Array]'
- }
- return Array.isArray(arg)
-}
diff --git a/ruoyi-ui/src/views/components/icons/element-icons.js b/ruoyi-ui/src/views/components/icons/element-icons.js
deleted file mode 100644
index 9ea4d63..0000000
--- a/ruoyi-ui/src/views/components/icons/element-icons.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round']
-
-export default elementIcons
diff --git a/ruoyi-ui/src/views/components/icons/index.vue b/ruoyi-ui/src/views/components/icons/index.vue
deleted file mode 100644
index d3c9a71..0000000
--- a/ruoyi-ui/src/views/components/icons/index.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
- {{ generateIconCode(item) }}
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
- {{ generateElementIconCode(item) }}
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/components/icons/svg-icons.js b/ruoyi-ui/src/views/components/icons/svg-icons.js
deleted file mode 100644
index 724cd8e..0000000
--- a/ruoyi-ui/src/views/components/icons/svg-icons.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const req = require.context('../../../assets/icons/svg', false, /\.svg$/)
-const requireAll = requireContext => requireContext.keys()
-
-const re = /\.\/(.*)\.svg/
-
-const svgIcons = requireAll(req).map(i => {
- return i.match(re)[1]
-})
-
-export default svgIcons
diff --git a/ruoyi-ui/src/views/demo/customer/index.vue b/ruoyi-ui/src/views/demo/customer/index.vue
deleted file mode 100644
index 525bfbb..0000000
--- a/ruoyi-ui/src/views/demo/customer/index.vue
+++ /dev/null
@@ -1,398 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}
-
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 商品子信息
-
-
- 添加
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/demo/product/index.vue b/ruoyi-ui/src/views/demo/product/index.vue
deleted file mode 100644
index d7c01f6..0000000
--- a/ruoyi-ui/src/views/demo/product/index.vue
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 展开/折叠
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
- 新增
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/demo/student/index.vue b/ruoyi-ui/src/views/demo/student/index.vue
deleted file mode 100644
index dc40583..0000000
--- a/ruoyi-ui/src/views/demo/student/index.vue
+++ /dev/null
@@ -1,328 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.studentBirthday, '{y}-{m}-{d}') }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{dict.label}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/error/401.vue b/ruoyi-ui/src/views/error/401.vue
deleted file mode 100644
index 903d899..0000000
--- a/ruoyi-ui/src/views/error/401.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
- 返回
-
-
-
-
- 401错误!
-
- 您没有访问权限!
- 对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/error/404.vue b/ruoyi-ui/src/views/error/404.vue
deleted file mode 100644
index d10d8b5..0000000
--- a/ruoyi-ui/src/views/error/404.vue
+++ /dev/null
@@ -1,227 +0,0 @@
-
-
-
-
-
-
- 404错误!
-
-
- {{ message }}
-
-
- 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
-
-
- 返回首页
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue
deleted file mode 100644
index c43f21c..0000000
--- a/ruoyi-ui/src/views/index.vue
+++ /dev/null
@@ -1,311 +0,0 @@
-
-
-
-
-
- 领取阿里云通用云产品1888优惠券
-
- https://www.aliyun.com/minisite/goods?userCode=brki8iof
-
- 领取腾讯云通用云产品2860优惠券
-
- https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console
-
- 阿里云服务器折扣区
- >☛☛点我进入☚☚
- 腾讯云服务器秒杀区
- >☛☛点我进入☚☚
-
- 云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)
-
-
-
-
-
-
-
-
- Ruoyi-Flex后台管理框架
-
- Ruoyi-Flex是基于RuoYi-Vue v3.8.6、RuoYi-Vue-Plus进行的扩展,集成MyBatis-Flex、JDK17、SpringBootV3、Lombok、Sa-Token、Hutool、SpringBoot Admin、PowerJob、Vue3、element-plus等优秀开源软件,准备作为未来5年软件开发的底座。本系统可以用于所有的Web应用程序,如网站管理后台、网站会员中心、CMS、CRM、OA、ERP等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
-
-
- 当前版本: v{{ version }}
-
-
- ¥免费开源
-
-
- 访问码云
-
-
-
-
-
-
-
- 技术选型
-
-
-
-
- 后端技术
-
- - SpringBoot V3
- - Sa-Token
- - JWT
- - MyBatis-Flex、MyBatis
- - Lombok
- - ...
-
-
-
- 前端技术
-
- - Vue3
- - Vuex
- - Element-Plus
- - Axios
- - Sass
- - Quill
- - ...
-
-
-
-
-
-
-
-
-
-
-
- 联系信息
-
-
-
-
- 官网:http://www.ruoyi.vip
-
-
- QQ群:100953531
-
-
- 微信:/ *若依
-
-
- 支付宝:/ *若依
-
-
-
-
-
-
-
-
- 更新日志
-
-
-
-
-
-
- - 升级mybatis-flex到V1.6.0版本
- - 删除不再使用的quartz前端代码
- - 添加微信VIP交流群
- - 修改bug
- - 前端代码从vue2升级到vue3
- - 升级Element UI到Element-Plus
-
-
-
-
- - 移除ruoyi-quartz模块
- - 整合PowerJob分布式任务调度与计算框架
- - PowerJob接入SpringBoot Admin监控
-
-
-
-
- - 删除原服务监控代码文件
- - 集成SpringBoot Admin监控软件
- - SpringBoot Admin集成undertow
-
-
-
-
- - 优化登录提示信息
- - 调整项目结构
- - 集成Sa-Token、Lombok、Hutool等软件
- - SpringDoc模块与Sa-Token集成
-
-
-
-
- - 集成SpringDoc,代替springfox
- - 将“系统接口”菜单设置为外链
- - 升级MyBatis-Flex到V1.5.3
-
-
-
-
- - web容器使用undertow来代替tomcat
- - 用hikariCP数据库连接池取代druid、用MyBaits-Flex内置多数据源取代dynamic-datasource动态数据源
- - 统一删除标记:del_flag设置为0代表存在、1代表删除,涉及部门、用户、角色三个模块
- - 重构ruoyi-common模块为ruoyi-common-core
- - 优化代码
- - 升级MyBatis-Flex到V1.5.0
-
-
-
-
- - 优化代码
- - 完美兼容RuoYi-Vue代码生成,生成的单表、树表、主子表mybatis代码运行正常
- - 解决generator.yml中文乱码问题
- - 使用flatten-maven-plugin插件集中管理软件版本号
- - 同步RuoYi-Vue 2023-07-06更新
- - 参考RuoYi-Cloud,增加ruoyi-modules模块,调整项目结构
-
-
-
-
- - 全局设置数据库表主键为雪花算法
- - 全局设置数据库逻辑删除数值:0代表正常,1代表删除
- - 从jdk8升级到jdk17、SpringBootV2升级到V3.0.8
-
-
-
-
- - Ruoyi-Flex前后端分离系统v4正式发布
- - 基于RuoYi-Vue v3.8.6进行了扩展
- - 引入mybatis-flex框架,与mybatis和平共处
- - maven仓库从阿里切换到华为
-
-
-
-
-
-
-
-
- 捐赠支持
-
-
-
-
你可以请作者喝杯咖啡表示鼓励
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
deleted file mode 100644
index a79b717..0000000
--- a/ruoyi-ui/src/views/login.vue
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
- RuoYi-Flex多租户管理系统
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 记住密码
-
-
- 登 录
- 登 录 中...
-
-
- 立即注册
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/admin/index.vue b/ruoyi-ui/src/views/monitor/admin/index.vue
deleted file mode 100644
index 1c6058f..0000000
--- a/ruoyi-ui/src/views/monitor/admin/index.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/cache/index.vue b/ruoyi-ui/src/views/monitor/cache/index.vue
deleted file mode 100644
index fb9d41c..0000000
--- a/ruoyi-ui/src/views/monitor/cache/index.vue
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
- 基本信息
-
-
-
-
- Redis版本 |
- {{ cache.info.redis_version }} |
- 运行模式 |
- {{ cache.info.redis_mode == "standalone" ? "单机" : "集群" }} |
- 端口 |
- {{ cache.info.tcp_port }} |
- 客户端数 |
- {{ cache.info.connected_clients }} |
-
-
- 运行时间(天) |
- {{ cache.info.uptime_in_days }} |
- 使用内存 |
- {{ cache.info.used_memory_human }} |
- 使用CPU |
- {{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }} |
- 内存配置 |
- {{ cache.info.maxmemory_human }} |
-
-
- AOF是否开启 |
- {{ cache.info.aof_enabled == "0" ? "否" : "是" }} |
- RDB是否成功 |
- {{ cache.info.rdb_last_bgsave_status }} |
- Key数量 |
- {{ cache.dbSize }} |
- 网络入口/出口 |
- {{ cache.info.instantaneous_input_kbps }}kps/{{cache.info.instantaneous_output_kbps}}kps |
-
-
-
-
-
-
-
-
-
- 命令统计
-
-
-
-
-
-
- 命令统计
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue
deleted file mode 100644
index 2a05150..0000000
--- a/ruoyi-ui/src/views/monitor/logininfor/index.vue
+++ /dev/null
@@ -1,236 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 删除
-
-
- 清空
-
-
- 解锁
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.loginTime) }}
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/online/index.vue b/ruoyi-ui/src/views/monitor/online/index.vue
deleted file mode 100644
index e3b3432..0000000
--- a/ruoyi-ui/src/views/monitor/online/index.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
- {{(pageNum - 1) * pageSize + scope.$index + 1}}
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.loginTime) }}
-
-
-
-
- 强退
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue
deleted file mode 100644
index f45aa9d..0000000
--- a/ruoyi-ui/src/views/monitor/operlog/index.vue
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 删除
-
-
- 清空
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.operTime) }}
-
-
-
-
- {{ scope.row.costTime }}毫秒
-
-
-
-
- 详细
-
-
-
-
-
-
-
-
-
-
-
- {{ form.title }} / {{ typeFormat(form) }}
- {{ form.operName }} / {{ form.operIp }} / {{ form.operLocation }}
-
-
- {{ form.operUrl }}
- {{ form.requestMethod }}
-
-
- {{ form.method }}
-
-
- {{ form.operParam }}
-
-
- {{ form.jsonResult }}
-
-
-
- 正常
- 失败
-
-
-
- {{ form.costTime }}毫秒
-
-
- {{ parseTime(form.operTime) }}
-
-
- {{ form.errorMsg }}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/monitor/powerjob/index.vue b/ruoyi-ui/src/views/monitor/powerjob/index.vue
deleted file mode 100644
index eaaf804..0000000
--- a/ruoyi-ui/src/views/monitor/powerjob/index.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/redirect.vue b/ruoyi-ui/src/views/redirect.vue
deleted file mode 100644
index db4c1d6..0000000
--- a/ruoyi-ui/src/views/redirect.vue
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/ruoyi-ui/src/views/redirect/index.vue b/ruoyi-ui/src/views/redirect/index.vue
deleted file mode 100644
index a469960..0000000
--- a/ruoyi-ui/src/views/redirect/index.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/register.vue b/ruoyi-ui/src/views/register.vue
deleted file mode 100644
index c123c8f..0000000
--- a/ruoyi-ui/src/views/register.vue
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
- Ruoyi-Flex后台管理系统
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 注 册
- 注 册 中...
-
-
- 使用已有账户登录
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue
deleted file mode 100644
index 952b959..0000000
--- a/ruoyi-ui/src/views/system/config/index.vue
+++ /dev/null
@@ -1,319 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
- 刷新缓存
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{dict.label}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue
deleted file mode 100644
index bd13c48..0000000
--- a/ruoyi-ui/src/views/system/dept/index.vue
+++ /dev/null
@@ -1,293 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 展开/折叠
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 新增
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{dict.label}}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue
deleted file mode 100644
index 2f4b0a2..0000000
--- a/ruoyi-ui/src/views/system/dict/data.vue
+++ /dev/null
@@ -1,330 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
- 关闭
-
-
-
-
-
-
-
-
-
- {{ scope.row.dictLabel }}
- {{ scope.row.dictLabel }}
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue
deleted file mode 100644
index b16925f..0000000
--- a/ruoyi-ui/src/views/system/dict/index.vue
+++ /dev/null
@@ -1,289 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
- 刷新缓存
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.dictType }}
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue
deleted file mode 100644
index 3152bc8..0000000
--- a/ruoyi-ui/src/views/system/menu/index.vue
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 展开/折叠
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 新增
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 目录
- 菜单
- 按钮
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 是否外链
-
-
-
- 是
- 否
-
-
-
-
-
-
-
-
-
-
- 路由地址
-
-
-
-
-
-
-
-
-
-
-
-
- 组件路径
-
-
-
-
-
-
-
-
-
-
-
-
-
- 权限字符
-
-
-
-
-
-
-
-
-
-
-
-
- 路由参数
-
-
-
-
-
-
-
-
-
-
-
- 是否缓存
-
-
-
- 缓存
- 不缓存
-
-
-
-
-
-
-
-
-
-
- 显示状态
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
-
-
- 菜单状态
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue
deleted file mode 100644
index 9f64409..0000000
--- a/ruoyi-ui/src/views/system/notice/index.vue
+++ /dev/null
@@ -1,289 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue
deleted file mode 100644
index 484a070..0000000
--- a/ruoyi-ui/src/views/system/post/index.vue
+++ /dev/null
@@ -1,285 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 修改
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{dict.label}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/role/authUser.vue b/ruoyi-ui/src/views/system/role/authUser.vue
deleted file mode 100644
index a699f34..0000000
--- a/ruoyi-ui/src/views/system/role/authUser.vue
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 添加用户
-
-
- 批量取消授权
-
-
- 关闭
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 取消授权
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue
deleted file mode 100644
index 1841c2c..0000000
--- a/ruoyi-ui/src/views/system/role/index.vue
+++ /dev/null
@@ -1,585 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 权限字符
-
-
-
-
-
-
-
-
-
- {{ dict.label }}
-
-
-
- 展开/折叠
- 全选/全不选
- 父子联动
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 展开/折叠
- 全选/全不选
- 父子联动
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/role/selectUser.vue b/ruoyi-ui/src/views/system/role/selectUser.vue
deleted file mode 100644
index b545b3a..0000000
--- a/ruoyi-ui/src/views/system/role/selectUser.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/authRole.vue b/ruoyi-ui/src/views/system/user/authRole.vue
deleted file mode 100644
index e769080..0000000
--- a/ruoyi-ui/src/views/system/user/authRole.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{(pageNum - 1) * pageSize + scope.$index + 1}}
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
-
-
-
-
- 提交
- 返回
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
deleted file mode 100644
index d1d14cb..0000000
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ /dev/null
@@ -1,651 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 新增
-
-
- 修改
-
-
- 删除
-
-
- 导入
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 将文件拖到此处,或点击上传
-
-
-
- 是否更新已经存在的用户数据
-
-
仅允许导入xls、xlsx格式文件。
-
下载模板
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/profile/index.vue b/ruoyi-ui/src/views/system/user/profile/index.vue
deleted file mode 100644
index 378e005..0000000
--- a/ruoyi-ui/src/views/system/user/profile/index.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
- 个人信息
-
-
-
-
-
-
-
- -
- 用户名称
-
{{ state.user.userName }}
-
- -
- 手机号码
-
{{ state.user.phonenumber }}
-
- -
- 用户邮箱
-
{{ state.user.email }}
-
- -
- 所属部门
-
{{ state.user.dept.deptName }}
-
- -
- 所属岗位
-
{{ state.postGroup }}
-
- -
- 所属角色
-
{{ state.roleGroup }}
-
- -
- 创建日期
-
{{ state.user.createTime }}
-
-
-
-
-
-
-
-
-
- 基本资料
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
deleted file mode 100644
index f6fafb4..0000000
--- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 保存
- 关闭
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
deleted file mode 100644
index f225840..0000000
--- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 选择
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提 交
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/system/user/profile/userInfo.vue b/ruoyi-ui/src/views/system/user/profile/userInfo.vue
deleted file mode 100644
index 4df5d6c..0000000
--- a/ruoyi-ui/src/views/system/user/profile/userInfo.vue
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 男
- 女
-
-
-
- 保存
- 关闭
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/tool/build/index.vue b/ruoyi-ui/src/views/tool/build/index.vue
deleted file mode 100644
index 4a8b9f5..0000000
--- a/ruoyi-ui/src/views/tool/build/index.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
- 表单构建
-
diff --git a/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue b/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
deleted file mode 100644
index 39c8515..0000000
--- a/ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue
deleted file mode 100644
index f112770..0000000
--- a/ruoyi-ui/src/views/tool/gen/editTable.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dict.dictName }}
- {{ dict.dictType }}
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 返回
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
deleted file mode 100644
index abd71fa..0000000
--- a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
+++ /dev/null
@@ -1,281 +0,0 @@
-
-
-
-
-
- 生成模板
-
-
-
-
-
-
-
-
-
-
-
- 生成包路径
-
-
-
-
-
-
-
-
-
-
-
- 生成模块名
-
-
-
-
-
-
-
-
-
-
-
- 生成业务名
-
-
-
-
-
-
-
-
-
-
-
- 生成功能名
-
-
-
-
-
-
-
-
-
-
-
- 上级菜单
-
-
-
-
-
-
-
-
-
-
-
- 生成代码方式
-
-
-
-
- zip压缩包
- 自定义路径
-
-
-
-
-
-
- 自定义路径
-
-
-
-
-
-
-
-
- 最近路径快速选择
-
-
-
-
- 恢复默认的生成基础路径
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 树编码字段
-
-
-
-
-
-
-
-
-
-
-
-
- 树父编码字段
-
-
-
-
-
-
-
-
-
-
-
-
- 树名称字段
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 关联子表的表名
-
-
-
-
-
-
-
-
-
-
-
-
- 子表关联的外键名
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/tool/gen/importTable.vue b/ruoyi-ui/src/views/tool/gen/importTable.vue
deleted file mode 100644
index 457042c..0000000
--- a/ruoyi-ui/src/views/tool/gen/importTable.vue
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue
deleted file mode 100644
index 5350cdb..0000000
--- a/ruoyi-ui/src/views/tool/gen/index.vue
+++ /dev/null
@@ -1,288 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 生成
-
-
- 导入
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
- {{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ value }}
-
-
-
-
-
-
-
-
diff --git a/ruoyi-ui/vite.config.js b/ruoyi-ui/vite.config.js
deleted file mode 100644
index 614d69c..0000000
--- a/ruoyi-ui/vite.config.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import { defineConfig, loadEnv } from 'vite'
-import createVitePlugins from './vite/plugins'
-import path from 'path'
-
-// https://vitejs.dev/config/
-export default defineConfig(({ mode, command }) => {
- const env = loadEnv(mode, process.cwd());
- const { VITE_APP_ENV } = env;
- return {
- plugins: createVitePlugins(env, command === 'build'),
- // 部署生产环境和开发环境下的URL。
- // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
- // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
- base: VITE_APP_ENV === 'production' ? '/' : '/',
- // vite 相关配置
- server: {
- port: 80,
- host: true,
- open: true,
- proxy: {
- // https://cn.vitejs.dev/config/#server-proxy
- '/dev-api': {
- target: 'http://localhost:8080',
- changeOrigin: true,
- rewrite: (p) => p.replace(/^\/dev-api/, '')
- }
- },
- },
- resolve: {
- // https://cn.vitejs.dev/config/#resolve-alias
- alias: {
- // 设置路径
- '~': path.resolve(__dirname, './'),
- // 设置别名
- '@': path.resolve(__dirname, './src')
- },
- // https://cn.vitejs.dev/config/#resolve-extensions
- extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
- },
- build: {
- rollupOptions: {
- output: {
- manualChunks(id) {
- if (id.includes('element-plus/theme')) {
- return 'ele';
- }
- },
- },
- },
- }
- }
-})
diff --git a/ruoyi-ui/vite/plugins/auto-import.js b/ruoyi-ui/vite/plugins/auto-import.js
deleted file mode 100644
index da03640..0000000
--- a/ruoyi-ui/vite/plugins/auto-import.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import autoImport from 'unplugin-auto-import/vite'
-import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
-
-export default function createAutoImport() {
- return autoImport({
- resolvers: [ElementPlusResolver()],
- imports: [
- 'vue',
- 'vue-router',
- {
- 'vuex': ['useStore']
- }
- ],
- dts: false
- })
-}
diff --git a/ruoyi-ui/vite/plugins/compression.js b/ruoyi-ui/vite/plugins/compression.js
deleted file mode 100644
index 369d7a1..0000000
--- a/ruoyi-ui/vite/plugins/compression.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import { PluginOption } from 'vite';
-import compression from 'vite-plugin-compression'
-
-export default function createCompression(env) {
- const { VITE_BUILD_COMPRESS } = env
- const compressList = VITE_BUILD_COMPRESS.split(',')
- const plugin = []
- if (compressList.includes('gzip')) {
- // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
- plugin.push(
- compression({
- ext: '.gz',
- deleteOriginFile: false
- })
- )
- }
- if (compressList.includes('brotli')) {
- plugin.push(
- compression({
- ext: '.br',
- algorithm: 'brotliCompress',
- deleteOriginFile: false
- })
- )
- }
- return plugin
-}
diff --git a/ruoyi-ui/vite/plugins/index.js b/ruoyi-ui/vite/plugins/index.js
deleted file mode 100644
index 1c312dd..0000000
--- a/ruoyi-ui/vite/plugins/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import vue from '@vitejs/plugin-vue'
-
-import createAutoImport from './auto-import'
-import createSvgIcon from './svg-icon'
-import createCompression from './compression'
-import createSetupExtend from './setup-extend'
-
-export default function createVitePlugins(viteEnv, isBuild = false) {
- const vitePlugins = [vue()]
- vitePlugins.push(createAutoImport())
- vitePlugins.push(createSetupExtend())
- vitePlugins.push(createSvgIcon(isBuild))
- isBuild && vitePlugins.push(...createCompression(viteEnv))
- return vitePlugins
-}
diff --git a/ruoyi-ui/vite/plugins/setup-extend.js b/ruoyi-ui/vite/plugins/setup-extend.js
deleted file mode 100644
index a4980f3..0000000
--- a/ruoyi-ui/vite/plugins/setup-extend.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import setupExtend from 'vite-plugin-vue-setup-extend'
-
-export default function createSetupExtend() {
- return setupExtend()
-}
diff --git a/ruoyi-ui/vite/plugins/svg-icon.js b/ruoyi-ui/vite/plugins/svg-icon.js
deleted file mode 100644
index 88204aa..0000000
--- a/ruoyi-ui/vite/plugins/svg-icon.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
-import path from 'path'
-
-export default function createSvgIcon(isBuild) {
- return createSvgIconsPlugin({
- iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
- symbolId: 'icon-[dir]-[name]',
- svgoOptions: isBuild,
- })
-}