初始化

This commit is contained in:
王成明 2025-02-08 09:23:28 +08:00
commit 0b3ec3e944
634 changed files with 41469 additions and 0 deletions

22
.editorconfig Normal file
View File

@ -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

20
.env.development Normal file
View File

@ -0,0 +1,20 @@
# 页面标题
VUE_APP_TITLE = 人机适配性高维数据管理平台
# 开发环境配置
ENV = 'development'
# 若依管理系统/开发环境
VUE_APP_BASE_API = '/dev-api'
# 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/'
# 监控地址
VUE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/login'
# xxl-job 控制台地址
VUE_APP_XXL_JOB_ADMIN = 'http://localhost:9100/xxl-job-admin'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

19
.env.production Normal file
View File

@ -0,0 +1,19 @@
# 页面标题
VUE_APP_TITLE = 人机适配性高维数据管理平台
# 生产环境配置
ENV = 'production'
# 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
# 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/'
# 监控地址
VUE_APP_MONITRO_ADMIN = '/admin/login'
# xxl-job 控制台地址
VUE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'

10
.eslintignore Normal file
View File

@ -0,0 +1,10 @@
# 忽略build目录下类型为js的文件的语法检查
build/*.js
# 忽略src/assets目录下文件的语法检查
src/assets
# 忽略public目录下文件的语法检查
public
# 忽略当前目录下为js的文件的语法检查
*.js
# 忽略当前目录下为vue的文件的语法检查
*.vue

199
.eslintrc.js Normal file
View File

@ -0,0 +1,199 @@
// 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']
}
}

24
.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
.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
dist.zip

30
README.md Normal file
View File

@ -0,0 +1,30 @@
## 开发
```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
```

13
babel.config.js Normal file
View File

@ -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']
}
}
}

12
bin/build.bat Normal file
View File

@ -0,0 +1,12 @@
@echo off
echo.
echo [信息] 打包Web工程生成dist文件。
echo.
%~d0
cd %~dp0
cd ..
npm run build:prod
pause

12
bin/package.bat Normal file
View File

@ -0,0 +1,12 @@
@echo off
echo.
echo [信息] 安装Web工程生成node_modules文件。
echo.
%~d0
cd %~dp0
cd ..
npm install --registry=https://registry.npmmirror.com
pause

12
bin/run-web.bat Normal file
View File

@ -0,0 +1,12 @@
@echo off
echo.
echo [信息] 使用 Vue CLI 命令运行 Web 工程。
echo.
%~d0
cd %~dp0
cd ..
npm run dev
pause

35
build/index.js Normal file
View File

@ -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}`)
}

19
jsconfig.json Normal file
View File

@ -0,0 +1,19 @@
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "Bundler",
"target": "ES2020",
"jsx": "react",
"allowImportingTsExtensions": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": [
"node_modules",
"**/node_modules/*"
]
}

107
package.json Normal file
View File

@ -0,0 +1,107 @@
{
"name": "ruoyi-vue-plus",
"version": "4.7.0",
"description": "人机适配性高维数据管理平台",
"author": "LionLi",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"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/dromara/RuoYi-Vue-Plus.git"
},
"dependencies": {
"@logicflow/core": "^2.0.7",
"@logicflow/extension": "^2.0.11",
"@riophae/vue-treeselect": "0.4.0",
"@tweenjs/tween.js": "^25.0.0",
"axios": "0.24.0",
"bignumber.js": "^9.1.2",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"dayjs": "^1.11.10",
"echarts": "^5.4.1",
"el-table-virtual-scroll": "^2.0.1",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"html2canvas": "^1.4.1",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"jspdf": "^2.5.1",
"lodash": "^4.17.21",
"mathlive-chinese": "^0.98.6",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"three": "^0.164.1",
"vue": "2.6.12",
"vue-color": "^2.8.1",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-echarts": "^6.7.1",
"vue-meta": "2.4.0",
"vue-resize": "^1.0.1",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0"
},
"devDependencies": {
"@types/three": "^0.164.0",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-service": "4.4.6",
"@vue/composition-api": "^1.7.2",
"@vue/runtime-dom": "^3.4.23",
"babel-eslint": "10.1.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"chalk": "4.1.0",
"compression-webpack-plugin": "5.0.2",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"html-webpack-plugin": "^5.6.2",
"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"
]
}

BIN
public/J-20.glb Normal file

Binary file not shown.

BIN
public/PL-15E.glb Normal file

Binary file not shown.

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

46
public/html/ie.html Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="23px" height="25px"> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M0.991,7.6 L10.995,1.11 L21.0,7.6 L10.995,12.999 L0.991,7.6 Z"/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M1.21,7.0 L1.21,17.5 L11.10,22.999 L21.0,17.5 L21.0,7.0 "/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M9.999,11.999 L9.999,22.0 "/> </svg>

After

Width:  |  Height:  |  Size: 685 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="26px" height="23px"> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M16.762,1.5 L16.457,1.5 L16.447,1.15 C15.323,1.50 14.220,1.332 13.224,1.847 C12.462,2.239 11.552,2.239 10.787,1.847 C9.684,1.282 8.459,0.990 7.216,1.0 C3.178,1.0 1.0,4.591 1.0,7.953 C1.0,12.556 4.484,16.729 11.353,20.363 C11.783,20.588 12.299,20.588 12.731,20.363 C17.666,17.753 20.864,14.864 22.262,11.709 C22.800,10.520 23.80,9.232 23.80,7.931 C23.80,4.524 20.719,1.5 16.762,1.5 L16.762,1.5 Z"/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="round" stroke-linejoin="miter" fill="none" d="M9.0,9.999 L15.0,9.999 "/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="round" stroke-linejoin="miter" fill="none" d="M12.999,7.999 L12.999,13.999 "/> </svg>

After

Width:  |  Height:  |  Size: 990 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="25px" height="25px"> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M21.783,8.117 L13.909,1.615 C12.784,0.794 11.215,0.794 10.90,1.615 L2.216,8.117 C1.449,8.676 1.0,9.541 1.0,10.457 L2.600,20.44 C2.600,21.676 3.999,23.0 5.725,23.0 L18.274,23.0 C20.0,23.0 21.400,21.676 21.400,20.44 L23.0,10.457 C23.0,9.541 22.550,8.676 21.783,8.117 Z"/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M15.14,18.6 L8.985,18.6 L8.985,12.700 C8.985,11.206 10.239,9.995 11.785,9.995 L12.214,9.995 C13.760,9.995 15.14,11.206 15.14,12.700 L15.14,18.6 Z"/> </svg>

After

Width:  |  Height:  |  Size: 813 B

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1543827393750" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4695" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; }
</style></defs><path d="M64 64V640H896V64H64zM0 0h960v704H0V0z" p-id="4696"></path><path d="M192 896H768v64H192zM448 640H512v256h-64z" p-id="4697"></path><path d="M479.232 561.604267l309.9904-348.330667-47.803733-42.5472-259.566934 291.669333L303.957333 240.008533 163.208533 438.6048l52.224 37.009067 91.6224-129.28z" p-id="4698"></path></svg>

After

Width:  |  Height:  |  Size: 883 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="25px" height="25px"> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M6.999,0.999 L17.0,0.999 C20.313,0.999 23.0,3.686 23.0,6.999 L23.0,17.0 C23.0,20.313 20.313,23.0 17.0,23.0 L6.999,23.0 C3.686,23.0 0.999,20.313 0.999,17.0 L0.999,6.999 C0.999,3.686 3.686,0.999 6.999,0.999 Z"/> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="round" stroke-linejoin="miter" fill="none" d="M11.999,11.999 L22.0,1.999 "/> </svg>

After

Width:  |  Height:  |  Size: 636 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="23px"> <path fill-rule="evenodd" stroke="rgb(255, 255, 255)" stroke-width="2px" stroke-linecap="butt" stroke-linejoin="miter" fill="none" d="M19.263,11.2 C19.263,9.970 19.911,9.95 20.819,8.747 C20.602,7.896 20.267,7.94 19.830,6.357 C18.940,6.753 17.864,6.592 17.136,5.861 C16.407,5.132 16.245,4.55 16.641,3.167 C15.903,2.729 15.101,2.395 14.250,2.178 C13.899,3.86 13.25,3.734 11.995,3.734 C10.963,3.734 10.88,3.86 9.739,2.178 C8.889,2.395 8.87,2.729 7.350,3.167 C7.746,4.57 7.585,5.132 6.856,5.861 C6.127,6.590 5.50,6.751 4.162,6.357 C3.722,7.94 3.387,7.896 3.171,8.747 C4.79,9.97 4.727,9.972 4.727,11.2 C4.727,12.34 4.79,12.909 3.171,13.257 C3.387,14.108 3.722,14.910 4.159,15.646 C5.50,15.251 6.125,15.412 6.854,16.143 C7.583,16.871 7.744,17.949 7.348,18.837 C8.87,19.274 8.889,19.609 9.739,19.826 C10.90,18.918 10.965,18.270 11.995,18.270 C13.27,18.270 13.901,18.918 14.250,19.826 C15.101,19.609 15.903,19.274 16.639,18.837 C16.243,17.947 16.405,16.871 17.134,16.143 C17.862,15.414 18.940,15.252 19.828,15.646 C20.267,14.910 20.602,14.108 20.819,13.257 C19.911,12.909 19.263,12.34 19.263,11.2 ZM11.995,13.425 C10.657,13.425 9.572,12.339 9.572,11.2 C9.572,9.665 10.657,8.579 11.995,8.579 C13.332,8.579 14.417,9.665 14.417,11.2 C14.417,12.339 13.332,13.425 11.995,13.425 Z"/> </svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1553828490559" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1684" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M898.831744 900.517641 103.816972 900.517641c-36.002982 0-65.363683-29.286-65.363683-65.313541l0-554.949184c0-36.041868 29.361725-65.326844 65.363683-65.326844l795.015795 0c36.002982 0 65.198931 29.284977 65.198931 65.326844l0 554.949184C964.030675 871.231641 934.834726 900.517641 898.831744 900.517641L898.831744 900.517641zM103.816972 255.593236c-13.576203 0-24.711821 11.085476-24.711821 24.662703l0 554.949184c0 13.576203 11.136641 24.662703 24.711821 24.662703l795.015795 0c13.577227 0 24.547069-11.086499 24.547069-24.662703l0-554.949184c0-13.577227-10.970866-24.662703-24.547069-24.662703L103.816972 255.593236 103.816972 255.593236zM664.346245 251.774257c-11.161201 0-20.332071-9.080819-20.332071-20.332071l0-101.278661c0-13.576203-11.047614-24.623817-24.699542-24.623817L383.181611 105.539708c-13.576203 0-24.712845 11.04659-24.712845 24.623817l0 101.278661c0 11.252275-9.041934 20.332071-20.332071 20.332071-11.20111 0-20.319791-9.080819-20.319791-20.332071l0-101.278661c0-35.989679 29.323862-65.275679 65.364707-65.275679l236.133022 0c36.06745 0 65.402569 29.284977 65.402569 65.275679l0 101.278661C684.717202 242.694461 675.636383 251.774257 664.346245 251.774257L664.346245 251.774257zM413.233044 521.725502 75.694471 521.725502c-11.163247 0-20.333094-9.117658-20.333094-20.35663 0-11.252275 9.169847-20.332071 20.333094-20.332071l337.538573 0c11.277858 0 20.319791 9.080819 20.319791 20.332071C433.552835 512.607844 424.510902 521.725502 413.233044 521.725502L413.233044 521.725502zM912.894018 521.725502 575.367725 521.725502c-11.213389 0-20.332071-9.117658-20.332071-20.35663 0-11.252275 9.118682-20.332071 20.332071-20.332071l337.526293 0c11.290137 0 20.332071 9.080819 20.332071 20.332071C933.226089 512.607844 924.184155 521.725502 912.894018 521.725502L912.894018 521.725502zM557.56322 634.217552 445.085496 634.217552c-11.213389 0-20.332071-9.079796-20.332071-20.331048l0-168.763658c0-11.251252 9.118682-20.332071 20.332071-20.332071l112.478747 0c11.290137 0 20.370956 9.080819 20.370956 20.332071l0 168.763658C577.934177 625.137757 568.853357 634.217552 557.56322 634.217552L557.56322 634.217552zM465.417567 593.514525l71.827909 0L537.245476 465.454918l-71.827909 0L465.417567 593.514525 465.417567 593.514525z" p-id="1685"></path></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

211
public/index.html Normal file
View File

@ -0,0 +1,211 @@
<!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> -->
<title>
人机适配性高维数据管理平台
</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>

2
public/robots.txt Normal file
View File

@ -0,0 +1,2 @@
User-agent: *
Disallow: /

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
public/sounds/plonk.wav Normal file

Binary file not shown.

118
src/App.vue Normal file
View File

@ -0,0 +1,118 @@
<template>
<div id="app">
<router-view />
</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>
#app .theme-picker {
display: none;
}
.flexRowStart {
display: flex;
flex-direction: row;
align-items: flex-start;
flex-shrink: 0;
}
.flexRowCenter {
display: flex;
flex-direction: row;
align-items: center;
flex-shrink: 0;
}
.flexRowEnd {
display: flex;
flex-direction: row;
align-items: flex-end;
flex-shrink: 0;
}
.flexRowStartCenter {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
flex-shrink: 0;
}
.flexCenterCenter {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
.flexEndCenter {
display: flex;
justify-content: flex-end;
align-items: center;
flex-shrink: 0;
}
.flexRowCenterCenter {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
.flexColumnCenterCenter {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
.flexColumn0Center {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
flex-shrink: 0;
}
.flexSpaceBetweenCenter {
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
}
.flexSpaceBetweenStart {
display: flex;
justify-content: space-between;
align-items: flex-start;
flex-shrink: 0;
}
.flexSpaceBetweenEnd {
display: flex;
justify-content: space-between;
align-items: flex-end;
flex-shrink: 0;
}
/* 针对 Chrome, Safari, Edge, Opera */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* 针对 Firefox */
input[type=number] {
-moz-appearance: textfield;
}
</style>

52
src/api/common.js Normal file
View File

@ -0,0 +1,52 @@
import request from "@/utils/request";
import qs from "querystring";
export const getAction = (url, params) => {
return request({
url,
params,
method: "get",
});
};
export const postAction = (url, data) => {
return request({
url,
data,
method: "post",
});
};
export const putAction = (url, data) => {
return request({
url,
data,
method: "put",
});
};
export const deleteAction = (url, data) => {
return request({
url,
data,
method: "delete",
});
};
export const exportFile = (url, data) => {
return request({
url,
data,
method: "post",
responseType: "blob",
});
};
export const exportFile1 = (url, params) => {
console.log(`${url}`);
return request({
url: `${url}`,
method: "get",
responseType: "blob",
});
};

54
src/api/demo/demo.js Normal file
View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 查询测试单表列表
export function listDemo(query) {
return request({
url: '/demo/demo/list',
method: 'get',
params: query
})
}
// 自定义分页接口
export function pageDemo(query) {
return request({
url: '/demo/demo/page',
method: 'get',
params: query
})
}
// 查询测试单表详细
export function getDemo(id) {
return request({
url: '/demo/demo/' + id,
method: 'get'
})
}
// 新增测试单表
export function addDemo(data) {
return request({
url: '/demo/demo',
method: 'post',
data: data
})
}
// 修改测试单表
export function updateDemo(data) {
return request({
url: '/demo/demo',
method: 'put',
data: data
})
}
// 删除测试单表
export function delDemo(id) {
return request({
url: '/demo/demo/' + id,
method: 'delete'
})
}

44
src/api/demo/tree.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询测试树表列表
export function listTree(query) {
return request({
url: '/demo/tree/list',
method: 'get',
params: query
})
}
// 查询测试树表详细
export function getTree(id) {
return request({
url: '/demo/tree/' + id,
method: 'get'
})
}
// 新增测试树表
export function addTree(data) {
return request({
url: '/demo/tree',
method: 'post',
data: data
})
}
// 修改测试树表
export function updateTree(data) {
return request({
url: '/demo/tree',
method: 'put',
data: data
})
}
// 删除测试树表
export function delTree(id) {
return request({
url: '/demo/tree/' + id,
method: 'delete'
})
}

71
src/api/login.js Normal file
View File

@ -0,0 +1,71 @@
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
},
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
})
}
// 短信验证码
export function getCodeSms() {
return request({
url: '/captchaSms',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}

9
src/api/menu.js Normal file
View File

@ -0,0 +1,9 @@
import request from '@/utils/request'
// 获取路由
export const getRouters = () => {
return request({
url: '/getRouters',
method: 'get'
})
}

57
src/api/monitor/cache.js Normal file
View File

@ -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(cacheName, cacheKey) {
return request({
url: '/monitor/cache/clearCacheKey/'+ cacheName + "/" + cacheKey,
method: 'delete'
})
}
// 清理全部缓存
export function clearCacheAll() {
return request({
url: '/monitor/cache/clearCacheAll',
method: 'delete'
})
}

View File

@ -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'
})
}

18
src/api/monitor/online.js Normal file
View File

@ -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'
})
}

View File

@ -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'
})
}

73
src/api/system/config.js Normal file
View File

@ -0,0 +1,73 @@
import request from '@/utils/request'
// 查询参数列表
export function listConfig(query) {
return request({
url: '/system/config/list',
method: 'get',
params: query
})
}
// 查询参数详细
export function getConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'get'
})
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
return request({
url: '/system/config/configKey/' + configKey,
method: 'get'
})
}
// 新增参数配置
export function addConfig(data) {
return request({
url: '/system/config',
method: 'post',
data: data
})
}
// 修改参数配置
export function updateConfig(data) {
return request({
url: '/system/config',
method: 'put',
data: data
})
}
// 修改参数配置
export function updateConfigByKey(key, value) {
return request({
url: '/system/config/updateByKey',
method: 'put',
data: {
configKey: key,
configValue: value
}
})
}
// 删除参数配置
export function delConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'delete'
})
}
// 刷新参数缓存
export function refreshCache() {
return request({
url: '/system/config/refreshCache',
method: 'delete'
})
}

52
src/api/system/dept.js Normal file
View File

@ -0,0 +1,52 @@
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'
})
}

View File

@ -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'
})
}

View File

@ -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'
})
}

60
src/api/system/menu.js Normal file
View File

@ -0,0 +1,60 @@
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'
})
}

44
src/api/system/notice.js Normal file
View File

@ -0,0 +1,44 @@
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'
})
}

27
src/api/system/oss.js Normal file
View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 查询OSS对象存储列表
export function listOss(query) {
return request({
url: '/system/oss/list',
method: 'get',
params: query
})
}
// 查询OSS对象基于id串
export function listByIds(ossId) {
return request({
url: '/system/oss/listByIds/' + ossId,
method: 'get'
})
}
// 删除OSS对象存储
export function delOss(ossId) {
return request({
url: '/system/oss/' + ossId,
method: 'delete'
})
}

View File

@ -0,0 +1,58 @@
import request from '@/utils/request'
// 查询对象存储配置列表
export function listOssConfig(query) {
return request({
url: '/system/oss/config/list',
method: 'get',
params: query
})
}
// 查询对象存储配置详细
export function getOssConfig(ossConfigId) {
return request({
url: '/system/oss/config/' + ossConfigId,
method: 'get'
})
}
// 新增对象存储配置
export function addOssConfig(data) {
return request({
url: '/system/oss/config',
method: 'post',
data: data
})
}
// 修改对象存储配置
export function updateOssConfig(data) {
return request({
url: '/system/oss/config',
method: 'put',
data: data
})
}
// 删除对象存储配置
export function delOssConfig(ossConfigId) {
return request({
url: '/system/oss/config/' + ossConfigId,
method: 'delete'
})
}
// 对象存储状态修改
export function changeOssConfigStatus(ossConfigId, status, configKey) {
const data = {
ossConfigId,
status,
configKey
}
return request({
url: '/system/oss/config/changeStatus',
method: 'put',
data: data
})
}

44
src/api/system/post.js Normal file
View File

@ -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'
})
}

119
src/api/system/role.js Normal file
View File

@ -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'
})
}

135
src/api/system/user.js Normal file
View File

@ -0,0 +1,135 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";
// 查询用户列表
export function listUser(query) {
return request({
url: '/system/user/list',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({
url: '/system/user/' + parseStrEmpty(userId),
method: 'get'
})
}
// 新增用户
export function addUser(data) {
return request({
url: '/system/user',
method: 'post',
data: data
})
}
// 修改用户
export function updateUser(data) {
return request({
url: '/system/user',
method: 'put',
data: data
})
}
// 删除用户
export function delUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'delete'
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
const data = {
userId,
password
}
return request({
url: '/system/user/resetPwd',
method: 'put',
data: data
})
}
// 用户状态修改
export function changeUserStatus(userId, status) {
const data = {
userId,
status
}
return request({
url: '/system/user/changeStatus',
method: 'put',
data: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword,
newPassword
}
return request({
url: '/system/user/profile/updatePwd',
method: 'put',
params: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return request({
url: '/system/user/profile/avatar',
method: 'post',
data: data
})
}
// 查询授权角色
export function getAuthRole(userId) {
return request({
url: '/system/user/authRole/' + userId,
method: 'get'
})
}
// 保存授权角色
export function updateAuthRole(data) {
return request({
url: '/system/user/authRole',
method: 'put',
params: data
})
}
// 查询部门下拉树结构
export function deptTreeSelect() {
return request({
url: '/system/user/deptTree',
method: 'get'
})
}

86
src/api/tool/gen.js Normal file
View File

@ -0,0 +1,86 @@
import request from '@/utils/request'
// 查询生成表数据
export function listTable(query) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/list',
method: 'get',
params: query
})
}
// 查询db数据库列表
export function listDbTable(query) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/db/list',
method: 'get',
params: query
})
}
// 查询表详细信息
export function getGenTable(tableId) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/' + tableId,
method: 'get'
})
}
// 修改代码生成信息
export function updateGenTable(data) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen',
method: 'put',
data: data
})
}
// 导入表
export function importTable(data) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/importTable',
method: 'post',
params: data
})
}
// 预览生成代码
export function previewTable(tableId) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/preview/' + tableId,
method: 'get'
})
}
// 删除表数据
export function delTable(tableId) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/' + tableId,
method: 'delete'
})
}
// 生成代码(自定义路径)
export function genCode(tableName) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/genCode/' + tableName,
method: 'get'
})
}
// 同步数据库
export function synchDb(tableName) {
return request({
headers: { 'datasource': localStorage.getItem("dataName") },
url: '/tool/gen/synchDb/' + tableName,
method: 'get'
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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)

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64" viewBox="0 0 64 64">
<defs>
<rect id="empty-state-bpmn-a" width="57" height="47" x="3" y="8" rx="7"/>
<mask id="empty-state-bpmn-b" width="57" height="47" x="0" y="0" fill="#fff" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox">
<use xlink:href="#empty-state-bpmn-a"/>
</mask>
</defs>
<g fill="none" fill-rule="evenodd">
<path fill="#818798" d="M52,11 C54.7614237,11 57,13.2385763 57,16 L57,47 C57,49.7614237 54.7614237,52 52,52 L11,52 C8.23857625,52 6,49.7614237 6,47 L6,16 C6,13.2385763 8.23857625,11 11,11 L52,11 Z M52,13 L11,13 C9.40231912,13 8.09633912,14.24892 8.00509269,15.8237272 L8,16 L8,47 C8,48.5976809 9.24891996,49.9036609 10.8237272,49.9949073 L11,50 L52,50 C53.5976809,50 54.9036609,48.75108 54.9949073,47.1762728 L55,47 L55,16 C55,14.4023191 53.75108,13.0963391 52.1762728,13.0050927 L52,13 Z"/>
<rect width="31" height="6" x="16" y="24" fill="#D5D7DD"/>
<rect width="21" height="6" x="21" y="33" fill="#D5D7DD"/>
<use stroke="#B9BCC6" stroke-dasharray="5 2" stroke-width="2" mask="url(#empty-state-bpmn-b)" xlink:href="#empty-state-bpmn-a"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<line x1="1.5" y1="30.5" x2="30.5" y2="1.5" stroke="#000" stroke-width="2" fill="none" stroke-dasharray="3.3,6" stroke-linecap="square"/>
</svg>

After

Width:  |  Height:  |  Size: 233 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g transform="translate(0 3)">
<path d="M6.49417317,0 C2.91556567,0 0,2.90326667 0,6.475 L0,19.8583333 C0,23.4300667 2.91556567,26.3333333 6.49417317,26.3333333 L25.5058267,26.3333333 C29.084435,26.3333333 32,23.4300667 32,19.8583333 L32,6.475 C32,2.90326667 29.084435,0 25.5058267,0 L6.49417317,0 Z M6.49417317,2 L25.5058267,2 C28.0147767,2 30,3.98043383 30,6.475 L30,19.8583333 C30,22.3529 28.0147767,24.3333333 25.5058267,24.3333333 L6.49417317,24.3333333 C3.98522267,24.3333333 2,22.3529 2,19.8583333 L2,6.475 C2,3.98043383 3.98522267,2 6.49417317,2 Z M5.29550783,4.39847 L5.29550783,17.0631183 L22.1658533,17.0631183 L22.1658533,4.39847 L5.29550783,4.39847 Z M6.01393233,8.78356117 L21.4474617,8.78356117 L21.4474617,12.223405 L9.984668,12.223405 L9.984668,8.79205733 L9.2662435,8.79205733 L9.2662435,12.223405 L6.01393233,12.223405 L6.01393233,8.78356117 Z M6.01393233,12.9418295 L9.2662435,12.9418295 L9.2662435,16.3446933 L6.01393233,16.3446933 L6.01393233,12.9418295 Z M9.984668,12.9418295 L21.4474617,12.9418295 L21.4474617,16.3446933 L9.984668,16.3446933 L9.984668,12.9418295 Z"/>
<polygon points="6.079 5.209 6.079 8.796 21.44 8.796 21.44 5.209"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M24.9777017,3 C28.7394332,3 31.8671909,5.97871378 31.9958815,9.6951347 L32,9.93333333 L32,22.4 C32,26.1467982 28.9506116,29.2035703 25.2169284,29.3293096 L24.9777017,29.3333333 L7.02229817,29.3333333 C3.26056733,29.3333333 0.132809099,26.3546196 0.00411853569,22.6381986 L0,22.4 L0,9.93333333 C0,6.18653511 3.04938883,3.12976304 6.78307145,3.00402375 L7.02229817,3 L24.9777017,3 Z M24.9777017,6.66666667 L7.02229817,6.66666667 C5.18048424,6.66666667 3.76707783,8.01129037 3.67179155,9.74602016 L3.66666667,9.93333333 L3.66666667,22.4 C3.66666667,24.1613769 5.01656225,25.5667378 6.8266408,25.6615649 L7.02229817,25.6666667 L10,25.666 L10,15 L22,15 L22,25.666 L24.9777017,25.6666667 C26.8195159,25.6666667 28.2329222,24.3220428 28.3282084,22.5873132 L28.3333333,22.4 L28.3333333,9.93333333 C28.3333333,8.17195632 26.9834379,6.76659548 25.1733591,6.67176843 L24.9777017,6.66666667 Z M21.2457143,15.7542857 L10.7542857,15.7542857 L10.754,25.666 L21.245,25.666 L21.2457143,15.7542857 Z M16.7714286,17.5714286 L16.7714286,20.2285714 L19.4285714,20.2285714 L19.4285714,21.7714286 L16.7714286,21.7714286 L16.7714286,24.4285714 L15.2285714,24.4285714 L15.2285714,21.7714286 L12.5714286,21.7714286 L12.5714286,20.2285714 L15.2285714,20.2285714 L15.2285714,17.5714286 L16.7714286,17.5714286 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill-rule="evenodd">
<path fill-rule="nonzero" d="M0 0L0 8.62 32 8.62 32 0 0 0zM1.65517241 7.05446983L1.65517241 1.68446983 30.2758621 1.68446983 30.2758621 1.68446983 30.2758621 7.05446983 1.65517241 7.05446983zM0 23.38L0 32 32 32 32 23.38 0 23.38zM1.65517241 30.43447L1.65517241 25.06447 30.2758621 25.06447 30.2758621 25.06447 30.2758621 30.43447 1.65517241 30.43447z"/>
<path d="M24,8 L28,15 L20,15 L24,8 Z M24,10 L21.72,14 L26.28,14 L24,10 Z"/>
<rect width="1" height="3" x="23.5" y="21"/>
<rect width="1" height="3" x="23.5" y="15"/>
<path d="M8,24 L4,17 L12,17 L8,24 Z M8,22 L10.28,18 L5.72,18 L8,22 Z"/>
<rect width="1" height="3" x="7.5" y="8"/>
<rect width="1" height="3" x="7.5" y="14"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 830 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M32,0 C32,0 20.4194917,5.90888659 14.5369837,8.67185832 C15.7971407,9.82263411 16.9692569,11.063825 18.1852343,12.2601495 C12.4817021,18.0397893 15.0344038,15.563022 10.0977868,20.5757277 L1.62601217,21.952516 L2.2487726e-15,31.9588947 L10.0064183,30.3329207 L10.1035819,29.7348341 L11.3828572,21.8619573 C16.358497,16.8101278 13.785979,19.3071147 19.500632,13.516206 C20.7188624,14.7301375 21.9302072,15.9509081 23.1488826,17.1644564 C26.290901,10.9765251 32,0 32,0 Z M9.60269704,22.3561195 L8.5411608,28.8675083 L2.02969487,29.9290837 L3.09126968,23.413909 L9.60269704,22.3561195 Z" transform="translate(0 .041)"/>
</svg>

After

Width:  |  Height:  |  Size: 719 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M32,0 C32,0 20.3308185,5.95413115 14.4032705,8.73825818 C15.6730764,9.89784518 16.8541675,11.1485404 18.0794556,12.3540247 C12.0529976,18.4608998 6.02645794,24.5676573 2.26599131e-15,30.6745304 C0.441940276,31.0962868 0.883529352,31.517826 1.32546963,31.9395825 C7.35192757,25.8327074 13.3784672,19.7265738 19.4049252,13.6196987 C20.6324835,14.842925 21.8531035,16.0730433 23.0811102,17.2958838 C26.2471868,11.0605729 32,0 32,0 Z" transform="translate(0 .06)"/>
</svg>

After

Width:  |  Height:  |  Size: 564 B

View File

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<line x1="1.5" y1="30.5" x2="27" y2="5" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-dasharray="1.1,4.3"/>
<polygon fill="#000" points="31.8033009 0.196699141 26.5 16.1066017 24.9797204 14.5863221 28.7627417 3.2372583 17.4136779 7.02027958 15.8933983 5.5"/>
</svg>

After

Width:  |  Height:  |  Size: 373 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<path d="M17.3449687,0 C11.5633135,0 5.78165617,0 0,0 L0,32 L24.5120942,32 L24.5120942,7.35976687 C22.1230517,4.90651118 19.7340112,2.45325569 17.3449687,0 Z M15.2400597,1.81793745 L15.2400597,9.32497766 L22.6941567,9.32497766 L22.6941567,30.1820625 L1.81793745,30.1820625 L1.81793745,1.81793745 C6.29197828,1.81793745 10.7660193,1.81793745 15.2400597,1.81793745 Z M17.0579972,2.31104511 L22.1180019,7.5070402 L17.0579972,7.5070402 L17.0579972,2.31104511 Z M7.87619038,3.17164599 L7.87619038,4.10546936 L7.87619038,6.91463256 L3.59322751,6.91463256 L3.59322751,10.1373685 L7.87619038,10.1373685 L7.87619038,13.8803944 L13.575433,8.52600041 L7.87619038,3.17164599 Z M8.68416258,5.03933211 L12.39543,8.52600041 L8.68416258,12.0126689 L8.68416258,9.32939625 L4.40119971,9.32939625 L4.40119971,7.72260476 L8.68416258,7.72260476 L8.68416258,5.03933211 Z" transform="translate(3.488)"/>
</svg>

After

Width:  |  Height:  |  Size: 974 B

Some files were not shown because too many files have changed in this diff Show More