Compare commits
7 Commits
dongdingdi
...
master
Author | SHA1 | Date |
---|---|---|
|
5ede8ba0a8 | 5 days ago |
|
c9cd4699a3 | 6 days ago |
|
7a0e7e5b3d | 1 week ago |
|
a76d58d733 | 1 week ago |
|
ce31aeebd1 | 1 week ago |
|
6014f8f137 | 2 weeks ago |
|
9f3af65a2a | 2 weeks ago |
@ -0,0 +1,37 @@
|
|||||||
|
package com.ruoyi.gysl.entity.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目手册分页请求
|
||||||
|
* @author du
|
||||||
|
* @since 2025/4/17 17:18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HandbookRequest {
|
||||||
|
|
||||||
|
@ApiModelProperty(value ="手册名称" )
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "开始时间 yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "结束时间 yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "页数")
|
||||||
|
private Integer current = 1;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "页码s")
|
||||||
|
private Integer size = 10;
|
||||||
|
}
|
@ -1,232 +0,0 @@
|
|||||||
package com.ruoyi.gysl.utils;
|
|
||||||
|
|
||||||
import com.itextpdf.text.Document;
|
|
||||||
import com.itextpdf.text.DocumentException;
|
|
||||||
import com.itextpdf.text.Image;
|
|
||||||
import com.itextpdf.text.Paragraph;
|
|
||||||
import com.itextpdf.text.pdf.PdfWriter;
|
|
||||||
import com.itextpdf.tool.xml.XMLWorkerFontProvider;
|
|
||||||
import com.itextpdf.tool.xml.XMLWorkerHelper;
|
|
||||||
import com.ruoyi.common.utils.http.HttpUtils;
|
|
||||||
import org.jsoup.Jsoup;
|
|
||||||
import org.jsoup.nodes.Element;
|
|
||||||
import org.jsoup.select.Elements;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.mock.web.MockMultipartFile;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Base64;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public class HtmlToPdfConverter {
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
|
|
||||||
|
|
||||||
public static MultipartFile convertHtmlToPdf(String htmlArticleTitle, String htmlContent) throws IOException {
|
|
||||||
|
|
||||||
String ht = content2Html(htmlContent);
|
|
||||||
|
|
||||||
|
|
||||||
String path = System.getProperty("user.dir");
|
|
||||||
// 根据日期建文件夹
|
|
||||||
String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
|
||||||
String[] split = format.split("-");
|
|
||||||
Path dirPath = Paths.get(path, "temporary", split[0], split[1], split[2]);
|
|
||||||
try {
|
|
||||||
// clearTemporaryDirectory(Paths.get(path, "temporary")); // 清理目录
|
|
||||||
Files.createDirectories(dirPath);
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException("创建文件夹失败: " + e.getMessage(), e);
|
|
||||||
}
|
|
||||||
File pdfFile = new File(dirPath.toFile(), "pdf-" + System.currentTimeMillis() + ".pdf");
|
|
||||||
// 创建PDF文档
|
|
||||||
Document document = new Document();
|
|
||||||
|
|
||||||
FileOutputStream fos = null;
|
|
||||||
InputStream is = null;
|
|
||||||
try {
|
|
||||||
fos = new FileOutputStream(pdfFile);
|
|
||||||
|
|
||||||
PdfWriter writer = PdfWriter.getInstance(document, fos);
|
|
||||||
XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
|
|
||||||
fontProvider.register("C:/Windows/Fonts/simsun.ttc");
|
|
||||||
|
|
||||||
document.open();
|
|
||||||
// 添加标题
|
|
||||||
Paragraph paragraph = new Paragraph(htmlArticleTitle); // 设置你自定义的字体格式
|
|
||||||
document.add(paragraph);
|
|
||||||
String updatedHtmlContent = "";
|
|
||||||
if (htmlContent.contains("img")) {
|
|
||||||
updatedHtmlContent = replaceImgSrcWithBase64(ht);
|
|
||||||
|
|
||||||
if (updatedHtmlContent != null) {
|
|
||||||
is = new ByteArrayInputStream(updatedHtmlContent.getBytes(StandardCharsets.UTF_8));
|
|
||||||
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is, StandardCharsets.UTF_8, fontProvider);
|
|
||||||
// 添加图片
|
|
||||||
Elements imgElements = Jsoup.parse(updatedHtmlContent).select("img");
|
|
||||||
for (Element img : imgElements) {
|
|
||||||
String imgSrc = img.attr("src");
|
|
||||||
if (imgSrc.startsWith("data:image/jpeg;base64,")) {
|
|
||||||
String base64Data = imgSrc.substring("data:image/jpeg;base64,".length());
|
|
||||||
byte[] imageBytes = Base64.getDecoder().decode(base64Data);
|
|
||||||
Image image = Image.getInstance(imageBytes);
|
|
||||||
document.add(image); // 添加图片到 PDF
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
is = new ByteArrayInputStream(ht.getBytes(StandardCharsets.UTF_8));
|
|
||||||
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is, StandardCharsets.UTF_8, fontProvider);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (DocumentException | IOException e) {
|
|
||||||
throw new RuntimeException("转换PDF失败: " + e.getMessage(), e);
|
|
||||||
} finally {
|
|
||||||
|
|
||||||
if (document.isOpen()) {
|
|
||||||
document.close(); // 确保Document关闭
|
|
||||||
}
|
|
||||||
if (fos != null) {
|
|
||||||
try {
|
|
||||||
fos.close(); // 关闭文件输出流
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (is != null) {
|
|
||||||
try {
|
|
||||||
is.close(); // 关闭输入流
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MultipartFile multipartFile = getMultipartFile(pdfFile);
|
|
||||||
// 在此处删除创建的 PDF 文件
|
|
||||||
boolean deleted = pdfFile.delete();
|
|
||||||
if (!deleted) {
|
|
||||||
log.error("删除文件失败: " + pdfFile.getAbsolutePath());
|
|
||||||
|
|
||||||
}
|
|
||||||
return multipartFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static MultipartFile getMultipartFile(File file) throws IOException {
|
|
||||||
try (FileInputStream fileInputStream = new FileInputStream(file)) {
|
|
||||||
return new MockMultipartFile(file.getName(), file.getName(), "application/pdf", fileInputStream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String content2Html(String htmlContent) {
|
|
||||||
String COMPLETE_CONTENT = "<html><head></head><body style=\"font-family: SimSun;\">" + htmlContent + "</body></html>";
|
|
||||||
return COMPLETE_CONTENT.replace("<br>", "<br/>");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static String replaceImgSrcWithBase64(String htmlContent) {
|
|
||||||
List<String> imgSrcs = new ArrayList<>();
|
|
||||||
String regex = "<img[^>]+src=\"([^\"]+)\"[^>]*>"; // 正确的正则表达式
|
|
||||||
Pattern pattern = Pattern.compile(regex);
|
|
||||||
Matcher matcher = pattern.matcher(htmlContent);
|
|
||||||
String baseUrl = "http://39.101.188.84:7071";
|
|
||||||
|
|
||||||
// 使用 StringBuilder 来构建新的 HTML
|
|
||||||
StringBuilder updatedHtml = new StringBuilder(htmlContent);
|
|
||||||
|
|
||||||
// 定义要替换的起始位置
|
|
||||||
int offset = 0;
|
|
||||||
|
|
||||||
while (matcher.find()) {
|
|
||||||
String imgSrc = matcher.group(1); // 捕获组返回 img src 的值
|
|
||||||
String imgUrl = baseUrl + imgSrc;
|
|
||||||
|
|
||||||
// 将 URL 转化为 Base64
|
|
||||||
try {
|
|
||||||
URL url = new URL(imgUrl);
|
|
||||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
|
||||||
connection.setRequestProperty("User-Agent", "Mozilla/5.0"); // 添加 User-Agent
|
|
||||||
connection.setDoInput(true);
|
|
||||||
connection.connect();
|
|
||||||
InputStream inputStream = connection.getInputStream();
|
|
||||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int bytesRead;
|
|
||||||
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|
||||||
outputStream.write(buffer, 0, bytesRead);
|
|
||||||
}
|
|
||||||
inputStream.close();
|
|
||||||
byte[] imageBytes = outputStream.toByteArray();
|
|
||||||
String base64 = Base64.getEncoder().encodeToString(imageBytes);
|
|
||||||
|
|
||||||
// 替换 img 标签的 src 属性为 Base64 数据
|
|
||||||
String base64ImgTag = "<img src=\"data:image/jpeg;base64," + base64 + "\" />";
|
|
||||||
int start = matcher.start() + offset; // 累计偏移量
|
|
||||||
int end = matcher.end();
|
|
||||||
|
|
||||||
// 替换原来的 img 标签
|
|
||||||
updatedHtml.replace(start, end, base64ImgTag);
|
|
||||||
//System.out.println(updatedHtml.toString());
|
|
||||||
// 更新偏移量
|
|
||||||
offset += base64ImgTag.length() - (end - start);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null; // 处理异常或返回特定的错误值
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return updatedHtml.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String convertImageToBase64(String imgUrl) {
|
|
||||||
try {
|
|
||||||
// String encodedImgUrl = URLEncoder.encode(imgUrl, StandardCharsets.UTF_8.toString());
|
|
||||||
|
|
||||||
URL url = new URL(imgUrl);
|
|
||||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
|
||||||
connection.setRequestProperty("User-Agent", "Mozilla/5.0"); // 添加 User-Agent
|
|
||||||
connection.setDoInput(true);
|
|
||||||
connection.connect();
|
|
||||||
InputStream inputStream = connection.getInputStream();
|
|
||||||
|
|
||||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int bytesRead;
|
|
||||||
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|
||||||
outputStream.write(buffer, 0, bytesRead);
|
|
||||||
}
|
|
||||||
inputStream.close();
|
|
||||||
|
|
||||||
byte[] imageBytes = outputStream.toByteArray();
|
|
||||||
String base64 = Base64.getEncoder().encodeToString(imageBytes);
|
|
||||||
return "data:image/jpeg;base64," + base64; // 根据实际情况修改 MIME 类型
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null; // 处理异常或返回特定的错误值
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private static void clearTemporaryDirectory(Path directory) {
|
|
||||||
File dir = directory.toFile();
|
|
||||||
if (dir.exists() && dir.isDirectory()) {
|
|
||||||
for (File file : dir.listFiles()) {
|
|
||||||
if (!file.isDirectory()) {
|
|
||||||
file.delete(); // 删除文件
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.ruoyi.docking.mapper.ProjectMapper">
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
# 页面标题
|
|
||||||
VUE_APP_TITLE = 若依管理系统
|
|
||||||
|
|
||||||
# 开发环境配置
|
|
||||||
ENV = 'development'
|
|
||||||
|
|
||||||
# 若依管理系统/开发环境
|
|
||||||
VUE_APP_BASE_API = '/dev-api'
|
|
||||||
|
|
||||||
# 路由懒加载
|
|
||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
|
@ -1,8 +0,0 @@
|
|||||||
# 页面标题
|
|
||||||
VUE_APP_TITLE = 若依管理系统
|
|
||||||
|
|
||||||
# 生产环境配置
|
|
||||||
ENV = 'production'
|
|
||||||
|
|
||||||
# 若依管理系统/生产环境
|
|
||||||
VUE_APP_BASE_API = '/prod-api'
|
|
@ -1,12 +0,0 @@
|
|||||||
# 页面标题
|
|
||||||
VUE_APP_TITLE = 若依管理系统
|
|
||||||
|
|
||||||
BABEL_ENV = production
|
|
||||||
|
|
||||||
NODE_ENV = production
|
|
||||||
|
|
||||||
# 测试环境配置
|
|
||||||
ENV = 'staging'
|
|
||||||
|
|
||||||
# 若依管理系统/测试环境
|
|
||||||
VUE_APP_BASE_API = '/stage-api'
|
|
@ -1,10 +0,0 @@
|
|||||||
# 忽略build目录下类型为js的文件的语法检查
|
|
||||||
build/*.js
|
|
||||||
# 忽略src/assets目录下文件的语法检查
|
|
||||||
src/assets
|
|
||||||
# 忽略public目录下文件的语法检查
|
|
||||||
public
|
|
||||||
# 忽略当前目录下为js的文件的语法检查
|
|
||||||
*.js
|
|
||||||
# 忽略当前目录下为vue的文件的语法检查
|
|
||||||
*.vue
|
|
@ -1,199 +0,0 @@
|
|||||||
// ESlint 检查配置
|
|
||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
parserOptions: {
|
|
||||||
parser: 'babel-eslint',
|
|
||||||
sourceType: 'module'
|
|
||||||
},
|
|
||||||
env: {
|
|
||||||
browser: true,
|
|
||||||
node: true,
|
|
||||||
es6: true,
|
|
||||||
},
|
|
||||||
extends: ['plugin:vue/recommended', 'eslint:recommended'],
|
|
||||||
|
|
||||||
// add your custom rules here
|
|
||||||
//it is base on https://github.com/vuejs/eslint-config-vue
|
|
||||||
rules: {
|
|
||||||
"vue/max-attributes-per-line": [2, {
|
|
||||||
"singleline": 10,
|
|
||||||
"multiline": {
|
|
||||||
"max": 1,
|
|
||||||
"allowFirstLine": false
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
"vue/singleline-html-element-content-newline": "off",
|
|
||||||
"vue/multiline-html-element-content-newline":"off",
|
|
||||||
"vue/name-property-casing": ["error", "PascalCase"],
|
|
||||||
"vue/no-v-html": "off",
|
|
||||||
'accessor-pairs': 2,
|
|
||||||
'arrow-spacing': [2, {
|
|
||||||
'before': true,
|
|
||||||
'after': true
|
|
||||||
}],
|
|
||||||
'block-spacing': [2, 'always'],
|
|
||||||
'brace-style': [2, '1tbs', {
|
|
||||||
'allowSingleLine': true
|
|
||||||
}],
|
|
||||||
'camelcase': [0, {
|
|
||||||
'properties': 'always'
|
|
||||||
}],
|
|
||||||
'comma-dangle': [2, 'never'],
|
|
||||||
'comma-spacing': [2, {
|
|
||||||
'before': false,
|
|
||||||
'after': true
|
|
||||||
}],
|
|
||||||
'comma-style': [2, 'last'],
|
|
||||||
'constructor-super': 2,
|
|
||||||
'curly': [2, 'multi-line'],
|
|
||||||
'dot-location': [2, 'property'],
|
|
||||||
'eol-last': 2,
|
|
||||||
'eqeqeq': ["error", "always", {"null": "ignore"}],
|
|
||||||
'generator-star-spacing': [2, {
|
|
||||||
'before': true,
|
|
||||||
'after': true
|
|
||||||
}],
|
|
||||||
'handle-callback-err': [2, '^(err|error)$'],
|
|
||||||
'indent': [2, 2, {
|
|
||||||
'SwitchCase': 1
|
|
||||||
}],
|
|
||||||
'jsx-quotes': [2, 'prefer-single'],
|
|
||||||
'key-spacing': [2, {
|
|
||||||
'beforeColon': false,
|
|
||||||
'afterColon': true
|
|
||||||
}],
|
|
||||||
'keyword-spacing': [2, {
|
|
||||||
'before': true,
|
|
||||||
'after': true
|
|
||||||
}],
|
|
||||||
'new-cap': [2, {
|
|
||||||
'newIsCap': true,
|
|
||||||
'capIsNew': false
|
|
||||||
}],
|
|
||||||
'new-parens': 2,
|
|
||||||
'no-array-constructor': 2,
|
|
||||||
'no-caller': 2,
|
|
||||||
'no-console': 'off',
|
|
||||||
'no-class-assign': 2,
|
|
||||||
'no-cond-assign': 2,
|
|
||||||
'no-const-assign': 2,
|
|
||||||
'no-control-regex': 0,
|
|
||||||
'no-delete-var': 2,
|
|
||||||
'no-dupe-args': 2,
|
|
||||||
'no-dupe-class-members': 2,
|
|
||||||
'no-dupe-keys': 2,
|
|
||||||
'no-duplicate-case': 2,
|
|
||||||
'no-empty-character-class': 2,
|
|
||||||
'no-empty-pattern': 2,
|
|
||||||
'no-eval': 2,
|
|
||||||
'no-ex-assign': 2,
|
|
||||||
'no-extend-native': 2,
|
|
||||||
'no-extra-bind': 2,
|
|
||||||
'no-extra-boolean-cast': 2,
|
|
||||||
'no-extra-parens': [2, 'functions'],
|
|
||||||
'no-fallthrough': 2,
|
|
||||||
'no-floating-decimal': 2,
|
|
||||||
'no-func-assign': 2,
|
|
||||||
'no-implied-eval': 2,
|
|
||||||
'no-inner-declarations': [2, 'functions'],
|
|
||||||
'no-invalid-regexp': 2,
|
|
||||||
'no-irregular-whitespace': 2,
|
|
||||||
'no-iterator': 2,
|
|
||||||
'no-label-var': 2,
|
|
||||||
'no-labels': [2, {
|
|
||||||
'allowLoop': false,
|
|
||||||
'allowSwitch': false
|
|
||||||
}],
|
|
||||||
'no-lone-blocks': 2,
|
|
||||||
'no-mixed-spaces-and-tabs': 2,
|
|
||||||
'no-multi-spaces': 2,
|
|
||||||
'no-multi-str': 2,
|
|
||||||
'no-multiple-empty-lines': [2, {
|
|
||||||
'max': 1
|
|
||||||
}],
|
|
||||||
'no-native-reassign': 2,
|
|
||||||
'no-negated-in-lhs': 2,
|
|
||||||
'no-new-object': 2,
|
|
||||||
'no-new-require': 2,
|
|
||||||
'no-new-symbol': 2,
|
|
||||||
'no-new-wrappers': 2,
|
|
||||||
'no-obj-calls': 2,
|
|
||||||
'no-octal': 2,
|
|
||||||
'no-octal-escape': 2,
|
|
||||||
'no-path-concat': 2,
|
|
||||||
'no-proto': 2,
|
|
||||||
'no-redeclare': 2,
|
|
||||||
'no-regex-spaces': 2,
|
|
||||||
'no-return-assign': [2, 'except-parens'],
|
|
||||||
'no-self-assign': 2,
|
|
||||||
'no-self-compare': 2,
|
|
||||||
'no-sequences': 2,
|
|
||||||
'no-shadow-restricted-names': 2,
|
|
||||||
'no-spaced-func': 2,
|
|
||||||
'no-sparse-arrays': 2,
|
|
||||||
'no-this-before-super': 2,
|
|
||||||
'no-throw-literal': 2,
|
|
||||||
'no-trailing-spaces': 2,
|
|
||||||
'no-undef': 2,
|
|
||||||
'no-undef-init': 2,
|
|
||||||
'no-unexpected-multiline': 2,
|
|
||||||
'no-unmodified-loop-condition': 2,
|
|
||||||
'no-unneeded-ternary': [2, {
|
|
||||||
'defaultAssignment': false
|
|
||||||
}],
|
|
||||||
'no-unreachable': 2,
|
|
||||||
'no-unsafe-finally': 2,
|
|
||||||
'no-unused-vars': [2, {
|
|
||||||
'vars': 'all',
|
|
||||||
'args': 'none'
|
|
||||||
}],
|
|
||||||
'no-useless-call': 2,
|
|
||||||
'no-useless-computed-key': 2,
|
|
||||||
'no-useless-constructor': 2,
|
|
||||||
'no-useless-escape': 0,
|
|
||||||
'no-whitespace-before-property': 2,
|
|
||||||
'no-with': 2,
|
|
||||||
'one-var': [2, {
|
|
||||||
'initialized': 'never'
|
|
||||||
}],
|
|
||||||
'operator-linebreak': [2, 'after', {
|
|
||||||
'overrides': {
|
|
||||||
'?': 'before',
|
|
||||||
':': 'before'
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
'padded-blocks': [2, 'never'],
|
|
||||||
'quotes': [2, 'single', {
|
|
||||||
'avoidEscape': true,
|
|
||||||
'allowTemplateLiterals': true
|
|
||||||
}],
|
|
||||||
'semi': [2, 'never'],
|
|
||||||
'semi-spacing': [2, {
|
|
||||||
'before': false,
|
|
||||||
'after': true
|
|
||||||
}],
|
|
||||||
'space-before-blocks': [2, 'always'],
|
|
||||||
'space-before-function-paren': [2, 'never'],
|
|
||||||
'space-in-parens': [2, 'never'],
|
|
||||||
'space-infix-ops': 2,
|
|
||||||
'space-unary-ops': [2, {
|
|
||||||
'words': true,
|
|
||||||
'nonwords': false
|
|
||||||
}],
|
|
||||||
'spaced-comment': [2, 'always', {
|
|
||||||
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
|
|
||||||
}],
|
|
||||||
'template-curly-spacing': [2, 'never'],
|
|
||||||
'use-isnan': 2,
|
|
||||||
'valid-typeof': 2,
|
|
||||||
'wrap-iife': [2, 'any'],
|
|
||||||
'yield-star-spacing': [2, 'both'],
|
|
||||||
'yoda': [2, 'never'],
|
|
||||||
'prefer-const': 2,
|
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
|
|
||||||
'object-curly-spacing': [2, 'always', {
|
|
||||||
objectsInObjects: false
|
|
||||||
}],
|
|
||||||
'array-bracket-spacing': [2, 'never']
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
|
@ -1,30 +0,0 @@
|
|||||||
## 开发
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 克隆项目
|
|
||||||
git clone https://gitee.com/y_project/RuoYi-Vue
|
|
||||||
|
|
||||||
# 进入项目目录
|
|
||||||
cd ruoyi-ui
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
|
|
||||||
npm install --registry=https://registry.npmmirror.com
|
|
||||||
|
|
||||||
# 启动服务
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
浏览器访问 http://localhost:80
|
|
||||||
|
|
||||||
## 发布
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 构建测试环境
|
|
||||||
npm run build:stage
|
|
||||||
|
|
||||||
# 构建生产环境
|
|
||||||
npm run build:prod
|
|
||||||
```
|
|
@ -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']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
echo.
|
|
||||||
echo [信息] 使用 Vue CLI 命令运行 Web 工程。
|
|
||||||
echo.
|
|
||||||
|
|
||||||
%~d0
|
|
||||||
cd %~dp0
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
npm run dev
|
|
||||||
|
|
||||||
pause
|
|
@ -1,35 +0,0 @@
|
|||||||
const { run } = require('runjs')
|
|
||||||
const chalk = require('chalk')
|
|
||||||
const config = require('../vue.config.js')
|
|
||||||
const rawArgv = process.argv.slice(2)
|
|
||||||
const args = rawArgv.join(' ')
|
|
||||||
|
|
||||||
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
|
|
||||||
const report = rawArgv.includes('--report')
|
|
||||||
|
|
||||||
run(`vue-cli-service build ${args}`)
|
|
||||||
|
|
||||||
const port = 9526
|
|
||||||
const publicPath = config.publicPath
|
|
||||||
|
|
||||||
var connect = require('connect')
|
|
||||||
var serveStatic = require('serve-static')
|
|
||||||
const app = connect()
|
|
||||||
|
|
||||||
app.use(
|
|
||||||
publicPath,
|
|
||||||
serveStatic('./dist', {
|
|
||||||
index: ['index.html', '/']
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
app.listen(port, function () {
|
|
||||||
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
|
|
||||||
if (report) {
|
|
||||||
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
run(`vue-cli-service build ${args}`)
|
|
||||||
}
|
|
@ -1,91 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "ruoyi",
|
|
||||||
"version": "3.8.9",
|
|
||||||
"description": "若依管理系统",
|
|
||||||
"author": "若依",
|
|
||||||
"license": "MIT",
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vue-cli-service serve",
|
|
||||||
"build:prod": "vue-cli-service build",
|
|
||||||
"build:stage": "vue-cli-service build --mode staging",
|
|
||||||
"preview": "node build/index.js --preview",
|
|
||||||
"lint": "eslint --ext .js,.vue src"
|
|
||||||
},
|
|
||||||
"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/y_project/RuoYi-Vue.git"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@riophae/vue-treeselect": "0.4.0",
|
|
||||||
"axios": "0.28.1",
|
|
||||||
"clipboard": "2.0.8",
|
|
||||||
"core-js": "3.37.1",
|
|
||||||
"echarts": "5.4.0",
|
|
||||||
"element-ui": "2.15.14",
|
|
||||||
"file-saver": "2.0.5",
|
|
||||||
"fuse.js": "6.4.3",
|
|
||||||
"highlight.js": "9.18.5",
|
|
||||||
"js-beautify": "1.13.0",
|
|
||||||
"js-cookie": "3.0.1",
|
|
||||||
"jsencrypt": "3.0.0-rc.1",
|
|
||||||
"nprogress": "0.2.0",
|
|
||||||
"quill": "2.0.2",
|
|
||||||
"screenfull": "5.0.2",
|
|
||||||
"sortablejs": "1.10.2",
|
|
||||||
"splitpanes": "2.4.1",
|
|
||||||
"vue": "2.6.12",
|
|
||||||
"vue-count-to": "1.0.13",
|
|
||||||
"vue-cropper": "0.5.5",
|
|
||||||
"vue-meta": "2.4.0",
|
|
||||||
"vue-router": "3.4.9",
|
|
||||||
"vuedraggable": "2.24.3",
|
|
||||||
"vuex": "3.6.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@vue/cli-plugin-babel": "4.4.6",
|
|
||||||
"@vue/cli-plugin-eslint": "4.4.6",
|
|
||||||
"@vue/cli-service": "4.4.6",
|
|
||||||
"babel-eslint": "10.1.0",
|
|
||||||
"babel-plugin-dynamic-import-node": "2.3.3",
|
|
||||||
"chalk": "4.1.0",
|
|
||||||
"compression-webpack-plugin": "6.1.2",
|
|
||||||
"connect": "3.6.6",
|
|
||||||
"eslint": "7.15.0",
|
|
||||||
"eslint-plugin-vue": "7.2.0",
|
|
||||||
"lint-staged": "10.5.3",
|
|
||||||
"runjs": "4.4.2",
|
|
||||||
"sass": "1.32.13",
|
|
||||||
"sass-loader": "10.1.1",
|
|
||||||
"script-ext-html-webpack-plugin": "2.1.5",
|
|
||||||
"svg-sprite-loader": "5.1.1",
|
|
||||||
"vue-template-compiler": "2.6.12"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.9",
|
|
||||||
"npm": ">= 3.0.0"
|
|
||||||
},
|
|
||||||
"browserslist": [
|
|
||||||
"> 1%",
|
|
||||||
"last 2 versions"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 5.5 KiB |
@ -1,208 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<meta name="renderer" content="webkit">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
|
||||||
<title><%= webpackConfig.name %></title>
|
|
||||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
|
||||||
<style>
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
#app {
|
|
||||||
height: 100%;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
.chromeframe {
|
|
||||||
margin: 0.2em 0;
|
|
||||||
background: #ccc;
|
|
||||||
color: #000;
|
|
||||||
padding: 0.2em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 999999;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
width: 150px;
|
|
||||||
height: 150px;
|
|
||||||
margin: -75px 0 0 -75px;
|
|
||||||
border-radius: 50%;
|
|
||||||
border: 3px solid transparent;
|
|
||||||
border-top-color: #FFF;
|
|
||||||
-webkit-animation: spin 2s linear infinite;
|
|
||||||
-ms-animation: spin 2s linear infinite;
|
|
||||||
-moz-animation: spin 2s linear infinite;
|
|
||||||
-o-animation: spin 2s linear infinite;
|
|
||||||
animation: spin 2s linear infinite;
|
|
||||||
z-index: 1001;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader:before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 5px;
|
|
||||||
left: 5px;
|
|
||||||
right: 5px;
|
|
||||||
bottom: 5px;
|
|
||||||
border-radius: 50%;
|
|
||||||
border: 3px solid transparent;
|
|
||||||
border-top-color: #FFF;
|
|
||||||
-webkit-animation: spin 3s linear infinite;
|
|
||||||
-moz-animation: spin 3s linear infinite;
|
|
||||||
-o-animation: spin 3s linear infinite;
|
|
||||||
-ms-animation: spin 3s linear infinite;
|
|
||||||
animation: spin 3s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader:after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 15px;
|
|
||||||
left: 15px;
|
|
||||||
right: 15px;
|
|
||||||
bottom: 15px;
|
|
||||||
border-radius: 50%;
|
|
||||||
border: 3px solid transparent;
|
|
||||||
border-top-color: #FFF;
|
|
||||||
-moz-animation: spin 1.5s linear infinite;
|
|
||||||
-o-animation: spin 1.5s linear infinite;
|
|
||||||
-ms-animation: spin 1.5s linear infinite;
|
|
||||||
-webkit-animation: spin 1.5s linear infinite;
|
|
||||||
animation: spin 1.5s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@-webkit-keyframes spin {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: rotate(0deg);
|
|
||||||
-ms-transform: rotate(0deg);
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-webkit-transform: rotate(360deg);
|
|
||||||
-ms-transform: rotate(360deg);
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spin {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: rotate(0deg);
|
|
||||||
-ms-transform: rotate(0deg);
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-webkit-transform: rotate(360deg);
|
|
||||||
-ms-transform: rotate(360deg);
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#loader-wrapper .loader-section {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
width: 51%;
|
|
||||||
height: 100%;
|
|
||||||
background: #7171C6;
|
|
||||||
z-index: 1000;
|
|
||||||
-webkit-transform: translateX(0);
|
|
||||||
-ms-transform: translateX(0);
|
|
||||||
transform: translateX(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper .loader-section.section-left {
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper .loader-section.section-right {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.loaded #loader-wrapper .loader-section.section-left {
|
|
||||||
-webkit-transform: translateX(-100%);
|
|
||||||
-ms-transform: translateX(-100%);
|
|
||||||
transform: translateX(-100%);
|
|
||||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
|
||||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaded #loader-wrapper .loader-section.section-right {
|
|
||||||
-webkit-transform: translateX(100%);
|
|
||||||
-ms-transform: translateX(100%);
|
|
||||||
transform: translateX(100%);
|
|
||||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
|
||||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaded #loader {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transition: all 0.3s ease-out;
|
|
||||||
transition: all 0.3s ease-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaded #loader-wrapper {
|
|
||||||
visibility: hidden;
|
|
||||||
-webkit-transform: translateY(-100%);
|
|
||||||
-ms-transform: translateY(-100%);
|
|
||||||
transform: translateY(-100%);
|
|
||||||
-webkit-transition: all 0.3s 1s ease-out;
|
|
||||||
transition: all 0.3s 1s ease-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-js #loader-wrapper {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-js h1 {
|
|
||||||
color: #222222;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper .load_title {
|
|
||||||
font-family: 'Open Sans';
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 19px;
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
z-index: 9999999999999;
|
|
||||||
position: absolute;
|
|
||||||
top: 60%;
|
|
||||||
opacity: 1;
|
|
||||||
line-height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loader-wrapper .load_title span {
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: italic;
|
|
||||||
font-size: 13px;
|
|
||||||
color: #FFF;
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app">
|
|
||||||
<div id="loader-wrapper">
|
|
||||||
<div id="loader"></div>
|
|
||||||
<div class="loader-section section-left"></div>
|
|
||||||
<div class="loader-section section-right"></div>
|
|
||||||
<div class="load_title">正在加载系统资源,请耐心等待</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,2 +0,0 @@
|
|||||||
User-agent: *
|
|
||||||
Disallow: /
|
|
@ -1,28 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div id="app">
|
|
||||||
<router-view />
|
|
||||||
<theme-picker />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import ThemePicker from "@/components/ThemePicker";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "App",
|
|
||||||
components: { ThemePicker },
|
|
||||||
metaInfo() {
|
|
||||||
return {
|
|
||||||
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
|
|
||||||
titleTemplate: title => {
|
|
||||||
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<style scoped>
|
|
||||||
#app .theme-picker {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,60 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 登录方法
|
|
||||||
export function login(username, password, code, uuid) {
|
|
||||||
const data = {
|
|
||||||
username,
|
|
||||||
password,
|
|
||||||
code,
|
|
||||||
uuid
|
|
||||||
}
|
|
||||||
return request({
|
|
||||||
url: '/login',
|
|
||||||
headers: {
|
|
||||||
isToken: false,
|
|
||||||
repeatSubmit: false
|
|
||||||
},
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 注册方法
|
|
||||||
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
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 获取路由
|
|
||||||
export const getRouters = () => {
|
|
||||||
return request({
|
|
||||||
url: '/getRouters',
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 查询定时任务调度列表
|
|
||||||
export function listJob(query) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job/list',
|
|
||||||
method: 'get',
|
|
||||||
params: query
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询定时任务调度详细
|
|
||||||
export function getJob(jobId) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job/' + jobId,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 新增定时任务调度
|
|
||||||
export function addJob(data) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job',
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改定时任务调度
|
|
||||||
export function updateJob(data) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job',
|
|
||||||
method: 'put',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除定时任务调度
|
|
||||||
export function delJob(jobId) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job/' + jobId,
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 任务状态修改
|
|
||||||
export function changeJobStatus(jobId, status) {
|
|
||||||
const data = {
|
|
||||||
jobId,
|
|
||||||
status
|
|
||||||
}
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job/changeStatus',
|
|
||||||
method: 'put',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 定时任务立即执行一次
|
|
||||||
export function runJob(jobId, jobGroup) {
|
|
||||||
const data = {
|
|
||||||
jobId,
|
|
||||||
jobGroup
|
|
||||||
}
|
|
||||||
return request({
|
|
||||||
url: '/monitor/job/run',
|
|
||||||
method: 'put',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 查询操作日志列表
|
|
||||||
export function list(query) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/operlog/list',
|
|
||||||
method: 'get',
|
|
||||||
params: query
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除操作日志
|
|
||||||
export function delOperlog(operId) {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/operlog/' + operId,
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 清空操作日志
|
|
||||||
export function cleanOperlog() {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/operlog/clean',
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 获取服务信息
|
|
||||||
export function getServer() {
|
|
||||||
return request({
|
|
||||||
url: '/monitor/server',
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,60 +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 delConfig(configId) {
|
|
||||||
return request({
|
|
||||||
url: '/system/config/' + configId,
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新参数缓存
|
|
||||||
export function refreshCache() {
|
|
||||||
return request({
|
|
||||||
url: '/system/config/refreshCache',
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,136 +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',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 用户头像上传
|
|
||||||
export function uploadAvatar(data) {
|
|
||||||
return request({
|
|
||||||
url: '/system/user/profile/avatar',
|
|
||||||
method: 'post',
|
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
||||||
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'
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,85 +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 createTable(data) {
|
|
||||||
return request({
|
|
||||||
url: '/tool/gen/createTable',
|
|
||||||
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'
|
|
||||||
})
|
|
||||||
}
|
|
Before Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 4.7 KiB |
@ -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)
|
|
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 954 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 179 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 971 B |
Before Width: | Height: | Size: 717 B |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 2.4 KiB |