yangjingjing 5 anos atrás
commit
37caea480a
100 arquivos alterados com 822 adições e 0 exclusões
  1. 14 0
      .editorconfig
  2. 15 0
      .env.development
  3. 6 0
      .env.production
  4. 8 0
      .env.staging
  5. 4 0
      .eslintignore
  6. 198 0
      .eslintrc.js
  7. 23 0
      .gitignore
  8. 1 0
      .prettierrc.json
  9. 5 0
      .travis.yml
  10. 6 0
      .vs/VSWorkspaceState.json
  11. BIN
      .vs/slnx.sqlite
  12. 5 0
      Dockerfile
  13. 201 0
      LICENSE
  14. 17 0
      Readme.md
  15. 6 0
      babel.config.js
  16. 35 0
      build/index.js
  17. 9 0
      common.js
  18. 21 0
      echarts.min.js
  19. BIN
      images/1.png
  20. BIN
      images/2.png
  21. BIN
      images/3.png
  22. BIN
      images/4.png
  23. BIN
      images/5.png
  24. BIN
      images/6.png
  25. BIN
      images/QQ.jpg
  26. BIN
      images/febs-cloud.png
  27. 24 0
      jest.config.js
  28. 65 0
      nginx.conf
  29. 104 0
      package.json
  30. 7 0
      plopfile.js
  31. 5 0
      postcss.config.js
  32. BIN
      public/favicon.ico
  33. 22 0
      public/index.html
  34. 1 0
      public/jquery-1.12.4.min.js
  35. 0 0
      public/jsWebControl-1.0.0.min.js
  36. 0 0
      public/jsencrypt.min.js
  37. 4 0
      run.sh
  38. 11 0
      src/App.vue
  39. BIN
      src/assets/401_images/401.gif
  40. BIN
      src/assets/404_images/404.png
  41. BIN
      src/assets/404_images/404_cloud.png
  42. BIN
      src/assets/avatar/17e420c250804efe904a09a33796d5a10.jpg
  43. BIN
      src/assets/avatar/17e420c250804efe904a09a33796d5a16.jpg
  44. BIN
      src/assets/avatar/19034103295190235.jpg
  45. BIN
      src/assets/avatar/1d22f3e41d284f50b2c8fc32e0788698.jpeg
  46. BIN
      src/assets/avatar/20180414165754.jpg
  47. BIN
      src/assets/avatar/20180414165815.jpg
  48. BIN
      src/assets/avatar/20180414165821.jpg
  49. BIN
      src/assets/avatar/20180414165827.jpg
  50. BIN
      src/assets/avatar/20180414165834.jpg
  51. BIN
      src/assets/avatar/20180414165840.jpg
  52. BIN
      src/assets/avatar/20180414165846.jpg
  53. BIN
      src/assets/avatar/20180414165855.jpg
  54. BIN
      src/assets/avatar/20180414165909.jpg
  55. BIN
      src/assets/avatar/20180414165914.jpg
  56. BIN
      src/assets/avatar/20180414165920.jpg
  57. BIN
      src/assets/avatar/20180414165927.jpg
  58. BIN
      src/assets/avatar/20180414165936.jpg
  59. BIN
      src/assets/avatar/20180414165942.jpg
  60. BIN
      src/assets/avatar/20180414165947.jpg
  61. BIN
      src/assets/avatar/20180414165955.jpg
  62. BIN
      src/assets/avatar/20180414170003.jpg
  63. BIN
      src/assets/avatar/2dd7a2d09fa94bf8b5c52e5318868b4d9.jpg
  64. BIN
      src/assets/avatar/2dd7a2d09fa94bf8b5c52e5318868b4df.jpg
  65. BIN
      src/assets/avatar/496b3ace787342f7954b7045b8b06804.jpeg
  66. BIN
      src/assets/avatar/595ba7b05f2e485eb50565a50cb6cc3c.jpeg
  67. BIN
      src/assets/avatar/5997fedcc7bd4cffbd350b40d1b5b9824.jpg
  68. BIN
      src/assets/avatar/5997fedcc7bd4cffbd350b40d1b5b987.jpg
  69. BIN
      src/assets/avatar/87d8194bc9834e9f8f0228e9e530beb1.jpeg
  70. BIN
      src/assets/avatar/8f5b60ef00714a399ee544d331231820.jpeg
  71. BIN
      src/assets/avatar/964e40b005724165b8cf772355796c8c.jpeg
  72. BIN
      src/assets/avatar/BiazfanxmamNRoxxVxka.png
  73. BIN
      src/assets/avatar/WhxKECPNujWoWEFNdnJE.png
  74. BIN
      src/assets/avatar/a3b10296862e40edb811418d64455d00.jpeg
  75. BIN
      src/assets/avatar/a43456282d684e0b9319cf332f8ac468.jpeg
  76. BIN
      src/assets/avatar/bba284ac05b041a8b8b0d1927868d5c9x.jpg
  77. BIN
      src/assets/avatar/c7c4ee7be3eb4e73a19887dc713505145.jpg
  78. BIN
      src/assets/avatar/cnrhVkzwxjPwAaCfPbdc.png
  79. BIN
      src/assets/avatar/default.jpg
  80. BIN
      src/assets/avatar/ff698bb2d25c4d218b3256b46c706ece.jpeg
  81. BIN
      src/assets/avatar/gaOngJwsRYRaVAuXXcmB.png
  82. BIN
      src/assets/avatar/jZUIxmJycoymBprLOUbT.png
  83. BIN
      src/assets/avatar/ubnKSIfAJTxIgXOKlciN.png
  84. BIN
      src/assets/background.jpg
  85. BIN
      src/assets/background2.png
  86. BIN
      src/assets/custom-theme/fonts/element-icons.ttf
  87. BIN
      src/assets/custom-theme/fonts/element-icons.woff
  88. 0 0
      src/assets/custom-theme/index.css
  89. 0 0
      src/assets/icons/admin.svg
  90. 1 0
      src/assets/icons/count1.svg
  91. 1 0
      src/assets/icons/count2.svg
  92. 1 0
      src/assets/icons/count3.svg
  93. 1 0
      src/assets/icons/doc.svg
  94. 0 0
      src/assets/icons/elk.svg
  95. 0 0
      src/assets/icons/grafana.svg
  96. 0 0
      src/assets/icons/nacos.svg
  97. 0 0
      src/assets/icons/skywalking.svg
  98. 1 0
      src/assets/icons/tx.svg
  99. BIN
      src/assets/logo.png
  100. BIN
      src/assets/logo/dingtalk.png

+ 14 - 0
.editorconfig

@@ -0,0 +1,14 @@
+# https://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

+ 15 - 0
.env.development

@@ -0,0 +1,15 @@
+# just a flag
+ENV = 'development'
+
+# base api
+VUE_APP_BASE_API = 'http://101.132.105.43:8301/'
+#VUE_APP_BASE_API = 'http://127.0.0.1:8301/'
+
+# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
+# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
+# It only does one thing by converting all import() to require().
+# This configuration can significantly increase the speed of hot updates,
+# when you have a large number of pages.
+# Detail:  https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
+
+VUE_CLI_BABEL_TRANSPILE_MODULES = false

+ 6 - 0
.env.production

@@ -0,0 +1,6 @@
+# just a flag
+ENV = 'production'
+
+# base api
+VUE_APP_BASE_API = 'http://101.132.105.43:8301/'
+

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

+ 23 - 0
.gitignore

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

+ 1 - 0
.prettierrc.json

@@ -0,0 +1 @@
+{"semi":false}

+ 5 - 0
.travis.yml

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

+ 6 - 0
.vs/VSWorkspaceState.json

@@ -0,0 +1,6 @@
+{
+  "ExpandedNodes": [
+    ""
+  ],
+  "PreviewInSolutionExplorer": false
+}

BIN
.vs/slnx.sqlite


+ 5 - 0
Dockerfile

@@ -0,0 +1,5 @@
+FROM nginx:1.14.2
+MAINTAINER MrBird 852252810@qq.com
+
+COPY nginx.conf /etc/nginx/nginx.conf
+COPY dist/ /etc/nginx/html

+ 201 - 0
LICENSE

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [2019] [febs & mrbird]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 17 - 0
Readme.md

@@ -0,0 +1,17 @@
+### FEBS Cloud Web
+
+FEBS Cloud Web是[FEBS Cloud](https://github.com/wuyouzhuguli/FEBS-Cloud)微服务权限系统的前端项目,基于[vue element admin](https://panjiachen.github.io/vue-element-admin-site/zh/)构建。详细介绍参见:[https://www.kancloud.cn/mrbird/spring-cloud/1263679](https://www.kancloud.cn/mrbird/spring-cloud/1263679)
+
+### 系统截图
+
+![1](images/1.png)
+
+![2](images/2.png)
+
+![3](images/3.png)
+
+![4](images/4.png)
+
+![5](images/5.png)
+
+![6](images/6.png)

+ 6 - 0
babel.config.js

@@ -0,0 +1,6 @@
+module.exports = {
+  presets: [
+    '@vue/app'
+  ]
+}
+presets: [ [ "@vue/app", { useBuiltIns: "entry" } ] ]

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

+ 9 - 0
common.js

@@ -0,0 +1,9 @@
+import service from '../FEBS-Cloud-We/src/utils/request'
+
+export function GetcodeIndustry(data = {}){
+  return service.request({
+    method: 'get',
+    url: '/demp/info/codeIndustry',
+    data
+  })
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 21 - 0
echarts.min.js


BIN
images/1.png


BIN
images/2.png


BIN
images/3.png


BIN
images/4.png


BIN
images/5.png


BIN
images/6.png


BIN
images/QQ.jpg


BIN
images/febs-cloud.png


+ 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/'
+}

+ 65 - 0
nginx.conf

@@ -0,0 +1,65 @@
+worker_processes  auto;
+
+error_log   /var/log/nginx/error.log;
+pid   /run/nginx.pid;
+
+events {
+    worker_connections  1024;
+}
+
+http {
+        include mime.types;
+        default_type  application/octet-stream;
+
+        server_names_hash_bucket_size 512;
+        client_header_buffer_size 32k;
+        large_client_header_buffers 4 32k;
+        client_max_body_size 50m;
+
+        sendfile   on;
+        tcp_nopush on;
+
+        keepalive_timeout 60;
+        tcp_nodelay on;
+
+        fastcgi_connect_timeout 300;
+        fastcgi_send_timeout 300;
+        fastcgi_read_timeout 300;
+        fastcgi_buffer_size 64k;
+        fastcgi_buffers 4 64k;
+        fastcgi_busy_buffers_size 128k;
+        fastcgi_temp_file_write_size 256k;
+        fastcgi_intercept_errors on;
+
+        gzip on;
+        gzip_min_length  1k;
+        gzip_buffers     16 8k;
+        gzip_http_version 1.1;
+        gzip_comp_level 6;
+        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
+        gzip_vary on;
+        gzip_proxied   expired no-cache no-store private auth;
+        gzip_disable   "MSIE [1-6]\.";
+
+        limit_conn_zone $binary_remote_addr zone=perip:10m;
+        limit_conn_zone $server_name zone=perserver:10m;
+
+        server_tokens off;
+        access_log off;
+
+
+    server {
+        listen       80;
+        server_name  localhost;
+
+        charset utf-8;
+
+        location / {
+            root   html;
+            index  index.html index.htm;
+        }
+        location = /50x.html {
+            root   html;
+        }
+    }
+}

+ 104 - 0
package.json

@@ -0,0 +1,104 @@
+{
+  "name": "febs-cloud-web",
+  "version": "4.2.1",
+  "description": "园区粉尘企业除尘器监测平台",
+  "author": "MrBird",
+  "license": "Apache 2.0",
+  "scripts": {
+    "download": "yarn --registry https://registry.npm.taobao.org || npm install --registry https://registry.npm.taobao.org",
+    "local": "vue-cli-service serve",
+    "package": "vue-cli-service build",
+    "preview": "node build/index.js --preview",
+    "lint": "eslint --ext .js,.vue src",
+    "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
+  },
+  "husky": {
+    "hooks": {
+      "pre-commit": "lint-staged"
+    }
+  },
+  "lint-staged": {
+    "src/**/*.{js,vue}": [
+      "eslint --fix",
+      "git add"
+    ]
+  },
+  "keywords": [
+    "febs",
+    "vue",
+    "admin",
+    "dashboard",
+    "element-ui",
+    "management-system"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/wuyouzhuguli/FEBS-Cloud"
+  },
+  "bugs": {
+    "url": "https://github.com/wuyouzhuguli/FEBS-Cloud/issues"
+  },
+  "dependencies": {
+    "@riophae/vue-treeselect": "0.0.38",
+    "axios": "^0.19.0",
+    "clipboard": "2.0.4",
+    "dropzone": "5.5.1",
+    "echarts": "4.2.1",
+    "element-ui": "2.13.2",
+    "fuse.js": "3.4.4",
+    "normalize.css": "7.0.0",
+    "nprogress": "0.2.0",
+    "path-to-regexp": "2.4.0",
+    "screenfull": "4.2.0",
+    "showdown": "^1.9.1",
+    "sortablejs": "1.8.4",
+    "tui-editor": "1.3.3",
+    "vue": "2.6.10",
+    "vue-count-to": "^1.0.13",
+    "vue-i18n": "7.3.2",
+    "vue-router": "3.0.2",
+    "vue-splitpane": "1.0.4",
+    "vuex": "3.1.0"
+  },
+  "devDependencies": {
+    "@babel/core": "7.0.0",
+    "@babel/register": "7.0.0",
+    "@vue/cli-plugin-babel": "3.5.3",
+    "@vue/cli-plugin-eslint": "3.9.1",
+    "@vue/cli-plugin-unit-jest": "^4.5.8",
+    "@vue/cli-service": "^4.5.8",
+    "@vue/test-utils": "1.0.0-beta.29",
+    "autoprefixer": "^9.5.1",
+    "babel-core": "7.0.0-bridge.0",
+    "babel-eslint": "7.2.3",
+    "babel-jest": "^26.6.1",
+    "chalk": "2.4.2",
+    "chokidar": "2.1.5",
+    "connect": "3.6.6",
+    "eslint": "6.8.0",
+    "eslint-plugin-vue": "6.0.1",
+    "html-webpack-plugin": "3.2.0",
+    "husky": "1.3.1",
+    "lint-staged": "8.1.5",
+    "mockjs": "1.0.1-beta3",
+    "node-sass": "^4.9.0",
+    "plop": "2.3.0",
+    "prettier": "2.1.2",
+    "runjs": "^4.3.2",
+    "sass-loader": "^7.1.0",
+    "script-ext-html-webpack-plugin": "2.1.3",
+    "script-loader": "0.7.2",
+    "serve-static": "^1.13.2",
+    "svg-sprite-loader": "4.1.3",
+    "svgo": "1.2.0",
+    "vue-template-compiler": "2.6.10"
+  },
+  "engines": {
+    "node": ">=8.9",
+    "npm": ">= 3.0.0"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
+}

+ 7 - 0
plopfile.js

@@ -0,0 +1,7 @@
+const viewGenerator = require('./plop-templates/view/prompt')
+const componentGenerator = require('./plop-templates/component/prompt')
+
+module.exports = function(plop) {
+  plop.setGenerator('view', viewGenerator)
+  plop.setGenerator('component', componentGenerator)
+}

+ 5 - 0
postcss.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  plugins: {
+    autoprefixer: {}
+  }
+}

BIN
public/favicon.ico


+ 22 - 0
public/index.html

@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="renderer" content="webkit">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+  <title><%= webpackConfig.name %></title>
+  <!--三个必要的js文件引入-->
+  <script src="jquery-1.12.4.min.js"></script>
+  <script src="jsencrypt.min.js"></script> <!-- 用于RSA加密 -->
+  <script src="jsWebControl-1.0.0.min.js"></script> <!-- 用于前端与插件交互 -->
+</head>
+
+<body>
+  <div id="app"></div>
+  <!-- built files will be auto injected -->
+</body>
+
+</html>

Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/jquery-1.12.4.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
public/jsWebControl-1.0.0.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
public/jsencrypt.min.js


+ 4 - 0
run.sh

@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+npm run build:prod
+
+docker build -t febs-cloud-web .

+ 11 - 0
src/App.vue

@@ -0,0 +1,11 @@
+<template>
+  <div id="app">
+    <router-view />
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'App'
+}
+</script>

BIN
src/assets/401_images/401.gif


BIN
src/assets/404_images/404.png


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


BIN
src/assets/avatar/17e420c250804efe904a09a33796d5a10.jpg


BIN
src/assets/avatar/17e420c250804efe904a09a33796d5a16.jpg


BIN
src/assets/avatar/19034103295190235.jpg


BIN
src/assets/avatar/1d22f3e41d284f50b2c8fc32e0788698.jpeg


BIN
src/assets/avatar/20180414165754.jpg


BIN
src/assets/avatar/20180414165815.jpg


BIN
src/assets/avatar/20180414165821.jpg


BIN
src/assets/avatar/20180414165827.jpg


BIN
src/assets/avatar/20180414165834.jpg


BIN
src/assets/avatar/20180414165840.jpg


BIN
src/assets/avatar/20180414165846.jpg


BIN
src/assets/avatar/20180414165855.jpg


BIN
src/assets/avatar/20180414165909.jpg


BIN
src/assets/avatar/20180414165914.jpg


BIN
src/assets/avatar/20180414165920.jpg


BIN
src/assets/avatar/20180414165927.jpg


BIN
src/assets/avatar/20180414165936.jpg


BIN
src/assets/avatar/20180414165942.jpg


BIN
src/assets/avatar/20180414165947.jpg


BIN
src/assets/avatar/20180414165955.jpg


BIN
src/assets/avatar/20180414170003.jpg


BIN
src/assets/avatar/2dd7a2d09fa94bf8b5c52e5318868b4d9.jpg


BIN
src/assets/avatar/2dd7a2d09fa94bf8b5c52e5318868b4df.jpg


BIN
src/assets/avatar/496b3ace787342f7954b7045b8b06804.jpeg


BIN
src/assets/avatar/595ba7b05f2e485eb50565a50cb6cc3c.jpeg


BIN
src/assets/avatar/5997fedcc7bd4cffbd350b40d1b5b9824.jpg


BIN
src/assets/avatar/5997fedcc7bd4cffbd350b40d1b5b987.jpg


BIN
src/assets/avatar/87d8194bc9834e9f8f0228e9e530beb1.jpeg


BIN
src/assets/avatar/8f5b60ef00714a399ee544d331231820.jpeg


BIN
src/assets/avatar/964e40b005724165b8cf772355796c8c.jpeg


BIN
src/assets/avatar/BiazfanxmamNRoxxVxka.png


BIN
src/assets/avatar/WhxKECPNujWoWEFNdnJE.png


BIN
src/assets/avatar/a3b10296862e40edb811418d64455d00.jpeg


BIN
src/assets/avatar/a43456282d684e0b9319cf332f8ac468.jpeg


BIN
src/assets/avatar/bba284ac05b041a8b8b0d1927868d5c9x.jpg


BIN
src/assets/avatar/c7c4ee7be3eb4e73a19887dc713505145.jpg


BIN
src/assets/avatar/cnrhVkzwxjPwAaCfPbdc.png


BIN
src/assets/avatar/default.jpg


BIN
src/assets/avatar/ff698bb2d25c4d218b3256b46c706ece.jpeg


BIN
src/assets/avatar/gaOngJwsRYRaVAuXXcmB.png


BIN
src/assets/avatar/jZUIxmJycoymBprLOUbT.png


BIN
src/assets/avatar/ubnKSIfAJTxIgXOKlciN.png


BIN
src/assets/background.jpg


BIN
src/assets/background2.png


BIN
src/assets/custom-theme/fonts/element-icons.ttf


BIN
src/assets/custom-theme/fonts/element-icons.woff


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/custom-theme/index.css


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/icons/admin.svg


+ 1 - 0
src/assets/icons/count1.svg

@@ -0,0 +1 @@
+<svg id="bold" enable-background="new 0 0 32 32" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m26 32h-20c-3.314 0-6-2.686-6-6v-20c0-3.314 2.686-6 6-6h20c3.314 0 6 2.686 6 6v20c0 3.314-2.686 6-6 6z" fill="#e3f8fa"/><g fill="#8ce1eb"><path d="m12.833 15.793v-2.409c-1.232.235-2.167 1.317-2.167 2.616 0 .555.171 1.07.462 1.497z"/><path d="m13.833 13.384v2.616c0 .132-.053.26-.146.354l-1.851 1.851c.427.291.943.462 1.497.462 1.471 0 2.667-1.197 2.667-2.667 0-1.299-.935-2.381-2.167-2.616z"/><path d="m20.667 15.333h-2.667c-.368 0-.667-.299-.667-.667s.299-.666.667-.666h2.667c.368 0 .667.299.667.667s-.299.666-.667.666z"/><path d="m20.667 18h-2.667c-.368 0-.667-.299-.667-.667s.299-.667.667-.667h2.667c.368 0 .667.299.667.667s-.299.667-.667.667z"/></g><path d="m22.834 11.333h-13.668c-.643 0-1.166.524-1.166 1.167v9c0 .643.523 1.167 1.167 1.167h5.106c-.078.334-.286.876-.841 1.431-.095.095-.124.239-.072.363.051.125.173.206.308.206h4.667c.135 0 .257-.081.308-.206s.023-.268-.072-.363c-.554-.554-.767-1.096-.85-1.431h5.114c.643 0 1.167-.523 1.167-1.167v-9c-.002-.643-.525-1.167-1.168-1.167zm-.167 8.667h-13.334v-7.333h13.334z" fill="#26c6da"/></svg>

+ 1 - 0
src/assets/icons/count2.svg

@@ -0,0 +1 @@
+<svg id="bold" enable-background="new 0 0 32 32" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m26 32h-20c-3.314 0-6-2.686-6-6v-20c0-3.314 2.686-6 6-6h20c3.314 0 6 2.686 6 6v20c0 3.314-2.686 6-6 6z" fill="#ffe6e2"/><path d="m16.667 13.333c-1.838 0-3.333 1.495-3.333 3.333 0 .678.206 1.308.555 1.835l-1.693 1.693c-.26.26-.26.682 0 .943.13.13.301.195.471.195s.341-.065.471-.195l1.693-1.693c.527.35 1.157.556 1.836.556 1.838 0 3.333-1.495 3.333-3.333s-1.495-3.334-3.333-3.334zm-2 3.334c0-1.103.897-2 2-2s2 .897 2 2c0 .368-.299.667-.667.667s-.667-.299-.667-.667-.299-.667-.667-.667c-.367 0-.666.299-.666.667 0 .868.559 1.601 1.333 1.877-.21.075-.432.123-.667.123-1.102 0-1.999-.897-1.999-2z" fill="#fd907e"/><path d="m22 8.667h-12c-1.103 0-2 .897-2 2v10.667c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-10.667c0-1.103-.897-2-2-2zm0 13.333h-12c-.368 0-.667-.299-.667-.667v-9.333h13.334v9.333c0 .368-.299.667-.667.667z" fill="#fc573b"/></svg>

+ 1 - 0
src/assets/icons/count3.svg

@@ -0,0 +1 @@
+<svg id="bold" enable-background="new 0 0 32 32" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m26 32h-20c-3.314 0-6-2.686-6-6v-20c0-3.314 2.686-6 6-6h20c3.314 0 6 2.686 6 6v20c0 3.314-2.686 6-6 6z" fill="#f5e6fe"/><path d="m22 24h-12c-1.103 0-2-.897-2-2v-12c0-1.103.897-2 2-2h12c1.103 0 2 .897 2 2v12c0 1.103-.897 2-2 2zm-12-14.667c-.368 0-.667.299-.667.667v12c0 .368.299.667.667.667h12c.368 0 .667-.299.667-.667v-12c0-.368-.299-.667-.667-.667z" fill="#be63f9"/><g fill="#d9a4fc"><path d="m13.833 14.833h-1c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v1c0 .553-.447 1-1 1z"/><path d="m19.167 14.833h-1c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v1c0 .553-.448 1-1 1z"/><path d="m13.833 20.167h-1c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v1c0 .552-.447 1-1 1z"/><path d="m19.167 20.167h-1c-.552 0-1-.448-1-1v-1c0-.552.448-1 1-1h1c.552 0 1 .448 1 1v1c0 .552-.448 1-1 1z"/></g></svg>

+ 1 - 0
src/assets/icons/doc.svg

@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m10 66h492v80h-492z" fill="#cecdf3"/><path d="m10 146h492v300h-492z" fill="#fff"/><g><g><path d="m92 366h-36c-5.522 0-10-4.477-10-10s4.478-10 10-10h36c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#cecdf3"/></g><g><path d="m126 406h-70c-5.522 0-10-4.477-10-10s4.478-10 10-10h70c5.523 0 10 4.477 10 10s-4.477 10-10 10z" fill="#cecdf3"/></g></g><g><g><path d="m456 246h-36c-5.522 0-10-4.477-10-10s4.478-10 10-10h36c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#cecdf3"/></g><g><path d="m456 206h-70c-5.522 0-10-4.477-10-10s4.478-10 10-10h70c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#cecdf3"/></g></g><circle cx="256" cy="296" fill="#ff7d97" r="110"/><path d="m256 356c-16.569 0-31.569-6.716-42.426-17.574l-35.355 35.355c19.905 19.907 47.405 32.219 77.781 32.219 60.751 0 110-49.249 110-110h-50c0 33.137-26.863 60-60 60z" fill="#7dd9c2"/><path d="m256 186v50c33.137 0 60 26.863 60 60h50c0-60.751-49.249-110-110-110z" fill="#ffee80"/><circle cx="256" cy="296" fill="#fff" r="60"/><g fill="#8481e2"><path d="m256 176c-66.168 0-120 53.832-120 120s53.832 120 120 120 120-53.832 120-120-53.832-120-120-120zm0 220c-55.141 0-100-44.86-100-100s44.859-100 100-100 100 44.86 100 100-44.859 100-100 100z"/><path d="m502 56h-492c-5.523 0-10 4.477-10 10v380c0 5.523 4.477 10 10 10h492c5.522 0 10-4.477 10-10v-380c0-5.523-4.478-10-10-10zm-10 20v60h-472v-60zm-472 360v-280h472v280z"/></g><g><path d="m446 116h-180c-5.522 0-10-4.477-10-10s4.478-10 10-10h180c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#fff"/></g><g><circle cx="60" cy="106" fill="#ff7d97" r="10"/><circle cx="100" cy="106" fill="#ffee80" r="10"/><circle cx="140" cy="106" fill="#7dd9c2" r="10"/></g></g></svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/icons/elk.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/icons/grafana.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/icons/nacos.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
src/assets/icons/skywalking.svg


+ 1 - 0
src/assets/icons/tx.svg

@@ -0,0 +1 @@
+<svg id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m56 50h400v340h-400z" fill="#fff"/><g><g><path d="m136 320h-40c-5.522 0-10-4.477-10-10s4.478-10 10-10h40c5.523 0 10 4.477 10 10s-4.477 10-10 10z" fill="#cecdf3"/></g><g><path d="m166 360h-70c-5.522 0-10-4.477-10-10s4.478-10 10-10h70c5.523 0 10 4.477 10 10s-4.477 10-10 10z" fill="#cecdf3"/></g></g><g><g><path d="m416 140h-36c-5.522 0-10-4.477-10-10s4.478-10 10-10h36c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#cecdf3"/></g><g><path d="m416 100h-70c-5.522 0-10-4.477-10-10s4.478-10 10-10h70c5.522 0 10 4.477 10 10s-4.478 10-10 10z" fill="#cecdf3"/></g></g><path d="m36 10h440v40h-440z" fill="#cecdf3"/><g><circle cx="256" cy="210" fill="#ff7d97" r="110"/><path d="m256 270c-16.569 0-31.569-6.716-42.426-17.574l-35.355 35.355c19.905 19.907 47.405 32.219 77.781 32.219 60.751 0 110-49.249 110-110h-50c0 33.137-26.863 60-60 60z" fill="#7dd9c2"/><path d="m256 100v50c33.137 0 60 26.863 60 60h50c0-60.751-49.249-110-110-110z" fill="#ffee80"/><circle cx="256" cy="210" fill="#fff" r="60"/></g><circle cx="256" cy="477" fill="#cecdf3" r="25"/><g fill="#8481e2"><path d="m476 0h-440c-5.522 0-10 4.477-10 10v40c0 5.523 4.478 10 10 10h10v330c0 5.523 4.478 10 10 10h190v43.463c-14.44 4.314-25 17.712-25 33.537 0 19.299 15.701 35 35 35s35-15.701 35-35c0-15.824-10.56-29.223-25-33.537v-43.463h190c5.522 0 10-4.477 10-10v-330h10c5.522 0 10-4.477 10-10v-40c0-5.523-4.478-10-10-10zm-205 477c0 8.271-6.728 15-15 15-8.271 0-15-6.729-15-15s6.729-15 15-15c8.272 0 15 6.729 15 15zm175-97h-380v-320h380zm20-340h-420v-20h420z"/><path d="m256 330c66.168 0 120-53.832 120-120s-53.832-120-120-120-120 53.832-120 120 53.832 120 120 120zm0-220c55.141 0 100 44.86 100 100s-44.859 100-100 100-100-44.86-100-100 44.859-100 100-100z"/></g></g></svg>

BIN
src/assets/logo.png


BIN
src/assets/logo/dingtalk.png


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff