@ -0,0 +1,22 @@ |
|||||||
|
# 告诉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 |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
# 页面标题 |
||||||
|
VUE_APP_TITLE = 信联 |
||||||
|
|
||||||
|
# 开发环境配置 |
||||||
|
ENV = 'development' |
||||||
|
|
||||||
|
# 信联/开发环境 |
||||||
|
VUE_APP_BASE_API = '/dev-api' |
||||||
|
|
||||||
|
# 路由懒加载 |
||||||
|
VUE_CLI_BABEL_TRANSPILE_MODULES = true |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
# 页面标题 |
||||||
|
VUE_APP_TITLE = 信联 |
||||||
|
|
||||||
|
# 生产环境配置 |
||||||
|
ENV = 'production' |
||||||
|
|
||||||
|
# 信联/生产环境 |
||||||
|
VUE_APP_BASE_API = '/prod-api' |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
# 页面标题 |
||||||
|
VUE_APP_TITLE = 信联 |
||||||
|
|
||||||
|
BABEL_ENV = production |
||||||
|
|
||||||
|
NODE_ENV = production |
||||||
|
|
||||||
|
# 测试环境配置 |
||||||
|
ENV = 'staging' |
||||||
|
|
||||||
|
# 信联/测试环境 |
||||||
|
VUE_APP_BASE_API = '/stage-api' |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
.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,3 +1,30 @@ |
|||||||
# HIsenseYL-localization-migration |
## 开发 |
||||||
|
|
||||||
海信医疗-远程超声管理平台-信创国产化 |
```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 |
||||||
|
``` |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
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'] |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
@echo off |
||||||
|
echo. |
||||||
|
echo [信息] 打包Web工程,生成dist文件。 |
||||||
|
echo. |
||||||
|
|
||||||
|
%~d0 |
||||||
|
cd %~dp0 |
||||||
|
|
||||||
|
cd .. |
||||||
|
npm run build:prod |
||||||
|
|
||||||
|
pause |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
@echo off |
||||||
|
echo. |
||||||
|
echo [信息] 安装Web工程,生成node_modules文件。 |
||||||
|
echo. |
||||||
|
|
||||||
|
%~d0 |
||||||
|
cd %~dp0 |
||||||
|
|
||||||
|
cd .. |
||||||
|
npm install --registry=https://registry.npmmirror.com |
||||||
|
|
||||||
|
pause |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
@echo off |
||||||
|
echo. |
||||||
|
echo [信息] 使用 Vue CLI 命令运行 Web 工程。 |
||||||
|
echo. |
||||||
|
|
||||||
|
%~d0 |
||||||
|
cd %~dp0 |
||||||
|
|
||||||
|
cd .. |
||||||
|
npm run dev |
||||||
|
|
||||||
|
pause |
||||||
@ -0,0 +1,35 @@ |
|||||||
|
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}`) |
||||||
|
} |
||||||
@ -0,0 +1,71 @@ |
|||||||
|
{ |
||||||
|
"name": "ruoyi", |
||||||
|
"version": "3.9.2", |
||||||
|
"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" |
||||||
|
}, |
||||||
|
"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.30.3", |
||||||
|
"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", |
||||||
|
"vue": "2.6.12", |
||||||
|
"vue-count-to": "1.0.13", |
||||||
|
"vue-cropper": "0.5.5", |
||||||
|
"vue-router": "3.4.9", |
||||||
|
"vuedraggable": "2.24.3", |
||||||
|
"vuex": "3.6.0" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"@vue/cli-plugin-babel": "4.4.6", |
||||||
|
"@vue/cli-service": "4.4.6", |
||||||
|
"babel-plugin-dynamic-import-node": "2.3.3", |
||||||
|
"chalk": "4.1.0", |
||||||
|
"compression-webpack-plugin": "6.1.2", |
||||||
|
"connect": "3.6.6", |
||||||
|
"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" |
||||||
|
] |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 5.5 KiB |
@ -0,0 +1,222 @@ |
|||||||
|
<!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> |
||||||
|
<script type="text/javascript" src="/static/crypto-js.js"></script> |
||||||
|
<script type="text/javascript" src="/static/base64.js"></script> |
||||||
|
<script type="text/javascript" src="/static/adapter.js"></script> |
||||||
|
<script type="text/javascript" src="/static/saver.js"></script> |
||||||
|
<script type="text/javascript" src="/static/sign.js"></script> |
||||||
|
<script type="text/javascript" src="/static/sdk.js"></script> |
||||||
|
<!--[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> |
||||||
@ -0,0 +1,2 @@ |
|||||||
|
User-agent: * |
||||||
|
Disallow: / |
||||||
@ -0,0 +1,161 @@ |
|||||||
|
(function (global) { |
||||||
|
'use strict'; |
||||||
|
let _Base64 = global.Base64; |
||||||
|
let version = "2.1.9"; |
||||||
|
let buffer; |
||||||
|
// constants
|
||||||
|
let b64chars |
||||||
|
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; |
||||||
|
let b64tab = function (bin) { |
||||||
|
let t = {}; |
||||||
|
for (let i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i; |
||||||
|
return t; |
||||||
|
}(b64chars); |
||||||
|
let fromCharCode = String.fromCharCode; |
||||||
|
// encoder stuff
|
||||||
|
let cb_utob = function (c) { |
||||||
|
if (c.length < 2) { |
||||||
|
let cc = c.charCodeAt(0); |
||||||
|
return cc < 0x80 ? c |
||||||
|
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6)) |
||||||
|
+ fromCharCode(0x80 | (cc & 0x3f))) |
||||||
|
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) |
||||||
|
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) |
||||||
|
+ fromCharCode(0x80 | (cc & 0x3f))); |
||||||
|
} else { |
||||||
|
let cc = 0x10000 |
||||||
|
+ (c.charCodeAt(0) - 0xD800) * 0x400 |
||||||
|
+ (c.charCodeAt(1) - 0xDC00); |
||||||
|
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07)) |
||||||
|
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f)) |
||||||
|
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) |
||||||
|
+ fromCharCode(0x80 | (cc & 0x3f))); |
||||||
|
} |
||||||
|
}; |
||||||
|
let re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; |
||||||
|
let utob = function (u) { |
||||||
|
return u.replace(re_utob, cb_utob); |
||||||
|
}; |
||||||
|
let cb_encode = function (ccc) { |
||||||
|
let padlen = [0, 2, 1][ccc.length % 3], |
||||||
|
ord = ccc.charCodeAt(0) << 16 |
||||||
|
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |
||||||
|
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)), |
||||||
|
chars = [ |
||||||
|
b64chars.charAt(ord >>> 18), |
||||||
|
b64chars.charAt((ord >>> 12) & 63), |
||||||
|
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63), |
||||||
|
padlen >= 1 ? '=' : b64chars.charAt(ord & 63) |
||||||
|
]; |
||||||
|
return chars.join(''); |
||||||
|
}; |
||||||
|
let btoa = global.btoa ? function (b) { |
||||||
|
return global.btoa(b); |
||||||
|
} : function (b) { |
||||||
|
return b.replace(/[\s\S]{1,3}/g, cb_encode); |
||||||
|
}; |
||||||
|
let _encode = buffer ? function (u) { |
||||||
|
return (u.constructor === buffer.constructor ? u : new buffer(u)) |
||||||
|
.toString('base64') |
||||||
|
} |
||||||
|
: function (u) { |
||||||
|
return btoa(utob(u)) |
||||||
|
} |
||||||
|
; |
||||||
|
let encode = function (u, urisafe) { |
||||||
|
return !urisafe |
||||||
|
? _encode(String(u)) |
||||||
|
: _encode(String(u)).replace(/[+\/]/g, function (m0) { |
||||||
|
return m0 == '+' ? '-' : '_'; |
||||||
|
}).replace(/=/g, ''); |
||||||
|
}; |
||||||
|
let encodeURI = function (u) { |
||||||
|
return encode(u, true) |
||||||
|
}; |
||||||
|
// decoder stuff
|
||||||
|
let re_btou = new RegExp([ |
||||||
|
'[\xC0-\xDF][\x80-\xBF]', |
||||||
|
'[\xE0-\xEF][\x80-\xBF]{2}', |
||||||
|
'[\xF0-\xF7][\x80-\xBF]{3}' |
||||||
|
].join('|'), 'g'); |
||||||
|
let cb_btou = function (cccc) { |
||||||
|
switch (cccc.length) { |
||||||
|
case 4: |
||||||
|
let cp = ((0x07 & cccc.charCodeAt(0)) << 18) |
||||||
|
| ((0x3f & cccc.charCodeAt(1)) << 12) |
||||||
|
| ((0x3f & cccc.charCodeAt(2)) << 6) |
||||||
|
| (0x3f & cccc.charCodeAt(3)), |
||||||
|
offset = cp - 0x10000; |
||||||
|
return (fromCharCode((offset >>> 10) + 0xD800) |
||||||
|
+ fromCharCode((offset & 0x3FF) + 0xDC00)); |
||||||
|
case 3: |
||||||
|
return fromCharCode( |
||||||
|
((0x0f & cccc.charCodeAt(0)) << 12) |
||||||
|
| ((0x3f & cccc.charCodeAt(1)) << 6) |
||||||
|
| (0x3f & cccc.charCodeAt(2)) |
||||||
|
); |
||||||
|
default: |
||||||
|
return fromCharCode( |
||||||
|
((0x1f & cccc.charCodeAt(0)) << 6) |
||||||
|
| (0x3f & cccc.charCodeAt(1)) |
||||||
|
); |
||||||
|
} |
||||||
|
}; |
||||||
|
let btou = function (b) { |
||||||
|
return b.replace(re_btou, cb_btou); |
||||||
|
}; |
||||||
|
let cb_decode = function (cccc) { |
||||||
|
let len = cccc.length, |
||||||
|
padlen = len % 4, |
||||||
|
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) |
||||||
|
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) |
||||||
|
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) |
||||||
|
| (len > 3 ? b64tab[cccc.charAt(3)] : 0), |
||||||
|
chars = [ |
||||||
|
fromCharCode(n >>> 16), |
||||||
|
fromCharCode((n >>> 8) & 0xff), |
||||||
|
fromCharCode(n & 0xff) |
||||||
|
]; |
||||||
|
chars.length -= [0, 0, 2, 1][padlen]; |
||||||
|
return chars.join(''); |
||||||
|
}; |
||||||
|
let atob = global.atob ? function (a) { |
||||||
|
return global.atob(a); |
||||||
|
} : function (a) { |
||||||
|
return a.replace(/[\s\S]{1,4}/g, cb_decode); |
||||||
|
}; |
||||||
|
let _decode = buffer ? function (a) { |
||||||
|
return (a.constructor === buffer.constructor |
||||||
|
? a : new buffer(a, 'base64')).toString(); |
||||||
|
} |
||||||
|
: function (a) { |
||||||
|
return btou(atob(a)) |
||||||
|
}; |
||||||
|
let decode = function (a) { |
||||||
|
return _decode( |
||||||
|
String(a).replace(/[-_]/g, function (m0) { |
||||||
|
return m0 == '-' ? '+' : '/' |
||||||
|
}) |
||||||
|
.replace(/[^A-Za-z0-9\+\/]/g, '') |
||||||
|
); |
||||||
|
}; |
||||||
|
let noConflict = function () { |
||||||
|
let Base64 = global.Base64; |
||||||
|
global.Base64 = _Base64; |
||||||
|
return Base64; |
||||||
|
}; |
||||||
|
// export Base64
|
||||||
|
global.Base64 = { |
||||||
|
VERSION: version, |
||||||
|
atob: atob, |
||||||
|
btoa: btoa, |
||||||
|
fromBase64: decode, |
||||||
|
toBase64: encode, |
||||||
|
utob: utob, |
||||||
|
encode: encode, |
||||||
|
encodeURI: encodeURI, |
||||||
|
btou: btou, |
||||||
|
decode: decode, |
||||||
|
noConflict: noConflict |
||||||
|
}; |
||||||
|
})(this); |
||||||
@ -0,0 +1,188 @@ |
|||||||
|
(function (global, factory) { |
||||||
|
if (typeof define === "function" && define.amd) { |
||||||
|
define([], factory); |
||||||
|
} else if (typeof exports !== "undefined") { |
||||||
|
factory(); |
||||||
|
} else { |
||||||
|
let mod = { |
||||||
|
exports: {} |
||||||
|
}; |
||||||
|
factory(); |
||||||
|
global.FileSaver = mod.exports; |
||||||
|
} |
||||||
|
})(this, function () { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
/* |
||||||
|
* FileSaver.js |
||||||
|
* A saveAs() FileSaver implementation. |
||||||
|
* |
||||||
|
* By Eli Grey, http://eligrey.com
|
||||||
|
* |
||||||
|
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
|
||||||
|
* source : http://purl.eligrey.com/github/FileSaver.js
|
||||||
|
*/ |
||||||
|
// The one and only way of getting global scope in all environments
|
||||||
|
// https://stackoverflow.com/q/3277182/1008999
|
||||||
|
let _global = typeof window === 'object' && window.window === window ? window : typeof self === 'object' && self.self === self ? self : typeof global === 'object' && global.global === global ? global : void 0; |
||||||
|
|
||||||
|
function bom(blob, opts) { |
||||||
|
if (typeof opts === 'undefined') opts = { |
||||||
|
autoBom: false |
||||||
|
};else if (typeof opts !== 'object') { |
||||||
|
console.warn('Deprecated: Expected third argument to be a object'); |
||||||
|
opts = { |
||||||
|
autoBom: !opts |
||||||
|
}; |
||||||
|
} // prepend BOM for UTF-8 XML and text/* types (including HTML)
|
||||||
|
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
|
||||||
|
|
||||||
|
if (opts.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { |
||||||
|
return new Blob([String.fromCharCode(0xFEFF), blob], { |
||||||
|
type: blob.type |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
return blob; |
||||||
|
} |
||||||
|
|
||||||
|
function download(url, name, opts) { |
||||||
|
let xhr = new XMLHttpRequest(); |
||||||
|
xhr.open('GET', url); |
||||||
|
xhr.responseType = 'blob'; |
||||||
|
|
||||||
|
xhr.onload = function () { |
||||||
|
saveAs(xhr.response, name, opts); |
||||||
|
}; |
||||||
|
|
||||||
|
xhr.onerror = function () { |
||||||
|
console.error('could not download file'); |
||||||
|
}; |
||||||
|
|
||||||
|
xhr.send(); |
||||||
|
} |
||||||
|
|
||||||
|
function corsEnabled(url) { |
||||||
|
let xhr = new XMLHttpRequest(); // use sync to avoid popup blocker
|
||||||
|
|
||||||
|
xhr.open('HEAD', url, false); |
||||||
|
|
||||||
|
try { |
||||||
|
xhr.send(); |
||||||
|
} catch (e) {} |
||||||
|
|
||||||
|
return xhr.status >= 200 && xhr.status <= 299; |
||||||
|
} // `a.click()` doesn't work for all browsers (#465)
|
||||||
|
|
||||||
|
|
||||||
|
function click(node) { |
||||||
|
try { |
||||||
|
node.dispatchEvent(new MouseEvent('click')); |
||||||
|
} catch (e) { |
||||||
|
let evt = document.createEvent('MouseEvents'); |
||||||
|
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); |
||||||
|
node.dispatchEvent(evt); |
||||||
|
} |
||||||
|
} // Detect WebView inside a native macOS app by ruling out all browsers
|
||||||
|
// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
|
||||||
|
// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
|
||||||
|
|
||||||
|
|
||||||
|
let isMacOSWebView = /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent); |
||||||
|
let saveAs = _global.saveAs || ( // probably in some web worker
|
||||||
|
typeof window !== 'object' || window !== _global ? function saveAs() {} |
||||||
|
/* noop */ |
||||||
|
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
|
||||||
|
: 'download' in HTMLAnchorElement.prototype && !isMacOSWebView ? function saveAs(blob, name, opts) { |
||||||
|
let URL = _global.URL || _global.webkitURL; |
||||||
|
let a = document.createElement('a'); |
||||||
|
name = name || blob.name || 'download'; |
||||||
|
a.download = name; |
||||||
|
a.rel = 'noopener'; // tabnabbing
|
||||||
|
// TODO: detect chrome extensions & packaged apps
|
||||||
|
// a.target = '_blank'
|
||||||
|
|
||||||
|
if (typeof blob === 'string') { |
||||||
|
// Support regular links
|
||||||
|
a.href = blob; |
||||||
|
|
||||||
|
if (a.origin !== location.origin) { |
||||||
|
corsEnabled(a.href) ? download(blob, name, opts) : click(a, a.target = '_blank'); |
||||||
|
} else { |
||||||
|
click(a); |
||||||
|
} |
||||||
|
} else { |
||||||
|
// Support blobs
|
||||||
|
a.href = URL.createObjectURL(blob); |
||||||
|
setTimeout(function () { |
||||||
|
URL.revokeObjectURL(a.href); |
||||||
|
}, 4E4); // 40s
|
||||||
|
|
||||||
|
setTimeout(function () { |
||||||
|
click(a); |
||||||
|
}, 0); |
||||||
|
} |
||||||
|
} // Use msSaveOrOpenBlob as a second approach
|
||||||
|
: 'msSaveOrOpenBlob' in navigator ? function saveAs(blob, name, opts) { |
||||||
|
name = name || blob.name || 'download'; |
||||||
|
|
||||||
|
if (typeof blob === 'string') { |
||||||
|
if (corsEnabled(blob)) { |
||||||
|
download(blob, name, opts); |
||||||
|
} else { |
||||||
|
let a = document.createElement('a'); |
||||||
|
a.href = blob; |
||||||
|
a.target = '_blank'; |
||||||
|
setTimeout(function () { |
||||||
|
click(a); |
||||||
|
}); |
||||||
|
} |
||||||
|
} else { |
||||||
|
navigator.msSaveOrOpenBlob(bom(blob, opts), name); |
||||||
|
} |
||||||
|
} // Fallback to using FileReader and a popup
|
||||||
|
: function saveAs(blob, name, opts, popup) { |
||||||
|
// Open a popup immediately do go around popup blocker
|
||||||
|
// Mostly only available on user interaction and the fileReader is async so...
|
||||||
|
popup = popup || open('', '_blank'); |
||||||
|
|
||||||
|
if (popup) { |
||||||
|
popup.document.title = popup.document.body.innerText = 'downloading...'; |
||||||
|
} |
||||||
|
|
||||||
|
if (typeof blob === 'string') return download(blob, name, opts); |
||||||
|
let force = blob.type === 'application/octet-stream'; |
||||||
|
|
||||||
|
let isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari; |
||||||
|
|
||||||
|
let isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent); |
||||||
|
|
||||||
|
if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== 'undefined') { |
||||||
|
// Safari doesn't allow downloading of blob URLs
|
||||||
|
let reader = new FileReader(); |
||||||
|
|
||||||
|
reader.onloadend = function () { |
||||||
|
let url = reader.result; |
||||||
|
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;'); |
||||||
|
if (popup) popup.location.href = url;else location = url; |
||||||
|
popup = null; // reverse-tabnabbing #460
|
||||||
|
}; |
||||||
|
|
||||||
|
reader.readAsDataURL(blob); |
||||||
|
} else { |
||||||
|
let URL = _global.URL || _global.webkitURL; |
||||||
|
let url = URL.createObjectURL(blob); |
||||||
|
if (popup) popup.location = url;else location.href = url; |
||||||
|
popup = null; // reverse-tabnabbing #460
|
||||||
|
|
||||||
|
setTimeout(function () { |
||||||
|
URL.revokeObjectURL(url); |
||||||
|
}, 4E4); // 40s
|
||||||
|
} |
||||||
|
}); |
||||||
|
_global.saveAs = saveAs.saveAs = saveAs; |
||||||
|
|
||||||
|
if (typeof module !== 'undefined') { |
||||||
|
module.exports = saveAs; |
||||||
|
} |
||||||
|
}); |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
<template> |
||||||
|
<div id="app"> |
||||||
|
<router-view /> |
||||||
|
<theme-picker /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import ThemePicker from "@/components/ThemePicker" |
||||||
|
|
||||||
|
export default { |
||||||
|
name: "App", |
||||||
|
components: { ThemePicker } |
||||||
|
} |
||||||
|
</script> |
||||||
|
<style scoped> |
||||||
|
#app .theme-picker { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
</style> |
||||||
@ -0,0 +1,69 @@ |
|||||||
|
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 unlockScreen(password) { |
||||||
|
return request({ |
||||||
|
url: '/unlockscreen', |
||||||
|
method: 'post', |
||||||
|
data: { password } |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 退出方法
|
||||||
|
export function logout() { |
||||||
|
return request({ |
||||||
|
url: '/logout', |
||||||
|
method: 'post' |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 获取验证码
|
||||||
|
export function getCodeImg() { |
||||||
|
return request({ |
||||||
|
url: '/captchaImage', |
||||||
|
headers: { |
||||||
|
isToken: false |
||||||
|
}, |
||||||
|
method: 'get', |
||||||
|
timeout: 20000 |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
import request from '@/utils/request' |
||||||
|
|
||||||
|
// 获取路由
|
||||||
|
export const getRouters = () => { |
||||||
|
return request({ |
||||||
|
url: '/getRouters', |
||||||
|
method: 'get' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,57 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,71 @@ |
|||||||
|
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 |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
import request from '@/utils/request' |
||||||
|
|
||||||
|
// 获取服务信息
|
||||||
|
export function getServer() { |
||||||
|
return request({ |
||||||
|
url: '/monitor/server', |
||||||
|
method: 'get' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,61 @@ |
|||||||
|
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 updateDeptSort(data) { |
||||||
|
return request({ |
||||||
|
url: '/system/dept/updateSort', |
||||||
|
method: 'put', |
||||||
|
data: data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 删除部门
|
||||||
|
export function delDept(deptId) { |
||||||
|
return request({ |
||||||
|
url: '/system/dept/' + deptId, |
||||||
|
method: 'delete' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,52 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,69 @@ |
|||||||
|
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 updateMenuSort(data) { |
||||||
|
return request({ |
||||||
|
url: '/system/menu/updateSort', |
||||||
|
method: 'put', |
||||||
|
data: data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 删除菜单
|
||||||
|
export function delMenu(menuId) { |
||||||
|
return request({ |
||||||
|
url: '/system/menu/' + menuId, |
||||||
|
method: 'delete' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,79 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 首页顶部公告列表(带已读状态)
|
||||||
|
export function listNoticeTop() { |
||||||
|
return request({ |
||||||
|
url: '/system/notice/listTop', |
||||||
|
method: 'get' |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 标记公告已读
|
||||||
|
export function markNoticeRead(noticeId) { |
||||||
|
return request({ |
||||||
|
url: '/system/notice/markRead', |
||||||
|
method: 'post', |
||||||
|
params: { noticeId } |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 批量标记已读
|
||||||
|
export function markNoticeReadAll(ids) { |
||||||
|
return request({ |
||||||
|
url: '/system/notice/markReadAll', |
||||||
|
method: 'post', |
||||||
|
params: { ids } |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 查询公告已读用户列表
|
||||||
|
export function listNoticeReadUsers(query) { |
||||||
|
return request({ |
||||||
|
url: '/system/notice/readUsers/list', |
||||||
|
method: 'get', |
||||||
|
params: query |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,44 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,119 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,136 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
@ -0,0 +1,85 @@ |
|||||||
|
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' |
||||||
|
}) |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
@ -0,0 +1,9 @@ |
|||||||
|
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) |
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 750 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 954 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 179 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 971 B |
|
After Width: | Height: | Size: 717 B |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 418 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 356 B |
|
After Width: | Height: | Size: 724 B |
|
After Width: | Height: | Size: 818 B |
|
After Width: | Height: | Size: 627 B |
|
After Width: | Height: | Size: 347 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 497 B |
|
After Width: | Height: | Size: 459 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 944 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 320 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 744 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 285 B |
|
After Width: | Height: | Size: 1017 B |
|
After Width: | Height: | Size: 444 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 669 B |
|
After Width: | Height: | Size: 335 B |
|
After Width: | Height: | Size: 883 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 821 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.2 KiB |