chenjun 3 rokov pred
commit
f91f2233b5
100 zmenil súbory, kde vykonal 2710 pridanie a 0 odobranie
  1. 14 0
      .editorconfig
  2. 5 0
      .env.development
  3. 6 0
      .env.production
  4. 8 0
      .env.staging
  5. 4 0
      .eslintignore
  6. 198 0
      .eslintrc.js
  7. 17 0
      .gitignore
  8. 5 0
      .travis.yml
  9. 21 0
      LICENSE
  10. 111 0
      README-zh.md
  11. 99 0
      README.md
  12. 14 0
      babel.config.js
  13. 35 0
      build/index.js
  14. 24 0
      jest.config.js
  15. 9 0
      jsconfig.json
  16. 156 0
      mock/gateway.js
  17. 61 0
      mock/index.js
  18. 26 0
      mock/log.js
  19. 81 0
      mock/mock-server.js
  20. 29 0
      mock/table.js
  21. 84 0
      mock/user.js
  22. 25 0
      mock/utils.js
  23. 67 0
      package.json
  24. 8 0
      postcss.config.js
  25. 5 0
      public/config.js
  26. BIN
      public/favicon.ico
  27. 18 0
      public/index.html
  28. 32 0
      src/App.vue
  29. 79 0
      src/api/Account.js
  30. 89 0
      src/api/AccountGroup.js
  31. 198 0
      src/api/SystemSettings.js
  32. 206 0
      src/api/acquisition.js
  33. 210 0
      src/api/apiAuthority.js
  34. 72 0
      src/api/apiHome.js
  35. 64 0
      src/api/apidataCollection.js
  36. 21 0
      src/api/dataIntegration.js
  37. 198 0
      src/api/flight.js
  38. 33 0
      src/api/gateway.js
  39. 64 0
      src/api/login.js
  40. 203 0
      src/api/postInterface.js
  41. 70 0
      src/api/systemConfiguration.js
  42. 17 0
      src/api/table.js
  43. 24 0
      src/api/user.js
  44. BIN
      src/assets/404_images/404.png
  45. BIN
      src/assets/404_images/404_cloud.png
  46. BIN
      src/assets/account/ic_user_permissions_default.png
  47. BIN
      src/assets/departure/ic_setting.png
  48. BIN
      src/assets/departure/ic_time.png
  49. BIN
      src/assets/fonts/Helvetica/Helvetica Bold Oblique.ttf
  50. BIN
      src/assets/fonts/Helvetica/Helvetica Bold Oblique_0.ttf
  51. BIN
      src/assets/fonts/Helvetica/Helvetica Bold.ttf
  52. BIN
      src/assets/fonts/Helvetica/Helvetica Bold_0.ttf
  53. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic.ttf
  54. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic_0.ttf
  55. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold.ttf
  56. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold_0.ttf
  57. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Italic.ttf
  58. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Italic_0.ttf
  59. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed.ttf
  60. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed_0.ttf
  61. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty.ttf
  62. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty_0.ttf
  63. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique.ttf
  64. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique_0.ttf
  65. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold.ttf
  66. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold_0.ttf
  67. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Lefty.ttf
  68. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Lefty_0.ttf
  69. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Oblique.ttf
  70. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Oblique_0.ttf
  71. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow.ttf
  72. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow_0.ttf
  73. BIN
      src/assets/fonts/Helvetica/Helvetica Oblique.ttf
  74. BIN
      src/assets/fonts/Helvetica/Helvetica Oblique_0.ttf
  75. BIN
      src/assets/fonts/Helvetica/Helvetica-Black-SemiBold.ttf
  76. BIN
      src/assets/fonts/Helvetica/Helvetica-Black-SemiBold_0.ttf
  77. BIN
      src/assets/fonts/Helvetica/Helvetica-BoldOblique.ttf
  78. BIN
      src/assets/fonts/Helvetica/Helvetica-BoldOblique_0.ttf
  79. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se.ttf
  80. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se_0.ttf
  81. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li.ttf
  82. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li_0.ttf
  83. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light.ttf
  84. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light_0.ttf
  85. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Thin.ttf
  86. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Thin_0.ttf
  87. BIN
      src/assets/fonts/Helvetica/Helvetica-Conth.ttf
  88. BIN
      src/assets/fonts/Helvetica/Helvetica-Conth_0.ttf
  89. BIN
      src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic.ttf
  90. BIN
      src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic_0.ttf
  91. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-Bold.ttf
  92. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique.ttf
  93. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique_0.ttf
  94. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-Bold_0.ttf
  95. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow.ttf
  96. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow_0.ttf
  97. BIN
      src/assets/fonts/Helvetica/Helvetica-Roman-SemiB.ttf
  98. BIN
      src/assets/fonts/Helvetica/Helvetica-Roman-SemiB_0.ttf
  99. BIN
      src/assets/fonts/Helvetica/Helvetica.ttf
  100. BIN
      src/assets/fonts/Helvetica/HelveticaExt-Normal.ttf

+ 14 - 0
.editorconfig

@@ -0,0 +1,14 @@
+# http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false

+ 5 - 0
.env.development

@@ -0,0 +1,5 @@
+# just a flag
+ENV = 'development'
+
+# base api
+VUE_APP_BASE_API = '/dev-api'

+ 6 - 0
.env.production

@@ -0,0 +1,6 @@
+# just a flag
+ENV = 'production'
+
+# base api
+VUE_APP_BASE_API = '/prod-api'
+

+ 8 - 0
.env.staging

@@ -0,0 +1,8 @@
+NODE_ENV = production
+
+# just a flag
+ENV = 'staging'
+
+# base api
+VUE_APP_BASE_API = '/stage-api'
+

+ 4 - 0
.eslintignore

@@ -0,0 +1,4 @@
+build/*.js
+src/assets
+public
+dist

+ 198 - 0
.eslintrc.js

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

+ 17 - 0
.gitignore

@@ -0,0 +1,17 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+package-lock.json
+tests/**/coverage/
+dist.zip
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln

+ 5 - 0
.travis.yml

@@ -0,0 +1,5 @@
+language: node_js
+node_js: 10
+script: npm run test
+notifications:
+  email: false

+ 21 - 0
LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-present PanJiaChen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 111 - 0
README-zh.md

@@ -0,0 +1,111 @@
+# vue-admin-template
+
+> 这是一个极简的 vue admin 管理后台。它只包含了 Element UI & axios & iconfont & permission control & lint,这些搭建后台必要的东西。
+
+[线上地址](http://panjiachen.github.io/vue-admin-template)
+
+[国内访问](https://panjiachen.gitee.io/vue-admin-template)
+
+目前版本为 `v4.0+` 基于 `vue-cli` 进行构建,若你想使用旧版本,可以切换分支到[tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0),它不依赖 `vue-cli`。
+
+<p align="center">
+  <b>SPONSORED BY</b>
+</p>
+<p align="center">
+   <a href="https://finclip.com?from=vue_element" title="FinClip" target="_blank">
+      <img height="200px" src="https://gitee.com/panjiachen/gitee-cdn/raw/master/vue%E8%B5%9E%E5%8A%A9.png" title="FinClip">
+   </a>
+</p>
+
+## Extra
+
+如果你想要根据用户角色来动态生成侧边栏和 router,你可以使用该分支[permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
+
+## 相关项目
+
+- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
+
+- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
+
+- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
+
+- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
+
+写了一个系列的教程配套文章,如何从零构建后一个完整的后台项目:
+
+- [手摸手,带你用 vue 撸后台 系列一(基础篇)](https://juejin.im/post/59097cd7a22b9d0065fb61d2)
+- [手摸手,带你用 vue 撸后台 系列二(登录权限篇)](https://juejin.im/post/591aa14f570c35006961acac)
+- [手摸手,带你用 vue 撸后台 系列三 (实战篇)](https://juejin.im/post/593121aa0ce4630057f70d35)
+- [手摸手,带你用 vue 撸后台 系列四(vueAdmin 一个极简的后台基础模板,专门针对本项目的文章,算作是一篇文档)](https://juejin.im/post/595b4d776fb9a06bbe7dba56)
+- [手摸手,带你封装一个 vue component](https://segmentfault.com/a/1190000009090836)
+
+## Build Setup
+
+```bash
+# 克隆项目
+git clone https://github.com/PanJiaChen/vue-admin-template.git
+
+# 进入项目目录
+cd vue-admin-template
+
+# 安装依赖
+npm install
+
+# 建议不要直接使用 cnpm 安装以来,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
+npm install --registry=https://registry.npm.taobao.org
+
+# 启动服务
+npm run dev
+```
+
+浏览器访问 [http://localhost:9528](http://localhost:9528)
+
+## 发布
+
+```bash
+# 构建测试环境
+npm run build:stage
+
+# 构建生产环境
+npm run build:prod
+```
+
+## 其它
+
+```bash
+# 预览发布环境效果
+npm run preview
+
+# 预览发布环境效果 + 静态资源分析
+npm run preview -- --report
+
+# 代码格式检查
+npm run lint
+
+# 代码格式检查并自动修复
+npm run lint -- --fix
+```
+
+更多信息请参考 [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/)
+
+## 购买贴纸
+
+你也可以通过 购买[官方授权的贴纸](https://smallsticker.com/product/vue-element-admin) 的方式来支持 vue-element-admin - 每售出一张贴纸,我们将获得 2 元的捐赠。
+
+## Demo
+
+![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
+
+## Browsers support
+
+Modern browsers and Internet Explorer 10+.
+
+| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
+| --------- | --------- | --------- | --------- |
+| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
+
+## License
+
+[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
+
+Copyright (c) 2017-present PanJiaChen

+ 99 - 0
README.md

@@ -0,0 +1,99 @@
+# vue-admin-template
+
+English | [简体中文](./README-zh.md)
+
+> A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
+
+**Live demo:** http://panjiachen.github.io/vue-admin-template
+
+
+**The current version is `v4.0+` build on `vue-cli`. If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0), it does not rely on `vue-cli`**
+
+<p align="center">
+  <b>SPONSORED BY</b>
+</p>
+<p align="center">
+   <a href="https://finclip.com?from=vue_element" title="FinClip" target="_blank">
+      <img height="200px" src="https://gitee.com/panjiachen/gitee-cdn/raw/master/vue%E8%B5%9E%E5%8A%A9.png" title="FinClip">
+   </a>
+</p>
+
+## Build Setup
+
+```bash
+# clone the project
+git clone https://github.com/PanJiaChen/vue-admin-template.git
+
+# enter the project directory
+cd vue-admin-template
+
+# install dependency
+npm install
+
+# develop
+npm run dev
+```
+
+This will automatically open http://localhost:9528
+
+## Build
+
+```bash
+# build for test environment
+npm run build:stage
+
+# build for production environment
+npm run build:prod
+```
+
+## Advanced
+
+```bash
+# preview the release environment effect
+npm run preview
+
+# preview the release environment effect + static resource analysis
+npm run preview -- --report
+
+# code format check
+npm run lint
+
+# code format check and auto fix
+npm run lint -- --fix
+```
+
+Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information
+
+## Demo
+
+![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
+
+## Extra
+
+If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
+
+For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
+
+## Related Project
+
+- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
+
+- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
+
+- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
+
+- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
+
+## Browsers support
+
+Modern browsers and Internet Explorer 10+.
+
+| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
+| --------- | --------- | --------- | --------- |
+| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
+
+## License
+
+[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
+
+Copyright (c) 2017-present PanJiaChen

+ 14 - 0
babel.config.js

@@ -0,0 +1,14 @@
+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.
+      // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
+      'plugins': ['dynamic-import-node']
+    }
+  }
+}

+ 35 - 0
build/index.js

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

+ 24 - 0
jest.config.js

@@ -0,0 +1,24 @@
+module.exports = {
+  moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
+  transform: {
+    '^.+\\.vue$': 'vue-jest',
+    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
+      'jest-transform-stub',
+    '^.+\\.jsx?$': 'babel-jest'
+  },
+  moduleNameMapper: {
+    '^@/(.*)$': '<rootDir>/src/$1'
+  },
+  snapshotSerializers: ['jest-serializer-vue'],
+  testMatch: [
+    '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
+  ],
+  collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
+  coverageDirectory: '<rootDir>/tests/unit/coverage',
+  // 'collectCoverage': true,
+  'coverageReporters': [
+    'lcov',
+    'text-summary'
+  ],
+  testURL: 'http://localhost/'
+}

+ 9 - 0
jsconfig.json

@@ -0,0 +1,9 @@
+{
+  "compilerOptions": {
+    "baseUrl": "./",
+    "paths": {
+        "@/*": ["src/*"]
+    }
+  },
+  "exclude": ["node_modules", "dist"]
+}

+ 156 - 0
mock/gateway.js

@@ -0,0 +1,156 @@
+const Mock = require('mockjs')
+
+const PROTOCOLS = ['http', 'https', 'MQ', 'FTP']
+const APITYPE = ['post', 'get', 'head', 'put', 'delete', 'options', 'trace', 'connect']
+const DATATYPE = ['number', 'string', 'boolean', 'array', 'object']
+
+module.exports = [
+  {
+    url: '/vue-admin-template/gateway/interface/list',
+    type: 'get',
+    response: config => {
+      const data = Mock.mock({
+        'items|11': [{
+          'id|+1': 1,
+          title: '@word(4, 10)',
+          description: '/api/@word(10,20)/@word(5,10)',
+          'protocol|1': PROTOCOLS,
+          flag: '@boolean'
+        }]
+      })
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          items: items
+        }
+      }
+    }
+  },
+  {
+    url: '/vue-admin-template/gateway/limit/list',
+    type: 'get',
+    response: config => {
+      const data = Mock.mock({
+        'items|11': [{
+          'id|+1': 1,
+          title: '@word(4, 10)',
+          visitTimes: '@natural(0, 30000)',
+          visitDuration: '@natural(0, 100)',
+          inBlacklist: '@boolean',
+          flag: '@boolean'
+        }]
+      })
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          items: items
+        }
+      }
+    }
+  },
+  {
+    url: '/vue-admin-template/gateway/circuit-break/list',
+    type: 'get',
+    response: config => {
+      const data = Mock.mock({
+        'items|11': [{
+          'id|+1': 1,
+          title: '@word(4, 10)',
+          circuitBreakDuration: '@natural(1, 100)',
+          timeoutPeriod: '@natural(1, 100)',
+          circuitBreakStandard: '@natural(1, 10)',
+          interfaceBinding: '@natural(0, 10)',
+          flag: '@boolean'
+        }]
+      })
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          items: items
+        }
+      }
+    }
+  },
+  {
+    url: '/vue-admin-template/gateway/document/list',
+    type: 'get',
+    response: config => {
+      const data = Mock.mock({
+        'items|11': [{
+          'id|+1': 265912187337729,
+          name: '/api/@word(10,20)/@word(5,10)',
+          'protocol|1': PROTOCOLS,
+          'type|1': APITYPE,
+          time: '@datetime("yyyy/MM/dd HH:mm:ss")',
+          method() {
+            return this.name
+          },
+          description() {
+            return this.name
+          },
+          params: {
+            'input|0-2': [
+              {
+                name: '@word(4,10)',
+                'type|1': DATATYPE,
+                length: '@natural(1,100)',
+                default() {
+                  switch (this.type) {
+                    case 'number':
+                      return 1
+                    case 'string':
+                      return 'AAA'
+                    case 'boolean':
+                      return 'true'
+                    case 'array':
+                      return '[]'
+                    case 'object':
+                      return '{}'
+                  }
+                },
+                reference: '无',
+                required: '@boolean',
+                superior: '',
+                description: '@csentence'
+              }
+            ],
+            'output|0-2': [
+              {
+                name: '@word(4,10)',
+                'type|1': DATATYPE,
+                length: '@natural(1,100)',
+                default() {
+                  switch (this.type) {
+                    case 'number':
+                      return 1
+                    case 'string':
+                      return 'AAA'
+                    case 'boolean':
+                      return 'true'
+                    case 'array':
+                      return '[]'
+                    case 'object':
+                      return '{}'
+                  }
+                },
+                reference: '无',
+                superior: '',
+                description: '@csentence'
+              }
+            ]
+          }
+        }]
+      })
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          items: items
+        }
+      }
+    }
+  }
+]

+ 61 - 0
mock/index.js

@@ -0,0 +1,61 @@
+const Mock = require('mockjs')
+const { param2Obj } = require('./utils')
+
+const user = require('./user')
+const table = require('./table')
+const log = require('./log')
+const gateway = require('./gateway')
+
+const mocks = [
+  ...user,
+  ...table,
+  ...log,
+  ...gateway
+]
+
+// for front mock
+// please use it cautiously, it will redefine XMLHttpRequest,
+// which will cause many of your third-party libraries to be invalidated(like progress event).
+function mockXHR() {
+  // mock patch
+  // https://github.com/nuysoft/Mock/issues/300
+  Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
+  Mock.XHR.prototype.send = function() {
+    if (this.custom.xhr) {
+      this.custom.xhr.withCredentials = this.withCredentials || false
+
+      if (this.responseType) {
+        this.custom.xhr.responseType = this.responseType
+      }
+    }
+    this.proxy_send(...arguments)
+  }
+
+  function XHR2ExpressReqWrap(respond) {
+    return function(options) {
+      let result = null
+      if (respond instanceof Function) {
+        const { body, type, url } = options
+        // https://expressjs.com/en/4x/api.html#req
+        result = respond({
+          method: type,
+          body: JSON.parse(body),
+          query: param2Obj(url)
+        })
+      } else {
+        result = respond
+      }
+      return Mock.mock(result)
+    }
+  }
+
+  for (const i of mocks) {
+    Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
+  }
+}
+
+module.exports = {
+  mocks,
+  mockXHR
+}
+

+ 26 - 0
mock/log.js

@@ -0,0 +1,26 @@
+const Mock = require('mockjs')
+
+module.exports = [
+  {
+    url: '/vue-admin-template/log/list',
+    type: 'get',
+    response: config => {
+      const data = Mock.mock({
+        'items|9': [{
+          content: '@csentence',
+          category: '@word(2, 3)',
+          level: '@integer(1, 3)',
+          time: '@datetime'
+        }]
+      })
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          total: 9 * 10,
+          items: items
+        }
+      }
+    }
+  }
+]

+ 81 - 0
mock/mock-server.js

@@ -0,0 +1,81 @@
+const chokidar = require('chokidar')
+const bodyParser = require('body-parser')
+const chalk = require('chalk')
+const path = require('path')
+const Mock = require('mockjs')
+
+const mockDir = path.join(process.cwd(), 'mock')
+
+function registerRoutes(app) {
+  let mockLastIndex
+  const { mocks } = require('./index.js')
+  const mocksForServer = mocks.map(route => {
+    return responseFake(route.url, route.type, route.response)
+  })
+  for (const mock of mocksForServer) {
+    app[mock.type](mock.url, mock.response)
+    mockLastIndex = app._router.stack.length
+  }
+  const mockRoutesLength = Object.keys(mocksForServer).length
+  return {
+    mockRoutesLength: mockRoutesLength,
+    mockStartIndex: mockLastIndex - mockRoutesLength
+  }
+}
+
+function unregisterRoutes() {
+  Object.keys(require.cache).forEach(i => {
+    if (i.includes(mockDir)) {
+      delete require.cache[require.resolve(i)]
+    }
+  })
+}
+
+// for mock server
+const responseFake = (url, type, respond) => {
+  return {
+    url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
+    type: type || 'get',
+    response(req, res) {
+      console.log('request invoke:' + req.path)
+      res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
+    }
+  }
+}
+
+module.exports = app => {
+  // parse app.body
+  // https://expressjs.com/en/4x/api.html#req.body
+  app.use(bodyParser.json())
+  app.use(bodyParser.urlencoded({
+    extended: true
+  }))
+
+  const mockRoutes = registerRoutes(app)
+  var mockRoutesLength = mockRoutes.mockRoutesLength
+  var mockStartIndex = mockRoutes.mockStartIndex
+
+  // watch files, hot reload mock server
+  chokidar.watch(mockDir, {
+    ignored: /mock-server/,
+    ignoreInitial: true
+  }).on('all', (event, path) => {
+    if (event === 'change' || event === 'add') {
+      try {
+        // remove mock routes stack
+        app._router.stack.splice(mockStartIndex, mockRoutesLength)
+
+        // clear routes cache
+        unregisterRoutes()
+
+        const mockRoutes = registerRoutes(app)
+        mockRoutesLength = mockRoutes.mockRoutesLength
+        mockStartIndex = mockRoutes.mockStartIndex
+
+        console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed  ${path}`))
+      } catch (error) {
+        console.log(chalk.redBright(error))
+      }
+    }
+  })
+}

+ 29 - 0
mock/table.js

@@ -0,0 +1,29 @@
+const Mock = require('mockjs')
+
+const data = Mock.mock({
+  'items|30': [{
+    id: '@id',
+    title: '@sentence(10, 20)',
+    'status|1': ['published', 'draft', 'deleted'],
+    author: 'name',
+    display_time: '@datetime',
+    pageviews: '@integer(300, 5000)'
+  }]
+})
+
+module.exports = [
+  {
+    url: '/vue-admin-template/table/list',
+    type: 'get',
+    response: config => {
+      const items = data.items
+      return {
+        code: 20000,
+        data: {
+          total: items.length,
+          items: items
+        }
+      }
+    }
+  }
+]

+ 84 - 0
mock/user.js

@@ -0,0 +1,84 @@
+
+const tokens = {
+  admin: {
+    token: 'admin-token'
+  },
+  editor: {
+    token: 'editor-token'
+  }
+}
+
+const users = {
+  'admin-token': {
+    roles: ['admin'],
+    introduction: 'I am a super administrator',
+    avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
+    name: 'Super Admin'
+  },
+  'editor-token': {
+    roles: ['editor'],
+    introduction: 'I am an editor',
+    avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
+    name: 'Normal Editor'
+  }
+}
+
+module.exports = [
+  // user login
+  {
+    url: '/vue-admin-template/user/login',
+    type: 'post',
+    response: config => {
+      const { username } = config.body
+      const token = tokens[username]
+
+      // mock error
+      if (!token) {
+        return {
+          code: 60204,
+          message: 'Account and password are incorrect.'
+        }
+      }
+
+      return {
+        code: 20000,
+        data: token
+      }
+    }
+  },
+
+  // get user info
+  {
+    url: '/vue-admin-template/user/info\.*',
+    type: 'get',
+    response: config => {
+      const { token } = config.query
+      const info = users[token]
+
+      // mock error
+      if (!info) {
+        return {
+          code: 50008,
+          message: 'Login failed, unable to get user details.'
+        }
+      }
+
+      return {
+        code: 20000,
+        data: info
+      }
+    }
+  },
+
+  // user logout
+  {
+    url: '/vue-admin-template/user/logout',
+    type: 'post',
+    response: _ => {
+      return {
+        code: 20000,
+        data: 'success'
+      }
+    }
+  }
+]

+ 25 - 0
mock/utils.js

@@ -0,0 +1,25 @@
+/**
+ * @param {string} url
+ * @returns {Object}
+ */
+function param2Obj(url) {
+  const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
+  if (!search) {
+    return {}
+  }
+  const obj = {}
+  const searchArr = search.split('&')
+  searchArr.forEach(v => {
+    const index = v.indexOf('=')
+    if (index !== -1) {
+      const name = v.substring(0, index)
+      const val = v.substring(index + 1, v.length)
+      obj[name] = val
+    }
+  })
+  return obj
+}
+
+module.exports = {
+  param2Obj
+}

+ 67 - 0
package.json

@@ -0,0 +1,67 @@
+{
+  "name": "vue-admin-template",
+  "version": "4.4.0",
+  "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
+  "author": "Pan <panfree23@gmail.com>",
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build:prod": "vue-cli-service build",
+    "build:stage": "vue-cli-service build --mode staging",
+    "preview": "node build/index.js --preview",
+    "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
+    "lint": "eslint --ext .js,.vue src",
+    "test:unit": "jest --clearCache && vue-cli-service test:unit",
+    "test:ci": "npm run lint && npm run test:unit"
+  },
+  "dependencies": {
+    "axios": "0.18.1",
+    "core-js": "3.6.5",
+    "crypto-js": "^4.1.1",
+    "echarts": "^5.2.0",
+    "element-ui": "^2.15.6",
+    "js-cookie": "2.2.0",
+    "lodash": "^4.17.21",
+    "normalize.css": "7.0.0",
+    "nprogress": "0.2.0",
+    "path-to-regexp": "2.4.0",
+    "vue": "2.6.10",
+    "vue-json-viewer": "^2.2.21",
+    "vue-router": "3.0.6",
+    "vue2-org-tree": "^1.3.5",
+    "vuex": "3.1.0"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "4.4.4",
+    "@vue/cli-plugin-eslint": "4.4.4",
+    "@vue/cli-plugin-unit-jest": "4.4.4",
+    "@vue/cli-service": "4.4.4",
+    "@vue/test-utils": "1.0.0-beta.29",
+    "autoprefixer": "9.5.1",
+    "babel-eslint": "10.1.0",
+    "babel-jest": "23.6.0",
+    "babel-plugin-dynamic-import-node": "2.3.3",
+    "chalk": "2.4.2",
+    "connect": "3.6.6",
+    "eslint": "6.7.2",
+    "eslint-plugin-vue": "6.2.2",
+    "html-webpack-plugin": "3.2.0",
+    "mockjs": "1.0.1-beta3",
+    "runjs": "4.3.2",
+    "sass": "^1.26.8",
+    "sass-loader": "8.0.2",
+    "script-ext-html-webpack-plugin": "2.1.3",
+    "serve-static": "1.13.2",
+    "svg-sprite-loader": "4.1.3",
+    "svgo": "1.2.2",
+    "vue-template-compiler": "2.6.10"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ],
+  "engines": {
+    "node": ">=8.9",
+    "npm": ">= 3.0.0"
+  },
+  "license": "MIT"
+}

+ 8 - 0
postcss.config.js

@@ -0,0 +1,8 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+  'plugins': {
+    // to edit target browsers: use "browserslist" field in package.json
+    'autoprefixer': {}
+  }
+}

+ 5 - 0
public/config.js

@@ -0,0 +1,5 @@
+var PLATFROM_CONFIG = {};
+PLATFROM_CONFIG.baseUrl = "http://106.14.243.117:9111" // http请求地址
+PLATFROM_CONFIG.appSecret = "9inu7zpllz1folzsljm498dcpi0lsog1" //appSecret
+PLATFROM_CONFIG.appId = "q7kdjmmaf0kerwpf" //appid
+PLATFROM_CONFIG.baseURLCA = 'http://192.168.3.74:8088'

BIN
public/favicon.ico


+ 18 - 0
public/index.html

@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <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 src="<%= BASE_URL %>config.js"></script>
+  </head>
+  <body>
+    <noscript>
+      <strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 32 - 0
src/App.vue

@@ -0,0 +1,32 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-10-14 17:17:53
+ * @LastEditTime: 2022-03-09 11:41:56
+ * @LastEditors: your name
+ * @Description: In User Settings Edit
+ * @FilePath: \Foshan4A\src\App.vue
+-->
+<template>
+  <div id="app">
+    <router-view />
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'App',
+  watch: {
+    $route: {
+      // 监听路由变化 一级菜单时清除子路由缓存的数据
+      handler: function (val) {
+        const path = val.path.split('/')
+        if (path.length <= 2) {
+          sessionStorage.removeItem('collectionData')
+          sessionStorage.removeItem('editIBMMQ')
+        }
+      },
+      deep: true
+    }
+  }
+}
+</script>

+ 79 - 0
src/api/Account.js

@@ -0,0 +1,79 @@
+/*
+ * @Author: Badguy
+ * @Date: 2022-02-14 09:37:11
+ * @LastEditTime: 2022-02-24 14:47:46
+ * @LastEditors: Please set LastEditors
+ * @Description: 账户管理api
+ * have a nice day!
+ */
+import request from '@/utils/request-4a'
+
+// 账号列表查询
+export function GetAccountList (params) {
+  return request({
+    url: '/api/fs4a/GetUserList/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 账号状态变更
+export function ChangeUserStatus (params) {
+  return request({
+    url: '/api/fs4a/ChangeUserStatus/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 账号删除
+export function delAccount (params) {
+  return request({
+    url: '/api/fs4a/DeleteUser/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 账号新增保存
+export function addAccount (params) {
+  return request({
+    url: '/api/fs4a/SaveUser/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 账号详情查询
+export function getAccountDetails (params) {
+  return request({
+    url: '/api/fs4a/GetUserDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 账号编辑保存
+export function editAccount (params) {
+  return request({
+    url: '/api/fs4a/EditUser/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 根据登录后ID及USERTYPE查询拥有权限
+export function getAuthListByUser (params) {
+  return request({
+    url: '/api/fs4a/GetAuthListByUser/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}

+ 89 - 0
src/api/AccountGroup.js

@@ -0,0 +1,89 @@
+/*
+ * @Author: your name
+ * @Date: 2022-02-21 14:01:21
+ * @LastEditTime: 2022-02-21 14:03:21
+ * @LastEditors: your name
+ * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @FilePath: \CABaggageData\src\api\AccountGroup.js
+ */
+import request from '@/utils/request-4a'
+
+// 账号组树查询
+export function GetGroupTree (params) {
+  return request({
+    url: '/api/fs4a/GetGroupTree/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//账号组新增
+export function SaveGroup (params) {
+  return request({
+    url: '/api/fs4a/SaveGroup/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//账号组删除
+export function DeleteGroup (params) {
+  return request({
+    url: '/api/fs4a/DeleteGroup/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//账号组详情
+export function GetGroupDetails (params) {
+  return request({
+    url: '/api/fs4a/GetGroupDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//账号组修改状态
+export function ChangeGroupStatus (params) {
+  return request({
+    url: '/api/fs4a/ChangeGroupStatus/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 根据账号组获取权限树
+export function GetAuthTreeByGroup (params) {
+  return request({
+    url: '/api/fs4a/GetAuthTreeByGroup/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+// 修改保存账号组
+export function EditGroup (params) {
+  return request({
+    url: '/api/fs4a/EditGroup/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//根据账号组获取角色
+export function GetRoleByGroup (params) {
+  return request({
+    url: '/api/fs4a/GetRoleByGroup/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}

+ 198 - 0
src/api/SystemSettings.js

@@ -0,0 +1,198 @@
+import request from '@/utils/request'
+
+//航司查询
+export function AirlinesInquiry(params) {
+  return request({
+    url: '/baggageDC/openApi/AircompanyList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//航司新增编辑
+export function AddAirlines(params) {
+  return request({
+    url: '/baggageDC/openApi/AircompanySave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//航司删除
+export function DelAirlines(params) {
+  return request({
+    url: '/baggageDC/openApi/AirCompanyDelete',
+    method: 'Post',
+    data: params
+  })
+}
+
+//机场信息列表
+export function AirportsList(params) {
+  return request({
+    url: '/baggageDC/openApi/AirportList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//保存机场信息
+export function AddAriports(params) {
+  return request({
+    url: '/baggageDC/openApi/AirportSave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//删除机场信息
+export function DelAriports(params) {
+  return request({
+    url: '/baggageDC/openApi/AirportDelete',
+    method: 'Post',
+    data: params
+  })
+}
+
+//航站信息列表
+export function buildLists(params) {
+  return request({
+    url: '/baggageDC/openApi/BuildList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//航站节点-选择用
+export function Terminalnodeer(params) {
+  return request({
+    url: '/baggageDC/openApi/search/byBuild',
+    method: 'post',
+    data: params
+  })
+}
+//航站信息保存
+export function AddBuild(params) {
+  return request({
+    url: '/baggageDC/openApi/AportBuildInfoSave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//航站信息删除
+export function DelBuild(params) {
+  return request({
+    url: '/baggageDC/openApi/BuildDelete',
+    method: 'Post',
+    data: params
+  })
+}
+
+//追踪位置信息列表
+export function LocatioList(params) {
+  return request({
+    url: '/baggageDC/openApi/BuildLocationList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//新增追踪位置信息
+export function AddLocation(params) {
+  return request({
+    url: '/baggageDC/openApi/LocationSave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//追踪位置删除
+export function DelLocation(params) {
+  return request({
+    url: '/baggageDC/openApi/LocationDelete',
+    method: 'Post',
+    data: params
+  })
+}
+
+//报警预警列表
+export function warningList(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//新增报警预警
+export function AddWarning(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneSave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//报警预警状态
+export function WarningStatus(params) {
+  return request({
+    url: '/baggageDC/openApi/UpdateWarningSceneStatus',
+    method: 'Post',
+    data: params
+  })
+}
+
+//报警预警删除
+export function DelWarning(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneDelete',
+    method: 'Post',
+    data: params
+  })
+}
+//报警预警场景列表
+export function UserWarningList(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneConditionList',
+    method: 'Post',
+    data: params
+  })
+}
+//报警预警场景条件保存
+export function AddUserWarning(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneConditionSave',
+    method: 'Post',
+    data: params
+  })
+}
+
+//报警预警场景条件删除
+export function DelUserWarning(params) {
+  return request({
+    url: '/baggageDC/openApi/WarningSceneConditionDelete',
+    method: 'Post',
+    data: params
+  })
+}
+
+
+
+//节点信息列表
+export function traceNodeslist(params) {
+  return request({
+    url: '/baggageDC/openApi/TraceNodesList',
+    method: 'Post',
+    data: params
+  })
+}
+
+//开始位置
+export function Alarmlocation(params) {
+  return request({
+    url: '/baggageDC/openApi/TracelocationListByairPortCode',
+    method: 'Post',
+    data: params
+  })
+}

+ 206 - 0
src/api/acquisition.js

@@ -0,0 +1,206 @@
+import request from '@/utils/request'
+
+//数据解析-详情
+export function analysisList(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisMainQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-状态修改
+export function analysisStart(params) {
+  return request({
+    url: '/baggageDC/openApi/UpdateAnalysisStatus',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-新增修改
+export function analysisadd(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisMainSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-删除
+export function analysisele(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisDelete',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-编辑列表查询
+export function anaListmod(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisItemQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-编辑基本信息
+export function anaListmoder(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisItemQuery',
+    method: 'post',
+    data: params
+  })
+}
+//数据解析-编辑列表新增
+export function anaListmodpass(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisItemSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据解析-编辑列表删除
+export function anaListmodele(params) {
+  return request({
+    url: '/baggageDC/openApi/AnalysisItemDelete',
+    method: 'post',
+    data: params
+  })
+}
+//数据解析-解析
+export function analysiser(params) {
+  return request({
+    url: '/baggageDC/openApi/doAnalysis',
+    method: 'post',
+    data: params
+  })
+}
+
+//航站节点-列表
+export function TerminalnodeList(params) {
+  return request({
+    url: '/baggageDC/openApi/TraceNodesList',
+    method: 'post',
+    data: params
+  })
+}
+
+//航站节点-列表新增
+export function erListadd(params) {
+  return request({
+    url: '/baggageDC/openApi/TracenodesSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//航站节点-列表删除
+export function TerminalnodeListele(params) {
+  return request({
+    url: '/baggageDC/openApi/TracenodesDelete',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-列表查询
+export function Datastorage(params) {
+  return request({
+    url: '/baggageDC/openApi/TargetDataSaveList',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-状态修改
+export function DatastorageStart(params) {
+  return request({
+    url: '/baggageDC/openApi/TargetDataSaveStatusUpdate',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-新增
+export function Datastorageadd(params) {
+  return request({
+    url: '/baggageDC/openApi/SaveTargetSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-删除
+export function Datastoragedel(params) {
+  return request({
+    url: '/baggageDC/openApi/TargetDataSaveDelete',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-保存
+export function Datastoragemod(params) {
+  return request({
+    url: '/baggageDC/openApi/SaveTargetSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-详情查询
+export function storageList(params) {
+  return request({
+    url: '/baggageDC/openApi/GetTargetDataSaveItems',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-详情新增
+export function storageListadd(params) {
+  return request({
+    url: '/baggageDC/openApi/TargetDataSaveItemSave',
+    method: 'post',
+    data: params
+  })
+}
+//数据储存-详情新增
+export function storageListdel(params) {
+  return request({
+    url: '/baggageDC/openApi/SaveDataItemDelete',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-异常类型
+export function exceptiontype(params) {
+  return request({
+    url: '/baggageDC/openApi/SpecailtypeQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-异常类型新增
+export function exceptionadd(params) {
+  return request({
+    url: '/baggageDC/openApi/SpecailtypeSave',
+    method: 'post',
+    data: params
+  })
+}
+
+//数据储存-异常类型删除
+export function exceptiondel(params) {
+  return request({
+    url: '/baggageDC/openApi/SpecailtypeDelete',
+    method: 'post',
+    data: params
+  })
+}
+

+ 210 - 0
src/api/apiAuthority.js

@@ -0,0 +1,210 @@
+/*
+ * @Author: your name
+ * @Date: 2021-12-21 09:22:04
+ * @LastEditTime: 2022-02-21 14:03:31
+ * @LastEditors: Please set LastEditors
+ * @Description: 权限项管理
+ * @FilePath: \Foshan4A2.0\src\api\apiAuthority.js
+ */
+import request from '@/utils/request-4a'
+
+//权限树查询
+export function GetAuthTree (params) {
+  return request({
+    url: '/api/fs4a/GetAuthTree/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//应用新增保存
+export function SaveApp (params) {
+  return request({
+    url: '/api/fs4a/SaveApp/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//应用详情查询
+export function GetAppDetails (params) {
+  return request({
+    url: '/api/fs4a/GetAppDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//应用修改保存
+export function EditApp (params) {
+  return request({
+    url: '/api/fs4a/EditApp/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//应用状态变更
+export function UpdateAppStatus (params) {
+  return request({
+    url: '/api/fs4a/UpdateAppStatus/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//应用删除
+export function DeleteApp (params) {
+  return request({
+    url: '/api/fs4a/DeleteApp/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+
+//权限项修改保存
+export function EditAuth (params) {
+  return request({
+    url: '/api/fs4a/EditAuth/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//权限详情查询
+export function GetAuthDetails (params) {
+  return request({
+    url: '/api/fs4a/GetAuthDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//根据权限获取授权规则
+export function GetAuthTo (params) {
+  return request({
+    url: '/api/fs4a/GetAuthTo/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//权限项新增保存
+export function SaveAuth (params) {
+  return request({
+    url: '/api/fs4a/SaveAuth/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//权限项删除
+export function DeleteAuth (params) {
+  return request({
+    url: '/api/fs4a/DeleteAuth/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//权限状态变更
+export function UpdateAuthStatus (params) {
+  return request({
+    url: '/api/fs4a/UpdateAuthStatus/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色新增保存
+export function SaveRole (params) {
+  return request({
+    url: '/api/fs4a/SaveRole/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色列表查询
+export function QueryRole (params) {
+  return request({
+    url: '/api/fs4a/QueryRole/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//账号列表查询
+export function GetUserList (params) {
+  return request({
+    url: '/api/fs4a/GetUserList/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色明细查询
+export function RoleDetails (params) {
+  return request({
+    url: '/api/fs4a/RoleDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色权限列表
+export function RoleAuths (params) {
+  return request({
+    url: '/api/fs4a/RoleAuths/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色删除
+export function DeleteRole (params) {
+  return request({
+    url: '/api/fs4a/DeleteRole/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色编辑保存
+export function EditRole (params) {
+  return request({
+    url: '/api/fs4a/EditRole/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//角色状态变更
+export function UpdateStatus (params) {
+  return request({
+    url: '/api/fs4a/UpdateStatus/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}

+ 72 - 0
src/api/apiHome.js

@@ -0,0 +1,72 @@
+/*
+ * @Author: your name
+ * @Date: 2021-12-20 10:26:41
+ * @LastEditTime: 2022-02-21 15:05:19
+ * @LastEditors: Please set LastEditors
+ * @Description: 首页接口
+ * @FilePath: \Foshan4A2.0\src\api\apiHome.js
+ */
+import request from '@/utils/request-4a'
+
+//接入系统信息
+export function GetOthSystem (params) {
+  return request({
+    url: '/api/fs4a/GetOthSystem/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//账号信息分析
+export function GetUserAna (params) {
+  return request({
+    url: '/api/fs4a/GetUserAna/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//职员信息分析
+export function GetOfficerAna (params) {
+  return request({
+    url: '/api/fs4a/GetOfficerAna/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//角色信息分析
+export function GetRoleAna (params) {
+  return request({
+    url: '/api/fs4a/GetRoleAna/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//权限信息分析
+export function GetAuthAna (params) {
+  return request({
+    url: '/api/fs4a/GetAuthAna/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//修改密码
+export function EditPwd (params) {
+  return request({
+    url: '/api/fs4a/EditPwd/v1',
+    method: 'post',
+    data: params
+  })
+}
+
+//锁屏验证
+export function SsoLogin (params) {
+  return request({
+    url: '/api/fs4a/SsoLogin/v1',
+    method: 'post',
+    data: params
+  })
+}

+ 64 - 0
src/api/apidataCollection.js

@@ -0,0 +1,64 @@
+/*
+ * @Author: zk
+ * @Date: 2021-12-17 13:33:03
+ * @LastEditTime: 2021-12-17 17:33:58
+ * @LastEditors: Please set LastEditors
+ * @Description: 采集调度管理api接口
+ * @FilePath: \CABaggageData\src\api\apidataCollection.js
+ */
+import request from '@/utils/request'
+
+//采集调度管理-新增/修改
+export function IbmmqSave (params) {
+  return request({
+    url: '/baggageDC/openApi/IbmmqSave',
+    method: 'post',
+    data:params
+  })
+}
+
+//采集调度管理-数据采集
+export function IbmmqQuery (params) {
+  return request({
+    url: '/baggageDC/openApi/IbmmqQuery',
+    method: 'post',
+    data:params
+  })
+}
+
+//获取调度列表
+export function DataCollectQuery (params) {
+  return request({
+    url: '/baggageDC/openApi/DataCollectQuery',
+    method: 'Post',
+    data:params
+  })
+}
+
+//创建调度
+export function DataCollectSave (params) {
+  return request({
+    url: '/baggageDC/openApi/DataCollectSave',
+    method: 'Post',
+    data:params
+  })
+}
+
+//删除调度
+export function DataCollectDelete (params) {
+  return request({
+    url: '/baggageDC/openApi/DataCollectDelete',
+    method: 'Post',
+    data:params
+  })
+}
+
+//采集调度控制服务
+export function managerScheduling (params) {
+  return request({
+    url: '/baggageDC/openApi/managerScheduling',
+    method: 'Post',
+    data:params
+  })
+}
+

+ 21 - 0
src/api/dataIntegration.js

@@ -0,0 +1,21 @@
+/*
+ * @Author: Badguy
+ * @Date: 2022-04-13 14:35:17
+ * @LastEditTime: 2022-04-15 14:39:21
+ * @LastEditors: your name
+ * @Description: 数据整合接口
+ * have a nice day!
+ */
+
+import request from '@/utils/request'
+
+export function GeneralDataReception(params) {
+  return request({
+    url: '/openApi/generalDataReception',
+    method: 'post',
+    headers: {
+      'content-type': 'application/json'
+    },
+    data: params
+  })
+}

+ 198 - 0
src/api/flight.js

@@ -0,0 +1,198 @@
+import request from '@/utils/request'
+
+// 全部机场查询
+export function CurrentAirportQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/currentAirportQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 起飞站/目的站查询
+export function RelatedAirportQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/relatedAirportQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 综合查询
+export function IntegratedQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/integratedQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 中转综合查询
+export function IntegratedQueryTransfer(params) {
+  return request({
+    url: '/baggageDC/openApi/integratedQueryTransfer',
+    method: 'post',
+    data: params
+  })
+}
+
+// 航线查询
+export function FlightAttrQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/flightAttrQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 机型查询
+export function CraftTypeQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/craftTypeQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 航司查询
+export function AirCompanyQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/airCompanyQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// 表头查询
+export function StatItemsQueryByStatMain(params) {
+  return request({
+    url: '/baggageDC/openApi/statItemsQueryByStatMain',
+    method: 'post',
+    data: params
+  })
+}
+
+// 查询转入行李 和 查询转出行李
+export function baggageSearchIO(params) {
+  return request({
+    url: '/baggageDC/openApi/baggageSearchIO',
+    method: 'post',
+    data: params
+  })
+}
+
+// 航班容器统计查询
+export function baggageSearchIOContainer(params) {
+  return request({
+    url: '/baggageDC/openApi/baggageSearchIOContainer',
+    method: 'post',
+    data: params
+  })
+}
+
+// 航班行李明细查询
+export function baggageSearchIOAll(params) {
+  return request({
+    url: '/baggageDC/openApi/baggageSearchIOAll',
+    method: 'post',
+    data: params
+  })
+}
+
+// 行李节点信息查询
+export function nodeinfoes(params) {
+  return request({
+    url: '/baggageDC/openApi/fulltrackinfo/nodeinfoes',
+    method: 'post',
+    data: params
+  })
+}
+
+// 行李信息查询
+export function fulltrackinfoAndNodeInfoList(params) {
+  return request({
+    url: '/baggageDC/openApi/fulltrackinfoAndNodeInfoList',
+    method: 'post',
+    data: params
+  })
+}
+
+// 行李信息原始报文查询
+export function BaggageMessageQuery(params) {
+  return request({
+    url: '/baggageDC/openApi/es/list',
+    method: 'post',
+    data: params
+  })
+}
+
+// ftp新增
+export function ftpadd(params) {
+  return request({
+    url: '/baggageDC/openApi/ftpParams/save',
+    method: 'post',
+    data: params
+  })
+}
+
+// webapi新增/保存
+export function webapichange(params) {
+  return request({
+    url: '/baggageDC/openApi/webApis/save',
+    method: 'post',
+    data: params
+  })
+}
+
+// httpList列表
+export function httpList(params) {
+  return request({
+    url: '/baggageDC/openApi/httpParams/list',
+    method: 'post',
+    data: params
+  })
+}
+
+// httpList删除
+export function httpListdele(params) {
+  return request({
+    url: '/baggageDC/openApi/httpParams/delete',
+    method: 'post',
+    data: params
+  })
+}
+// httpList列表新增/编辑
+export function httpListchange(params) {
+  return request({
+    url: '/baggageDC/openApi/httpParams/save',
+    method: 'post',
+    data: params
+  })
+}
+
+// httpList
+export function httpListall(params) {
+  return request({
+    url: '/baggageDC/openApi/webApis/list',
+    method: 'post',
+    data: params
+  })
+}
+
+// ibList
+export function ibListall(params) {
+  return request({
+    url: '/baggageDC/openApi/IbmmqQuery',
+    method: 'post',
+    data: params
+  })
+}
+
+// ftpList
+export function ftpListall(params) {
+  return request({
+    url: '/baggageDC/openApi/ftpParams/list',
+    method: 'post',
+    data: params
+  })
+}

+ 33 - 0
src/api/gateway.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+export function getGatewayInterfaceList(params) {
+  return request({
+    url: '/vue-admin-template/gateway/interface/list',
+    method: 'get',
+    params
+  })
+}
+
+export function getGatewayLimitList(params) {
+  return request({
+    url: '/vue-admin-template/gateway/limit/list',
+    method: 'get',
+    params
+  })
+}
+
+export function getGatewayCircuitBreakList(params) {
+  return request({
+    url: '/vue-admin-template/gateway/circuit-break/list',
+    method: 'get',
+    params
+  })
+}
+
+export function getGatewayDocumentList(params) {
+  return request({
+    url: '/vue-admin-template/gateway/document/list',
+    method: 'get',
+    params
+  })
+}

+ 64 - 0
src/api/login.js

@@ -0,0 +1,64 @@
+/*
+ * @Author: your name
+ * @Date: 2022-02-21 09:15:17
+ * @LastEditTime: 2022-02-23 15:11:47
+ * @LastEditors: Please set LastEditors
+ * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @FilePath: \CABaggageData\src\api\login.js
+ */
+import request from '@/utils/request-4a'
+
+//获取动态验证码
+export function GetCheckCode (params) {
+    return request({
+        url: '/api/fs4a/GetCheckCode/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//登录
+export function login (params) {
+    return request({
+        url: '/api/fs4a/Login/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//登出
+export function loginUp (params) {
+    return request({
+        url: '/api/fs4a/Logout/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//忘记密码
+export function changePassword (params) {
+    return request({
+        url: '/api/fs4a/ForgetPwd/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//权限获取
+export function permission (params) {
+    return request({
+        url: '/api/fs4a/GetAuth/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//token
+export function gettoken (params) {
+    return request({
+        url: '/api/4A/GetToken',
+        method: 'post',
+        data: params,
+        istoken: true
+    })
+}

+ 203 - 0
src/api/postInterface.js

@@ -0,0 +1,203 @@
+import request from '@/utils/request-4a'
+
+//岗位列表查询
+export function postList (params) {
+    return request({
+        url: '/api/fs4a/GetJobList/v1',
+        method: 'post',
+        data: params
+    })
+}
+
+//组织树查询
+export function tissueTreeList (params) {
+    return request({
+        url: '/api/fs4a/GetOrganTree/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//组织树状态
+export function tissueTreeStart (params) {
+    return request({
+        url: '/api/fs4a/ChangeOrganStatus/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//职员查询
+export function staffList (params) {
+    return request({
+        url: '/api/fs4a/GetOfficerList/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//职员状态
+export function staffStart (params) {
+    return request({
+        url: '/api/fs4a/ChangeOfficerStatus/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//删除职员
+export function staffListele (params) {
+    return request({
+        url: '/api/fs4a/DeleteOfficer/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//新增岗位
+export function newPostUp (params) {
+    return request({
+        url: '/api/fs4a/SaveJob/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//岗位状态
+export function PostSatrt (params) {
+    return request({
+        url: '/api/fs4a/ChangeJobStatus/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//编辑岗位
+export function PostSatrtmod (params) {
+    return request({
+        url: '/api/fs4a/EditJob/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//删除岗位
+export function PostUpele (params) {
+    return request({
+        url: '/api/fs4a/DeleteJob/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+
+//新增组织
+export function newOrgan (params) {
+    return request({
+        url: '/api/fs4a/SaveOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//编辑组织
+export function newOrganmod (params) {
+    return request({
+        url: '/api/fs4a/EditOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+
+//组织详情
+export function newOrganall (params) {
+    return request({
+        url: '/api/fs4a/GetOrganDetails/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+
+//新增职员
+export function newstaff (params) {
+    return request({
+        url: '/api/fs4a/SaveOfficer/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//职员详情
+export function Staffdetails (params) {
+    return request({
+        url: '/api/fs4a/GetOfficerDetails/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//编辑职员
+export function newstaffmod (params) {
+    return request({
+        url: '/api/fs4a/EditOfficer/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//根据组织获取权限
+export function organizationUptree (params) {
+    return request({
+        url: '/api/fs4a/GetAuthTreeByOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}
+//根据岗位获取权限
+export function postUptree (params) {
+    return request({
+        url: '/api/fs4a/GetAuthTreeByJob/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//岗位详情
+export function jbdetails (params) {
+    return request({
+        url: '/api/fs4a/GetJobDetails/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//根据岗位获取角色
+export function jbdetpop (params) {
+    return request({
+        url: '/api/fs4a/GetRoleByJob/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//组织获取角色
+export function organpop (params) {
+    return request({
+        url: '/api/fs4a/GetRoleByOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//组织删除
+export function organele (params) {
+    return request({
+        url: '/api/fs4a/DeleteOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}
+
+//根据组织查询岗位列表
+export function organgitpost (params) {
+    return request({
+        url: '/api/fs4a/GetJobListByOrgan/v1',
+        method: 'post',
+        data: params,
+    })
+}

+ 70 - 0
src/api/systemConfiguration.js

@@ -0,0 +1,70 @@
+import request from '@/utils/request-4a'
+
+//登录策略详情查询
+export function GetTacDetails (params) {
+  return request({
+    url: '/api/fs4a/GetTacDetails/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+//登录策略列表查询
+export function GetTacList (params) {
+  return request({
+    url: '/api/fs4a/GetTacList/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//登录策略新增
+export function SaveTac (params) {
+  return request({
+    url: '/api/fs4a/SaveTac/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//登录策略编辑
+export function EditTac (params) {
+  return request({
+    url: '/api/fs4a/EditTac/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//登录策略删除
+export function DeleteTac (params) {
+  return request({
+    url: '/api/fs4a/DeleteTac/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//获取系统基础设置
+export function GetSystemSet (params) {
+  return request({
+    url: '/api/fs4a/GetSystemSet/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}
+
+//保存系统基础设置
+export function SaveSystemSet (params) {
+  return request({
+    url: '/api/fs4a/SaveSystemSet/v1',
+    method: 'post',
+    data: params,
+    proxy: true
+  })
+}

+ 17 - 0
src/api/table.js

@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/vue-admin-template/table/list',
+    method: 'get',
+    params
+  })
+}
+
+export function getLogList(params) {
+  return request({
+    url: '/vue-admin-template/log/list',
+    method: 'get',
+    params
+  })
+}

+ 24 - 0
src/api/user.js

@@ -0,0 +1,24 @@
+import request from '@/utils/request'
+
+export function login(data) {
+  return request({
+    url: '/vue-admin-template/user/login',
+    method: 'post',
+    data
+  })
+}
+
+export function getInfo(token) {
+  return request({
+    url: '/vue-admin-template/user/info',
+    method: 'get',
+    params: { token }
+  })
+}
+
+export function logout() {
+  return request({
+    url: '/vue-admin-template/user/logout',
+    method: 'post'
+  })
+}

BIN
src/assets/404_images/404.png


BIN
src/assets/404_images/404_cloud.png


BIN
src/assets/account/ic_user_permissions_default.png


BIN
src/assets/departure/ic_setting.png


BIN
src/assets/departure/ic_time.png


BIN
src/assets/fonts/Helvetica/Helvetica Bold Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Lefty.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Lefty_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Black-SemiBold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Black-SemiBold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-BoldOblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-BoldOblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Thin.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Thin_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Conth.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Conth_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Roman-SemiB.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Roman-SemiB_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExt-Normal.ttf


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov