Commit 441d4b7cb63f1ec068b4db90a308248137978178
0 parents
初始化权限管理也没见
Showing
36 changed files
with
612 additions
and
0 deletions
Too many changes to show.
To preserve performance only 36 of 278 files are displayed.
.browserslistrc
0 → 100644
.editorconfig
0 → 100644
| 1 | +++ a/.editorconfig | ||
| 1 | +# http://editorconfig.org | ||
| 2 | + | ||
| 3 | +# top-most EditorConfig file | ||
| 4 | +root = true | ||
| 5 | + | ||
| 6 | +# Unix-style newlines with a newline ending every file | ||
| 7 | +[*] | ||
| 8 | +charset = utf-8 | ||
| 9 | +end_of_line = lf | ||
| 10 | +insert_final_newline = true | ||
| 11 | +trim_trailing_whitespace = true | ||
| 12 | + | ||
| 13 | +# Indentation override for js(x), ts(x) and vue files | ||
| 14 | +[*.{js,jsx,ts,tsx,vue}] | ||
| 15 | +indent_size = 2 | ||
| 16 | +indent_style = space | ||
| 17 | + | ||
| 18 | +# Indentation override for css related files | ||
| 19 | +[*.{css,styl,scss,less,sass}] | ||
| 20 | +indent_size = 2 | ||
| 21 | +indent_style = space | ||
| 22 | + | ||
| 23 | +# Indentation override for html files | ||
| 24 | +[*.html] | ||
| 25 | +indent_size = 2 | ||
| 26 | +indent_style = space | ||
| 27 | + | ||
| 28 | +# Trailing space override for markdown file | ||
| 29 | +[*.md] | ||
| 30 | +trim_trailing_whitespace = false | ||
| 31 | + | ||
| 32 | +# Indentation override for config files | ||
| 33 | +[*.{json,yml}] | ||
| 34 | +indent_size = 2 | ||
| 35 | +indent_style = space |
.env
0 → 100644
.eslintignore
0 → 100644
.eslintrc.js
0 → 100644
| 1 | +++ a/.eslintrc.js | ||
| 1 | +module.exports = { | ||
| 2 | + root: true, | ||
| 3 | + env: { | ||
| 4 | + browser: true, | ||
| 5 | + node: true, | ||
| 6 | + es6: true | ||
| 7 | + }, | ||
| 8 | + parserOptions: { | ||
| 9 | + parser: '@typescript-eslint/parser', | ||
| 10 | + sourceType: 'module' | ||
| 11 | + }, | ||
| 12 | + plugins: ['vue'], | ||
| 13 | + rules: { | ||
| 14 | + '@typescript-eslint/ban-types': 'off', | ||
| 15 | + '@typescript-eslint/explicit-module-boundary-types': 'off', | ||
| 16 | + '@typescript-eslint/member-delimiter-style': [ | ||
| 17 | + 'error', | ||
| 18 | + { | ||
| 19 | + multiline: { | ||
| 20 | + delimiter: 'none' | ||
| 21 | + }, | ||
| 22 | + singleline: { | ||
| 23 | + delimiter: 'comma' | ||
| 24 | + } | ||
| 25 | + } | ||
| 26 | + ], | ||
| 27 | + '@typescript-eslint/no-explicit-any': 'off', | ||
| 28 | + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', | ||
| 29 | + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', | ||
| 30 | + 'space-before-function-paren': ['error', 'never'], | ||
| 31 | + 'vue/require-default-prop': 'off', | ||
| 32 | + 'vue/require-prop-type-constructor': 'off', | ||
| 33 | + 'vue/require-prop-types': 'off', | ||
| 34 | + 'vue/prop-name-casing': 'off', | ||
| 35 | + 'vue/array-bracket-spacing': 'error', | ||
| 36 | + 'vue/arrow-spacing': 'error', | ||
| 37 | + 'vue/block-spacing': 'error', | ||
| 38 | + 'vue/brace-style': 'error', | ||
| 39 | + 'vue/camelcase': 'off', | ||
| 40 | + 'vue/comma-dangle': 'error', | ||
| 41 | + 'vue/component-name-in-template-casing': 'error', | ||
| 42 | + 'vue/eqeqeq': 'error', | ||
| 43 | + 'vue/key-spacing': 'error', | ||
| 44 | + 'vue/match-component-file-name': 'error', | ||
| 45 | + 'vue/no-v-html': 'off', | ||
| 46 | + // 'vue/object-curly-spacing': 'error', | ||
| 47 | + 'vue/html-self-closing': [ | ||
| 48 | + // Require self-closing on HTML elements (<div>) vue/html-self-closing的解决方法 | ||
| 49 | + 'error', | ||
| 50 | + { | ||
| 51 | + html: { | ||
| 52 | + void: 'never', | ||
| 53 | + normal: 'never', | ||
| 54 | + component: 'always' | ||
| 55 | + }, | ||
| 56 | + svg: 'always', | ||
| 57 | + math: 'always' | ||
| 58 | + } | ||
| 59 | + ], | ||
| 60 | + 'vue/html-closing-bracket-spacing': [ | ||
| 61 | + 'error', | ||
| 62 | + { | ||
| 63 | + startTag: 'never', | ||
| 64 | + endTag: 'never', | ||
| 65 | + selfClosingTag: 'always' | ||
| 66 | + } | ||
| 67 | + ], | ||
| 68 | + 'vue/max-attributes-per-line': [ | ||
| 69 | + // 解决 Attribute "mode" should be on a new line (vue/max-attributes-per-line) | ||
| 70 | + 'error', | ||
| 71 | + { | ||
| 72 | + singleline: 100, | ||
| 73 | + multiline: { | ||
| 74 | + max: 3, | ||
| 75 | + allowFirstLine: true | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + ], | ||
| 79 | + indent: ['off', 2], | ||
| 80 | + 'no-tabs': 'off', | ||
| 81 | + 'vue/singleline-html-element-content-newline': 'off' | ||
| 82 | + }, | ||
| 83 | + extends: [ | ||
| 84 | + 'eslint:recommended', | ||
| 85 | + 'plugin:vue/recommended', | ||
| 86 | + '@vue/standard', | ||
| 87 | + '@vue/typescript' | ||
| 88 | + ] | ||
| 89 | +} |
.gitignore
0 → 100644
| 1 | +++ a/.gitignore | ||
| 1 | +.DS_Store | ||
| 2 | +node_modules | ||
| 3 | +/dist | ||
| 4 | + | ||
| 5 | +/tests/e2e/videos/ | ||
| 6 | +/tests/e2e/screenshots/ | ||
| 7 | +/tests/**/coverage/ | ||
| 8 | + | ||
| 9 | +# local env files | ||
| 10 | +.env.local | ||
| 11 | +.env.*.local | ||
| 12 | + | ||
| 13 | +# Log files | ||
| 14 | +npm-debug.log* | ||
| 15 | +yarn-debug.log* | ||
| 16 | +yarn-error.log* | ||
| 17 | + | ||
| 18 | +# Editor directories and files | ||
| 19 | +.idea | ||
| 20 | +.vscode | ||
| 21 | +.history | ||
| 22 | +*.suo | ||
| 23 | +*.ntvs* | ||
| 24 | +*.njsproj | ||
| 25 | +*.sln | ||
| 26 | +*.sw* | ||
| 27 | +*.history | ||
| 28 | +*.iml |
.gitlab-ci.yml
0 → 100644
| 1 | +++ a/.gitlab-ci.yml | ||
| 1 | +####提示 | ||
| 2 | +#1.以下脚本设置的是master分支被合并时执行(设置为平常用来发版本的分支即可) | ||
| 3 | +#2.版本自动化部署到nginx下 | ||
| 4 | +#3.执行yml脚本的runner名字设置的vue-runner1,即对应tags | ||
| 5 | + | ||
| 6 | +stages: # Stages 表示构建阶段,这里有两个阶段 install, deploy | ||
| 7 | +- install | ||
| 8 | +- deploy | ||
| 9 | + | ||
| 10 | +cache: | ||
| 11 | + key: ${CI_BUILD_REF_NAME} | ||
| 12 | + paths: | ||
| 13 | + - node_modules/ | ||
| 14 | + | ||
| 15 | +install-staging:dep: # Jobs 表示构建工作,表示某个 Stage 里面执行的工作。 | ||
| 16 | + stage: install | ||
| 17 | + tags: | ||
| 18 | + - authority-vue-runner #与注册runner时填写的tags保持一致 | ||
| 19 | + only: # 定义了只有在被merge到了master分支上 才会执行部署脚本。 | ||
| 20 | + - develop2.0 | ||
| 21 | + script: | ||
| 22 | + - echo "=====start install======" | ||
| 23 | + - npm install # --registry=https://registry.npm.taobao.org #安装依赖 | ||
| 24 | + - echo "=====end install======" | ||
| 25 | + artifacts: # 将这个job生成的依赖传递给下一个job。需要设置dependencies | ||
| 26 | + expire_in: 60 mins # artifacets 的过期时间,因为这些数据都是直接保存在 Gitlab 机器上的,过于久远的资源就可以删除掉了 | ||
| 27 | + paths: # 需要被传递给下一个job的目录。 | ||
| 28 | + - node_modules/ | ||
| 29 | + | ||
| 30 | +deploy-staging:dep: | ||
| 31 | + stage: deploy | ||
| 32 | + tags: | ||
| 33 | + - authority-vue-runner | ||
| 34 | + only: | ||
| 35 | + - develop2.0 | ||
| 36 | + script: | ||
| 37 | + - echo "=====start build======" | ||
| 38 | + - npm run build # 将项目打包 | ||
| 39 | + - echo "=====start deploy======" | ||
| 40 | + - sudo cp -rf ./dist/ /usr/share/nginx/html/authority | ||
| 41 | + - echo "=====end deploy!!!!!!======" | ||
| 0 | \ No newline at end of file | 42 | \ No newline at end of file |
.nvmdrc
0 → 100644
.prettierrc
0 → 100644
| 1 | +++ a/.prettierrc | ||
| 1 | +{ | ||
| 2 | + "spaceBeforeFunctionParen": true, | ||
| 3 | + "tabWidth": 2, | ||
| 4 | + "useTabs": false, | ||
| 5 | + "trailingComma": "none", | ||
| 6 | + "eslintIntegration": true, | ||
| 7 | + "singleQuote": true, | ||
| 8 | + "semi": false, | ||
| 9 | + "bracketSpacing": true, | ||
| 10 | + "jsxBracketSameLine": false, | ||
| 11 | + "arrowParens": "avoid" | ||
| 12 | +} |
Dockerfile
0 → 100644
LICENSE
0 → 100644
| 1 | +++ a/LICENSE | ||
| 1 | + Apache License | ||
| 2 | + Version 2.0, January 2004 | ||
| 3 | + http://www.apache.org/licenses/ | ||
| 4 | + | ||
| 5 | + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||
| 6 | + | ||
| 7 | + 1. Definitions. | ||
| 8 | + | ||
| 9 | + "License" shall mean the terms and conditions for use, reproduction, | ||
| 10 | + and distribution as defined by Sections 1 through 9 of this document. | ||
| 11 | + | ||
| 12 | + "Licensor" shall mean the copyright owner or entity authorized by | ||
| 13 | + the copyright owner that is granting the License. | ||
| 14 | + | ||
| 15 | + "Legal Entity" shall mean the union of the acting entity and all | ||
| 16 | + other entities that control, are controlled by, or are under common | ||
| 17 | + control with that entity. For the purposes of this definition, | ||
| 18 | + "control" means (i) the power, direct or indirect, to cause the | ||
| 19 | + direction or management of such entity, whether by contract or | ||
| 20 | + otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||
| 21 | + outstanding shares, or (iii) beneficial ownership of such entity. | ||
| 22 | + | ||
| 23 | + "You" (or "Your") shall mean an individual or Legal Entity | ||
| 24 | + exercising permissions granted by this License. | ||
| 25 | + | ||
| 26 | + "Source" form shall mean the preferred form for making modifications, | ||
| 27 | + including but not limited to software source code, documentation | ||
| 28 | + source, and configuration files. | ||
| 29 | + | ||
| 30 | + "Object" form shall mean any form resulting from mechanical | ||
| 31 | + transformation or translation of a Source form, including but | ||
| 32 | + not limited to compiled object code, generated documentation, | ||
| 33 | + and conversions to other media types. | ||
| 34 | + | ||
| 35 | + "Work" shall mean the work of authorship, whether in Source or | ||
| 36 | + Object form, made available under the License, as indicated by a | ||
| 37 | + copyright notice that is included in or attached to the work | ||
| 38 | + (an example is provided in the Appendix below). | ||
| 39 | + | ||
| 40 | + "Derivative Works" shall mean any work, whether in Source or Object | ||
| 41 | + form, that is based on (or derived from) the Work and for which the | ||
| 42 | + editorial revisions, annotations, elaborations, or other modifications | ||
| 43 | + represent, as a whole, an original work of authorship. For the purposes | ||
| 44 | + of this License, Derivative Works shall not include works that remain | ||
| 45 | + separable from, or merely link (or bind by name) to the interfaces of, | ||
| 46 | + the Work and Derivative Works thereof. | ||
| 47 | + | ||
| 48 | + "Contribution" shall mean any work of authorship, including | ||
| 49 | + the original version of the Work and any modifications or additions | ||
| 50 | + to that Work or Derivative Works thereof, that is intentionally | ||
| 51 | + submitted to Licensor for inclusion in the Work by the copyright owner | ||
| 52 | + or by an individual or Legal Entity authorized to submit on behalf of | ||
| 53 | + the copyright owner. For the purposes of this definition, "submitted" | ||
| 54 | + means any form of electronic, verbal, or written communication sent | ||
| 55 | + to the Licensor or its representatives, including but not limited to | ||
| 56 | + communication on electronic mailing lists, source code control systems, | ||
| 57 | + and issue tracking systems that are managed by, or on behalf of, the | ||
| 58 | + Licensor for the purpose of discussing and improving the Work, but | ||
| 59 | + excluding communication that is conspicuously marked or otherwise | ||
| 60 | + designated in writing by the copyright owner as "Not a Contribution." | ||
| 61 | + | ||
| 62 | + "Contributor" shall mean Licensor and any individual or Legal Entity | ||
| 63 | + on behalf of whom a Contribution has been received by Licensor and | ||
| 64 | + subsequently incorporated within the Work. | ||
| 65 | + | ||
| 66 | + 2. Grant of Copyright License. Subject to the terms and conditions of | ||
| 67 | + this License, each Contributor hereby grants to You a perpetual, | ||
| 68 | + worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
| 69 | + copyright license to reproduce, prepare Derivative Works of, | ||
| 70 | + publicly display, publicly perform, sublicense, and distribute the | ||
| 71 | + Work and such Derivative Works in Source or Object form. | ||
| 72 | + | ||
| 73 | + 3. Grant of Patent License. Subject to the terms and conditions of | ||
| 74 | + this License, each Contributor hereby grants to You a perpetual, | ||
| 75 | + worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||
| 76 | + (except as stated in this section) patent license to make, have made, | ||
| 77 | + use, offer to sell, sell, import, and otherwise transfer the Work, | ||
| 78 | + where such license applies only to those patent claims licensable | ||
| 79 | + by such Contributor that are necessarily infringed by their | ||
| 80 | + Contribution(s) alone or by combination of their Contribution(s) | ||
| 81 | + with the Work to which such Contribution(s) was submitted. If You | ||
| 82 | + institute patent litigation against any entity (including a | ||
| 83 | + cross-claim or counterclaim in a lawsuit) alleging that the Work | ||
| 84 | + or a Contribution incorporated within the Work constitutes direct | ||
| 85 | + or contributory patent infringement, then any patent licenses | ||
| 86 | + granted to You under this License for that Work shall terminate | ||
| 87 | + as of the date such litigation is filed. | ||
| 88 | + | ||
| 89 | + 4. Redistribution. You may reproduce and distribute copies of the | ||
| 90 | + Work or Derivative Works thereof in any medium, with or without | ||
| 91 | + modifications, and in Source or Object form, provided that You | ||
| 92 | + meet the following conditions: | ||
| 93 | + | ||
| 94 | + (a) You must give any other recipients of the Work or | ||
| 95 | + Derivative Works a copy of this License; and | ||
| 96 | + | ||
| 97 | + (b) You must cause any modified files to carry prominent notices | ||
| 98 | + stating that You changed the files; and | ||
| 99 | + | ||
| 100 | + (c) You must retain, in the Source form of any Derivative Works | ||
| 101 | + that You distribute, all copyright, patent, trademark, and | ||
| 102 | + attribution notices from the Source form of the Work, | ||
| 103 | + excluding those notices that do not pertain to any part of | ||
| 104 | + the Derivative Works; and | ||
| 105 | + | ||
| 106 | + (d) If the Work includes a "NOTICE" text file as part of its | ||
| 107 | + distribution, then any Derivative Works that You distribute must | ||
| 108 | + include a readable copy of the attribution notices contained | ||
| 109 | + within such NOTICE file, excluding those notices that do not | ||
| 110 | + pertain to any part of the Derivative Works, in at least one | ||
| 111 | + of the following places: within a NOTICE text file distributed | ||
| 112 | + as part of the Derivative Works; within the Source form or | ||
| 113 | + documentation, if provided along with the Derivative Works; or, | ||
| 114 | + within a display generated by the Derivative Works, if and | ||
| 115 | + wherever such third-party notices normally appear. The contents | ||
| 116 | + of the NOTICE file are for informational purposes only and | ||
| 117 | + do not modify the License. You may add Your own attribution | ||
| 118 | + notices within Derivative Works that You distribute, alongside | ||
| 119 | + or as an addendum to the NOTICE text from the Work, provided | ||
| 120 | + that such additional attribution notices cannot be construed | ||
| 121 | + as modifying the License. | ||
| 122 | + | ||
| 123 | + You may add Your own copyright statement to Your modifications and | ||
| 124 | + may provide additional or different license terms and conditions | ||
| 125 | + for use, reproduction, or distribution of Your modifications, or | ||
| 126 | + for any such Derivative Works as a whole, provided Your use, | ||
| 127 | + reproduction, and distribution of the Work otherwise complies with | ||
| 128 | + the conditions stated in this License. | ||
| 129 | + | ||
| 130 | + 5. Submission of Contributions. Unless You explicitly state otherwise, | ||
| 131 | + any Contribution intentionally submitted for inclusion in the Work | ||
| 132 | + by You to the Licensor shall be under the terms and conditions of | ||
| 133 | + this License, without any additional terms or conditions. | ||
| 134 | + Notwithstanding the above, nothing herein shall supersede or modify | ||
| 135 | + the terms of any separate license agreement you may have executed | ||
| 136 | + with Licensor regarding such Contributions. | ||
| 137 | + | ||
| 138 | + 6. Trademarks. This License does not grant permission to use the trade | ||
| 139 | + names, trademarks, service marks, or product names of the Licensor, | ||
| 140 | + except as required for reasonable and customary use in describing the | ||
| 141 | + origin of the Work and reproducing the content of the NOTICE file. | ||
| 142 | + | ||
| 143 | + 7. Disclaimer of Warranty. Unless required by applicable law or | ||
| 144 | + agreed to in writing, Licensor provides the Work (and each | ||
| 145 | + Contributor provides its Contributions) on an "AS IS" BASIS, | ||
| 146 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||
| 147 | + implied, including, without limitation, any warranties or conditions | ||
| 148 | + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||
| 149 | + PARTICULAR PURPOSE. You are solely responsible for determining the | ||
| 150 | + appropriateness of using or redistributing the Work and assume any | ||
| 151 | + risks associated with Your exercise of permissions under this License. | ||
| 152 | + | ||
| 153 | + 8. Limitation of Liability. In no event and under no legal theory, | ||
| 154 | + whether in tort (including negligence), contract, or otherwise, | ||
| 155 | + unless required by applicable law (such as deliberate and grossly | ||
| 156 | + negligent acts) or agreed to in writing, shall any Contributor be | ||
| 157 | + liable to You for damages, including any direct, indirect, special, | ||
| 158 | + incidental, or consequential damages of any character arising as a | ||
| 159 | + result of this License or out of the use or inability to use the | ||
| 160 | + Work (including but not limited to damages for loss of goodwill, | ||
| 161 | + work stoppage, computer failure or malfunction, or any and all | ||
| 162 | + other commercial damages or losses), even if such Contributor | ||
| 163 | + has been advised of the possibility of such damages. | ||
| 164 | + | ||
| 165 | + 9. Accepting Warranty or Additional Liability. While redistributing | ||
| 166 | + the Work or Derivative Works thereof, You may choose to offer, | ||
| 167 | + and charge a fee for, acceptance of support, warranty, indemnity, | ||
| 168 | + or other liability obligations and/or rights consistent with this | ||
| 169 | + License. However, in accepting such obligations, You may act only | ||
| 170 | + on Your own behalf and on Your sole responsibility, not on behalf | ||
| 171 | + of any other Contributor, and only if You agree to indemnify, | ||
| 172 | + defend, and hold each Contributor harmless for any liability | ||
| 173 | + incurred by, or claims asserted against, such Contributor by reason | ||
| 174 | + of your accepting any such warranty or additional liability. | ||
| 175 | + | ||
| 176 | + END OF TERMS AND CONDITIONS | ||
| 177 | + | ||
| 178 | + APPENDIX: How to apply the Apache License to your work. | ||
| 179 | + | ||
| 180 | + To apply the Apache License to your work, attach the following | ||
| 181 | + boilerplate notice, with the fields enclosed by brackets "{}" | ||
| 182 | + replaced with your own identifying information. (Don't include | ||
| 183 | + the brackets!) The text should be enclosed in the appropriate | ||
| 184 | + comment syntax for the file format. We also recommend that a | ||
| 185 | + file or class name and description of purpose be included on the | ||
| 186 | + same "printed page" as the copyright notice for easier | ||
| 187 | + identification within third-party archives. | ||
| 188 | + | ||
| 189 | + Copyright 2021 web | ||
| 190 | + | ||
| 191 | + Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 192 | + you may not use this file except in compliance with the License. | ||
| 193 | + You may obtain a copy of the License at | ||
| 194 | + | ||
| 195 | + http://www.apache.org/licenses/LICENSE-2.0 | ||
| 196 | + | ||
| 197 | + Unless required by applicable law or agreed to in writing, software | ||
| 198 | + distributed under the License is distributed on an "AS IS" BASIS, | ||
| 199 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 200 | + See the License for the specific language governing permissions and | ||
| 201 | + limitations under the License. |
README.md
0 → 100644
| 1 | +++ a/README.md | ||
| 1 | + | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +传智权限管家 | ||
| 5 | +========================= | ||
| 6 | + | ||
| 7 | +- [后端Gitee地址](https://gitee.com/itcastopen/itcast-authority.git) | ||
| 8 | +- [后端Github地址](https://github.com/itcastopen/itcast-authority.git) | ||
| 9 | +- [前端Gitee地址](https://gitee.com/itcastopen/itcast-authority-web.git) | ||
| 10 | +- [前端Github地址](https://github.com/itcastopen/itcast-authority-web.git) | ||
| 11 | + | ||
| 12 | + | ||
| 13 | +**在线演示** | ||
| 14 | +========================= | ||
| 15 | +- [官方主页](https://pip.itcast.cn/java-qxgj) | ||
| 16 | +- [演示地址](http://www-permission-admin.itheima.net) | ||
| 17 | + | ||
| 18 | +**项目背景** | ||
| 19 | +========================= | ||
| 20 | + | ||
| 21 | +- 权限管理对于任何一个后台系统都非常重要,随着业务的发展,不同阶段的权限系统又面临着不同设计和重构,企业中不同业务系统权限控制方式不统一,维护和实现成本增加,开发对接效率低,实现方式多样化,用户各种权限分配需求不能满足,实现起来非常蹩脚,这样只会造成恶性循环,最终可能影响业务发展甚至推倒重做,我们极为迫切的需要一个通用权限系统,界面美观、安全性高、便于管理使用、不侵入业务、又可以支持并发量高个一个通用权限系统,那么传智品达通用权限系统应运而生,解决企业开发中遇到的痛点和难点,也是小伙伴们学习源码、设计模式、常用微服务架构等经典知识的平台和途径! | ||
| 22 | + | ||
| 23 | +- [了解更多项目](https://project-dev.itheima.net/java),改变命运,少走弯路,进入真项目知识海洋畅游。 | ||
| 24 | + | ||
| 25 | +功能特性 | ||
| 26 | +========================= | ||
| 27 | + | ||
| 28 | + | ||
| 29 | +系统架构 | ||
| 30 | +========================= | ||
| 31 | + | ||
| 32 | + | ||
| 33 | +功能结构 | ||
| 34 | +========================= | ||
| 35 | + | ||
| 36 | + | ||
| 37 | +技术架构 | ||
| 38 | +========================= | ||
| 39 | + | ||
| 40 | + | ||
| 41 | +用户管理流程图 | ||
| 42 | +========================= | ||
| 43 | + | ||
| 44 | + | ||
| 45 | +组织管理流程图 | ||
| 46 | +========================= | ||
| 47 | + | ||
| 48 | + | ||
| 49 | +角色管理流程图 | ||
| 50 | +========================= | ||
| 51 | + | ||
| 52 | + | ||
| 53 | +菜单管理流程图 | ||
| 54 | +========================= | ||
| 55 | + | ||
| 56 | + | ||
| 57 | +更多流程图 | ||
| 58 | +========================= | ||
| 59 | +[全部流程图](docs/img/流程图) | ||
| 60 | + | ||
| 61 | +环境要求 | ||
| 62 | +========================= | ||
| 63 | +- Node: 11.3+(集成npm) | ||
| 64 | + https://nodejs.org/en/download | ||
| 65 | + | ||
| 66 | +安装运行步骤 | ||
| 67 | +========================= | ||
| 68 | + | ||
| 69 | +- [安装部署手册(建议下载后查看,避免格式问题)](docs/安装手册/install.md) | ||
| 70 | + | ||
| 71 | +页面一览 | ||
| 72 | +========================= | ||
| 73 | + | ||
| 74 | + | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + | ||
| 78 | + | ||
| 79 | +新的惊喜 | ||
| 80 | +========================= | ||
| 81 | +想进步、要关注。关注老铁抖音号,成为'铁丝' :) | ||
| 82 | + | ||
| 83 | +<img src="docs/img/douyin.jpeg" width="300" alt="抖音号" /> | ||
| 84 | +<br><br> | ||
| 85 | + | ||
| 86 | +更多福利 | ||
| 87 | +========================= | ||
| 88 | + | ||
| 89 | +[了解更多项目](https://pip.itcast.cn/home) |
babel.config.js
0 → 100644
cypress.json
0 → 100644
docs/img/douyin.jpeg
0 → 100644
82.1 KB
docs/img/功能特色.png
0 → 100644
74.2 KB
docs/img/技术架构图.png
0 → 100644
210 KB
docs/img/权限管理功能结构图.png
0 → 100644
88.5 KB
docs/img/流程图/删除岗位.png
0 → 100644
124 KB
docs/img/流程图/删除状态.png
0 → 100644
193 KB
docs/img/流程图/删除组织.png
0 → 100644
124 KB
docs/img/流程图/删除角色.png
0 → 100644
126 KB
docs/img/流程图/添加岗位.png
0 → 100644
91.2 KB
docs/img/流程图/用户管理.png
0 → 100644
534 KB
docs/img/流程图/禁用状态.png
0 → 100644
228 KB
docs/img/流程图/组织管理.png
0 → 100644
367 KB
docs/img/流程图/菜单管理.png
0 → 100644
187 KB
docs/img/流程图/角色管理.png
0 → 100644
209 KB
docs/img/系统架构图.png
0 → 100644
46.6 KB
docs/img/页面/应用-品优购.png
0 → 100644
90 KB
docs/img/页面/应用-流程.png
0 → 100644
153 KB
docs/img/页面/应用配置.png
0 → 100644
225 KB
docs/img/页面/权限配置.png
0 → 100644
150 KB
docs/img/页面/菜单.png
0 → 100644
168 KB
docs/安装手册/install.md
0 → 100644
| 1 | +++ a/docs/安装手册/install.md | ||
| 1 | +### 技术栈 | ||
| 2 | + | ||
| 3 | +vue + typescript | ||
| 4 | + | ||
| 5 | +### 安装依赖 | ||
| 6 | + | ||
| 7 | +```bash | ||
| 8 | +npm install | ||
| 9 | +``` | ||
| 10 | + | ||
| 11 | +### 启动本地开发环境(自带热启动) | ||
| 12 | + | ||
| 13 | +```bash | ||
| 14 | +npm run serve | ||
| 15 | +``` | ||
| 16 | + | ||
| 17 | +### 构建生产环境 (自带压缩) | ||
| 18 | + | ||
| 19 | +```bash | ||
| 20 | +npm build | ||
| 21 | +``` | ||
| 22 | + | ||
| 23 | +### 代码格式检查以及自动修复 | ||
| 24 | + | ||
| 25 | +```bash | ||
| 26 | +npm lint | ||
| 27 | +``` | ||
| 28 | + | ||
| 29 | +### 自定义 Vue 配置 |
jest.config.js
0 → 100644
| 1 | +++ a/jest.config.js | ||
| 1 | +module.exports = { | ||
| 2 | + moduleFileExtensions: [ | ||
| 3 | + 'js', | ||
| 4 | + 'jsx', | ||
| 5 | + 'json', | ||
| 6 | + 'vue', | ||
| 7 | + 'ts', | ||
| 8 | + 'tsx' | ||
| 9 | + ], | ||
| 10 | + transform: { | ||
| 11 | + '^.+\\.vue$': 'vue-jest', | ||
| 12 | + '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', | ||
| 13 | + '^.+\\.tsx?$': 'ts-jest' | ||
| 14 | + }, | ||
| 15 | + transformIgnorePatterns: [ | ||
| 16 | + '/node_modules/' | ||
| 17 | + ], | ||
| 18 | + moduleNameMapper: { | ||
| 19 | + '^@/(.*)$': '<rootDir>/src/$1' | ||
| 20 | + }, | ||
| 21 | + snapshotSerializers: [ | ||
| 22 | + 'jest-serializer-vue' | ||
| 23 | + ], | ||
| 24 | + testMatch: [ | ||
| 25 | + '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' | ||
| 26 | + ], | ||
| 27 | + collectCoverage: true, | ||
| 28 | + collectCoverageFrom: [ | ||
| 29 | + 'src/utils/**/*.{ts,vue}', | ||
| 30 | + '!src/utils/auth.ts', | ||
| 31 | + '!src/utils/request.ts', | ||
| 32 | + 'src/components/**/*.{ts,vue}' | ||
| 33 | + ], | ||
| 34 | + coverageDirectory: '<rootDir>/tests/unit/coverage', | ||
| 35 | + coverageReporters: [ | ||
| 36 | + 'lcov', | ||
| 37 | + 'text-summary' | ||
| 38 | + ], | ||
| 39 | + testURL: 'http://localhost/', | ||
| 40 | + watchPlugins: [ | ||
| 41 | + 'jest-watch-typeahead/filename', | ||
| 42 | + 'jest-watch-typeahead/testname' | ||
| 43 | + ], | ||
| 44 | + globals: { | ||
| 45 | + 'ts-jest': { | ||
| 46 | + babelConfig: true | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | +} |